From 3826b1caf1446144f5ff15501d72ef7cb3f6abca Mon Sep 17 00:00:00 2001 From: Erik Amaru Ortiz Date: Thu, 27 Feb 2014 16:43:50 -0400 Subject: [PATCH 01/10] fix a warning when session was destroyed and Session Handler is trying to write --- gulliver/core/Session/PmSessionHandler.php | 4 ++++ .../Tests/ProcessMaker/Project/Adapter/BpmnWorkflowTest.php | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/gulliver/core/Session/PmSessionHandler.php b/gulliver/core/Session/PmSessionHandler.php index 130e29442..94ab7d676 100644 --- a/gulliver/core/Session/PmSessionHandler.php +++ b/gulliver/core/Session/PmSessionHandler.php @@ -165,6 +165,10 @@ class PmSessionHandler //implements SessionHandlerInterface */ public function write($id, $data) { + if (empty($this->db)) { + return null; + } + $time = time(); if(! isset($this->wstmt)) { diff --git a/workflow/engine/src/Tests/ProcessMaker/Project/Adapter/BpmnWorkflowTest.php b/workflow/engine/src/Tests/ProcessMaker/Project/Adapter/BpmnWorkflowTest.php index 9087a4dea..96c763f21 100644 --- a/workflow/engine/src/Tests/ProcessMaker/Project/Adapter/BpmnWorkflowTest.php +++ b/workflow/engine/src/Tests/ProcessMaker/Project/Adapter/BpmnWorkflowTest.php @@ -21,7 +21,7 @@ class BpmnWorkflowTest extends \PHPUnit_Framework_TestCase public static function tearDownAfterClass() { - return false; + //return false; //cleaning DB foreach (self::$uids as $prjUid) { $bwap = Project\Adapter\BpmnWorkflow::load($prjUid); From d65eac687fb0f125155e335fa7ef2bfda53267e7 Mon Sep 17 00:00:00 2001 From: Brayan Osmar Pereyra Suxo Date: Thu, 27 Feb 2014 16:53:18 -0400 Subject: [PATCH 02/10] Cambio de lugar de archivo behat --- .../backend/{activity => step}/reordenamiento.feature | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) rename features/backend/{activity => step}/reordenamiento.feature (70%) diff --git a/features/backend/activity/reordenamiento.feature b/features/backend/step/reordenamiento.feature similarity index 70% rename from features/backend/activity/reordenamiento.feature rename to features/backend/step/reordenamiento.feature index dc9ad21ea..ac9de74e7 100644 --- a/features/backend/activity/reordenamiento.feature +++ b/features/backend/step/reordenamiento.feature @@ -3,7 +3,7 @@ Feature: Reorder Steps Scenario: List all the Sub Processs (result 0 Sub Processs) Given that I have a valid access_token - And I request "project/9821342145305125d48cb88069229840/activity/8251872975307632a765f34007266075/step/285219904530763bb5c4367074373078" + And I request "project/940481651530fa1f3803525098230380/activity/677485918530fa1f80ad463004640434/step/289467030530fa28077e6a2088432104" Then the response status code should be 200 And the response charset is "UTF-8" And the type is "object" @@ -17,12 +17,12 @@ Feature: Reorder Steps "step_position": "3" } """ - And I request "project/98002714453076320a06cb4009450121/activity/8251872975307632a765f34007266075/step/285219904530763bb5c4367074373078" + And I request "project/98002714453076320a06cb4009450121/activity/677485918530fa1f80ad463004640434/step/289467030530fa28077e6a2088432104" Then the response status code should be 200 Scenario: List all the Sub Processs (result 0 Sub Processs) Given that I have a valid access_token - And I request "project/9821342145305125d48cb88069229840/activity/8251872975307632a765f34007266075/step/285219904530763bb5c4367074373078" + And I request "project/940481651530fa1f3803525098230380/activity/677485918530fa1f80ad463004640434/step/289467030530fa28077e6a2088432104" Then the response status code should be 200 And the response charset is "UTF-8" And the type is "object" @@ -36,12 +36,12 @@ Feature: Reorder Steps "step_position": "1" } """ - And I request "project/98002714453076320a06cb4009450121/activity/8251872975307632a765f34007266075/step/285219904530763bb5c4367074373078" + And I request "project/98002714453076320a06cb4009450121/activity/677485918530fa1f80ad463004640434/step/289467030530fa28077e6a2088432104" Then the response status code should be 200 Scenario: List all the Sub Processs (result 0 Sub Processs) Given that I have a valid access_token - And I request "project/9821342145305125d48cb88069229840/activity/8251872975307632a765f34007266075/step/285219904530763bb5c4367074373078" + And I request "project/940481651530fa1f3803525098230380/activity/677485918530fa1f80ad463004640434/step/289467030530fa28077e6a2088432104" Then the response status code should be 200 And the response charset is "UTF-8" And the type is "object" From c4dd78145a58e2174694572a020a7683b8117e65 Mon Sep 17 00:00:00 2001 From: Brayan Osmar Pereyra Suxo Date: Thu, 27 Feb 2014 17:12:42 -0400 Subject: [PATCH 03/10] Adicion de parametro EXTERNAL en STEPS --- .../src/Services/Api/ProcessMaker/Project/Activity/Step.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/workflow/engine/src/Services/Api/ProcessMaker/Project/Activity/Step.php b/workflow/engine/src/Services/Api/ProcessMaker/Project/Activity/Step.php index e460710dd..0cba109aa 100644 --- a/workflow/engine/src/Services/Api/ProcessMaker/Project/Activity/Step.php +++ b/workflow/engine/src/Services/Api/ProcessMaker/Project/Activity/Step.php @@ -39,7 +39,7 @@ class Step extends Api * @param string $act_uid {@min 32}{@max 32} * @param string $prj_uid {@min 32}{@max 32} * @param array $request_data - * @param string $step_type_obj {@from body}{@choice DYNAFORM,INPUT_DOCUMENT,OUTPUT_DOCUMENT}{@required true} + * @param string $step_type_obj {@from body}{@choice DYNAFORM,INPUT_DOCUMENT,OUTPUT_DOCUMENT,EXTERNAL}{@required true} * @param string $step_uid_obj {@from body}{@min 32}{@max 32}{@required true} * @param string $step_condition {@from body} * @param int $step_position {@from body}{@min 1} @@ -79,7 +79,7 @@ class Step extends Api * @param string $act_uid {@min 32}{@max 32} * @param string $prj_uid {@min 32}{@max 32} * @param array $request_data - * @param string $step_type_obj {@from body}{@choice DYNAFORM,INPUT_DOCUMENT,OUTPUT_DOCUMENT} + * @param string $step_type_obj {@from body}{@choice DYNAFORM,INPUT_DOCUMENT,OUTPUT_DOCUMENT,EXTERNAL} * @param string $step_uid_obj {@from body}{@min 32}{@max 32} * @param string $step_condition {@from body} * @param int $step_position {@from body}{@min 1} From ddafed7baaf2c879e1696b5c3a49f336216e6e2f Mon Sep 17 00:00:00 2001 From: Victor Saisa Lopez Date: Thu, 27 Feb 2014 17:15:46 -0400 Subject: [PATCH 04/10] ProcessMaker "Calendar (endpoints)" - Se han implementado los siguientes Endpoints: GET /api/1.0/{workspace}/calendars?filter={filter}&start={start}&limit={limit} --- .../engine/src/BusinessModel/Calendar.php | 256 ++++++++++++++++++ .../Services/Api/ProcessMaker/Calendar.php | 33 +++ workflow/engine/src/Services/api.ini | 6 + 3 files changed, 295 insertions(+) create mode 100644 workflow/engine/src/BusinessModel/Calendar.php create mode 100644 workflow/engine/src/Services/Api/ProcessMaker/Calendar.php diff --git a/workflow/engine/src/BusinessModel/Calendar.php b/workflow/engine/src/BusinessModel/Calendar.php new file mode 100644 index 000000000..719cd8b16 --- /dev/null +++ b/workflow/engine/src/BusinessModel/Calendar.php @@ -0,0 +1,256 @@ + array("fieldName" => "CALENDAR_UID", "type" => "string", "required" => false, "empty" => false, "defaultValues" => array(), "fieldNameAux" => "calendarUid"), + + "CAL_NAME" => array("fieldName" => "CALENDAR_NAME", "type" => "string", "required" => true, "empty" => false, "defaultValues" => array(), "fieldNameAux" => "calendarName"), + "CAL_DESCRIPTION" => array("fieldName" => "CALENDAR_DESCRIPTION", "type" => "string", "required" => false, "empty" => true, "defaultValues" => array(), "fieldNameAux" => "calendarDescription"), + "CAL_CREATE_DATE" => array("fieldName" => "CALENDAR_CREATE_DATE", "type" => "datetime", "required" => false, "empty" => false, "defaultValues" => array(), "fieldNameAux" => "calendarCreateDate"), + "CAL_UPDATE_DATE" => array("fieldName" => "CALENDAR_UPDATE_DATE", "type" => "datetime", "required" => false, "empty" => false, "defaultValues" => array(), "fieldNameAux" => "calendarUpdateDate"), + "CAL_WORK_DAYS" => array("fieldName" => "CALENDAR_WORK_DAYS", "type" => "string", "required" => false, "empty" => false, "defaultValues" => array(), "fieldNameAux" => "calendarWorkDays"), + "CAL_STATUS" => array("fieldName" => "CALENDAR_STATUS", "type" => "string", "required" => true, "empty" => false, "defaultValues" => array("ACTIVE", "INACTIVE"), "fieldNameAux" => "calendarStatus") + ); + + private $formatFieldNameInUppercase = true; + + private $arrayFieldNameForException = array( + "filter" => "FILTER", + "start" => "START", + "limit" => "LIMIT" + ); + + /** + * Constructor of the class + * + * return void + */ + public function __construct() + { + try { + foreach ($this->arrayFieldDefinition as $key => $value) { + $this->arrayFieldNameForException[$value["fieldNameAux"]] = $key; + } + } catch (\Exception $e) { + throw $e; + } + } + + /** + * Set the format of the fields name (uppercase, lowercase) + * + * @param bool $flag Value that set the format + * + * return void + */ + public function setFormatFieldNameInUppercase($flag) + { + try { + $this->formatFieldNameInUppercase = $flag; + + $this->setArrayFieldNameForException($this->arrayFieldNameForException); + } catch (\Exception $e) { + throw $e; + } + } + + /** + * Set exception messages for fields + * + * @param array $arrayData Data with the fields + * + * return void + */ + public function setArrayFieldNameForException($arrayData) + { + try { + foreach ($arrayData as $key => $value) { + $this->arrayFieldNameForException[$key] = $this->getFieldNameByFormatFieldName($value); + } + } catch (\Exception $e) { + throw $e; + } + } + + /** + * Get the name of the field according to the format + * + * @param string $fieldName Field name + * + * return string Return the field name according the format + */ + public function getFieldNameByFormatFieldName($fieldName) + { + try { + return ($this->formatFieldNameInUppercase)? strtoupper($fieldName) : strtolower($fieldName); + } catch (\Exception $e) { + throw $e; + } + } + + /** + * Get criteria for Calendar + * + * return object + */ + public function getCalendarCriteria() + { + try { + $criteria = new \Criteria("workflow"); + + $criteria->addSelectColumn(\CalendarDefinitionPeer::CALENDAR_UID); + $criteria->addSelectColumn(\CalendarDefinitionPeer::CALENDAR_NAME); + $criteria->addSelectColumn(\CalendarDefinitionPeer::CALENDAR_DESCRIPTION); + $criteria->addSelectColumn(\CalendarDefinitionPeer::CALENDAR_CREATE_DATE); + $criteria->addSelectColumn(\CalendarDefinitionPeer::CALENDAR_UPDATE_DATE); + $criteria->addSelectColumn(\CalendarDefinitionPeer::CALENDAR_WORK_DAYS); + $criteria->addSelectColumn(\CalendarDefinitionPeer::CALENDAR_STATUS); + $criteria->add(\CalendarDefinitionPeer::CALENDAR_STATUS, "DELETED", \Criteria::NOT_EQUAL); + + return $criteria; + } catch (\Exception $e) { + throw $e; + } + } + + /** + * Get data of a Calendar from a record + * + * @param array $record Record + * + * return array Return an array with data Calendar + */ + public function getCalendarDataFromRecord($record) + { + try { + return array( + $this->getFieldNameByFormatFieldName("CAL_UID") => $record["CALENDAR_UID"], + $this->getFieldNameByFormatFieldName("CAL_NAME") => $record["CALENDAR_NAME"], + $this->getFieldNameByFormatFieldName("CAL_DESCRIPTION") => $record["CALENDAR_DESCRIPTION"] . "", + $this->getFieldNameByFormatFieldName("CAL_CREATE_DATE") => $record["CALENDAR_CREATE_DATE"] . "", + $this->getFieldNameByFormatFieldName("CAL_UPDATE_DATE") => $record["CALENDAR_UPDATE_DATE"] . "", + $this->getFieldNameByFormatFieldName("CAL_WORK_DAYS") => $record["CALENDAR_WORK_DAYS"] . "", + $this->getFieldNameByFormatFieldName("CAL_STATUS") => $record["CALENDAR_STATUS"], + $this->getFieldNameByFormatFieldName("CAL_TOTAL_USERS") => (int)($record["CALENDAR_TOTAL_USERS"]), + $this->getFieldNameByFormatFieldName("CAL_TOTAL_PROCESSES") => (int)($record["CALENDAR_TOTAL_PROCESSES"]), + $this->getFieldNameByFormatFieldName("CAL_TOTAL_TASKS") => (int)($record["CALENDAR_TOTAL_TASKS"]) + ); + } catch (\Exception $e) { + throw $e; + } + } + + /** + * Get all Calendars + * + * @param array $arrayFilterData Data of the filters + * @param string $sortField Field name to sort + * @param string $sortDir Direction of sorting (ASC, DESC) + * @param int $start Start + * @param int $limit Limit + * + * return array Return an array with all Calendars + */ + public function getCalendars($arrayFilterData = null, $sortField = null, $sortDir = null, $start = null, $limit = null) + { + try { + $arrayCalendar = array(); + + //Verify data + $process = new \BusinessModel\Process(); + + $process->throwExceptionIfDataNotMetPagerVarDefinition(array("start" => $start, "limit" => $limit), $this->arrayFieldNameForException); + + //Get data + if (!is_null($limit) && $limit . "" == "0") { + return $arrayCalendar; + } + + //Set variables + $calendar = new \calendar(); + + $arrayTotalUsersByCalendar = $calendar->getAllCounterByCalendar("USER"); + $arrayTotalProcessesByCalendar = $calendar->getAllCounterByCalendar("PROCESS"); + $arrayTotalTasksByCalendar = $calendar->getAllCounterByCalendar("TASK"); + + //SQL + $criteria = $this->getCalendarCriteria(); + + if (!is_null($arrayFilterData) && is_array($arrayFilterData) && isset($arrayFilterData["filter"]) && trim($arrayFilterData["filter"]) != "") { + $criteria->add(\CalendarDefinitionPeer::CALENDAR_NAME, "%" . $arrayFilterData["filter"] . "%", \Criteria::LIKE); + } + + //Number records total + $criteriaCount = clone $criteria; + + $criteriaCount->clearSelectColumns(); + $criteriaCount->addSelectColumn("COUNT(" . \CalendarDefinitionPeer::CALENDAR_UID . ") AS NUM_REC"); + + $rsCriteriaCount = \CalendarDefinitionPeer::doSelectRS($criteriaCount); + $rsCriteriaCount->setFetchmode(\ResultSet::FETCHMODE_ASSOC); + + $rsCriteriaCount->next(); + $row = $rsCriteriaCount->getRow(); + + $numRecTotal = $row["NUM_REC"]; + + //SQL + if (!is_null($sortField) && trim($sortField) != "") { + $sortField = strtoupper($sortField); + $sortField = (isset($this->arrayFieldDefinition[$sortField]["fieldName"]))? $this->arrayFieldDefinition[$sortField]["fieldName"] : $sortField; + + switch ($sortField) { + case "CALENDAR_UID": + case "CALENDAR_NAME": + case "CALENDAR_DESCRIPTION": + case "CALENDAR_CREATE_DATE": + case "CALENDAR_UPDATE_DATE": + case "CALENDAR_WORK_DAYS": + case "CALENDAR_STATUS": + $sortField = \CalendarDefinitionPeer::TABLE_NAME . "." . $sortField; + break; + default: + $sortField = \CalendarDefinitionPeer::CALENDAR_NAME; + break; + } + } else { + $sortField = \CalendarDefinitionPeer::CALENDAR_NAME; + } + + if (!is_null($sortDir) && trim($sortDir) != "" && strtoupper($sortDir) == "DESC") { + $criteria->addDescendingOrderByColumn($sortField); + } else { + $criteria->addAscendingOrderByColumn($sortField); + } + + if (!is_null($start)) { + $criteria->setOffset((int)($start)); + } + + if (!is_null($limit)) { + $criteria->setLimit((int)($limit)); + } + + $rsCriteria = \CalendarDefinitionPeer::doSelectRS($criteria); + $rsCriteria->setFetchmode(\ResultSet::FETCHMODE_ASSOC); + + while ($rsCriteria->next()) { + $row = $rsCriteria->getRow(); + + $row["CALENDAR_TOTAL_USERS"] = (isset($arrayTotalUsersByCalendar[$row["CALENDAR_UID"]]))? $arrayTotalUsersByCalendar[$row["CALENDAR_UID"]] : 0; + $row["CALENDAR_TOTAL_PROCESSES"] = (isset($arrayTotalProcessesByCalendar[$row["CALENDAR_UID"]]))? $arrayTotalProcessesByCalendar[$row["CALENDAR_UID"]] : 0; + $row["CALENDAR_TOTAL_TASKS"] = (isset($arrayTotalTasksByCalendar[$row["CALENDAR_UID"]]))? $arrayTotalTasksByCalendar[$row["CALENDAR_UID"]] : 0; + + $arrayCalendar[] = $this->getCalendarDataFromRecord($row); + } + + //Return + return $arrayCalendar; + } catch (\Exception $e) { + throw $e; + } + } +} + diff --git a/workflow/engine/src/Services/Api/ProcessMaker/Calendar.php b/workflow/engine/src/Services/Api/ProcessMaker/Calendar.php new file mode 100644 index 000000000..aac0e82f4 --- /dev/null +++ b/workflow/engine/src/Services/Api/ProcessMaker/Calendar.php @@ -0,0 +1,33 @@ +setFormatFieldNameInUppercase($this->formatFieldNameInUppercase); + + $response = $calendar->getCalendars(array("filter" => $filter), null, null, $start, $limit); + + return $response; + } catch (\Exception $e) { + throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage())); + } + } +} + diff --git a/workflow/engine/src/Services/api.ini b/workflow/engine/src/Services/api.ini index 7bd9b6300..b87c3019a 100644 --- a/workflow/engine/src/Services/api.ini +++ b/workflow/engine/src/Services/api.ini @@ -53,3 +53,9 @@ debug = 1 [alias: users] user = "Services\Api\ProcessMaker\User" +[alias: calendar] + calendar = "Services\Api\ProcessMaker\Calendar" + +[alias: calendars] + calendar = "Services\Api\ProcessMaker\Calendar" + From 2261b2ee77685f25fe44fe964e7b2ac4ec1ecc11 Mon Sep 17 00:00:00 2001 From: Erik Amaru Ortiz Date: Thu, 27 Feb 2014 18:47:24 -0400 Subject: [PATCH 05/10] adding html source for new designer --- .../engine/skinEngine/neoclassic/error404.php | 1 + workflow/engine/templates/designer/index.html | 55 ++++++++++++++++++- 2 files changed, 55 insertions(+), 1 deletion(-) diff --git a/workflow/engine/skinEngine/neoclassic/error404.php b/workflow/engine/skinEngine/neoclassic/error404.php index eb95ff9cd..53fe00a72 100644 --- a/workflow/engine/skinEngine/neoclassic/error404.php +++ b/workflow/engine/skinEngine/neoclassic/error404.php @@ -1,3 +1,4 @@ + diff --git a/workflow/engine/templates/designer/index.html b/workflow/engine/templates/designer/index.html index f672586d9..97a73c1fd 100644 --- a/workflow/engine/templates/designer/index.html +++ b/workflow/engine/templates/designer/index.html @@ -1,4 +1,4 @@ - + {if $isDebugMode} {foreach from=$pmuiCssCacheFile item=file} @@ -98,5 +98,58 @@ {/if} + + + + +
+
+
+
+ + +
+ From 41acd726c87bda63bf75d4468cfa9a497f93d9c2 Mon Sep 17 00:00:00 2001 From: Omar Date: Thu, 27 Feb 2014 20:53:04 -0400 Subject: [PATCH 06/10] Updating the index.html from the Designer --- workflow/engine/templates/designer/index.html | 105 +++++++++--------- 1 file changed, 55 insertions(+), 50 deletions(-) diff --git a/workflow/engine/templates/designer/index.html b/workflow/engine/templates/designer/index.html index 97a73c1fd..2fab47e66 100644 --- a/workflow/engine/templates/designer/index.html +++ b/workflow/engine/templates/designer/index.html @@ -100,56 +100,61 @@ {/if} - - -
-
-
-
- - -
+ + +
+
+
+
+ + +
From bf8bf66ef740dd203cd398c909d9554f436b63da Mon Sep 17 00:00:00 2001 From: Fernando Ontiveros Date: Thu, 27 Feb 2014 19:56:58 -0500 Subject: [PATCH 07/10] improving build-vendor.php --- build-vendor.php | 2 ++ update | 25 ++++++++++++++++++++++--- 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/build-vendor.php b/build-vendor.php index 8ce968286..d391f103e 100644 --- a/build-vendor.php +++ b/build-vendor.php @@ -44,6 +44,7 @@ $projects = array( 'colosa/pmUI' ); + out("build-vendor.php", 'purple'); @@ -54,6 +55,7 @@ out(" mode", 'purple'); foreach ($projects as $project) { echo PHP_EOL; out("=> Building project: ", 'info', false); + $output = array(); echo $project.' '.PHP_EOL; chdir($vendorDir.DS.$project); if ($debug) { diff --git a/update b/update index 62821f1a9..08ff44370 100755 --- a/update +++ b/update @@ -2,19 +2,19 @@ echo "

Michelangelo Update

Changelog Processmaker

" > temp.txt git pull -git log -n 20 --relative-date --graph --format=short >> temp.txt +git log -n 30 --relative-date --graph --format=medium --no-merges >> temp.txt cd vendor/colosa/pmUI echo "

Changelog pmUI


" >> ../../../temp.txt git pull -git log -n 20 --relative-date --graph --format=short >> ../../../temp.txt +git log -n 30 --relative-date --graph --format=medium --no-merges >> ../../../temp.txt cd ../MichelangeloFE echo "

Changelog MichelangeloFE


" >> ../../../temp.txt git pull -git log -n 20 --relative-date --graph --format=short >> ../../../temp.txt +git log -n 30 --relative-date --graph --format=medium --no-merges >> ../../../temp.txt cd ../../../ @@ -23,4 +23,23 @@ php build-vendor.php >> temp.txt sed ':a;N;$!ba;s/\n/
/g' temp.txt > workflow/public_html/build-log.html +cp workflow/public_html/build-log.html temp.txt +sed -re 's#\[0;35;35m##g' temp.txt > workflow/public_html/build-log.html + +cp workflow/public_html/build-log.html temp.txt +sed -re 's#\[1;33;34m##g' temp.txt > workflow/public_html/build-log.html + +cp workflow/public_html/build-log.html temp.txt +sed -re 's#\[0;35;32m##g' temp.txt > workflow/public_html/build-log.html + + +cp workflow/public_html/build-log.html temp.txt +sed -re 's#\[31m\[32m##g' temp.txt > workflow/public_html/build-log.html + +cp workflow/public_html/build-log.html temp.txt +sed -re 's#\[0m##g' temp.txt > workflow/public_html/build-log.html + +cp workflow/public_html/build-log.html temp.txt +sed -re 's#Author:(.*)\n#xxxx(1)#g' temp.txt > workflow/public_html/build-log.html + echo "update executed succesfully, check the log in http:///build-log.html " From c108975af093f26d2c6c347a9e46670546121379 Mon Sep 17 00:00:00 2001 From: Brayan Osmar Pereyra Suxo Date: Fri, 28 Feb 2014 08:39:21 -0400 Subject: [PATCH 08/10] Adicionde parametro EXTERNAL --- workflow/engine/src/BusinessModel/Step.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/workflow/engine/src/BusinessModel/Step.php b/workflow/engine/src/BusinessModel/Step.php index 1261c8379..472462280 100644 --- a/workflow/engine/src/BusinessModel/Step.php +++ b/workflow/engine/src/BusinessModel/Step.php @@ -170,9 +170,8 @@ class Step */ public function throwExceptionIfHaveInvalidValueInTypeObj($stepTypeObj) { - if (!in_array($stepTypeObj, array("DYNAFORM", "INPUT_DOCUMENT", "OUTPUT_DOCUMENT"))) { + if (!in_array($stepTypeObj, array("DYNAFORM", "INPUT_DOCUMENT", "OUTPUT_DOCUMENT", "EXTERNAL"))) { $field = $this->arrayParamException["stepTypeObj"]; - throw (new \Exception(str_replace(array("{0}"), array($field), "Invalid value specified for \"{0}\""))); } } From 5d374eb220bca19fc5010916006c0c49cfcaa039 Mon Sep 17 00:00:00 2001 From: Erik Amaru Ortiz Date: Fri, 28 Feb 2014 09:37:29 -0400 Subject: [PATCH 09/10] Updating Controller Exception View Rendering --- gulliver/system/class.controller.php | 23 ++-- gulliver/templates/controller.exception.tpl | 143 +++++++++++++------- workflow/engine/controllers/designer.php | 4 +- 3 files changed, 106 insertions(+), 64 deletions(-) diff --git a/gulliver/system/class.controller.php b/gulliver/system/class.controller.php index f61e25eaf..3e6eccf4d 100755 --- a/gulliver/system/class.controller.php +++ b/gulliver/system/class.controller.php @@ -129,20 +129,17 @@ class Controller print G::json_encode( $result ); } } catch (Exception $e) { + $result = new StdClass(); if ($this->responseType != 'json') { - $result->exception->class = get_class( $e ); - $result->exception->code = $e->getCode(); - - $template = new TemplatePower( PATH_TEMPLATE . 'controller.exception.tpl' ); - $template->prepare(); - $template->assign( 'controller', (function_exists( 'get_called_class' ) ? get_called_class() : 'Controller') ); - $template->assign( 'message', $e->getMessage() ); - $template->assign( 'file', $e->getFile() ); - $template->assign( 'line', $e->getLine() ); - $template->assign( 'trace', $e->getTraceAsString() ); - - echo $template->getOutputContent(); - + Bootstrap::renderTemplate('controller.exception.tpl', array( + 'title' => 'Controller Exception', + 'message' => nl2br($e->getMessage()), + 'controller' => (function_exists( 'get_called_class' ) ? get_called_class() : 'Controller'), + 'exceptionClass' => get_class($e), + 'file' => $e->getFile(), + 'line' => $e->getLine(), + 'trace' => $e->getTrace() + )); } else { $result->success = false; $result->msg = $e->getMessage(); diff --git a/gulliver/templates/controller.exception.tpl b/gulliver/templates/controller.exception.tpl index 3e77268e5..37eb9a27b 100755 --- a/gulliver/templates/controller.exception.tpl +++ b/gulliver/templates/controller.exception.tpl @@ -1,55 +1,100 @@ - - + + - -Server Error :: + + + Whoops, looks like something went wrong. + - - -
- -
-
- - - - -
- CONTROLLER EXCEPTION
-
- {message}

- Controller: {controller}
- File: {file}
- Line: {line} -
-
- - - -
{trace}
-
+
+

{$controller} {$title}

+
+

+ {$exceptionClass}: {$message} +

+
+
+ Controller: {$controller}
+ File: {$file}
+ Line: {$line} +
    + {foreach from=$trace item=line} + {if $line.class} +
  1. At {$line.class}{$line.type}{$line.function}()
    in {$line.file} line {$line.line}
  2. + {else} +
  3. At {$line.function}() in {$line.file} line {$line.line}
  4. + {/if} + {/foreach} +
+
- \ No newline at end of file + + + + + + + + + + diff --git a/workflow/engine/controllers/designer.php b/workflow/engine/controllers/designer.php index 381441769..2f247588e 100644 --- a/workflow/engine/controllers/designer.php +++ b/workflow/engine/controllers/designer.php @@ -39,10 +39,10 @@ class Designer extends Controller if (System::isDebugMode()) { if (! file_exists(PATH_HTML . "lib-dev/pmUI/build.cache")) { - throw new Exception("Error: Development JS Files were are not generated!, please execute: \$rake pmBuildDebug in pmUI project"); + throw new RuntimeException("Development JS Files were are not generated!.\nPlease execute: \$>rake pmBuildDebug in pmUI project"); } if (! file_exists(PATH_HTML . "lib-dev/mafe/build.cache")) { - throw new Exception("Error: Development JS Files were are not generated!, please execute: \$rake pmBuildDebug in MichelangeloFE project"); + throw new RuntimeException("Development JS Files were are not generated!.\nPlease execute: \$>rake pmBuildDebug in MichelangeloFE project"); } $mafeFiles = file(PATH_HTML . "lib-dev/mafe/build.cache", FILE_IGNORE_NEW_LINES); From e2e67f3ca506c64ebbecac121fdbd03a2acfe7e8 Mon Sep 17 00:00:00 2001 From: Brayan Osmar Pereyra Suxo Date: Fri, 28 Feb 2014 10:31:33 -0400 Subject: [PATCH 10/10] Cambio de valor en behat para validacion --- features/backend/activity/negative_tests_activity.feature | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/features/backend/activity/negative_tests_activity.feature b/features/backend/activity/negative_tests_activity.feature index 71c71bb53..66c88c5a4 100644 --- a/features/backend/activity/negative_tests_activity.feature +++ b/features/backend/activity/negative_tests_activity.feature @@ -104,4 +104,4 @@ Scenario Outline: Update the Definition of a Activity and the check if the value | Invalid tas_type_day | 95655319552a5c790b69a04054667879 | Task2 | Case Description | @@SYS_NEXT_USER_TO_BE_ASSIGNED | template.html | TRUE | BALANCED | @@USER_LOGGED | @@GROUP_UID | 1 | 2 | DAYS | | FALSE | 2 | DAYS | 6 | | ADHOC | Case Title | Case Description | FALSE | Titulo de Notificacion 1| template | Esta es una Notificacion | template.html | tas_type_day | | Invalid tas_type | 63843886052a5cc066e4c04056414372 | Task3 | Case Description | @@SYS_NEXT_USER_TO_BE_ASSIGNED | template.html | TRUE | BALANCED | @@USER_LOGGED | @@GROUP_UID | 1 | 2 | DAYS | | FALSE | 2 | DAYS | 2 | | INPUT | Case Title | Case Description | FALSE | Titulo de Notificacion 1| template | Esta es una Notificacion | template.html | tas_type | | Invalid tas_send_last_email | 97192372152a5c78f04a794095806311 | Task1 | Case Description | @@SYS_NEXT_USER_TO_BE_ASSIGNED | template.html | TRUE | BALANCED | @@USER_LOGGED | @@GROUP_UID | 1 | 2 | DAYS | | FALSE | 2 | DAYS | 2 | | ADHOC | Case Title | Case Description | INPUT | Titulo de Notificacion 1| template | Esta es una Notificacion | template.html | tas_send_last_email | - | Invalid tas_def_message_type | 95655319552a5c790b69a04054667879 | Task2 | Case Description | @@SYS_NEXT_USER_TO_BE_ASSIGNED | template.html | TRUE | BALANCED | @@USER_LOGGED | @@GROUP_UID | 1 | 2 | DAYS | | FALSE | 2 | DAYS | 2 | | ADHOC | Case Title | Case Description | FALSE | Titulo de Notificacion 1| INPUT | Esta es una Notificacion | template.html | tas_def_message_type | \ No newline at end of file + | Invalid tas_def_message_type | 95655319552a5c790b69a04054667879 | Task2 | Case Description | @@SYS_NEXT_USER_TO_BE_ASSIGNED | template.html | TRUE | BALANCED | @@USER_LOGGED | @@GROUP_UID | 1 | 2 | DAYS | | FALSE | 2 | DAYS | 2 | | ADHOC | Case Title | Case Description | TRUE | Titulo de Notificacion 1| INPUT | Esta es una Notificacion | template.html | tas_def_message_type | \ No newline at end of file