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': case 'dataVariable':
$dataVariable = (preg_match('/^\s*@.(.+)\s*$/', $json->dataVariable, $arrayMatch)) ? $dataVariable = (preg_match('/^\s*@.(.+)\s*$/', $json->dataVariable, $arrayMatch)) ?
$arrayMatch[1] : $json->dataVariable; $arrayMatch[1] : $json->dataVariable;
if (isset($this->fields['APP_DATA'][$dataVariable]) && if (isset($this->fields['APP_DATA'][$dataVariable]) &&
is_array($this->fields['APP_DATA'][$dataVariable]) && is_array($this->fields['APP_DATA'][$dataVariable]) &&
!empty($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) { foreach ($this->fields['APP_DATA'][$dataVariable] as $row) {
$option = new stdClass(); $option = new stdClass();
$option->value = $row[0]; $option->value = $row[0];
$option->label = (isset($row[1])) ? $row[1] : $row[0]; $option->label = isset($row[1]) ? $row[1] : "";
$json->optionsSql[] = $option; $json->optionsSql[] = $option;
} }
} }
@@ -207,7 +205,7 @@ class pmDynaform
$row = $rs->getRow(); $row = $rs->getRow();
$option = new stdClass(); $option = new stdClass();
$option->value = $row[0]; $option->value = $row[0];
$option->label = isset($row[1]) ? $row[1] : $row[0]; $option->label = isset($row[1]) ? $row[1] : "";
$json->optionsSql[] = $option; $json->optionsSql[] = $option;
} }
} catch (Exception $e) { } catch (Exception $e) {
@@ -234,7 +232,6 @@ class pmDynaform
$json->data->value = $this->fields["APP_DATA"][$json->name]; $json->data->value = $this->fields["APP_DATA"][$json->name];
$json->data->label = $this->fields["APP_DATA"][$json->name]; $json->data->label = $this->fields["APP_DATA"][$json->name];
} }
$json->optionsSql = array();
} }
if ($key === "type" && ($value === "dropdown")) { if ($key === "type" && ($value === "dropdown")) {
$json->data = new stdClass(); $json->data = new stdClass();
@@ -287,7 +284,6 @@ class pmDynaform
if (isset($this->fields["APP_DATA"][$json->name . "_label"])) { if (isset($this->fields["APP_DATA"][$json->name . "_label"])) {
$json->data->label = $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")) { if ($key === "type" && ($value === "radio")) {
$json->data = new stdClass(); $json->data = new stdClass();
@@ -438,15 +434,15 @@ class pmDynaform
} }
} }
//synchronize var_label //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__"]))) { if (isset($this->fields["APP_DATA"]["__VAR_CHANGED__"]) && in_array($json->name, explode(",", $this->fields["APP_DATA"]["__VAR_CHANGED__"]))) {
foreach ($json->optionsSql as $io) { foreach ($json->optionsSql as $io) {
if ($json->data->value === $io->value) { if ($this->toStringNotNullValues($json->data->value) === $io->value) {
$json->data->label = $io->label; $json->data->label = $io->label;
} }
} }
foreach ($json->options as $io) { foreach ($json->options as $io) {
if ($json->data->value === $io->value) { if ($this->toStringNotNullValues($json->data->value) === $io->value) {
$json->data->label = $io->label; $json->data->label = $io->label;
} }
} }
@@ -466,14 +462,14 @@ class pmDynaform
foreach ($dv as $idv) { foreach ($dv as $idv) {
foreach ($json->optionsSql as $os) { foreach ($json->optionsSql as $os) {
if ($os->value === $idv) { if ($os->value === $idv) {
array_push($dataValue, $os->value); $dataValue[] = $os->value;
array_push($dataLabel, $os->label); $dataLabel[] = $os->label;
} }
} }
foreach ($json->options as $os) { foreach ($json->options as $os) {
if ($os->value === $idv) { if ($os->value === $idv) {
array_push($dataValue, $os->value); $dataValue[] = $os->value;
array_push($dataLabel, $os->label); $dataLabel[] = $os->label;
} }
} }
} }
@@ -488,6 +484,10 @@ class pmDynaform
$_SESSION["TRIGGER_DEBUG"]["DATA"][] = Array("key" => $json->name . "_label", "value" => $json->data->label); $_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 //grid
if ($key === "type" && ($value === "grid")) { if ($key === "type" && ($value === "grid")) {
if (isset($this->fields["APP_DATA"][$json->name])) { if (isset($this->fields["APP_DATA"][$json->name])) {
@@ -1528,4 +1528,18 @@ class pmDynaform
return array('dsn' => $dsn, 'username' => DB_USER, 'password' => DB_PASS); 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;
}
} }