/**
  * The form for selecting the patch level
  *
  * @return \Gems_Form
  */
 protected function _getSelectForm()
 {
     $form = new \Gems_Form(array('name' => 'autosubmit', 'class' => 'form-inline', 'role' => 'form'));
     $form->setHtml('div');
     $div = $form->getHtml();
     $div->class = 'search';
     $span = $div->div(array('class' => 'panel panel-default'))->div(array('class' => 'inputgroup panel-body'));
     $element = $form->createElement('select', 'gpa_level', array('multiOptions' => $this->patchLevels, 'onchange' => 'this.form.submit();', 'onkeyup' => 'this.form.submit();'));
     $element->setValue($this->getPatchLevel());
     $span->input($element);
     $form->addElement($element);
     $submit = $form->createElement('submit', 'search', array('label' => $this->_('Search'), 'class' => 'button small'));
     $span->input($submit);
     $form->addElement($submit);
     return $form;
 }
 public function createTemplateSelectElement($name, $label, $target = false, $list = false, $onChangeSubmit = false)
 {
     $options['label'] = $label;
     $query = 'SELECT gems__comm_templates.gct_id_template, gems__comm_templates.gct_name
     FROM gems__comm_template_translations
     RIGHT JOIN gems__comm_templates ON gems__comm_templates.gct_id_template = gems__comm_template_translations.gctt_id_template
     WHERE gems__comm_template_translations.gctt_subject <> ""
     AND gems__comm_template_translations.gctt_body <> ""';
     if ($target) {
         $query .= ' AND gems__comm_templates.gct_target = ?';
     }
     $query .= ' GROUP BY gems__comm_templates.gct_id_template';
     if ($target) {
         $options['multiOptions'] = $this->db->fetchPairs($query, $target);
     } else {
         $options['multiOptions'] = $this->db->fetchPairs($query);
     }
     if (!$list) {
         $options['multiOptions'] = array('' => '') + $options['multiOptions'];
     }
     if ($onChangeSubmit) {
         $options['onchange'] = 'this.form.submit()';
     }
     if ($list) {
         $options['required'] = true;
         $options['size'] = min(count($options['multiOptions']) + 1, 7);
     }
     return $this->_form->createElement('select', $name, $options);
 }
 /**
  * Get form elements for the specific Export
  * @param  \Gems_Form $form existing form type
  * @param  array data existing options set in the form
  * @return array of form elements
  */
 public function getFormElements(\Gems_Form $form, &$data)
 {
     $form->activateJQuery();
     $dbLookup = $this->util->getDbLookup();
     $translated = $this->util->getTranslated();
     $noRound = array(self::NoRound => $this->_('No round description'));
     $empty = $translated->getEmptyDropdownArray();
     $dateOptions = array();
     \MUtil_Model_Bridge_FormBridge::applyFixedOptions('date', $dateOptions);
     $organizations = $this->currentUser->getRespondentOrganizations();
     $tracks = $empty + $this->util->getTrackData()->getAllTracks();
     $rounds = $empty + $noRound + $dbLookup->getRoundsForExport(isset($data['tid']) ? $data['tid'] : null);
     $surveys = $dbLookup->getSurveysForExport(isset($data['tid']) ? $data['tid'] : null, isset($data['rounds']) ? $data['rounds'] : null);
     $yesNo = $translated->getYesNo();
     $elements = array();
     $element = $form->createElement('textarea', 'ids');
     $element->setLabel($this->_('Respondent id\'s'))->setAttrib('cols', 60)->setAttrib('rows', 4)->setDescription($this->_('Not respondent nr, but respondent id as exported here.'));
     $elements[] = $element;
     $element = $form->createElement('select', 'tid');
     $element->setLabel($this->_('Tracks'))->setMultiOptions($tracks);
     $elements[] = $element;
     if (isset($data['tid']) && $data['tid']) {
         $element = $form->createElement('radio', 'tid_fields');
         $element->setLabel($this->_('Export fields'))->setMultiOptions($yesNo);
         $elements[] = $element;
         if (!array_key_exists('tid_fields', $data)) {
             $data['tid_fields'] = 1;
         }
     }
     $element = $form->createElement('select', 'rounds');
     $element->setLabel($this->_('Round description'))->setMultiOptions($rounds);
     $elements[] = $element;
     $element = $form->createElement('multiselect', 'sid');
     $element->setLabel($this->_('Survey'))->setMultiOptions($surveys)->setDescription($this->_('Use CTRL or Shift to select more'));
     $elements[] = $element;
     $element = $form->createElement('multiCheckbox', 'oid');
     $element->setLabel($this->_('Organization'))->setMultiOptions($organizations);
     $elements[] = $element;
     if (\MUtil_Bootstrap::enabled()) {
         $element = new \MUtil_Bootstrap_Form_Element_ToggleCheckboxes('toggleOrg', array('selector' => 'input[name^=oid]'));
     } else {
         $element = new \Gems_JQuery_Form_Element_ToggleCheckboxes('toggleOrg', array('selector' => 'input[name^=oid]'));
     }
     $element->setLabel($this->_('Toggle'));
     $elements[] = $element;
     $element = $form->createElement('datePicker', 'valid_from', $dateOptions);
     $element->setLabel($this->_('Valid from'));
     $elements[] = $element;
     $element = $form->createElement('datePicker', 'valid_until', $dateOptions);
     $element->setLabel($this->_('Valid until'));
     $elements[] = $element;
     if (\MUtil_Bootstrap::enabled()) {
         $element = new \MUtil_Bootstrap_Form_Element_ToggleCheckboxes('toggleOrg', array('selector' => 'input[name^=oid]'));
     } else {
         $element = new \Gems_JQuery_Form_Element_ToggleCheckboxes('toggleOrg', array('selector' => 'input[name^=oid]'));
     }
     $element = $form->createElement('checkbox', 'column_identifiers');
     $element->setLabel($this->_('Column Identifiers'));
     $element->setDescription($this->_('Prefix the column labels with an identifier. (A) Answers, (TF) Trackfields, (D) Description'));
     $elements[] = $element;
     //unset($data['records']);
     if (!empty($data['sid'])) {
         $filters = $this->getFilters($data);
         foreach ($filters as $key => $filter) {
             unset($data['records_' . $key]);
             $model = $this->getModel($filter, $data);
             $survey = $this->loader->getTracker()->getSurvey(intval($filter['gto_id_survey']));
             $recordCount = $model->loadPaginator($filter)->getTotalItemCount();
             $element = $form->createElement('exhibitor', 'records_' . $key);
             $element->setValue($survey->getName() . ': ' . sprintf($this->_('%s records found.'), $recordCount));
             //$element->setValue($survey->getName());
             $elements[] = $element;
         }
     }
     if ($this->project->hasResponseDatabase()) {
         $this->addResponseDatabaseForm($form, $data, $elements);
     }
     return $elements;
 }