summaryrefslogtreecommitdiff
path: root/fai_gestion/plugins/CustomTheme/src/Template/Bake/Element
diff options
context:
space:
mode:
authorLudovic Pouzenc <ludovic@pouzenc.fr>2018-07-16 13:24:18 +0200
committerLudovic Pouzenc <ludovic@pouzenc.fr>2018-07-16 13:26:14 +0200
commit31a40cfc446c9586f89a4aa69ef76d76d469e5a4 (patch)
treea68141ff714b1e91027d551d38fabc792bd498e7 /fai_gestion/plugins/CustomTheme/src/Template/Bake/Element
parentc9939556d486da50f180ce424dd456252b1e0349 (diff)
downloadchd_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')
-rw-r--r--fai_gestion/plugins/CustomTheme/src/Template/Bake/Element/Controller/add.twig46
-rw-r--r--fai_gestion/plugins/CustomTheme/src/Template/Bake/Element/Controller/edit.twig49
-rw-r--r--fai_gestion/plugins/CustomTheme/src/Template/Bake/Element/Controller/index.twig33
-rw-r--r--fai_gestion/plugins/CustomTheme/src/Template/Bake/Element/form.twig80
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>