Merged in gproly/processmaker/HOR-366 (pull request #3771)

HOR-366
This commit is contained in:
Julio Cesar Laura Avendaño
2016-03-08 16:25:01 -04:00

View File

@@ -181,7 +181,6 @@ class pmDynaform
case 'dataVariable':
$dataVariable = (preg_match('/^\s*@.(.+)\s*$/', $json->dataVariable, $arrayMatch)) ?
$arrayMatch[1] : $json->dataVariable;
if (isset($this->fields['APP_DATA'][$dataVariable]) &&
is_array($this->fields['APP_DATA'][$dataVariable]) &&
!empty($this->fields['APP_DATA'][$dataVariable])
@@ -189,8 +188,7 @@ class pmDynaform
foreach ($this->fields['APP_DATA'][$dataVariable] as $row) {
$option = new stdClass();
$option->value = $row[0];
$option->label = (isset($row[1])) ? $row[1] : $row[0];
$option->label = isset($row[1]) ? $row[1] : "";
$json->optionsSql[] = $option;
}
}
@@ -207,7 +205,7 @@ class pmDynaform
$row = $rs->getRow();
$option = new stdClass();
$option->value = $row[0];
$option->label = isset($row[1]) ? $row[1] : $row[0];
$option->label = isset($row[1]) ? $row[1] : "";
$json->optionsSql[] = $option;
}
} catch (Exception $e) {
@@ -234,7 +232,6 @@ class pmDynaform
$json->data->value = $this->fields["APP_DATA"][$json->name];
$json->data->label = $this->fields["APP_DATA"][$json->name];
}
$json->optionsSql = array();
}
if ($key === "type" && ($value === "dropdown")) {
$json->data = new stdClass();
@@ -287,7 +284,6 @@ class pmDynaform
if (isset($this->fields["APP_DATA"][$json->name . "_label"])) {
$json->data->label = $this->fields["APP_DATA"][$json->name . "_label"];
}
$json->optionsSql = array();
}
if ($key === "type" && ($value === "radio")) {
$json->data = new stdClass();
@@ -438,15 +434,15 @@ class pmDynaform
}
}
//synchronize var_label
if ($key === "type" && ($value === "dropdown" || $value === "suggest")) {
if ($key === "type" && ($value === "dropdown" || $value === "suggest" || $value === "radio")) {
if (isset($this->fields["APP_DATA"]["__VAR_CHANGED__"]) && in_array($json->name, explode(",", $this->fields["APP_DATA"]["__VAR_CHANGED__"]))) {
foreach ($json->optionsSql as $io) {
if ($json->data->value === $io->value) {
if ($this->toStringNotNullValues($json->data->value) === $io->value) {
$json->data->label = $io->label;
}
}
foreach ($json->options as $io) {
if ($json->data->value === $io->value) {
if ($this->toStringNotNullValues($json->data->value) === $io->value) {
$json->data->label = $io->label;
}
}
@@ -466,14 +462,14 @@ class pmDynaform
foreach ($dv as $idv) {
foreach ($json->optionsSql as $os) {
if ($os->value === $idv) {
array_push($dataValue, $os->value);
array_push($dataLabel, $os->label);
$dataValue[] = $os->value;
$dataLabel[] = $os->label;
}
}
foreach ($json->options as $os) {
if ($os->value === $idv) {
array_push($dataValue, $os->value);
array_push($dataLabel, $os->label);
$dataValue[] = $os->value;
$dataLabel[] = $os->label;
}
}
}
@@ -488,6 +484,10 @@ class pmDynaform
$_SESSION["TRIGGER_DEBUG"]["DATA"][] = Array("key" => $json->name . "_label", "value" => $json->data->label);
}
}
//clear optionsSql
if ($key === "type" && ($value === "text" || $value === "textarea" || $value === "hidden" || $value === "suggest")) {
$json->optionsSql = array();
}
//grid
if ($key === "type" && ($value === "grid")) {
if (isset($this->fields["APP_DATA"][$json->name])) {
@@ -1528,4 +1528,18 @@ class pmDynaform
return array('dsn' => $dsn, 'username' => DB_USER, 'password' => DB_PASS);
}
/**
* Returns the value converted to string if it is not null.
*
* @param string $string
* @return string
*/
private function toStringNotNullValues($value)
{
if (is_null($value)) {
return "";
}
return (string) $value;
}
}