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]); } }
public function testCreateOnFind() { $form = new Kwf_Form('form1'); $form->setModel(new Kwf_Model_FnF(array('data' => array(array('id' => 10, 'test1' => 'foo'))))); $form->add(new Kwf_Form_Field_TextField('test1')); $form->add(new Kwf_Form('form2'))->setModel(new Kwf_Model_FnF())->setCreateMissingRow(true)->setIdTemplate('{0}')->add(new Kwf_Form_Field_TextField('test2')); $form->setId(10); $data = $form->load(null); $this->assertEquals($data, array('form1_test1' => 'foo', 'form1_form2_test2' => '')); $data = array('form1_test1' => 'foox', 'form1_form2_test2' => 'barx'); $form->prepareSave(null, $data); $form->save(null, $data); $this->assertEquals($form->getRow(null)->test1, 'foox'); $this->assertEquals($form->fields['form2']->getRow($form->getRow(null))->test2, 'barx'); }
public function jsonLoadAction() { if ($this->_form->getId()) { //nur laden wennn einen id über get daherkommt $row = $this->_form->getRow(); if (!$this->_hasPermissions($row, 'load')) { throw new Kwf_Exception('You don\'t have the permission for this entry.'); } $this->_beforeLoad($row); $this->view->data = $this->_form->load(null); } if ($this->getRequest()->getParam('meta')) { $this->_appendMetaData(); } }