/**
  * Hook that loads the form data from $_POST or the model
  *
  * Or from whatever other source you specify here.
  */
 protected function loadFormData()
 {
     if (!$this->formData) {
         parent::loadFormData();
         $model = $this->getModel();
         $roles = $model->get('ggp_role', 'multiOptions');
         $userRoles = $this->currentUser->getAllowedRoles();
         // \MUtil_Echo::track($userRoles, $roles);
         // Make sure we get the roles as they are labeled
         foreach ($roles as $role => $label) {
             if (!isset($userRoles[$role])) {
                 unset($roles[$role]);
             }
         }
         if ($this->formData['ggp_role'] && !isset($roles[$this->formData['ggp_role']])) {
             if ($this->createData) {
                 $this->formData['ggp_role'] = reset($roles);
             } else {
                 $this->addMessage($this->_('You do not have sufficient privilege to edit this group.'));
                 $this->afterSaveRouteUrl = array($this->request->getActionKey() => 'show');
                 $this->resetRoute = false;
                 return;
             }
         }
         $model->set('ggp_role', 'multiOptions', $roles);
         $this->menu->getParameterSource()->offsetSet('ggp_role', $this->formData['ggp_role']);
     }
 }
 /**
  * Set what to do when the form is 'finished'.
  *
  * @return \MUtil_Snippets_ModelFormSnippetAbstract (continuation pattern)
  */
 protected function setAfterSaveRoute()
 {
     parent::setAfterSaveRoute();
     if ($this->afterSaveRouteUrl) {
         $this->afterSaveRouteUrl[\MUtil_Model::REQUEST_ID] = $this->formData['gtf_id_track'];
         $this->afterSaveRouteUrl[\Gems_Model::FIELD_ID] = $this->formData['gtf_id_field'];
         $this->afterSaveRouteUrl['sub'] = $this->formData['sub'];
     }
     return $this;
 }
 /**
  * Hook that loads the form data from $_POST or the model
  *
  * Or from whatever other source you specify here.
  */
 protected function loadFormData()
 {
     parent::loadFormData();
     if ($this->request->isPost()) {
         if (!$this->_saveButton || !$this->_saveButton->isChecked()) {
             if (isset($this->formData['grs_ssn']) && $this->formData['grs_ssn']) {
                 $filter = array('grs_ssn' => $this->formData['grs_ssn'], 'gr2o_id_organization' => true);
                 if ($this->formData['gr2o_id_organization']) {
                     $orgId = $this->formData['gr2o_id_organization'];
                 } else {
                     $orgId = $this->model->get('gr2o_id_organization', 'default');
                 }
                 $order = array($this->db->quoteInto("CASE WHEN gr2o_id_organization = ? THEN 1 ELSE 2 END", $orgId) => SORT_ASC);
                 $data = $this->model->loadFirst($filter, $order);
                 if ($data && !isset($this->formData[$this->saveButtonId])) {
                     // \MUtil_Echo::track($this->formData);
                     // \MUtil_Echo::track($data);
                     // Do not use this value
                     unset($data['grs_ssn']);
                     if ($data['gr2o_id_organization'] == $orgId) {
                         // gr2o_patient_nr
                         // gr2o_id_organization
                         $this->addMessage($this->_('Known respondent.'));
                         //*
                         foreach ($data as $name => $value) {
                             if (substr($name, 0, 4) == 'grs_' || substr($name, 0, 5) == 'gr2o_') {
                                 if (array_key_exists($name, $this->formData)) {
                                     $this->formData[$name] = $value;
                                 }
                                 $cname = $this->model->getKeyCopyName($name);
                                 if (array_key_exists($cname, $this->formData)) {
                                     $this->formData[$cname] = $value;
                                 }
                             }
                         }
                         // */
                     } else {
                         $org = $this->loader->getOrganization($data['gr2o_id_organization']);
                         $this->addMessage(sprintf($this->_('Respondent data retrieved from %s.'), $org->getName()));
                         foreach ($data as $name => $value) {
                             if (substr($name, 0, 4) == 'grs_' && array_key_exists($name, $this->formData)) {
                                 $this->formData[$name] = $value;
                             }
                         }
                     }
                 }
             }
         }
     }
 }
 /**
  * Load extra data not from the model into the form
  */
 protected function loadFormData()
 {
     parent::loadFormData();
     $this->loadMailer();
     if (isset($this->formData['gctt'])) {
         $multi = false;
         if (count($this->formData['gctt']) > 1) {
             $multi = true;
             $allLanguages = $this->util->getLocalized()->getLanguages();
         }
         $preview = $this->getPreview($this->formData['gctt']);
         $this->formData['preview_html'] = $preview['html'];
         $this->formData['preview_text'] = $preview['text'];
     }
     if (!isset($this->formData['to'])) {
         $organization = $this->mailer->getOrganization();
         $this->formData['to'] = $this->formData['from'] = null;
         if ($organization->getEmail()) {
             $this->formData['to'] = $this->formData['from'] = $organization->getEmail();
         } elseif ($this->project->getSiteEmail()) {
             $this->formData['to'] = $this->formData['from'] = $this->project->getSiteEmail();
         }
     }
     $this->formData['available_fields'] = $this->mailElements->displayMailFields($this->mailer->getMailFields());
 }
 /**
  * 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 ($script = $this->getAjaxEventScript()) {
         \MUtil_JQuery::enableView($view);
         $view->headScript()->appendFile(\Zend_Controller_Front::getInstance()->getBaseUrl() . '/gems/js/jquery.getSelectOptions.js');
         $view->inlineScript()->appendScript($script);
     }
     return parent::getHtmlOutput($view);
 }