/**
  * Creates the model
  *
  * @return \MUtil_Model_ModelAbstract
  */
 protected function createModel()
 {
     // Replace two checkboxes with on radio button control
     $this->model->set('ggp_staff_members', 'elementClass', 'Hidden');
     $this->model->setOnSave('ggp_staff_members', array($this, 'saveIsStaff'));
     $this->model->set('ggp_respondent_members', 'elementClass', 'Hidden');
     $this->model->setOnSave('ggp_respondent_members', array($this, 'saveIsRespondent'));
     $options = array('1' => $this->model->get('ggp_staff_members', 'label'), '2' => $this->model->get('ggp_respondent_members', 'label'));
     $this->model->set('staff_respondent', 'label', $this->_('Can be assigned to'), 'elementClass', 'Radio', 'multiOptions', $options, 'order', $this->model->getOrder('ggp_staff_members') + 1);
     $this->model->setOnLoad('staff_respondent', array($this, 'loadStaffRespondent'));
     return $this->model;
 }
Beispiel #2
0
 /**
  *
  * @param string $trackingField The field that stores the tracking value
  * @param string $trackedField   The field whose changing is tracked
  * @param string $oldValueField Optional, the field to store a copy of the original value in
  */
 public function apply($trackingField, $trackedField, $oldValueField = null)
 {
     if (null === $oldValueField) {
         // Defautl name
         $oldValueField = self::OLD_FIELD_PREFIX . $trackedField;
         // Check if a fields already existed
         if (method_exists($this->_model, 'getKeyCopyName')) {
             $copyName = $this->_model->getKeyCopyName($trackedField);
             if ($this->_model->has($copyName)) {
                 $oldValueField = $copyName;
             }
         }
     }
     if (!$this->_model->has($oldValueField)) {
         $this->_model->set($oldValueField, 'elementClass', 'Hidden', __CLASS__, $trackedField);
         $this->_model->setOnLoad($oldValueField, array($this, 'loadOldValue'));
     }
     if (!$this->_model->has($trackingField)) {
         // Only load the original value and ste the original result when it was not already in the model
         $this->_model->setAutoSave($trackingField);
         // $this->_model->setOnLoad($trackingField, $this->_unchangedValue);
     }
     $this->_model->set($trackingField, __CLASS__, array($trackedField, $oldValueField));
     $this->_model->setOnSave($trackingField, array($this, 'saveValue'));
     // Store the extra hidden fields needed
     $hiddenFields = $this->_model->getMeta(self::HIDDEN_FIELDS, array());
     $hiddenFields[] = $oldValueField;
     $this->_model->setMeta(self::HIDDEN_FIELDS, $hiddenFields);
     // Make sure the fields are in the result set
     $this->_model->get($trackedField);
     $this->_model->get($trackingField);
     $this->_model->get($oldValueField);
 }
 /**
  * Use this function for a default application of this type to the model
  *
  * @param \MUtil_Model_ModelAbstract $model
  * @param string $valueField The field containing the value to be encrypted
  * #param string $methodField the field storing the method of encryption
  * @return \Gems_Model_Type_EncryptedField (continuation pattern)
  */
 public function apply(\MUtil_Model_ModelAbstract $model, $valueField, $methodField)
 {
     $this->findValue[$methodField] = $valueField;
     $model->setSaveWhenNotNull($valueField);
     $model->setOnLoad($valueField, array($this, 'loadValue'));
     $model->setOnSave($valueField, array($this, 'saveValue'));
     // Only hidden to make sure onSave's are triggered
     $model->set($methodField, 'elementClass', 'hidden');
     $model->setOnLoad($methodField, 'default');
     // Yes you can set this to a constant
     $model->setSaveWhen($methodField, array($this, 'whenEncryption'));
     $model->setOnSave($methodField, array($this, 'saveEncryption'));
     if ($model instanceof \MUtil_Model_DatabaseModelAbstract) {
         $model->setOnTextFilter($valueField, false);
         $model->setOnTextFilter($methodField, false);
     }
     return $this;
 }
Beispiel #4
0
 /**
  * Use this function for a default application of this type to the model
  *
  * @param \MUtil_Model_ModelAbstract $model
  * @param string $name The field to set the seperator character
  * @return \MUtil_Model_Type_ConcatenatedRow (continuation pattern)
  */
 public function apply(\MUtil_Model_ModelAbstract $model, $name)
 {
     $model->set($name, 'formatFunction', array($this, 'format'));
     $model->setOnLoad($name, array($this, 'loadValue'));
     $model->setOnSave($name, array($this, 'saveValue'));
     if ($model instanceof \MUtil_Model_DatabaseModelAbstract) {
         $model->setOnTextFilter($name, array($this, 'textFilter'));
     }
     $this->options = $model->get($name, 'multiOptions');
     return $this;
 }
Beispiel #5
0
 /**
  * Use this function for a default application of this type to the model
  *
  * @param \MUtil_Model_ModelAbstract $model
  * @param string $name The field to set the seperator character
  * @param boolean $detailed When true show detailed information
  * @return \MUtil\Model\Type\JsonData (continuation pattern)
  */
 public function apply(\MUtil_Model_ModelAbstract $model, $name, $detailed)
 {
     if ($detailed) {
         $formatFunction = 'formatDetailed';
     } else {
         $formatFunction = 'formatTable';
     }
     $model->set($name, 'formatFunction', array($this, $formatFunction));
     $model->setOnLoad($name, array($this, 'loadValue'));
     $model->setOnSave($name, array($this, 'saveValue'));
 }