/**
  * 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;
 }
 /**
  * Creates from the model a \Zend_Form using createForm and adds elements
  * using addFormElements().
  *
  * @param int $step The current step
  * @return \Zend_Form
  */
 protected function getFormFor($step)
 {
     $model = $this->getModel();
     $baseform = $this->createForm();
     if (\MUtil_Bootstrap::enabled() !== true && $baseform instanceof \MUtil_Form) {
         $table = new \MUtil_Html_TableElement();
         $table->setAsFormLayout($baseform, true, true);
         // There is only one row with formLayout, so all in output fields get class.
         $table['tbody'][0][0]->appendAttrib('class', $this->labelClass);
     }
     $baseform->setAttrib('class', $this->class);
     $bridge = $model->getBridgeFor('form', $baseform);
     $this->_items = null;
     $this->initItems();
     $this->addFormElementsFor($bridge, $model, $step);
     return $baseform;
 }
 /**
  * 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;
 }
 /**
  * Create the snippets content
  *
  * This is a stub function either override getHtmlOutput() or override render()
  *
  * @param \Zend_View_Abstract $view Just in case it is needed here
  * @return \MUtil_Html_HtmlInterface Something that can be rendered
  */
 public function getHtmlOutput(\Zend_View_Abstract $view)
 {
     if ($this->request->isPost()) {
         $this->export->render($this->getRespondentIds(), $this->request->getParam('group'), $this->request->getParam('format'));
     } else {
         $seq = new \MUtil_Html_Sequence();
         if ($this->formTitle) {
             $seq->h2($this->formTitle);
         }
         $form = $this->export->getForm($this->hideGroup);
         $div = $seq->div(array('id' => 'mainform'), $form);
         $table = new \MUtil_Html_TableElement(array('class' => 'formTable'));
         $table->setAsFormLayout($form);
         $form->populate($this->request->getParams());
         return $seq;
     }
 }
 /**
  * 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);
         }
     }
 }
 /**
  * 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);
         }
     }
 }
 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;
     }
 }
 protected function beforeDisplay()
 {
     if (!\MUtil_Bootstrap::enabled()) {
         $table = new \MUtil_Html_TableElement(array('class' => $this->formClass));
         $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);
     }
 }