From 6be1b9e8fdcc3d3d4973f83d8d7082c5c476f043 Mon Sep 17 00:00:00 2001 From: "Paula V. Quispe" Date: Thu, 27 Oct 2016 12:06:06 -0400 Subject: [PATCH] HOR-2052 HOR-2052 --- .../src/ProcessMaker/BusinessModel/Light.php | 1 + .../src/ProcessMaker/BusinessModel/Task.php | 29 +++++++++++++++++++ .../src/ProcessMaker/Services/Api/Light.php | 24 +++++++++++++-- 3 files changed, 52 insertions(+), 2 deletions(-) diff --git a/workflow/engine/src/ProcessMaker/BusinessModel/Light.php b/workflow/engine/src/ProcessMaker/BusinessModel/Light.php index 23644ccb0..65aaa3808 100644 --- a/workflow/engine/src/ProcessMaker/BusinessModel/Light.php +++ b/workflow/engine/src/ProcessMaker/BusinessModel/Light.php @@ -82,6 +82,7 @@ class Light $tempTreeChild['text'] = $keyChild; //ellipsis ( $keyChild, 50 ); $tempTreeChild['processId'] = $processInfoChild['pro_uid']; $tempTreeChild['taskId'] = $processInfoChild['uid']; + list($tempTreeChild['offlineEnabled'], $tempTreeChild['autoRoot']) = $task->getColumnValues($processInfoChild['pro_uid'], $processInfoChild['uid'], array('TAS_OFFLINE', 'TAS_AUTO_ROOT')); $forms = $task->getSteps($processInfoChild['uid']); $newForm = array(); $c = 0; diff --git a/workflow/engine/src/ProcessMaker/BusinessModel/Task.php b/workflow/engine/src/ProcessMaker/BusinessModel/Task.php index 024faa01b..9a48f2fa9 100644 --- a/workflow/engine/src/ProcessMaker/BusinessModel/Task.php +++ b/workflow/engine/src/ProcessMaker/BusinessModel/Task.php @@ -2016,4 +2016,33 @@ class Task //Return return false; } + + /** + * Return a specific value from TASK table + * + * @param string $prjUid Unique uid of Project + * @param string $actUid Unique uid of Task + * @param array $arrayColumns name of column + * + * return string + */ + public function getColumnValues($prjUid, $actUid, $arrayColumns){ + try { + $prj_uid = $this->validateProUid($prjUid); + $taskUid = $this->validateActUid($actUid); + $task = new \Task(); + $arrayDataAux = $task->load($taskUid); + $aProperties = array(); + foreach ($arrayColumns as $value) { + if(isset($arrayDataAux[$value])){ + $aProperties[] = $arrayDataAux[$value]; + } else { + $aProperties[] = ''; + } + } + return $aProperties; + } catch (Exception $e) { + throw $e; + } + } } diff --git a/workflow/engine/src/ProcessMaker/Services/Api/Light.php b/workflow/engine/src/ProcessMaker/Services/Api/Light.php index 0335b7148..80f288b49 100644 --- a/workflow/engine/src/ProcessMaker/Services/Api/Light.php +++ b/workflow/engine/src/ProcessMaker/Services/Api/Light.php @@ -207,6 +207,9 @@ class Light extends Api } /*----------------------------------********---------------------------------*/ + //Complete the list information with some task properties + $response['data'] = $this->addTaskProperties($response['data']); + $result = $this->parserDataTodo($response['data']); return DateTime::convertUtcToIso8601($result, $this->arrayFieldIso8601); } catch (\Exception $e) { @@ -214,6 +217,16 @@ class Light extends Api } } + public function addTaskProperties($data){ + $task = new \ProcessMaker\BusinessModel\Task(); + foreach ($data as $key => $value) { + $valueUpper = array_change_key_case($value, CASE_UPPER); + list($data[$key]['TAS_OFFLINE'], $data[$key]['TAS_AUTO_ROOT']) = $task->getColumnValues($valueUpper['PRO_UID'], $valueUpper['TAS_UID'], array('TAS_OFFLINE', 'TAS_AUTO_ROOT')); + } + return $data; + + } + public function parserDataTodo ($data) { $structure = array( @@ -240,7 +253,9 @@ class Light extends Api ), 'task' => array( 'TAS_UID' => 'taskId', - 'APP_TAS_TITLE' => 'name' + 'APP_TAS_TITLE' => 'name', + 'TAS_OFFLINE' => 'offlineEnabled', + 'TAS_AUTO_ROOT' => 'autoRoot' ) ); @@ -302,6 +317,9 @@ class Light extends Api } /*----------------------------------********---------------------------------*/ + //Complete the list information with some task properties + $response['data'] = $this->addTaskProperties($response['data']); + $result = $this->parserDataDraft($response['data']); return DateTime::convertUtcToIso8601($result, $this->arrayFieldIso8601); } catch (\Exception $e) { @@ -334,7 +352,9 @@ class Light extends Api ), 'task' => array( 'TAS_UID' => 'taskId', - 'APP_TAS_TITLE' => 'name' + 'APP_TAS_TITLE' => 'name', + 'TAS_OFFLINE' => 'offlineEnabled', + 'TAS_AUTO_ROOT' => 'autoRoot' ) );