public function afterSave($parentRow, $postData)
 {
     parent::afterSave($parentRow, $postData);
     foreach ($this->toSaveGeneratorProperty as $i) {
         if (isset($i['row']->component_id)) {
             $id = $i['row']->component_id . '-' . $i['row']->id;
         } else {
             $id = $i['row']->id;
         }
         $data = Kwf_Component_Data_Root::getInstance()->getComponentByDbId($id, array('ignoreVisible' => true, 'limit' => 1));
         if (!$data) {
             throw new Kwf_Exception("Didn't get data for {$id}");
         }
         $i['plugin']->saveGeneratorPropertyValue($data, $i['value']);
     }
 }
Esempio n. 2
0
 public function testWithRelModel()
 {
     $m1 = new Kwf_Form_MultiCheckbox_DataModelNoRel();
     $m2 = new Kwf_Form_MultiCheckbox_RelationModelNoRel();
     $form = new Kwf_Form();
     $form->setModel($m1);
     $mcb = $form->add(new Kwf_Form_Field_MultiCheckbox($m2, 'Value', 'MultiCheck2'));
     $post = array($mcb->getFieldName() . '_1' => 1, $mcb->getFieldName() . '_2' => 0, $mcb->getFieldName() . '_3' => 0);
     $post = $form->processInput($form->getRow(), $post);
     $form->validate($form->getRow(), $post);
     $form->prepareSave(null, $post);
     $form->save(null, $post);
     $form->afterSave(null, $post);
     $rows = $m2->getRows($m2->select()->whereEquals('data_id', 1))->toArray();
     $expected = array('id' => 1, 'data_id' => 1, 'values_id' => 1);
     $this->assertEquals(1, count($rows));
     $this->assertEquals($expected, $rows[0]);
 }
Esempio n. 3
0
 public function testDateTime()
 {
     $m1 = new Kwf_Model_FnF();
     $form = new Kwf_Form();
     $form->setModel($m1);
     $field1 = $form->add(new Kwf_Form_Field_DateTimeField('dtftest1', 'dtf label'))->setAllowBlank(false);
     $field2 = $form->add(new Kwf_Form_Field_DateTimeField('dtftest2', 'dtf label2'))->setAllowBlank(false);
     $field3 = $form->add(new Kwf_Form_Field_DateTimeField('dtftest3', 'dtf label2'))->setAllowBlank(false);
     $post = array($field1->getFieldName() => '2009-12-15T13:43:00', $field2->getFieldName() => '"2009-12-01T13:43:59"', $field3->getFieldName() => '"209-12-1');
     $post = $form->processInput($form->getRow(), $post);
     $form->validate($form->getRow(), $post);
     $form->prepareSave(null, $post);
     $form->save(null, $post);
     $form->afterSave(null, $post);
     $row = $m1->getRow($m1->select());
     $this->assertEquals('2009-12-15 13:43:00', $row->{$field1->getFieldName()});
     $this->assertEquals('2009-12-01 13:43:59', $row->{$field2->getFieldName()});
     $this->assertNull($row->{$field3->getFieldName()});
 }
 public function testBam()
 {
     $m1 = new Kwf_Model_FnF();
     $m2 = new Kwf_Model_FnF();
     $m3 = new Kwf_Model_FnF();
     $form = new Kwf_Form();
     $form->setModel($m1);
     $form->add(new Kwf_Form_Field_TextField('test1'));
     $form->add(new Kwf_Form_Field_MultiFields($m2))->setReferences(array('columns' => array('test1_id'), 'refColumns' => array('id')))->fields->add(new Kwf_Form('child'))->setCreateMissingRow(true)->setIdTemplate('{id}')->setModel($m3)->add(new Kwf_Form_Field_TextField('test2'));
     $post = array('test1' => 'blub', 'Kwf_Model_FnF' => array(array('child_test2' => 'bab')));
     $post = $form->processInput($form->getRow(), $post);
     $form->validate($form->getRow(), $post);
     $form->prepareSave(null, $post);
     $form->save(null, $post);
     $form->afterSave(null, $post);
     $r = $m1->getRow(1);
     $this->assertEquals('blub', $r->test1);
     $r = $m3->getRow(1);
     $this->assertEquals('bab', $r->test2);
 }
Esempio n. 5
0
 public function testDate()
 {
     $m1 = new Kwf_Model_FnF();
     $form = new Kwf_Form();
     $form->setModel($m1);
     $field1 = $form->add(new Kwf_Form_Field_DateField('test1'));
     $field2 = $form->add(new Kwf_Form_Field_DateField('test2'));
     $field3 = $form->add(new Kwf_Form_Field_DateField('test3'));
     $form->trlStaticExecute();
     $field1->trlStaticExecute();
     $field2->trlStaticExecute();
     $field3->trlStaticExecute();
     $post = array($field1->getFieldName() => '"2009-12-01T00:00:00"', $field2->getFieldName() => trlKwf('yyyy-mm-dd'), $field3->getFieldName() => date(trlKwf('Y-m-d'), strtotime('2010-01-10')));
     $post = $form->processInput($form->getRow(), $post);
     $form->validate($form->getRow(), $post);
     $form->prepareSave(null, $post);
     $form->save(null, $post);
     $form->afterSave(null, $post);
     $row = $m1->getRow($m1->select());
     $this->assertEquals('2009-12-01', $row->{$field1->getFieldName()});
     $this->assertEquals(null, $row->{$field2->getFieldName()});
     $this->assertEquals('2010-01-10', $row->{$field3->getFieldName()});
 }
Esempio n. 6
0
 public function jsonSaveAction()
 {
     ignore_user_abort(true);
     $db = Zend_Registry::get('db');
     if ($db) {
         $db->beginTransaction();
     }
     // zuvor war statt diesem kommentar das $row = $this->_form->getRow();
     // drin und wurde bei processInput und validate übergeben, aber die form
     // weiß selbst das model, deshalb passt NULL
     // Runtergeschoben wurde das $this->_form->getRow() weil bei der Kwf_User_Form
     // die row im processInput gefaket wird, da hier ->createUserRow() aufgerufen
     // wird anstatt ->createRow() und diese dann im _form->getRow() zurück kommt
     $postData = $this->_form->processInput(null, $this->getRequest()->getParams());
     $this->_beforeValidate($postData);
     $invalid = $this->_form->validate(null, $postData);
     if ($invalid) {
         $invalid = Kwf_Form::formatValidationErrors($invalid);
         throw new Kwf_ClientException(implode("<br />", $invalid));
     }
     $data = $this->_form->prepareSave(null, $postData);
     $row = $this->_form->getRow();
     $insert = false;
     $primaryKey = $this->_form->getPrimaryKey();
     $skip = false;
     if ($row && $primaryKey) {
         if (is_array($primaryKey)) {
             $primaryKey = $primaryKey[1];
         }
         if (!$row->{$primaryKey}) {
             $insert = true;
         }
         if ($insert) {
             $sessionFormId = new Kwf_Session_Namespace('avoid_reinsert_id');
             if ($this->_getParam('avoid_reinsert_id') && isset($sessionFormId->avoid[$this->_getParam('avoid_reinsert_id')])) {
                 $skip = true;
             }
             if (!isset($this->_permissions['add']) || !$this->_permissions['add']) {
                 throw new Kwf_Exception('Add is not allowed.');
             }
             if (!$skip) {
                 $this->_beforeInsert($row);
             }
         } else {
             if (!isset($this->_permissions['save']) || !$this->_permissions['save']) {
                 throw new Kwf_Exception('Save is not allowed.');
             }
         }
         if (!$skip) {
             $this->_beforeSave($row);
         }
     }
     if (!$skip) {
         //erst hier unten Berechtigungen überprüfen, damit beforeInsert usw vorher noch ausgeführt
         //wird und eventuelle Daten gesetzt werden
         if (!$this->_hasPermissions($row, 'save')) {
             throw new Kwf_Exception("Save is not allowed for this row.");
         }
         $data = $this->_form->save(null, $postData);
         $this->_form->afterSave(null, $postData);
         if ($row) {
             if ($insert) {
                 $this->_afterInsert($row);
             }
             $this->_afterSave($row);
         }
         if ($db) {
             $db->commit();
         }
         $this->view->data = $data;
         $sessionFormId = new Kwf_Session_Namespace('avoid_reinsert_id');
         if (!isset($sessionFormId->avoid)) {
             $avoid = array();
         } else {
             $avoid = $sessionFormId->avoid;
         }
         $avoid[$this->_getParam('avoid_reinsert_id')] = $data;
         $sessionFormId->avoid = $avoid;
     } else {
         $this->view->data = $sessionFormId->avoid[$this->_getParam('avoid_reinsert_id')];
     }
 }
Esempio n. 7
0
 public function testDeleteWithFieldRows()
 {
     $form = new Kwf_Form();
     $model = new Kwf_Model_FnF(array('dependentModels' => array('Model2' => new Kwf_Model_FieldRows(array('fieldName' => 'data'))), 'data' => array(array('id' => 1, 'data' => serialize(array('data' => array(array('id' => 1, 'foo' => 'foo1', 'pos' => 1), array('id' => 2, 'foo' => 'foo2', 'pos' => 2), array('id' => 3, 'foo' => 'foo3', 'pos' => 3)), 'autoId' => 4))))));
     $form->setModel($model);
     $form->add(new Kwf_Form_Field_MultiFields('Model2'))->fields->add(new Kwf_Form_Field_TextField('foo'));
     $post = array('Model2' => array(array('id' => 1, 'foo' => 'foo1.'), array('id' => 3, 'foo' => 'foo3.')));
     $form->setId(1);
     $post = $form->processInput(null, $post);
     $form->validate(null, $post);
     $form->prepareSave(null, $post);
     $form->save(null, $post);
     $form->afterSave(null, $post);
     $data = $model->getData();
     $data = unserialize($data[0]['data']);
     $data = array_values($data['data']);
     $this->assertEquals(2, count($data));
     $this->assertEquals('foo1.', $data[0]['foo']);
     $this->assertEquals('foo3.', $data[1]['foo']);
 }