BUG 5934 "Save label for radiogroups..." SOLVED

- is saving the radiogroup label
- by convention we decided save by default the label for all array field types like dropdown, checkgroup, listboxes and radiogroup, so the property for dropdown "save label" was removed because always is saving it!
This commit is contained in:
Erik Amaru Ortiz
2011-05-31 18:52:56 -04:00
parent ff59ddf340
commit a6baa0147a
3 changed files with 63 additions and 46 deletions

View File

@@ -303,40 +303,62 @@ class Form extends XmlForm
if (($v->type != 'submit')) { if (($v->type != 'submit')) {
if ($v->type != 'file') { if ($v->type != 'file') {
if ( array_key_exists($k,$newValues) ) { if ( array_key_exists($k,$newValues) ) {
echo $v->type."<br>";
switch($v->type){ switch($v->type){
case 'radiogroup':
$values[$k] = $newValues[$k];
$values["{$k}_label"] = $newValues["{$k}_label"] = $v->options[$newValues[$k]];
break;
case 'checkgroup': case 'checkgroup':
case 'listbox': case 'listbox':
if (count($newValues[$k]) > 1) { $values[$k] = '';
$values[$k] = implode('|', $newValues[$k]); foreach ($newValues[$k] as $i => $value) {
$newValues[$k] = $values[$k]; $values[$k] .= ($i != 0 ? '|': '') . $value;
} else {
$values[$k] = $newValues[$k][0];
}
break;
case 'dropdown':
$values[$k] = $newValues[$k];
if ($v->saveLabel == 1) { if (isset($v->options[$value])){
if(isset($v->options[$newValues[$k]])){ $values["{$k}_label"] .= ($i != 0 ? '|': '') . $v->options[$value];
$values[$k . '_label'] = $v->options[$newValues[$k]]; } else {
}else{
$query = G::replaceDataField($this->fields[$k]->sql,$newValues); $query = G::replaceDataField($this->fields[$k]->sql,$newValues);
//we do the query to the external connection and we've got the label //we do the query to the external connection and we've got the label
$con = Propel::getConnection($this->fields[$k]->sqlConnection); $con = Propel::getConnection($this->fields[$k]->sqlConnection);
$stmt = $con->prepareStatement($query); $stmt = $con->prepareStatement($query);
$rs = $stmt->executeQuery(ResultSet::FETCHMODE_NUM); $rs = $stmt->executeQuery(ResultSet::FETCHMODE_NUM);
while ($rs->next()){
$row = $rs->getRow(); while ($rs->next()) {
$rowId = $row['0']; list($rowId, $rowContent) = $rs->getRow();
$rowContent = $row['1'];
if ($newValues[$k]==$rowId){ if ($value == $rowId){
$values[$k . '_label'] = $rowContent; $values["{$k}_label"] .= ($i != 0 ? '|': '') . $rowContent;
break; break;
} }
} }
} }
} }
$newValues[$k] = $values["{$k}_label"];
break; break;
case 'dropdown':
$values[$k] = $newValues[$k];
if (isset($v->options[$newValues[$k]])){
$values["{$k}_label"] = $newValues["{$k}_label"] = $v->options[$newValues[$k]];
} else {
$query = G::replaceDataField($this->fields[$k]->sql,$newValues);
//we do the query to the external connection and we've got the label
$con = Propel::getConnection($this->fields[$k]->sqlConnection);
$stmt = $con->prepareStatement($query);
$rs = $stmt->executeQuery(ResultSet::FETCHMODE_NUM);
while ($rs->next()) {
list($rowId, $rowContent) = $rs->getRow();
if ($newValues[$k]==$rowId){
$values["{$k}_label"] = $rowContent;
break;
}
}
}
break;
case 'grid': case 'grid':
foreach( $newValues[$k] as $j => $item ) { foreach( $newValues[$k] as $j => $item ) {
if(is_array($item)){ if(is_array($item)){
@@ -348,25 +370,21 @@ class Form extends XmlForm
if($this->fields[$k]->fields[$kk]->type == 'dropdown') { if($this->fields[$k]->fields[$kk]->type == 'dropdown') {
$values[$k][$j] = $newValues[$k][$j]; $values[$k][$j] = $newValues[$k][$j];
if(($this->fields[$k]->fields[$kk]->saveLabel) == 1) { if ($this->fields[$k]->validateValue($newValues[$k][$j], $this )){
if ($this->fields[$k]->validateValue($newValues[$k][$j], $this )){ if (isset($this->fields[$k]->fields[$kk]->options[$vv])){
if (isset($this->fields[$k]->fields[$kk]->options[$vv])){ $values[$k][$j]["{$kk}_label"] = $newValues[$k][$j][$kk . '_label'] = $this->fields[$k]->fields[$kk]->options[$vv];
$values[$k][$j][$kk . '_label'] = $this->fields[$k]->fields[$kk]->options[$vv]; } else {
$newValues[$k][$j][$kk . '_label'] = $values[$k][$j][$kk . '_label']; $query = G::replaceDataField($this->fields[$k]->fields[$kk]->sql,$values[$k][$j]);
} else { $con = Propel::getConnection('workflow');
$query = G::replaceDataField($this->fields[$k]->fields[$kk]->sql,$values[$k][$j]); $stmt = $con->prepareStatement($query);
$con = Propel::getConnection('workflow'); $rs = $stmt->executeQuery(ResultSet::FETCHMODE_NUM);
$stmt = $con->prepareStatement($query); while ($rs->next()){
$rs = $stmt->executeQuery(ResultSet::FETCHMODE_NUM); // from the query executed we only need certain elements
while ($rs->next()){ list($rowId, $rowContent) = $rs->getRow();
// from the query executed we only need certain elements
$row = $rs->getRow(); if ($vv==$rowId){
$rowId = $row['0']; $values[$k][$j]["{$kk}_label"] = $newValues[$k][$j][$kk. '_label'] = $rowContent;
$rowContent = $row['1']; break;
if ($vv==$rowId){
$values[$k][$j][$kk. '_label'] = $rowContent;
break;
}
} }
} }
} }
@@ -383,6 +401,7 @@ class Form extends XmlForm
} }
} }
break; break;
default: default:
if ($this->fields[$k]->validateValue($newValues[$k], $this )) if ($this->fields[$k]->validateValue($newValues[$k], $this ))
$values[$k] = $this->fields[$k]->maskValue( $newValues[$k], $this ); $values[$k] = $this->fields[$k]->maskValue( $newValues[$k], $this );
@@ -408,7 +427,6 @@ class Form extends XmlForm
} }
} }
foreach ($newValues as $k => $v) { foreach ($newValues as $k => $v) {
if (strpos($k, 'SYS_GRID_AGGREGATE_') !== false) { if (strpos($k, 'SYS_GRID_AGGREGATE_') !== false) {
$values[$k] = $v; $values[$k] = $v;

View File

@@ -60,11 +60,10 @@
<!-- <td class='FormFieldContent' width="{$form_width}" >{$form.PME_DEFAULTVALUE} </td> //--> <!-- <td class='FormFieldContent' width="{$form_width}" >{$form.PME_DEFAULTVALUE} </td> //-->
<td class="FormFieldContent" width="{$form_fieldContentWidth}">{$form.PME_DEFAULTVALUE}</td> <td class="FormFieldContent" width="{$form_fieldContentWidth}">{$form.PME_DEFAULTVALUE}</td>
</tr> </tr>
<tr> <!-- <tr>
<td class="FormLabel" width="{$form_labelWidth}">{$PME_SAVELABEL}</td> <td class="FormLabel" width="{$form_labelWidth}">{$PME_SAVELABEL}</td>
<!-- <td class='FormFieldContent' width="{$form_width}" >{$form.PME_SAVELABEL} </td> //-->
<td class="FormFieldContent" width="{$form_fieldContentWidth}">{$form.PME_SAVELABEL}</td> <td class="FormFieldContent" width="{$form_fieldContentWidth}">{$form.PME_SAVELABEL}</td>
</tr> </tr>-->
<tr> <tr>
<td class="FormLabel" width="{$form_labelWidth}">{$PME_HINT}</td> <td class="FormLabel" width="{$form_labelWidth}">{$PME_HINT}</td>
<!-- <td class='FormFieldContent' width="{$form_width}" >{$form.PME_HINT} </td> //--> <!-- <td class='FormFieldContent' width="{$form_width}" >{$form.PME_HINT} </td> //-->

View File

@@ -35,9 +35,9 @@ select XMLNODE_NAME, XMLNODE_NAME AS NAME FROM dynaForm WHERE XMLNODE_NAME <> @@
<PME_DEFAULTVALUE type="text" maxlength="50" size="49" defaultvalue=""> <PME_DEFAULTVALUE type="text" maxlength="50" size="49" defaultvalue="">
<en>Default Value</en> <en>Default Value</en>
</PME_DEFAULTVALUE> </PME_DEFAULTVALUE>
<PME_SAVELABEL type="checkbox" falseValue="0" value="1" defaultvalue="0" labelOnRight="0"> <!--<PME_SAVELABEL type="checkbox" falseValue="0" value="1" defaultvalue="0" labelOnRight="0">
<en>Save label of selected value in variable</en> <en>Save label of selected value in variable</en>
</PME_SAVELABEL> </PME_SAVELABEL>-->
<PME_HINT type="textarea" cols="47" rows="3"> <PME_HINT type="textarea" cols="47" rows="3">
<en>Hint</en> <en>Hint</en>