BUG 9773 Suggest Field Feature in a Grid IMPROVEMENT

This commit is contained in:
Julio Cesar Laura
2012-12-19 13:10:07 -04:00
parent 78b24da7e8
commit f7253bd3d6
2 changed files with 66 additions and 56 deletions

View File

@@ -438,62 +438,64 @@ class Form extends XmlForm
if (is_array( $item )) {
$values[$k][$j] = $this->fields[$k]->maskValue( $newValues[$k][$j], $this );
foreach ($item as $kk => $vv) {
if ($this->fields[$k]->fields[$kk]->type != "file") {
switch ($this->fields[$k]->fields[$kk]->type) {
case "dropdown":
//We need to know which fields are dropdowns
$values[$k][$j] = $newValues[$k][$j];
if (isset($this->fields[$k]->fields[$kk])) {
if ($this->fields[$k]->fields[$kk]->type != "file") {
switch ($this->fields[$k]->fields[$kk]->type) {
case "dropdown":
//We need to know which fields are dropdowns
$values[$k][$j] = $newValues[$k][$j];
if ($this->fields[$k]->validateValue( $newValues[$k][$j], $this )) {
//If the dropdown has otions
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];
} else {
//If hasn't options try execute a sql sentence
$query = G::replaceDataField( $this->fields[$k]->fields[$kk]->sql, $values[$k][$j] );
$con = Propel::getConnection( (! empty( $this->fields[$k]->fields[$kk]->sqlConnection )) ? $this->fields[$k]->fields[$kk]->sqlConnection : "workflow" );
$stmt = $con->prepareStatement( $query );
if ($this->fields[$k]->validateValue( $newValues[$k][$j], $this )) {
//If the dropdown has otions
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];
} else {
//If hasn't options try execute a sql sentence
$query = G::replaceDataField( $this->fields[$k]->fields[$kk]->sql, $values[$k][$j] );
$con = Propel::getConnection( (! empty( $this->fields[$k]->fields[$kk]->sqlConnection )) ? $this->fields[$k]->fields[$kk]->sqlConnection : "workflow" );
$stmt = $con->prepareStatement( $query );
//Execute just if a query was set, it should be not empty
if (trim( $query ) == "") {
//if it is empty string skip it
continue;
}
//Execute just if a query was set, it should be not empty
if (trim( $query ) == "") {
//if it is empty string skip it
continue;
}
$rs = $stmt->executeQuery( ResultSet::FETCHMODE_NUM );
$rs = $stmt->executeQuery( ResultSet::FETCHMODE_NUM );
while ($rs->next()) {
//From the query executed we only need certain elements
//note added by krlos pacha carlos[at]colosa[dot]com
//the following line has the correct values because the query return an associative array. Related 7945 bug
list ($rowId, $rowContent) = explode( ",", implode( ",", $rs->getRow() ) );
while ($rs->next()) {
//From the query executed we only need certain elements
//note added by krlos pacha carlos[at]colosa[dot]com
//the following line has the correct values because the query return an associative array. Related 7945 bug
list ($rowId, $rowContent) = explode( ",", implode( ",", $rs->getRow() ) );
if ($vv == $rowId) {
$values[$k][$j][$kk . "_label"] = $newValues[$k][$j][$kk . "_label"] = $rowContent;
break;
if ($vv == $rowId) {
$values[$k][$j][$kk . "_label"] = $newValues[$k][$j][$kk . "_label"] = $rowContent;
break;
}
}
}
}
}
break;
case "link":
$values[$k][$j] = $newValues[$k][$j];
$values[$k][$j][$kk . "_label"] = $newValues[$k][$j][$kk . "_label"];
break;
default:
//If there are no dropdowns previously setted and the evaluated field is not a dropdown
//only then rewritte the $values
$values[$k][$j] = $this->fields[$k]->maskValue( $newValues[$k][$j], $this );
break;
}
} else {
if (isset( $_FILES["form"]["name"][$k][$j][$kk] )) {
$values[$k][$j][$kk] = $_FILES["form"]["name"][$k][$j][$kk];
}
break;
case "link":
$values[$k][$j] = $newValues[$k][$j];
$values[$k][$j][$kk . "_label"] = $newValues[$k][$j][$kk . "_label"];
break;
default:
//If there are no dropdowns previously setted and the evaluated field is not a dropdown
//only then rewritte the $values
$values[$k][$j] = $this->fields[$k]->maskValue( $newValues[$k][$j], $this );
break;
}
} else {
if (isset( $_FILES["form"]["name"][$k][$j][$kk] )) {
$values[$k][$j][$kk] = $_FILES["form"]["name"][$k][$j][$kk];
}
if (isset( $this->fields[$k]->fields[$kk]->input ) && ! empty( $this->fields[$k]->fields[$kk]->input )) {
//$_POST["INPUTS"][$k][$j][$kk] = $this->fields[$k]->fields[$kk]->input;
$_POST["INPUTS"][$k][$kk] = $this->fields[$k]->fields[$kk]->input;
if (isset( $this->fields[$k]->fields[$kk]->input ) && ! empty( $this->fields[$k]->fields[$kk]->input )) {
//$_POST["INPUTS"][$k][$j][$kk] = $this->fields[$k]->fields[$kk]->input;
$_POST["INPUTS"][$k][$kk] = $this->fields[$k]->fields[$kk]->input;
}
}
}
}
@@ -584,6 +586,9 @@ class Form extends XmlForm
foreach ($field->fields as $fieldGrid) {
if (is_object( $fieldGrid ) && isset( $fieldGrid->required ) && $fieldGrid->required) {
if (! in_array( $fieldGrid->type, $skippedFieldsTypes )) {
if (!isset($requiredFieldsGrids[$field->name])) {
$requiredFieldsGrids[$field->name] = array();
}
if (! (is_array( $requiredFieldsGrids[$field->name] ))) {
$requiredFieldsGrids[$field->name] = array ();
}
@@ -609,6 +614,9 @@ class Form extends XmlForm
$requiredFieldsGrids[$dataFieldName] = array ();
}
if (in_array( $fieldGridName, $requiredFieldsGrids[$dataFieldName] ) && ! in_array( $fieldGridName, $noRequired ) && trim( $fieldGridValue ) == '') {
if (! (isset( $notPassedFields[$dataFieldName] ))) {
$notPassedFields[$dataFieldName] = array ();
}
if (! (is_array( $notPassedFields[$dataFieldName] ))) {
$notPassedFields[$dataFieldName] = array ();
}

View File

@@ -1113,18 +1113,18 @@ class XmlForm_Field_Text extends XmlForm_Field_SimpleText
if ($this->strTo === 'LOWER') {
$value = strtolower( $value );
}
if ($this->strTo === 'TITLE') {
if ($this->strTo === 'TITLE') {
$value = strtolower( $value );
$value = ucwords( $value );
}
if ($this->strTo === 'PHRASE') {
//$value = strtolower( $value );
$title = explode(" ",$value);
$value = ucwords( $value );
}
if ($this->strTo === 'PHRASE') {
//$value = strtolower( $value );
$title = explode(" ",$value);
$title[0] = ucwords( $title[0] );
$value = implode(" ", $title);
$value = implode(" ", $title);
}
//if ($this->strTo==='CAPITALIZE') $value = strtocapitalize($value);
$onkeypress = G::replaceDataField( $this->onkeypress, $owner->values );
@@ -1537,6 +1537,8 @@ class XmlForm_Field_Suggest extends XmlForm_Field_SimpleText //by neyek
$name = "'" . $this->name . "'";
$str = '<input type="text" ' . $storeEntry . ' class="module_app_input___gray" size="' . $this->size . '" id="form' . $rowId . '[' . $this->name . '_label]" name="form' . $rowId . '[' . $this->name . '_label]" value="' . $this->htmlentities( $value, ENT_COMPAT, 'utf-8' ) . '" onblur="idSet(' . $name . ');" ';
$str .= $this->NSDependentFields( true ) . ' ';
$str .= $this->NSRequiredValue() . ' ';
$str .= $this->NSGridLabel() . ' ';
$str .= '/>';
$str .= '<input ';
$str .= 'id="form' . $rowId . '[' . $this->name . ']" ';