From 94a42b092b0b365730b681855dd19d1f05f73a42 Mon Sep 17 00:00:00 2001 From: Ludovic Pouzenc Date: Sun, 12 Jun 2016 14:03:27 +0200 Subject: Equipement/edit : make uplink links sorted by IP + minor refactorings. --- .../src/Controller/EquipementsController.php | 16 +++++++---- .../after-bake/src/Template/Equipements/add.ctp | 9 +----- .../after-bake/src/Template/Equipements/edit.ctp | 32 ++++++++++++++++++++++ 3 files changed, 43 insertions(+), 14 deletions(-) create mode 100644 generator/after-bake/src/Template/Equipements/edit.ctp diff --git a/generator/after-bake/src/Controller/EquipementsController.php b/generator/after-bake/src/Controller/EquipementsController.php index a17a724..65260b5 100644 --- a/generator/after-bake/src/Controller/EquipementsController.php +++ b/generator/after-bake/src/Controller/EquipementsController.php @@ -126,15 +126,18 @@ class EquipementsController extends AppController $this->Flash->error(__('At least one Equipement is invalid. None Saved.')); } } - $equipements = $this->Equipements->Equipements->find('list')->order('mac'); + /* + $uplinks = $this->Equipements->find('list'); + $uplinks->order($uplinks->newExpr()->add(['INET_ATON(ipmgmt_id)'])); $services = $this->Equipements->Services->find('list')->order(['service_type_id', 'adherent_id', 'id']); + $relais = $this->Equipements->Relais->find('list'); + */ $ipmgmt = $this->Equipements->Ipmgmt->find('list')->notMatching('Equipements'); $ipmgmt->order($ipmgmt->newExpr()->add(['INET_ATON(ip4)'])); $equipementModeles = $this->Equipements->EquipementModeles->find('list'); $equipementModes = $this->Equipements->EquipementModes->find('list'); - $relais = $this->Equipements->Relais->find('list'); - $this->set(compact('equipement', 'equipements', 'services', 'ipmgmt', 'equipementModeles', 'equipementModes', 'relais')); - //$this->set(compact('entities')); + //$this->set(compact('equipement', 'uplinks', 'services', 'ipmgmt', 'equipementModeles', 'equipementModes', 'relais')); + $this->set(compact('equipement', 'ipmgmt', 'equipementModeles', 'equipementModes')); $this->set('_serialize', ['equipement']); } @@ -159,7 +162,8 @@ class EquipementsController extends AppController $this->Flash->error(__('The equipement could not be saved. Please, try again.')); } } - $equipements = $this->Equipements->Equipements->find('list', array('order' => array('mac' => 'asc'))); + $uplinks = $this->Equipements->find('list'); + $uplinks->order($uplinks->newExpr()->add(['INET_ATON(ipmgmt_id)'])); $services = $this->Equipements->Services->find('list'); // IPmgmt list : own IP + unused IP // XXX Cake bug ->orWhere(['Ipmgmt.ip4' => $equipement->ipmgmt_id]) does a AND WHERE after ->notMatching('Equipements') so forced to use leftJoinWith() @@ -169,7 +173,7 @@ class EquipementsController extends AppController $equipementModeles = $this->Equipements->EquipementModeles->find('list'); $equipementModes = $this->Equipements->EquipementModes->find('list'); $relais = $this->Equipements->Relais->find('list'); - $this->set(compact('equipement', 'equipements', 'services', 'ipmgmt', 'equipementModeles', 'equipementModes', 'relais')); + $this->set(compact('equipement', 'uplinks', 'services', 'ipmgmt', 'equipementModeles', 'equipementModes', 'relais')); $this->set('_serialize', ['equipement']); } } diff --git a/generator/after-bake/src/Template/Equipements/add.ctp b/generator/after-bake/src/Template/Equipements/add.ctp index c2516cd..388d624 100644 --- a/generator/after-bake/src/Template/Equipements/add.ctp +++ b/generator/after-bake/src/Template/Equipements/add.ctp @@ -2,16 +2,9 @@
@@ -19,7 +12,7 @@
Form->input('uplink_id', ['options' => $equipements, 'empty' => true]); + //echo $this->Form->input('uplink_id', ['options' => $uplinks, 'empty' => true]); //echo $this->Form->input('service_id', ['options' => $services, 'empty' => true]); //echo $this->Form->input('mac'); echo $this->Form->input('mac', ['type'=>'textarea', 'rows'=>10, 'maxlength'=>2000]); diff --git a/generator/after-bake/src/Template/Equipements/edit.ctp b/generator/after-bake/src/Template/Equipements/edit.ctp new file mode 100644 index 0000000..4d1a8f7 --- /dev/null +++ b/generator/after-bake/src/Template/Equipements/edit.ctp @@ -0,0 +1,32 @@ + +
+ Form->create($equipement) ?> +
+ + Form->input('mac',array('readonly' => 'readonly')); + echo $this->Form->input('hostname'); + echo $this->Form->input('equipement_modele_id', ['options' => $equipementModeles]); + echo $this->Form->input('ipmgmt_id', ['options' => $ipmgmt, 'empty' => true]); + echo $this->Form->input('uplink_id', ['options' => $uplinks, 'empty' => true]); + echo $this->Form->input('service_id', ['options' => $services, 'empty' => true]); + echo $this->Form->input('relais_id', ['options' => $relais, 'empty' => true]); + echo $this->Form->input('equipement_mode_id', ['options' => $equipementModes]); + echo $this->Form->input('description'); + echo $this->Form->input('date_achat', ['empty' => true, 'default' => '']); + echo $this->Form->input('date_hs', ['empty' => true, 'default' => '']); + echo $this->Form->input('notes'); + ?> +
+ Form->button(__('Submit')) ?> + Form->end() ?> +
-- cgit v1.1