Changeset 629
- Timestamp:
- 11/01/07 00:34:16 (1 year ago)
- Files:
-
- trunk/build/manifests/testapp.mn (modified) (1 diff)
- trunk/build/manifests/testapp.mn (modified) (1 diff)
- trunk/lib/jelix/forms/jForms.class.php (modified) (4 diffs)
- trunk/lib/jelix/forms/jForms.class.php (modified) (4 diffs)
- trunk/lib/jelix/forms/jFormsBase.class.php (modified) (2 diffs)
- trunk/lib/jelix/forms/jFormsBase.class.php (modified) (2 diffs)
- trunk/lib/jelix/plugins/db/sqlite/sqlite.dbconnection.php (modified) (1 diff)
- trunk/lib/jelix/plugins/db/sqlite/sqlite.dbconnection.php (modified) (1 diff)
- trunk/testapp/install/install.mysql.sql (modified) (3 diffs)
- trunk/testapp/install/install.mysql.sql (modified) (3 diffs)
- trunk/testapp/modules/jelix_tests/daos/labels.dao.xml (added)
- trunk/testapp/modules/jelix_tests/daos/labels.dao.xml (added)
- trunk/testapp/modules/jelix_tests/forms/label.form.xml (added)
- trunk/testapp/modules/jelix_tests/forms/label.form.xml (added)
- trunk/testapp/modules/jelix_tests/tests/jforms.html.php (modified) (6 diffs)
- trunk/testapp/modules/jelix_tests/tests/jforms.html.php (modified) (6 diffs)
- trunk/testapp/modules/jelix_tests/tests/jforms.with_dao.html.php (modified) (3 diffs)
- trunk/testapp/modules/jelix_tests/tests/jforms.with_dao.html.php (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/build/manifests/testapp.mn
r574 r629 95 95 product_tags.dao.xml 96 96 description.dao.xml 97 labels.dao.xml 97 98 cd testapp/modules/jelix_tests/forms 98 99 product.form.xml 99 100 label.form.xml 100 101 cd testapp/modules/jelix_tests/tests/ 101 102 core.jlocale.html.php trunk/build/manifests/testapp.mn
r574 r629 95 95 product_tags.dao.xml 96 96 description.dao.xml 97 labels.dao.xml 97 98 cd testapp/modules/jelix_tests/forms 98 99 product.form.xml 99 100 label.form.xml 100 101 cd testapp/modules/jelix_tests/tests/ 101 102 core.jlocale.html.php trunk/lib/jelix/forms/jForms.class.php
r549 r629 49 49 $c = $sel->getClass(); 50 50 if($formId === null) $formId=JFORMS_DEFAULT_ID; 51 if(!isset($_SESSION['JFORMS'][$formSel][$formId])){ 52 $_SESSION['JFORMS'][$formSel][$formId]= new jFormsDataContainer($formSel, $formId); 51 $fid = is_array($formId) ? serialize($formId) : $formId; 52 if(!isset($_SESSION['JFORMS'][$formSel][$fid])){ 53 $_SESSION['JFORMS'][$formSel][$fid]= new jFormsDataContainer($formSel, $formId); 53 54 } 54 $form = new $c($sel->toString(), $_SESSION['JFORMS'][$formSel][$f ormId],true);55 $form = new $c($sel->toString(), $_SESSION['JFORMS'][$formSel][$fid],true); 55 56 return $form; 56 57 } … … 68 69 global $gJCoord; 69 70 if($formId === null) $formId=JFORMS_DEFAULT_ID; 71 $fid = is_array($formId) ? serialize($formId) : $formId; 70 72 71 if(!isset($_SESSION['JFORMS'][$formSel][$f ormId])){73 if(!isset($_SESSION['JFORMS'][$formSel][$fid])){ 72 74 return null; 73 75 } … … 76 78 jIncluder::inc($sel); 77 79 $c = $sel->getClass(); 78 $form = new $c($sel->toString(), $_SESSION['JFORMS'][$formSel][$f ormId],false);80 $form = new $c($sel->toString(), $_SESSION['JFORMS'][$formSel][$fid],false); 79 81 80 82 return $form; … … 108 110 global $gJCoord; 109 111 if($formId === null) $formId=JFORMS_DEFAULT_ID; 112 if(is_array($formId)) $formId = serialize($formId); 110 113 if(isset($_SESSION['JFORMS'][$formSel][$formId])){ 111 114 unset($_SESSION['JFORMS'][$formSel][$formId]); trunk/lib/jelix/forms/jForms.class.php
r549 r629 49 49 $c = $sel->getClass(); 50 50 if($formId === null) $formId=JFORMS_DEFAULT_ID; 51 if(!isset($_SESSION['JFORMS'][$formSel][$formId])){ 52 $_SESSION['JFORMS'][$formSel][$formId]= new jFormsDataContainer($formSel, $formId); 51 $fid = is_array($formId) ? serialize($formId) : $formId; 52 if(!isset($_SESSION['JFORMS'][$formSel][$fid])){ 53 $_SESSION['JFORMS'][$formSel][$fid]= new jFormsDataContainer($formSel, $formId); 53 54 } 54 $form = new $c($sel->toString(), $_SESSION['JFORMS'][$formSel][$f ormId],true);55 $form = new $c($sel->toString(), $_SESSION['JFORMS'][$formSel][$fid],true); 55 56 return $form; 56 57 } … … 68 69 global $gJCoord; 69 70 if($formId === null) $formId=JFORMS_DEFAULT_ID; 71 $fid = is_array($formId) ? serialize($formId) : $formId; 70 72 71 if(!isset($_SESSION['JFORMS'][$formSel][$f ormId])){73 if(!isset($_SESSION['JFORMS'][$formSel][$fid])){ 72 74 return null; 73 75 } … … 76 78 jIncluder::inc($sel); 77 79 $c = $sel->getClass(); 78 $form = new $c($sel->toString(), $_SESSION['JFORMS'][$formSel][$f ormId],false);80 $form = new $c($sel->toString(), $_SESSION['JFORMS'][$formSel][$fid],false); 79 81 80 82 return $form; … … 108 110 global $gJCoord; 109 111 if($formId === null) $formId=JFORMS_DEFAULT_ID; 112 if(is_array($formId)) $formId = serialize($formId); 110 113 if(isset($_SESSION['JFORMS'][$formSel][$formId])){ 111 114 unset($_SESSION['JFORMS'][$formSel][$formId]); trunk/lib/jelix/forms/jFormsBase.class.php
r606 r629 140 140 $dao = jDao::create($daoSelector, $dbProfil); 141 141 $daorec = $dao->get($key); 142 if(!$daorec) 142 if(!$daorec) { 143 if(is_array($key)) $key = var_export($key,true); 143 144 throw new jExceptionForms('jelix~formserr.bad.formid.for.dao', array($daoSelector, $key, $this->_sel)); 145 } 144 146 145 147 $prop = $dao->getProperties(); … … 199 201 $key = $this->_container->formId; 200 202 $daorec->setPk($key); 201 $dao->update($daorec); 203 if($dao->update($daorec) == 0) 204 $dao->insert($daorec); 202 205 }else{ 203 206 if($key !== null) trunk/lib/jelix/forms/jFormsBase.class.php
r606 r629 140 140 $dao = jDao::create($daoSelector, $dbProfil); 141 141 $daorec = $dao->get($key); 142 if(!$daorec) 142 if(!$daorec) { 143 if(is_array($key)) $key = var_export($key,true); 143 144 throw new jExceptionForms('jelix~formserr.bad.formid.for.dao', array($daoSelector, $key, $this->_sel)); 145 } 144 146 145 147 $prop = $dao->getProperties(); … … 199 201 $key = $this->_container->formId; 200 202 $daorec->setPk($key); 201 $dao->update($daorec); 203 if($dao->update($daorec) == 0) 204 $dao->insert($daorec); 202 205 }else{ 203 206 if($key !== null) trunk/lib/jelix/plugins/db/sqlite/sqlite.dbconnection.php
r482 r629 87 87 throw new jException('jelix~db.error.query.bad', sqlite_error_string($this->_connection).'('.$query.')'); 88 88 } 89 exit;90 89 } 91 90 trunk/lib/jelix/plugins/db/sqlite/sqlite.dbconnection.php
r482 r629 87 87 throw new jException('jelix~db.error.query.bad', sqlite_error_string($this->_connection).'('.$query.')'); 88 88 } 89 exit;90 89 } 91 90 trunk/testapp/install/install.mysql.sql
r571 r629 125 125 `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY , 126 126 `name` VARCHAR( 150 ) NOT NULL , 127 `price` FLOAT NOT NULL 127 `price` FLOAT NOT NULL, 128 `create_date` datetime NOT NULL 128 129 ) TYPE = MYISAM ; 129 130 … … 134 135 ) ENGINE = MYISAM ; 135 136 137 CREATE TABLE `labels_test` ( 138 `key` INT NOT NULL , 139 `lang` VARCHAR( 5 ) NOT NULL , 140 `label` VARCHAR( 50 ) NOT NULL , 141 PRIMARY KEY ( `key` , `lang` ) 142 ); 143 136 144 -- for the crud example 137 145 CREATE TABLE `products` ( … … 140 148 `price` FLOAT NOT NULL 141 149 ) TYPE = MYISAM ; 150 151 trunk/testapp/install/install.mysql.sql
r571 r629 125 125 `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY , 126 126 `name` VARCHAR( 150 ) NOT NULL , 127 `price` FLOAT NOT NULL 127 `price` FLOAT NOT NULL, 128 `create_date` datetime NOT NULL 128 129 ) TYPE = MYISAM ; 129 130 … … 134 135 ) ENGINE = MYISAM ; 135 136 137 CREATE TABLE `labels_test` ( 138 `key` INT NOT NULL , 139 `lang` VARCHAR( 5 ) NOT NULL , 140 `label` VARCHAR( 50 ) NOT NULL , 141 PRIMARY KEY ( `key` , `lang` ) 142 ); 143 136 144 -- for the crud example 137 145 CREATE TABLE `products` ( … … 140 148 `price` FLOAT NOT NULL 141 149 ) TYPE = MYISAM ; 150 151 trunk/testapp/modules/jelix_tests/tests/jforms.html.php
r605 r629 16 16 protected $form2; 17 17 18 protected $form1Descriptor, $form2Descriptor ;18 protected $form1Descriptor, $form2Descriptor, $formLabelDescriptor; 19 19 20 20 function testStart(){ … … 89 89 </object>'; 90 90 91 $this->formLabelDescriptor = ' 92 <object class="cForm_jelix_tests_Jx_label"> 93 <object method="getContainer()" class="jFormsDataContainer"> 94 <array property="formId">array(1,\'fr\')</array> 95 <string property="formSelector" value="label" /> 96 <array property="datas"> 97 <string key="label" value="" /> 98 </array> 99 <array property="errors">array()</array> 100 </object> 101 <array method="getDatas()"> 102 <string key="label" value="" /> 103 </array> 104 <array method="id()">array(1,\'fr\')</array> 105 <array method="getControls()"> 106 <object key="label" class="jFormsControlInput"> 107 <string property="ref" value="label"/> 108 <boolean property="required" value="true"/> 109 <boolean property="readonly" value="false"/> 110 <string property="label" value="The label"/> 111 <string property="defaultValue" value=""/> 112 </object> 113 </array> 114 </object>'; 91 115 } 92 116 … … 137 161 </array>'; 138 162 $this->assertComplexIdenticalStr($_SESSION['JFORMS'], $verif); 163 164 165 $this->formLabel = jForms::create('label', array(1,'fr')); 166 $this->assertComplexIdenticalStr($this->formLabel, $this->formLabelDescriptor); 167 $verif=' 168 <array> 169 <array key="product"> 170 <object key="'.JFORMS_DEFAULT_ID.'" class="jFormsDataContainer"> 171 <integer property="formId" value="'.JFORMS_DEFAULT_ID.'" /> 172 <string property="formSelector" value="product" /> 173 <array property="datas"> 174 <string key="name" value="" /> 175 <string key="price" value="" /> 176 </array> 177 <array property="errors">array()</array> 178 </object> 179 <object key="akey" class="jFormsDataContainer"> 180 <string property="formId" value="akey" /> 181 <string property="formSelector" value="product" /> 182 <array property="datas"> 183 <string key="name" value="" /> 184 <string key="price" value="" /> 185 </array> 186 <array property="errors">array()</array> 187 </object> 188 </array> 189 <array key="label"> 190 <object key="a:2:{i:0;i:1;i:1;s:2:"fr";}" class="jFormsDataContainer"> 191 <array property="formId">array(1,\'fr\')</array> 192 <string property="formSelector" value="label" /> 193 <array property="datas"> 194 <string key="label" value="" /> 195 </array> 196 <array property="errors">array()</array> 197 </object> 198 </array> 199 </array>'; 200 $this->assertComplexIdenticalStr($_SESSION['JFORMS'], $verif); 139 201 } 140 202 … … 151 213 $f3 = jForms::get('product', 'anUnknowKey'); 152 214 $this->assertNull($f3); 215 216 $f4 = jForms::get('label', array(1,'fr')); 217 $this->assertComplexIdenticalStr($f4, $this->formLabelDescriptor); 218 $this->assertIdentical($f4, $this->formLabel); 153 219 } 154 220 … … 258 324 </object> 259 325 </array> 326 <array key="label"> 327 <object key="a:2:{i:0;i:1;i:1;s:2:"fr";}" class="jFormsDataContainer"> 328 <array property="formId">array(1,\'fr\')</array> 329 <string property="formSelector" value="label" /> 330 <array property="datas"> 331 <string key="label" value="" /> 332 </array> 333 <array property="errors">array()</array> 334 </object> 335 </array> 260 336 </array>'; 261 337 $this->assertComplexIdenticalStr($_SESSION['JFORMS'], $verif); … … 265 341 <array> 266 342 <array key="product">array()</array> 343 <array key="label"> 344 <object key="a:2:{i:0;i:1;i:1;s:2:"fr";}" class="jFormsDataContainer"> 345 <array property="formId">array(1,\'fr\')</array> 346 <string property="formSelector" value="label" /> 347 <array property="datas"> 348 <string key="label" value="" /> 349 </array> 350 <array property="errors">array()</array> 351 </object> 352 </array> 267 353 </array>'; 268 354 $this->assertComplexIdenticalStr($_SESSION['JFORMS'], $verif); trunk/testapp/modules/jelix_tests/tests/jforms.html.php
r605 r629 16 16 protected $form2; 17 17 18 protected $form1Descriptor, $form2Descriptor ;18 protected $form1Descriptor, $form2Descriptor, $formLabelDescriptor; 19 19 20 20 function testStart(){ … … 89 89 </object>'; 90 90 91 $this->formLabelDescriptor = ' 92 <object class="cForm_jelix_tests_Jx_label"> 93 <object method="getContainer()" class="jFormsDataContainer"> 94 <array property="formId">array(1,\'fr\')</array> 95 <string property="formSelector" value="label" /> 96 <array property="datas"> 97 <string key="label" value="" /> 98 </array> 99 <array property="errors">array()</array> 100 </object> 101 <array method="getDatas()"> 102 <string key="label" value="" /> 103 </array> 104 <array method="id()">array(1,\'fr\')</array> 105 <array method="getControls()"> 106 <object key="label" class="jFormsControlInput"> 107 <string property="ref" value="label"/> 108 <boolean property="required" value="true"/> 109 <boolean property="readonly" value="false"/> 110 <string property="label" value="The label"/> 111 <string property="defaultValue" value=""/> 112 </object> 113 </array> 114 </object>'; 91 115 } 92 116 … … 137 161 </array>'; 138 162 $this->assertComplexIdenticalStr($_SESSION['JFORMS'], $verif); 163 164 165 $this->formLabel = jForms::create('label', array(1,'fr')); 166 $this->assertComplexIdenticalStr($this->formLabel, $this->formLabelDescriptor); 167 $verif=' 168 <array> 169 <array key="product"> 170 <object key="'.JFORMS_DEFAULT_ID.'" class="jFormsDataContainer"> 171 <integer property="formId" value="'.JFORMS_DEFAULT_ID.'" /> 172 <string property="formSelector" value="product" /> 173 <array property="datas"> 174 <string key="name" value="" /> 175 <string key="price" value="" /> 176 </array> 177 <array property="errors">array()</array> 178 </object> 179 <object key="akey" class="jFormsDataContainer"> 180 <string property="formId" value="akey" /> 181 <string property="formSelector" value="product" /> 182 <array property="datas"> 183 <string key="name" value="" /> 184 <string key="price" value="" /> 185 </array> 186 <array property="errors">array()</array> 187 </object> 188 </array> 189 <array key="label"> 190 <object key="a:2:{i:0;i:1;i:1;s:2:"fr";}" class="jFormsDataContainer"> 191 <array property="formId">array(1,\'fr\')</array> 192 <string property="formSelector" value="label" /> 193 <array property="datas"> 194 <string key="label" value="" /> 195 </array> 196 <array property="errors">array()</array> 197 </object> 198 </array> 199 </array>'; 200 $this->assertComplexIdenticalStr($_SESSION['JFORMS'], $verif); 139 201 } 140 202 … … 151 213 $f3 = jForms::get('product', 'anUnknowKey'); 152 214 $this->assertNull($f3); 215 216 $f4 = jForms::get('label', array(1,'fr')); 217 $this->assertComplexIdenticalStr($f4, $this->formLabelDescriptor); 218 $this->assertIdentical($f4, $this->formLabel); 153 219 } 154 220 … … 258 324 </object> 259 325 </array> 326 <array key="label"> 327 <object key="a:2:{i:0;i:1;i:1;s:2:"fr";}" class="jFormsDataContainer"> 328 <array property="formId">array(1,\'fr\')</array> 329 <string property="formSelector" value="label" /> 330 <array property="datas"> 331 <string key="label" value="" /> 332 </array> 333 <array property="errors">array()</array> 334 </object> 335 </array> 260 336 </array>'; 261 337 $this->assertComplexIdenticalStr($_SESSION['JFORMS'], $verif); … … 265 341 <array> 266 342 <array key="product">array()</array> 343 <array key="label"> 344 <object key="a:2:{i:0;i:1;i:1;s:2:"fr";}" class="jFormsDataContainer"> 345 <array property="formId">array(1,\'fr\')</array> 346 <string property="formSelector" value="label" /> 347 <array property="datas"> 348 <string key="label" value="" /> 349 </array> 350 <array property="errors">array()</array> 351 </object> 352 </array> 267 353 </array>'; 268 354 $this->assertComplexIdenticalStr($_SESSION['JFORMS'], $verif); trunk/testapp/modules/jelix_tests/tests/jforms.with_dao.html.php
r605 r629 18 18 $_SESSION['JFORMS'] = array(); 19 19 $form = jForms::create('product'); 20 $form = jForms::create('label', array(1,'fr')); 21 $form = jForms::create('label', array(1,'en')); 20 22 $this->emptyTable('product_test'); 21 23 $this->emptyTable('product_tags_test'); 24 $this->emptyTable('labels_test'); 22 25 $this->savedParams = $gJCoord->request->params; 23 26 } … … 45 48 ); 46 49 $this->assertTableContainsRecords('product_tags_test', $records); 47 48 49 50 50 51 //insert a second product … … 70 71 ); 71 72 $this->assertTableContainsRecords('product_tags_test', $records); 72 73 } 74 75 function testInsertDao2(){ 76 global $gJCoord; 77 78 $gJCoord->request->params['label'] = 'bonjour'; 79 $form = jForms::fill('label', array(1,'fr')); 80 81 // save main datas 82 $form->saveToDao('labels'); 83 $records = array( 84 array('key'=>1, 'lang'=>'fr', 'label'=>'bonjour'), 85 ); 86 $this->assertTableContainsRecords('labels_test', $records); 87 88 //insert a second label 89 $gJCoord->request->params['label'] = 'Hello'; 90 $form = jForms::fill('label', array(1,'en')); 91 92 $form->saveToDao('labels'); 93 $records = array( 94 array('key'=>1, 'lang'=>'fr', 'label'=>'bonjour'), 95 array('key'=>1, 'lang'=>'en', 'label'=>'Hello'), 96 ); 97 $this->assertTableContainsRecords('labels_test', $records); 73 98 } 74 99 trunk/testapp/modules/jelix_tests/tests/jforms.with_dao.html.php
r605 r629 18 18 $_SESSION['JFORMS'] = array(); 19 19 $form = jForms::create('product'); 20 $form = jForms::create('label', array(1,'fr')); 21 $form = jForms::create('label', array(1,'en')); 20 22 $this->emptyTable('product_test'); 21 23 $this->emptyTable('product_tags_test'); 24 $this->emptyTable('labels_test'); 22 25 $this->savedParams = $gJCoord->request->params; 23 26 } … … 45 48 ); 46 49 $this->assertTableContainsRecords('product_tags_test', $records); 47 48 49 50 50 51 //insert a second product … … 70 71 ); 71 72 $this->assertTableContainsRecords('product_tags_test', $records); 72 73 } 74 75 function testInsertDao2(){ 76 global $gJCoord; 77 78 $gJCoord->request->params['label'] = 'bonjour'; 79 $form = jForms::fill('label', array(1,'fr')); 80 81 // save main datas 82 $form->saveToDao('labels'); 83 $records = array( 84 array('key'=>1, 'lang'=>'fr', 'label'=>'bonjour'), 85 ); 86 $this->assertTableContainsRecords('labels_test', $records); 87 88 //insert a second label 89 $gJCoord->request->params['label'] = 'Hello'; 90 $form = jForms::fill('label', array(1,'en')); 91 92 $form->saveToDao('labels'); 93 $records = array( 94 array('key'=>1, 'lang'=>'fr', 'label'=>'bonjour'), 95 array('key'=>1, 'lang'=>'en', 'label'=>'Hello'), 96 ); 97 $this->assertTableContainsRecords('labels_test', $records); 73 98 } 74 99
