From 11e4ae46e897a84ef4ef6716dcfaa126701c52df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luciana=20Nu=C3=B1ez?= Date: Thu, 29 Sep 2022 09:51:33 -0400 Subject: [PATCH 1/8] PMCORE-4008 --- workflow/engine/src/ProcessMaker/BusinessModel/Cases.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/workflow/engine/src/ProcessMaker/BusinessModel/Cases.php b/workflow/engine/src/ProcessMaker/BusinessModel/Cases.php index f479989d5..8da2870e2 100644 --- a/workflow/engine/src/ProcessMaker/BusinessModel/Cases.php +++ b/workflow/engine/src/ProcessMaker/BusinessModel/Cases.php @@ -37,6 +37,7 @@ use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Log; use InputDocument; use InvalidIndexSearchTextException; +use Luracast\Restler\RestException; use PmDynaform; use PmTable; use ProcessMaker\BusinessModel\Cases as BmCases; @@ -57,6 +58,7 @@ use ProcessMaker\Model\Triggers; use ProcessMaker\Model\ProcessUser; use ProcessMaker\Model\User; use ProcessMaker\Plugins\PluginRegistry; +use ProcessMaker\Services\Api; use ProcessMaker\Services\OAuth2\Server; use ProcessMaker\Util\DateTime as UtilDateTime; use ProcessMaker\Validation\ExceptionRestApi; @@ -2640,7 +2642,7 @@ class Cases * @param string $typeView type of view * * @return array Return an array with process list that the user can start. - * @throws Exception + * @throws RestException */ public function getCasesListStarCase($usrUid, $typeView) { From 8565bc626a8290e0f3192d75e02eba287641ea72 Mon Sep 17 00:00:00 2001 From: Paula Quispe Date: Thu, 29 Sep 2022 09:50:00 -0400 Subject: [PATCH 2/8] PMCORE-3992 --- composer.json | 1 + thirdparty/wizard/include.php | 39 +++ .../wizard/org/active-link/doc/DocHTML.php | 242 ++++++++++++++++++ .../wizard/org/active-link/doc/Method.php | 83 ++++++ .../wizard/org/active-link/doc/PHPClass.php | 195 ++++++++++++++ .../BusinessModel/TriggerWizard.php | 22 +- 6 files changed, 572 insertions(+), 10 deletions(-) create mode 100644 thirdparty/wizard/include.php create mode 100644 thirdparty/wizard/org/active-link/doc/DocHTML.php create mode 100644 thirdparty/wizard/org/active-link/doc/Method.php create mode 100644 thirdparty/wizard/org/active-link/doc/PHPClass.php diff --git a/composer.json b/composer.json index 31269cc51..d2507dcb6 100644 --- a/composer.json +++ b/composer.json @@ -96,6 +96,7 @@ "thirdparty/pear", "thirdparty/phing", "thirdparty/pake", + "thirdparty/wizard", "rbac/engine/classes/" ], "files": [ diff --git a/thirdparty/wizard/include.php b/thirdparty/wizard/include.php new file mode 100644 index 000000000..0dccd53ff --- /dev/null +++ b/thirdparty/wizard/include.php @@ -0,0 +1,39 @@ + diff --git a/thirdparty/wizard/org/active-link/doc/DocHTML.php b/thirdparty/wizard/org/active-link/doc/DocHTML.php new file mode 100644 index 000000000..eb33d0071 --- /dev/null +++ b/thirdparty/wizard/org/active-link/doc/DocHTML.php @@ -0,0 +1,242 @@ +CSSStringDefault = " + body {background-color: white;} + a {font-family: monospace;} + ul {list-style-type: none;} + .classTitle {color: blue;} + .name {color: black;} + .version {color: black;} + .requires {color: red;} + .extends {color: black;} + .description {color: black;font-family: sans-serif;} + .author {color: blue;} + .methodsTitle {color: blue;} + .methodList {color: blue;} + .methodName {color: blue;font-weight: bold;} + .returns {color: black;} + .param {color: black;font-weight: bold;font-family: monospace;} + "; + } + + /** + * Returns class documentation as a string, formatted in HTML + * If argument is a filename, it parses the file for comments and generates documentation + * If argument is an object of type PHPClass, then documentation is generated from it + * @method getClassDoc + * @param mixed argument + * @returns string HTML-formatted documentation if successful, false otherwise + */ + function getClassDoc($argument) { + if(is_object($argument) && get_class($argument) == "phpclass") + return $this->getClassDocFromClass($argument); + elseif(is_string($argument)) + return $this->getClassDocFromFile($argument); + else + return false; + } + + /** + * Returns class documentation as a string, formatted in HTML + * @method getClassDocFromClass + * @param object objClass + * @returns string HTML-formatted documentation if successful, false otherwise + */ + function getClassDocFromClass($objClass) { + if(is_object($objClass) && get_class($objClass) == "phpclass") { + $classDocXML = new XML_("html"); + // ---------------------- HEAD ---------------------- // + $headXML = new XMLBranch("head"); + $headXML->setTagContent($objClass->getInfo("name"), "head/title"); + $headXML->setTagContent("", "head/meta"); + $headXML->setTagAttribute("http-equiv", "content-type", "head/meta"); + $headXML->setTagAttribute("content", "text/html; charset=ISO-8859-1", "head/meta"); + $headXML->setTagContent($this->CSSStringDefault, "head/style"); + $headXML->setTagAttribute("type", "text/css", "head/style"); + // ---------------------- BODY ---------------------- // + $bodyXML = new XMLBranch("body"); + $classTitleXML = new XMLBranch("h1"); + $classTitleXML->setTagAttribute("class", "classTitle"); + $classTitleXML->setTagContent($objClass->getInfo("name") . " Class"); + $bodyXML->addXMLBranch($classTitleXML); + foreach($objClass->info as $infoKey => $infoValue) { + $brXML = new XMLBranch("br"); + $bodyXML->addXMLBranch($brXML); + if(is_array($infoValue)) { + $spanXML = new XMLBranch("span"); + $spanXML->setTagAttribute("class", $infoKey); + $spanXML->setTagContent(ucfirst($infoKey) . ":"); + $ulXML = new XMLBranch("ul"); + $ulXML->setTagAttribute("class", $infoKey); + foreach($infoValue as $value) { + $liXML = new XMLBranch("li"); + $liXML->setTagContent($value); + $ulXML->addXMLBranch($liXML); + } + $bodyXML->addXMLBranch($spanXML); + $bodyXML->addXMLBranch($ulXML); + } + else { + $spanXML = new XMLBranch("span"); + $spanXML->setTagAttribute("class", $infoKey); + $spanXML->setTagContent(ucfirst($infoKey) . ": " . $infoValue); + $bodyXML->addXMLBranch($spanXML); + } + } + $hrXML = new XMLBranch("hr"); + $bodyXML->addXMLBranch($hrXML); + $h2XML = new XMLBranch("h2"); + $h2XML->setTagAttribute("class", "methodsTitle"); + $h2XML->setTagContent("All Methods"); + $bodyXML->addXMLBranch($h2XML); + $spanXML = new XMLBranch("span"); + $spanXML->setTagAttribute("class", "methodList"); + foreach($objClass->methods as $methodName => $method) { + $aMethodXML = new XMLBranch("a"); + $aMethodXML->setTagAttribute("href", "#" . $methodName); + $aMethodXML->setTagContent($methodName); + $brXML = new XMLBranch("br"); + $spanXML->addXMLBranch($aMethodXML); + $spanXML->addXMLBranch($brXML); + } + $bodyXML->addXMLBranch($spanXML); + foreach($objClass->methods as $methodName => $method) { + $hrXML = new XMLBranch("hr"); + $bodyXML->addXMLBranch($hrXML); + $pMethodXML = new XMLBranch("p"); + $aMethodXML = new XMLBranch("a"); + $aMethodXML->setTagAttribute("name", $methodName); + $spanXMLName = new XMLBranch("span"); + $spanXMLName->setTagAttribute("class", "methodName"); + $spanXMLName->setTagContent($methodName); + $spanXMLArgs = new XMLBranch("span"); + $tagContentArgs = " ( "; + if(is_array($method->params) && count($method->params) > 0) { + $paramCount = 0; + foreach($method->params as $key => $value) { + if($paramCount > 0) + $tagContentArgs .= ", "; + $tagContentArgs .= $key; + $paramCount ++; + } + } + $tagContentArgs .= " )"; + $spanXMLArgs->setTagContent($tagContentArgs); + $aMethodXML->addXMLBranch($spanXMLName); + $aMethodXML->addXMLBranch($spanXMLArgs); + $pMethodXML->addXMLBranch($aMethodXML); + $bodyXML->addXMLBranch($pMethodXML); + unset($method->info["name"]); + foreach($method->info as $infoKey => $infoValue) { + if(is_array($infoValue)) { + $pXML = new XMLBranch("p"); + $pXML->setTagAttribute("class", $infoKey); + $pXML->setTagContent(ucfirst($infoKey) . ":"); + $ulXML = new XMLBranch("ul"); + $ulXML->setTagAttribute("class", $infoKey); + foreach($infoValue as $value) { + $liXML = new XMLBranch("li"); + $liXML->setTagContent($value); + $ulXML->addXMLBranch($liXML); + } + $bodyXML->addXMLBranch($pXML); + $bodyXML->addXMLBranch($ulXML); + } + else { + $pXML = new XMLBranch("p"); + $pXML->setTagAttribute("class", $infoKey); + $pXML->setTagContent(ucfirst($infoKey) . ": " . $infoValue); + $bodyXML->addXMLBranch($pXML); + } + } + if(is_array($method->params) && count($method->params) > 0) { + $pParamXML = new XMLBranch("p"); + //$pParamXML->setTagAttribute("class", "param"); + $paramTitleXML = new XMLBranch("span"); + $paramTitleXML->setTagContent("Arguments:"); + $pParamXML->addXMLBranch($paramTitleXML); + $paramListXML = new XMLBranch("ul"); + foreach($method->params as $key => $value) { + $paramItemXML = new XMLBranch("li"); + $paramItemXML->setTagAttribute("class", "param"); + $paramItemXML->setTagContent($key); + $paramListXML->addXMLBranch($paramItemXML); + } + $pParamXML->addXMLBranch($paramListXML); + $bodyXML->addXMLBranch($pParamXML); + } + } + // ---------------------- END ---------------------- // + $classDocXML->addXMLBranch($headXML); + $classDocXML->addXMLBranch($bodyXML); + return $classDocXML->getXMLString(0); + } + else + return false; + } + + /** + * Returns class documentation as a string, formatted in HTML + * @method getClassDocFromFile + * @param string filename + * @returns string HTML-formatted documentation if successful, false otherwise + */ + function getClassDocFromFile($filename) { + if(is_string($filename) && file_exists($filename) && is_readable($filename)) { + $objClass = new PHPClass($filename); + return $this->getClassDocFromClass($objClass); + } + else + return false; + } + +} diff --git a/thirdparty/wizard/org/active-link/doc/Method.php b/thirdparty/wizard/org/active-link/doc/Method.php new file mode 100644 index 000000000..171f49338 --- /dev/null +++ b/thirdparty/wizard/org/active-link/doc/Method.php @@ -0,0 +1,83 @@ +info = array(); + $this->params = array(); + $this->setInfo("name", $name); + } + + /** + * Returns value of a property by name + * @method getInfo + * @param string name + * @returns string value of a property if found, false otherwise + */ + function getInfo($name) { + if(array_key_exists($name, $this->info)) + return $this->info[$name]; + else + return false; + } + + /** + * Sets a property with supplied name to a supplied value + * @method setInfo + * @param string name, string value + * @returns none + */ + function setInfo($name, $value) { + $this->info[$name] = $value; + } + + /** + * Sets a parameter with supplied name and value + * @method setParam + * @param string name, string value + * @returns none + */ + function setParam($name, $value) { + $this->params[$name] = $value; + } + +} diff --git a/thirdparty/wizard/org/active-link/doc/PHPClass.php b/thirdparty/wizard/org/active-link/doc/PHPClass.php new file mode 100644 index 000000000..efaff865f --- /dev/null +++ b/thirdparty/wizard/org/active-link/doc/PHPClass.php @@ -0,0 +1,195 @@ +methods = array(); + $this->properties = array(); + $this->info = array(); + if($filename != "") + $this->parseFromFile($filename); + } + + /** + * Deletes a property by name + * @method deleteInfo + * @param string name + * @returns true if successful, false otherwise + */ + function deleteInfo($name) { + $success = false; + if(array_key_exists($name, $this->info)) { + unset($this->info[$name]); + $success = true; + } + return $success; + } + + /** + * Returns a property value by name + * @method getInfo + * @param string name + * @returns string value if successful, false otherwise + */ + function getInfo($name) { + if(array_key_exists($name, $this->info)) + return $this->info[$name]; + else + return false; + } + + /** + * Parses a class from supplied filename + * @method parseFromFile + * @param string filename + * @returns true if successful, false otherwise + */ + function parseFromFile($filename) { + $success = false; + if(file_exists($filename) && is_readable($filename)) { + $arrContents = file($filename); + $parsing = false; + $parsingBlocks = array(); + $tempBlock = array(); + foreach($arrContents as $line) { + if(trim($line) == "/**") { + $parsing = true; + $blockstart = true; + } + elseif($parsing && trim($line) == "*/") { + $parsing = false; + $parsingBlocks[] = $tempBlock; + $tempBlock = array(); + } + else { + if($parsing) { + if($blockstart) { + $tempBlock[] = $line; + $blockstart = false; + } + else { + $tempBlock[] = $line; + } + } + } + } + foreach($parsingBlocks as $blockLines) { + $block = array(); + foreach($blockLines as $line) { + $str = strstr($line, "@"); + $str = substr($str, 1); + if($str !== false) { + $separatorPos = (strpos($str, " ") && strpos($str, "\t")) ? min(strpos($str, " "), strpos($str, "\t")) : (strpos($str, " ") ? strpos($str, " ") : (strpos($str, "\t") ? strpos($str, "\t") : strlen($str))); + $name = trim(substr($str, 0, $separatorPos)); + $value = trim(substr($str, $separatorPos)); + } + else { + $name = "description"; + $value = trim($line); + } + if($name == "param" || $name == "description") + $block[$name][] = $value; + else + $block[$name] = $value; + } + //print("
");
+				//print_r($block);
+				//print("
"); + if(array_key_exists("method", $block)) { + $tempMethod = new Method($block["method"]); + unset($block["method"]); + if(isset($block["param"]) && is_array($block["param"])) { + foreach($block["param"] as $param) { + $tempMethod->setParam($param, ""); + } + } + unset($block["param"]); + foreach($block as $name => $value) { + $tempMethod->setInfo($name, $value); + } + $this->setMethod($tempMethod); + } + elseif(array_key_exists("class", $block)) { + $this->setInfo("name", $block["class"]); + unset($block["class"]); + foreach($block as $name => $value) { + $this->setInfo($name, $value); + } + } + } + $success = true; + } + return $success; + } + + /** + * Sets a property by name + * @method setInfo + * @param string name, string value + * @returns none + */ + function setInfo($name, $value) { + $this->info[$name] = $value; + } + + /** + * Adds a method to the class definition + * @method setMethod + * @param object method + * @returns true if successful, false otherwise + */ + function setMethod($method) { + $success = false; + if(is_object($method) && get_class($method) == "Method") { + $this->methods[$method->getInfo("name")] = $method; + $success = true; + } + return $success; + } + +} + +?> diff --git a/workflow/engine/src/ProcessMaker/BusinessModel/TriggerWizard.php b/workflow/engine/src/ProcessMaker/BusinessModel/TriggerWizard.php index 6efcf6d02..cb016e231 100644 --- a/workflow/engine/src/ProcessMaker/BusinessModel/TriggerWizard.php +++ b/workflow/engine/src/ProcessMaker/BusinessModel/TriggerWizard.php @@ -353,7 +353,10 @@ class TriggerWizard $library = $this->library->getLibraryDefinition($this->libraryGetLibraryName($libraryName)); $method = $library->methods[$methodName]; - $arrayParameter = array_keys($method->params); + $arrayParameter = []; + if (isset($method->params)) { + $arrayParameter = array_keys($method->params); + } foreach ($arrayParameter as $key => $value) { $strParam = $value; @@ -796,7 +799,7 @@ class TriggerWizard public function getMethod($libraryName, $methodName) { try { - $arrayMethod = array(); + $arrayMethod = []; //Verify data $arrayMethodInputParam = $this->methodGetInputParams($libraryName, $methodName); @@ -805,10 +808,9 @@ class TriggerWizard //Get data $library = $this->library->getLibraryDefinition($this->libraryGetLibraryName($libraryName)); $method = $library->methods[$methodName]; - - $arrayMethod[$this->getFieldNameByFormatFieldName("FN_NAME")] = trim($method->info["name"]); - $arrayMethod[$this->getFieldNameByFormatFieldName("FN_DESCRIPTION")] = trim(str_replace("*", "", implode("", $method->info["description"]))); - $arrayMethod[$this->getFieldNameByFormatFieldName("FN_LABEL")] = trim($method->info["label"]); + $arrayMethod[$this->getFieldNameByFormatFieldName("FN_NAME")] = isset($method->info["name"]) ? trim($method->info["name"]) : ''; + $arrayMethod[$this->getFieldNameByFormatFieldName("FN_DESCRIPTION")] = isset($method->info["description"]) ? trim(str_replace("*", "", implode("", $method->info["description"]))) : ''; + $arrayMethod[$this->getFieldNameByFormatFieldName("FN_LABEL")] = isset($method->info["label"]) ? trim($method->info["label"]) : ''; $arrayMethod[$this->getFieldNameByFormatFieldName("FN_LINK")] = (isset($method->info["link"]) && trim($method->info["link"]) != "")? trim($method->info["link"]) : ""; if ($this->formatFieldNameInUppercase) { @@ -841,7 +843,7 @@ class TriggerWizard public function getLibrary($libraryName) { try { - $arrayLibrary = array(); + $arrayLibrary = []; //Verify data $this->throwExceptionIfNotExistsLibrary($libraryName, $this->arrayFieldNameForException["libraryName"]); @@ -850,12 +852,12 @@ class TriggerWizard $library = $this->library->getLibraryDefinition($this->libraryGetLibraryName($libraryName)); $arrayLibrary[$this->getFieldNameByFormatFieldName("LIB_NAME")] = $libraryName; - $arrayLibrary[$this->getFieldNameByFormatFieldName("LIB_TITLE")] = trim($library->info["name"]); - $arrayLibrary[$this->getFieldNameByFormatFieldName("LIB_DESCRIPTION")] = trim(str_replace("*", "", implode("", $library->info["description"]))); + $arrayLibrary[$this->getFieldNameByFormatFieldName("LIB_TITLE")] = isset($library->info["name"]) ? trim($library->info["name"]) : ''; + $arrayLibrary[$this->getFieldNameByFormatFieldName("LIB_DESCRIPTION")] = isset($library->info["description"]) ? trim(str_replace("*", "", implode("", $library->info["description"]))) : ''; $arrayLibrary[$this->getFieldNameByFormatFieldName("LIB_ICON")] = (isset($library->info["icon"]) && trim($library->info["icon"]) != "")? trim($library->info["icon"]) : "/images/browse.gif"; $arrayLibrary[$this->getFieldNameByFormatFieldName("LIB_CLASS_NAME")] = trim($library->info["className"]); - $arrayMethod = array(); + $arrayMethod = []; if (count($library->methods) > 0) { ksort($library->methods, SORT_STRING); From b12a670f4d97dbd41b3dd658cb300c216e272f76 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luciana=20Nu=C3=B1ez?= Date: Fri, 30 Sep 2022 10:08:06 -0400 Subject: [PATCH 3/8] PMCORE-4012 --- workflow/engine/src/ProcessMaker/Core/System.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/workflow/engine/src/ProcessMaker/Core/System.php b/workflow/engine/src/ProcessMaker/Core/System.php index ed86b10d7..3580f5a17 100644 --- a/workflow/engine/src/ProcessMaker/Core/System.php +++ b/workflow/engine/src/ProcessMaker/Core/System.php @@ -1517,12 +1517,13 @@ class System //Test Create Database $dbNameTest = 'PROCESSMAKERTESTDC'; - $result = DB::connection($connection)->statement("CREATE DATABASE $dbNameTest"); + $result = DB::connection($connection)->statement("CREATE DATABASE IF NOT EXISTS $dbNameTest"); if ($result) { //Test set permissions user $usrTest = self::generateUserName(strlen($userName)); $passTest = '!Sample123_'; - $result = DB::connection($connection)->statement("GRANT ALL PRIVILEGES ON `$dbNameTest`.* TO $usrTest@'%%' IDENTIFIED BY '$passTest' WITH GRANT OPTION"); + $result = DB::connection($connection)->statement("CREATE USER `$usrTest`@`%%` IDENTIFIED BY '$passTest'"); + $result = DB::connection($connection)->statement("GRANT ALL PRIVILEGES ON `$dbNameTest`.* TO `$usrTest`@`%%`"); if ($result) { //Test Create user From 5e89c2b66713868b71c3d7d853e3b8d4a65156fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luciana=20Nu=C3=B1ez?= Date: Fri, 30 Sep 2022 13:08:19 -0400 Subject: [PATCH 4/8] PMCORE-4009 --- workflow/engine/xmlform/tracker/loginpm3.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) mode change 100644 => 100755 workflow/engine/xmlform/tracker/loginpm3.html diff --git a/workflow/engine/xmlform/tracker/loginpm3.html b/workflow/engine/xmlform/tracker/loginpm3.html old mode 100644 new mode 100755 index 9808031de..12cc6239d --- a/workflow/engine/xmlform/tracker/loginpm3.html +++ b/workflow/engine/xmlform/tracker/loginpm3.html @@ -6,7 +6,7 @@ - {$form.USR_USERNAME} + {if isset($form.USR_USERNAME)}{$form.USR_USERNAME}{/if} {$form.CASE} {$form.PIN} From b5cfebfed12a18e6f1814eb5fe3bca6992bf75e9 Mon Sep 17 00:00:00 2001 From: Paula Quispe Date: Fri, 30 Sep 2022 15:02:26 -0400 Subject: [PATCH 5/8] PMCORE-4015 --- .../engine/classes/model/AdditionalTables.php | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/workflow/engine/classes/model/AdditionalTables.php b/workflow/engine/classes/model/AdditionalTables.php index 431e5fe0d..316772fe0 100644 --- a/workflow/engine/classes/model/AdditionalTables.php +++ b/workflow/engine/classes/model/AdditionalTables.php @@ -396,11 +396,24 @@ class AdditionalTables extends BaseAdditionalTables } } - public function getAllData($sUID, $start = null, $limit = null, $keyOrderUppercase = true, $filter = '', $appUid = false, $search = '') + /** + * Get all data + * + * @param string $uid + * @param int $start + * @param int $limit + * @param bool $keyOrderUppercase + * @param string $filter + * @param bool $appUid + * @param string $search + * + * @return array + */ + public static function getAllData($uid, $start = null, $limit = null, $keyOrderUppercase = true, $filter = '', $appUid = false, $search = '') { $conf = Bootstrap::getSystemConfiguration(); $addTab = new AdditionalTables(); - $aData = $addTab->load($sUID, true); + $aData = $addTab->load($uid, true); if (!isset($_SESSION['PROCESS'])) { $_SESSION["PROCESS"] = $aData['PRO_UID']; } From b3dc075f0fc7d948ae3c979295c8e05f93f3b4f8 Mon Sep 17 00:00:00 2001 From: Martin Laguna Date: Fri, 30 Sep 2022 16:46:08 -0400 Subject: [PATCH 6/8] Fixed Case Notes --- resources/assets/js/home/CaseDetail.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/assets/js/home/CaseDetail.vue b/resources/assets/js/home/CaseDetail.vue index e5ce9b493..e755d46c7 100755 --- a/resources/assets/js/home/CaseDetail.vue +++ b/resources/assets/js/home/CaseDetail.vue @@ -252,7 +252,7 @@ export default { }) ) .then((response) => { - if (response.status === 200 ) { + if (response.status === 200 || response.status === 201) { that.attachDocuments = false; that.dataAttachedDocuments.items = []; that.getCasesNotes(); From 9ee1e67a31f6be33339face94a10e3f5b4dd7681 Mon Sep 17 00:00:00 2001 From: Paula Quispe Date: Mon, 3 Oct 2022 10:21:36 -0400 Subject: [PATCH 7/8] PMCORE-4020 --- workflow/public_html/sysGeneric.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/workflow/public_html/sysGeneric.php b/workflow/public_html/sysGeneric.php index b3187d92d..f97de673f 100644 --- a/workflow/public_html/sysGeneric.php +++ b/workflow/public_html/sysGeneric.php @@ -1132,7 +1132,7 @@ if (!defined('EXECUTE_BY_CRON')) { header('Pragma: '); } - ob_end_flush(); + @ob_end_flush(); if (DEBUG_TIME_LOG) { bootstrap::logTimeByPage(); //log this page } From 061f55552e1630c5b86722a2a349d793dd7d4a4c Mon Sep 17 00:00:00 2001 From: Martin Laguna Date: Mon, 3 Oct 2022 16:32:25 -0400 Subject: [PATCH 8/8] Case Notes fixed for modal window --- resources/assets/js/home/modal/ModalComments.vue | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/resources/assets/js/home/modal/ModalComments.vue b/resources/assets/js/home/modal/ModalComments.vue index e6d6de3a7..434f7f52f 100644 --- a/resources/assets/js/home/modal/ModalComments.vue +++ b/resources/assets/js/home/modal/ModalComments.vue @@ -93,11 +93,10 @@ export default { }) ) .then((response) => { - if (response.status === 200) { + if (response.status === 200 || response.status === 201) { that.attachDocuments = false; that.dataAttachedDocuments.items = []; that.getCasesNotes(); - this.$refs["modal-comments"].hide(); this.$emit("postNotes"); } })