diff --git a/application/controllers/DataController.php b/application/controllers/DataController.php deleted file mode 100644 index 8d932148..00000000 --- a/application/controllers/DataController.php +++ /dev/null @@ -1,24 +0,0 @@ -translate('Add field'); - $this->getTabs()->add('addfield', array( - 'url' => 'director/data/addfield', - 'label' => $title, - ))->activate('addfield'); - - $form = new DirectorDatafieldForm(); - $form->setDb($this->db()); - - $form->handleRequest(); - - $this->view->title = $title; - $this->view->form = $form; - } -} diff --git a/application/controllers/DatafieldController.php b/application/controllers/DatafieldController.php new file mode 100644 index 00000000..fa95fd74 --- /dev/null +++ b/application/controllers/DatafieldController.php @@ -0,0 +1,26 @@ +view->title = $this->translate('Add field'); + $this->getTabs()->add('addfield', array( + 'url' => 'director/data/addfield', + 'label' => $this->view->title, + ))->activate('addfield'); + + $form = $this->view->form = $this->loadForm('directorDatafield') + ->setSuccessUrl('director/list/datafield') + ->setDb($this->db()); + + if ($id = $this->params->get('id')) { + $form->loadObject($id); + } + $form->handleRequest(); + + $this->render('object/form', null, true); + } +} diff --git a/application/controllers/ListController.php b/application/controllers/ListController.php index eca14145..b98bee9e 100644 --- a/application/controllers/ListController.php +++ b/application/controllers/ListController.php @@ -24,10 +24,9 @@ class Director_ListController extends ActionController { $this->view->addLink = $this->view->qlink( $this->translate('Add field'), - 'director/data/addfield' + 'director/datafield' ); - $this->setConfigTabs()->activate('generatedconfig'); $this->setConfigTabs()->activate('datafield'); $this->view->title = $this->translate('Data fields'); $this->view->table = $this->loadTable('datafield')->setConnection($this->db()); diff --git a/application/forms/DirectorDatafieldForm.php b/application/forms/DirectorDatafieldForm.php index f9b8039a..eb709cca 100644 --- a/application/forms/DirectorDatafieldForm.php +++ b/application/forms/DirectorDatafieldForm.php @@ -2,13 +2,10 @@ namespace Icinga\Module\Director\Forms; -use Icinga\Module\Director\Web\Form\QuickForm; +use Icinga\Module\Director\Web\Form\DirectorObjectForm; -class DirectorDatafieldForm extends QuickForm +class DirectorDatafieldForm extends DirectorObjectForm { - protected $db; - protected $successUrl = 'director/list/datafield'; - public function setup() { $this->addElement('text', 'varname', array( @@ -37,27 +34,4 @@ class DirectorDatafieldForm extends QuickForm 'description' => $this->translate('Field format (string, json, expression)') )); } - - public function onSuccess() - { - $values = $this->getValues(); - - $this->db->insert( - 'director_datafield', - array( - 'varname' => $values['varname'], - 'caption' => $values['caption'], - 'description' => $values['description'], - 'datatype' => $values['datatype'], - 'format' => $values['format'], - ) - ); - - parent::onSuccess('Ding dong'); - } - - public function setDb($db) - { - $this->db = $db; - } } diff --git a/application/tables/DatafieldTable.php b/application/tables/DatafieldTable.php index f575624b..99c668d1 100644 --- a/application/tables/DatafieldTable.php +++ b/application/tables/DatafieldTable.php @@ -17,7 +17,7 @@ class DatafieldTable extends QuickTable protected function getActionUrl($row) { - return $this->url('director/show/datafield', array('id' => $row->id)); + return $this->url('director/datafield', array('id' => $row->id)); } public function getTitles() diff --git a/application/views/scripts/data/addfield.phtml b/application/views/scripts/data/addfield.phtml deleted file mode 100644 index 24c36044..00000000 --- a/application/views/scripts/data/addfield.phtml +++ /dev/null @@ -1,8 +0,0 @@ -