Esempio n. 1
0
 private function _assertPostedValue($postValue, $savedValue, $language, $frontendValue, $allowDecimals = null)
 {
     $m1 = new Kwf_Form_NumberField_TestModel();
     $form = new Kwf_Form();
     $form->setModel($m1);
     $form->setId(1);
     $nrField = $form->add(new Kwf_Form_Field_NumberField('nr', 'Number'));
     $nrField->setAllowDecimals($allowDecimals);
     $form->trlStaticExecute($language);
     $post = array($nrField->getFieldName() => $postValue);
     if ($frontendValue !== false) {
         $post[$nrField->getFieldName() . '-format'] = 'fe';
     }
     $post = $form->processInput(null, $post);
     if (!$form->validate(null, $post)) {
         $form->prepareSave(null, $post);
         $form->save(null, $post);
     }
     $testRow = $m1->getRow(1);
     $this->assertEquals($savedValue, $testRow->nr);
     $values = $form->load(null, $post);
     $this->assertEquals($values['nr'], $postValue);
     if ($frontendValue !== false) {
         $html = $nrField->getTemplateVars($values);
         $this->assertTrue(!!preg_match('#name="nr" value="(.*?)"#', $html['html'], $m));
         $this->assertEquals($frontendValue, $m[1]);
     }
 }
Esempio n. 2
0
 public function setUp()
 {
     parent::setUp();
     $m1 = new Kwf_Model_FnF();
     $form = new Kwf_Form();
     $form->setModel($m1);
     $fs = $form->add(new Kwf_Form_Container_FieldSet('fs'))->setCheckboxToggle(true)->setCheckboxName('fs');
     $fs->add(new Kwf_Form_Field_TextField('text'))->setAllowBlank(false);
     $this->_form = $form;
 }
Esempio n. 3
0
 public function getPagePropertiesForm($config)
 {
     $c = $config['component'];
     if ($config['mode'] == 'add' || $c->isPage) {
         $form = Kwc_Admin::getInstance(Kwc_Abstract::getSetting($this->_class, 'masterComponentClass'))->getPagePropertiesForm($config);
         $form->setIdTemplate('{0}-child');
         $ret = new Kwf_Form();
         $ret->setModel(new Kwf_Model_FnF());
         $ret->setCreateMissingRow(true);
         $ret->add($form);
         return $ret;
     }
     return null;
 }
Esempio n. 4
0
 public function testFieldNamesWithFormName()
 {
     $form = new Kwf_Form();
     $form->setName('bar');
     $form->setModel(new Kwf_Model_FnF(array('data' => array(array('id' => 1, 'foo' => 2)))));
     $foo = new Kwf_Form_Field_Select('foo', 'Foo');
     $foo->setValues('/kwf/test/kwf_form_filter-field_remote/json-data');
     $foo->setAllowBlank(false);
     $foo2 = new Kwf_Form_Field_Select('foo2', 'Foo2');
     $foo2->setValues(array(1 => 'filter1', 2 => 'filter2'))->setSave(false)->setAllowBlank(false);
     $form->add(new Kwf_Form_Field_FilterField())->setFilterColumn('filter_id')->setFilteredField($foo)->setFilterField($foo2);
     $this->assertEquals('bar_foo', $foo->getFieldName());
     $this->assertEquals('bar_foo2', $foo2->getFieldName());
 }
Esempio n. 5
0
 public function testUrl()
 {
     $m1 = new Kwf_Model_FnF();
     $form = new Kwf_Form();
     $form->setModel($m1);
     $field1 = $form->add(new Kwf_Form_Field_UrlField('test'));
     $post = array($field1->getFieldName() => 'http://www.örf.at');
     $post = $form->processInput($form->getRow(), $post);
     $form->validate($form->getRow(), $post);
     $form->prepareSave(null, $post);
     $form->save(null, $post);
     $row = $m1->getRow($m1->select());
     $this->assertEquals('http://www.xn--rf-eka.at', $row->test);
     $loadData = $field1->load($row);
     $this->assertEquals('http://www.örf.at', $loadData['test']);
 }
Esempio n. 6
0
 public function testEMail()
 {
     $m1 = new Kwf_Model_FnF();
     $form = new Kwf_Form();
     $form->setModel($m1);
     $field1 = $form->add(new Kwf_Form_Field_EMailField('test'));
     $post = array($field1->getFieldName() => 'ufx@vüvüd-planet.com');
     $post = $form->processInput($form->getRow(), $post);
     $form->validate($form->getRow(), $post);
     $form->prepareSave(null, $post);
     $form->save(null, $post);
     $row = $m1->getRow($m1->select());
     $this->assertEquals('*****@*****.**', $row->test);
     $loadData = $field1->load($row);
     $this->assertEquals('ufx@vüvüd-planet.com', $loadData['test']);
 }
 public function testFormDuplicateEntry()
 {
     $form = new Kwf_Form('form1');
     $model = new Kwf_Model_FnF();
     $form->setModel($model);
     $form2 = new Kwf_Form('form2');
     $form2->setModel($model)->setIdTemplate('{0}')->add(new Kwf_Form_Field_TextField('test2'));
     $form->add(new Kwf_Form_Field_TextField('test1'));
     $form->add($form2);
     $this->assertNotNull($form->fields['test1']);
     $this->assertNotNull($form->fields['test2']);
     $this->assertNotNull($form->fields['form2']);
     $data = array('form1_test1' => 'foox', 'form1_form2_test2' => 'barx');
     $form->prepareSave(null, $data);
     $form->save(null, $data);
     $this->assertEquals(array(array('id' => 1, 'test1' => 'foox', 'test2' => 'barx')), $model->getData());
 }
Esempio n. 8
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. 9
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. 11
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. 12
0
 public function preDispatch()
 {
     parent::preDispatch();
     $t = microtime(true);
     if (!isset($this->_form)) {
         if (isset($this->_formName)) {
             $this->_form = new $this->_formName();
         } else {
             $this->_form = new Kwf_Form();
         }
     }
     foreach ($this->_fields as $k => $field) {
         if (!isset($field['type'])) {
             throw new Kwf_Exception("no type for field no {$k} specified");
         }
         $cls = 'Kwf_Form_Field_' . $field['type'];
         if (!class_exists($cls)) {
             throw new Kwf_Exception("Invalid type: Form-Field-Class {$cls} does not exist.");
         }
         $fieldObject = new $cls();
         unset($field['type']);
         foreach ($field as $propName => $propValue) {
             $fieldObject->setProperty($propName, $propValue);
         }
         $this->_form->fields[] = $fieldObject;
     }
     if (!$this->_form->getModel()) {
         if (isset($this->_table)) {
             $this->_form->setTable($this->_table);
         } else {
             if (isset($this->_tableName)) {
                 $this->_form->setTable(new $this->_tableName());
             } else {
                 if (isset($this->_modelName)) {
                     $this->_form->setModel(new $this->_modelName());
                 } else {
                     if (isset($this->_model)) {
                         if (is_string($this->_model)) {
                             $this->_form->setModel(Kwf_Model_Abstract::getInstance($this->_model));
                         } else {
                             $this->_form->setModel($this->_model);
                         }
                     }
                 }
             }
         }
     }
     $this->_initFields();
     $this->_form->initFields();
     $this->_form->trlStaticExecute();
     if (!$this->_form->fields->first() instanceof Kwf_Form_Container_Tabs) {
         $this->_form->setBodyStyle('padding: 10px;');
     }
     if (!$this->_form->getId()) {
         if (is_array($this->_form->getPrimaryKey())) {
             foreach ($this->_form->getPrimaryKey() as $key) {
                 $id[$key] = $this->_getParam($key);
             }
             $this->_form->setId($id);
         } else {
             $this->_form->setId($this->_getParam($this->_form->getPrimaryKey()));
         }
     }
     Kwf_Benchmark::subCheckpoint('init form', microtime(true) - $t);
 }
Esempio n. 13
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']);
 }