diff options
author | Ludovic Pouzenc <ludovic@pouzenc.fr> | 2018-07-16 13:24:18 +0200 |
---|---|---|
committer | Ludovic Pouzenc <ludovic@pouzenc.fr> | 2018-07-16 13:26:14 +0200 |
commit | 31a40cfc446c9586f89a4aa69ef76d76d469e5a4 (patch) | |
tree | a68141ff714b1e91027d551d38fabc792bd498e7 /fai_gestion/plugins/CustomTheme/src/Template/Bake/Element | |
parent | c9939556d486da50f180ce424dd456252b1e0349 (diff) | |
download | chd_gestion-31a40cfc446c9586f89a4aa69ef76d76d469e5a4.zip chd_gestion-31a40cfc446c9586f89a4aa69ef76d76d469e5a4.tar.gz chd_gestion-31a40cfc446c9586f89a4aa69ef76d76d469e5a4.tar.bz2 |
Bake : setup and create empty CustomTheme
Diffstat (limited to 'fai_gestion/plugins/CustomTheme/src/Template/Bake/Element')
4 files changed, 208 insertions, 0 deletions
diff --git a/fai_gestion/plugins/CustomTheme/src/Template/Bake/Element/Controller/add.twig b/fai_gestion/plugins/CustomTheme/src/Template/Bake/Element/Controller/add.twig new file mode 100644 index 0000000..1c67f5e --- /dev/null +++ b/fai_gestion/plugins/CustomTheme/src/Template/Bake/Element/Controller/add.twig @@ -0,0 +1,46 @@ +{# +/** + * CakePHP(tm) : Rapid Development Framework (http://cakephp.org) + * Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org) + * + * Licensed under The MIT License + * For full copyright and license information, please see the LICENSE.txt + * Redistributions of files must retain the above copyright notice. + * + * @copyright Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org) + * @link http://cakephp.org CakePHP(tm) Project + * @since 2.0.0 + * @license http://www.opensource.org/licenses/mit-license.php MIT License + */ +#} +{% set compact = ["'#{singularName}'"] %} + + /** + * Add method + * + * @return \Cake\Http\Response|null Redirects on successful add, renders view otherwise. + */ + public function add() + { + ${{ singularName }} = $this->{{ currentModelName }}->newEntity(); + if ($this->request->is('post')) { + ${{ singularName }} = $this->{{ currentModelName }}->patchEntity(${{ singularName }}, $this->request->getData()); + if ($this->{{ currentModelName }}->save(${{ singularName }})) { + $this->Flash->success(__('The {{ singularHumanName|lower }} has been saved.')); + + return $this->redirect(['action' => 'index']); + } + $this->Flash->error(__('The {{ singularHumanName|lower }} could not be saved. Please, try again.')); + } +{% set associations = Bake.aliasExtractor(modelObj, 'BelongsTo') %} +{% set associations = associations|merge(Bake.aliasExtractor(modelObj, 'BelongsToMany')) %} + +{%- for assoc in associations %} + {%- set otherName = Bake.getAssociatedTableAlias(modelObj, assoc) %} + {%- set otherPlural = otherName|variable %} + ${{ otherPlural }} = $this->{{ currentModelName }}->{{ otherName }}->find('list', ['limit' => 200]); + {{- "\n" }} + {%- set compact = compact|merge(["'#{otherPlural}'"]) %} +{% endfor %} + $this->set(compact({{ compact|join(', ')|raw }})); + } diff --git a/fai_gestion/plugins/CustomTheme/src/Template/Bake/Element/Controller/edit.twig b/fai_gestion/plugins/CustomTheme/src/Template/Bake/Element/Controller/edit.twig new file mode 100644 index 0000000..d06cb9c --- /dev/null +++ b/fai_gestion/plugins/CustomTheme/src/Template/Bake/Element/Controller/edit.twig @@ -0,0 +1,49 @@ +{# +/** + * CakePHP(tm) : Rapid Development Framework (http://cakephp.org) + * Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org) + * + * Licensed under The MIT License + * For full copyright and license information, please see the LICENSE.txt + * Redistributions of files must retain the above copyright notice. + * + * @copyright Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org) + * @link http://cakephp.org CakePHP(tm) Project + * @since 2.0.0 + * @license http://www.opensource.org/licenses/mit-license.php MIT License + */ +#} +{% set belongsTo = Bake.aliasExtractor(modelObj, 'BelongsTo') %} +{% set belongsToMany = Bake.aliasExtractor(modelObj, 'belongsToMany') %} +{% set compact = ["'#{singularName}'"] %} + + /** + * Edit method + * + * @param string|null $id {{ singularHumanName }} id. + * @return \Cake\Http\Response|null Redirects on successful edit, renders view otherwise. + * @throws \Cake\Network\Exception\NotFoundException When record not found. + */ + public function edit($id = null) + { + ${{ singularName }} = $this->{{ currentModelName }}->get($id, [ + 'contain' => [{{ Bake.stringifyList(belongsToMany, {'indent': false})|raw }}] + ]); + if ($this->request->is(['patch', 'post', 'put'])) { + ${{ singularName }} = $this->{{ currentModelName }}->patchEntity(${{ singularName }}, $this->request->getData()); + if ($this->{{ currentModelName }}->save(${{ singularName }})) { + $this->Flash->success(__('The {{ singularHumanName|lower }} has been saved.')); + + return $this->redirect(['action' => 'index']); + } + $this->Flash->error(__('The {{ singularHumanName|lower }} could not be saved. Please, try again.')); + } +{% for assoc in belongsTo|merge(belongsToMany) %} + {%- set otherName = Bake.getAssociatedTableAlias(modelObj, assoc) %} + {%- set otherPlural = otherName|variable %} + ${{ otherPlural }} = $this->{{ currentModelName }}->{{ otherName }}->find('list', ['limit' => 200]); + {{- "\n" }} + {%- set compact = compact|merge(["'#{otherPlural}'"]) %} +{% endfor %} + $this->set(compact({{ compact|join(', ')|raw }})); + } diff --git a/fai_gestion/plugins/CustomTheme/src/Template/Bake/Element/Controller/index.twig b/fai_gestion/plugins/CustomTheme/src/Template/Bake/Element/Controller/index.twig new file mode 100644 index 0000000..181e830 --- /dev/null +++ b/fai_gestion/plugins/CustomTheme/src/Template/Bake/Element/Controller/index.twig @@ -0,0 +1,33 @@ +{# +/** + * CakePHP(tm) : Rapid Development Framework (http://cakephp.org) + * Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org) + * + * Licensed under The MIT License + * For full copyright and license information, please see the LICENSE.txt + * Redistributions of files must retain the above copyright notice. + * + * @copyright Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org) + * @link http://cakephp.org CakePHP(tm) Project + * @since 2.0.0 + * @license http://www.opensource.org/licenses/mit-license.php MIT License + */ +#} + + /** + * Index method + * + * @return \Cake\Http\Response|void + */ + public function index() + { +{% set belongsTo = Bake.aliasExtractor(modelObj, 'BelongsTo') %} +{% if belongsTo %} + $this->paginate = [ + 'contain' => [{{ Bake.stringifyList(belongsTo, {'indent': false})|raw }}] + ]; +{% endif %} + ${{ pluralName }} = $this->paginate($this->{{ currentModelName }}); + + $this->set(compact('{{ pluralName }}')); + } diff --git a/fai_gestion/plugins/CustomTheme/src/Template/Bake/Element/form.twig b/fai_gestion/plugins/CustomTheme/src/Template/Bake/Element/form.twig new file mode 100644 index 0000000..b2d9e50 --- /dev/null +++ b/fai_gestion/plugins/CustomTheme/src/Template/Bake/Element/form.twig @@ -0,0 +1,80 @@ +{# +/** + * CakePHP(tm) : Rapid Development Framework (http://cakephp.org) + * Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org) + * + * Licensed under The MIT License + * For full copyright and license information, please see the LICENSE.txt + * Redistributions of files must retain the above copyright notice. + * + * @copyright Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org) + * @link http://cakephp.org CakePHP(tm) Project + * @since 2.0.0 + * @license http://www.opensource.org/licenses/mit-license.php MIT License + */ +#} +{% set fields = Bake.filterFields(fields, schema, modelObject) %} +<nav class="large-3 medium-4 columns" id="actions-sidebar"> + <ul class="side-nav"> + <li class="heading"><?= __('Actions') ?></li> +{% if strpos(action, 'add') is same as(false) %} + <li><?= $this->Form->postLink( + __('Delete'), + ['action' => 'delete', ${{ singularVar }}->{{ primaryKey[0] }}], + ['confirm' => __('Are you sure you want to delete # {0}?', ${{ singularVar }}->{{ primaryKey[0] }})] + ) + ?></li> +{% endif %} + <li><?= $this->Html->link(__('List {{ pluralHumanName }}'), ['action' => 'index']) ?></li> + {{- "\n" }} +{%- set done = [] %} +{% for type, data in associations %} + {%- for alias, details in data %} + {%- if details.controller is not same as(_view.name) and details.controller not in done %} + <li><?= $this->Html->link(__('List {{ alias|underscore|humanize }}'), ['controller' => '{{ details.controller }}', 'action' => 'index']) ?></li> + <li><?= $this->Html->link(__('New {{ alias|singularize|underscore|humanize }}'), ['controller' => '{{ details.controller }}', 'action' => 'add']) ?></li> + {{- "\n" }} + {%- set done = done|merge([details.controller]) %} + {%- endif %} + {%- endfor %} +{% endfor %} + </ul> +</nav> +<div class="{{ pluralVar }} form large-9 medium-8 columns content"> + <?= $this->Form->create(${{ singularVar }}) ?> + <fieldset> + <legend><?= __('{{ action|humanize }} {{ singularHumanName }}') ?></legend> + <?php +{% for field in fields if field not in primaryKey %} + {%- if keyFields[field] %} + {%- set fieldData = Bake.columnData(field, schema) %} + {%- if fieldData.null %} + echo $this->Form->control('{{ field }}', ['options' => ${{ keyFields[field] }}, 'empty' => true]); + {{- "\n" }} + {%- else %} + echo $this->Form->control('{{ field }}', ['options' => ${{ keyFields[field] }}]); + {{- "\n" }} + {%- endif %} + {%- elseif field not in ['created', 'modified', 'updated'] %} + {%- set fieldData = Bake.columnData(field, schema) %} + {%- if fieldData.type in ['date', 'datetime', 'time'] and fieldData.null %} + echo $this->Form->control('{{ field }}', ['empty' => true]); + {{- "\n" }} + {%- else %} + echo $this->Form->control('{{ field }}'); + {{- "\n" }} + {%- endif %} + {%- endif %} +{%- endfor %} + +{%- if associations.BelongsToMany %} + {%- for assocName, assocData in associations.BelongsToMany %} + echo $this->Form->control('{{ assocData.property }}._ids', ['options' => ${{ assocData.variable }}]); + {{- "\n" }} + {%- endfor %} +{% endif %} + ?> + </fieldset> + <?= $this->Form->button(__('Submit')) ?> + <?= $this->Form->end() ?> +</div> |