/** * Perform some actions on the form, right before it is displayed but already populated * * Here we add the table display to the form. * * @param \Zend_Form $form * @param bool $isNew * @return \Zend_Form */ public function beforeFormDisplay($form, $isNew) { if ($this->useTabbedForms || $form instanceof \Gems_Form_TableForm) { //If needed, add a row of link buttons to the bottom of the form if ($links = $this->createMenuLinks($isNew ? $this->menuCreateIncludeLevel : $this->menuEditIncludeLevel)) { $linkContainer = \MUtil_Html::create()->div(array('class' => 'element-container-labelless')); $linkContainer[] = $links; $element = $form->createElement('html', 'formLinks'); $element->setValue($linkContainer); $element->setOrder(999); if ($form instanceof \Gems_TabForm) { $form->resetContext(); } $form->addElement($element); $form->addDisplayGroup(array('formLinks'), 'form_buttons'); } } else { if (\MUtil_Bootstrap::enabled() !== true) { $table = new \MUtil_Html_TableElement(array('class' => 'formTable')); $table->setAsFormLayout($form, true, true); $table['tbody'][0][0]->class = 'label'; // Is only one row with formLayout, so all in output fields get class. if ($links = $this->createMenuLinks($isNew ? $this->menuCreateIncludeLevel : $this->menuEditIncludeLevel)) { $table->tf(); // Add empty cell, no label $linksCell = $table->tf($links); } } elseif ($links = $this->createMenuLinks($isNew ? $this->menuCreateIncludeLevel : $this->menuEditIncludeLevel)) { $element = $form->createElement('html', 'menuLinks'); $element->setValue($links); $element->setOrder(999); $form->addElement($element); } } return $form; }
/** * Adjusted delete action */ public function deleteAction() { $model = $this->getModel(); $request = $this->getRequest(); $data = $model->applyRequest($request, true)->loadFirst(); if (!isset($data['grs_id_user'])) { $this->addMessage(sprintf($this->_('Unknown %s requested'), $this->getTopic())); $this->_reroute(array('action' => 'index')); } // Log $this->openedRespondent($data['gr2o_patient_nr'], $data['gr2o_id_organization'], $data['grs_id_user']); $options = array('' => '') + $this->util->getReceptionCodeLibrary()->getRespondentDeletionCodes(); $this->useTabbedForms = false; $bridge = $model->getBridgeFor('form', $this->createForm()); $bridge->addSelect('gr2o_reception_code', 'label', $this->_('Rejection code'), 'multiOptions', $options, 'required', true, 'size', max(7, min(3, count($options) + 1))); $form = $bridge->getForm(); $save = new \Zend_Form_Element_Submit('save_button', array('label' => $this->_('Delete respondent'), 'class' => 'button')); $form->addElement($save); if ($request->isPost()) { $oldCode = $data['gr2o_reception_code']; $data = $_POST + $data; if ($form->isValid($data)) { $code = $model->setReceptionCode($data['gr2o_patient_nr'], $data['gr2o_id_organization'], $data['gr2o_reception_code'], $data['gr2o_id_user'], $oldCode); // Is the respondent really removed if (!$code->isSuccess()) { // Perform actual save, but not simple stop codes. if ($code->isForRespondents()) { $this->addMessage($this->_('Respondent deleted.')); $this->_reroute(array('action' => 'index'), true); } else { // Just a stop code $this->addMessage($this->_('Respondent tracks stopped.')); $this->_reroute(array('action' => 'show')); } } else { $this->addMessage($this->_('Choose a reception code to delete.')); } } else { $this->addMessage($this->_('Input error! No changes saved!'), 'danger'); } } $form->populate($data); $table = new \MUtil_Html_TableElement(array('class' => 'formTable')); $table->setAsFormLayout($form, true, true); $table['tbody'][0][0]->class = 'label'; // Is only one row with formLayout, so all in output fields get class. if ($links = $this->createMenuLinks(10)) { $table->tf(); // Add empty cell, no label $linksCell = $table->tf($links); } $params['model'] = $model; $params['onclick'] = $this->findAllowedMenuItem('show'); if ($params['onclick']) { $params['onclick'] = $params['onclick']->toHRefAttribute($this->getRequest()); } $params['respondentData'] = $data; $this->addSnippet($this->deleteSnippets, $params); $this->html[] = $form; }
/** * Perform some actions on the form, right before it is displayed but already populated * * Here we add the table display to the form. * * @return \Zend_Form */ public function beforeDisplay() { if ($this->_form instanceof \Gems_TabForm) { if ($links = $this->getMenuList()) { $linkContainer = \MUtil_Html::create()->div(array('class' => 'element-container-labelless')); $linkContainer[] = $links; $element = $this->_form->createElement('html', 'formLinks'); $element->setValue($linkContainer)->setOrder(999)->removeDecorator('HtmlTag')->removeDecorator('Label')->removeDecorator('DtDdWrapper'); $this->_form->resetContext(); $this->_form->addElement($element); if (is_null($this->_form->getDisplayGroup(\Gems_TabForm::GROUP_OTHER))) { $this->_form->addDisplayGroup(array($element), \Gems_TabForm::GROUP_OTHER); } else { $this->_form->getDisplayGroup(\Gems_TabForm::GROUP_OTHER)->addElement($element); } } } else { if (\MUtil_Bootstrap::enabled() !== true) { $table = new \MUtil_Html_TableElement(array('class' => $this->class)); $table->setAsFormLayout($this->_form, true, true); // There is only one row with formLayout, so all in output fields get class. $table['tbody'][0][0]->appendAttrib('class', $this->labelClass); if ($links = $this->getMenuList()) { $table->tf(); // Add empty cell, no label $table->tf($links); } } elseif ($links = $this->getMenuList()) { $element = $this->_form->createElement('html', 'menuLinks'); $element->setValue($links); $element->setOrder(999); $this->_form->addElement($element); } } }
/** * Perform some actions on the form, right before it is displayed but already populated * * Here we add the table display to the form. * * @return \Zend_Form */ public function beforeDisplay() { if ($this->_csrf) { $this->_csrf->initCsrfToken(); } $links = $this->getMenuList(); if (\MUtil_Bootstrap::enabled()) { if ($links) { $element = $this->_form->createElement('html', 'menuLinks'); $element->setValue($links); $element->setOrder(999); $this->_form->addElement($element); } } else { $table = new \MUtil_Html_TableElement(array('class' => $this->class)); $table->setAsFormLayout($this->_form, true, true); // There is only one row with formLayout, so all in output fields get class. $table['tbody'][0][0]->appendAttrib('class', $this->labelClass); if ($links) { $table->tf(); // Add empty cell, no label $table->tf($links); } } }
public function runSqlAction() { /************* * Make form * *************/ $form = $this->createForm(); $element = $form->createElement('textarea', 'script'); $element->setDescription($this->_('Separate multiple commands with semicolons (;).')); $element->setLabel('SQL:'); $element->setRequired(true); $form->addElement($element); //$element = new \Zend_Form_Element_Submit('submit'); $element = $form->createElement('submit', 'submit'); $element->setLabel($this->_('Run')); $form->addElement($element); /**************** * Process form * ****************/ if ($this->_request->isPost() && $form->isValid($_POST)) { $data = $_POST; $data['name'] = ''; $data['type'] = $this->_('raw'); $model = $this->getModel(); $results = $model->runScript($data, true); $resultSet = 1; $echos = \MUtil_Html::create()->array(); foreach ($results as $result) { if (is_string($result)) { $this->addMessage($result); } else { $echo = $echos->echo($result, sprintf($this->_('Result set %s.'), $resultSet++)); $echo->class = 'browser'; } } $this->accesslog->logChange($this->_request, null, $data['script']); } else { $form->populate($_POST); $resultSet = 0; } /**************** * Display form * ****************/ $table = new \MUtil_Html_TableElement(array('class' => 'formTable')); $table->setAsFormLayout($form, true, true); $table['tbody'][0][0]->class = 'label'; // Is only one row with formLayout, so all in output fields get class. $table['tbody'][0][0]->style = 'vertical-align: top;'; // Only single cell, this always looks better here. if ($links = $this->createMenuLinks()) { $table->tf(); // Add empty cell, no label $linksCell = $table->tf($links); } $this->html->h3($this->_('Execute raw SQL')); $this->html[] = $form; if ($resultSet > 1) { $this->html->h3($this->_('Result sets')); $this->html[] = $echos; } }