diff --git a/workflow/engine/classes/PmDynaform.php b/workflow/engine/classes/PmDynaform.php index 4169c3a10..0cb611a06 100644 --- a/workflow/engine/classes/PmDynaform.php +++ b/workflow/engine/classes/PmDynaform.php @@ -1132,23 +1132,7 @@ class PmDynaform if (!isset($this->fields["APP_DATA"]["__DYNAFORM_OPTIONS"]["PREVIOUS_STEP"])) { $this->fields["APP_DATA"]["__DYNAFORM_OPTIONS"]["PREVIOUS_STEP"] = ""; } - $msg = ""; - if (isset($_SESSION['G_MESSAGE_TYPE']) && isset($_SESSION['G_MESSAGE'])) { - $color = "green"; - if ($_SESSION['G_MESSAGE_TYPE'] === "ERROR") { - $color = "red"; - } - if ($_SESSION['G_MESSAGE_TYPE'] === "WARNING") { - $color = "#C3C380"; - } - if ($_SESSION['G_MESSAGE_TYPE'] === "INFO") { - $color = "green"; - } - $msg = "
" . $_SESSION['G_MESSAGE_TYPE'] . ": " . $_SESSION['G_MESSAGE'] . "
"; - unset($_SESSION['G_MESSAGE_TYPE']); - unset($_SESSION['G_MESSAGE']); - } - $title = $msg . + $title = $this->getSessionMessage() . "\n" . " \n" . " \n" . @@ -1199,19 +1183,8 @@ class PmDynaform public function printEditSupervisor() { ob_clean(); - $json = G::json_decode($this->record["DYN_CONTENT"]); $this->jsonr($json); - - $msg = ""; - - if (isset($_SESSION["G_MESSAGE_TYPE"]) && isset($_SESSION["G_MESSAGE"])) { - $msg = "
" . G::LoadTranslation("ID_INFO") . ": " . $_SESSION["G_MESSAGE"] . "
"; - - unset($_SESSION["G_MESSAGE_TYPE"]); - unset($_SESSION["G_MESSAGE"]); - } - $javascrip = " - -
- $msg + " . $this->getSessionMessageForSupervisor() . "
@@ -1323,6 +1294,7 @@ class PmDynaform $this->getTheStringVariableForGoogleMaps() . "\n" . "\n" . "\n" . + $this->getSessionMessage() . "
\n" . " \n" . " \n" . @@ -2238,4 +2210,53 @@ class PmDynaform $result = 'var googleMaps = ' . G::json_encode($googleMaps) . ';'; return $result; } + + /** + * Get session message. + * + * @return string + * + * @see PmDynaform->printEdit() + * @see PmDynaform->printABE() + * @link https://wiki.processmaker.com/3.1/Multiple_File_Uploader#File_Extensions + */ + public function getSessionMessage() + { + $message = ""; + if (isset($_SESSION['G_MESSAGE_TYPE']) && isset($_SESSION['G_MESSAGE'])) { + $color = "green"; + if ($_SESSION['G_MESSAGE_TYPE'] === "ERROR") { + $color = "red"; + } + if ($_SESSION['G_MESSAGE_TYPE'] === "WARNING") { + $color = "#C3C380"; + } + if ($_SESSION['G_MESSAGE_TYPE'] === "INFO") { + $color = "green"; + } + $message = "
" . $_SESSION['G_MESSAGE_TYPE'] . ": " . $_SESSION['G_MESSAGE'] . "
"; + unset($_SESSION['G_MESSAGE_TYPE']); + unset($_SESSION['G_MESSAGE']); + } + return $message; + } + + /** + * Get session message for supervisor. + * + * @return string + * + * @see PmDynaform->printEditSupervisor(); + * @link https://wiki.processmaker.com/3.1/Multiple_File_Uploader#File_Extensions + */ + public function getSessionMessageForSupervisor() + { + $message = ""; + if (isset($_SESSION["G_MESSAGE_TYPE"]) && isset($_SESSION["G_MESSAGE"])) { + $message = "
" . G::LoadTranslation("ID_INFO") . ": " . $_SESSION["G_MESSAGE"] . "
"; + unset($_SESSION["G_MESSAGE_TYPE"]); + unset($_SESSION["G_MESSAGE"]); + } + return $message; + } } diff --git a/workflow/engine/methods/cases/cases_SaveData.php b/workflow/engine/methods/cases/cases_SaveData.php index a218bd604..fe69df0c2 100644 --- a/workflow/engine/methods/cases/cases_SaveData.php +++ b/workflow/engine/methods/cases/cases_SaveData.php @@ -50,12 +50,18 @@ if (!isset($_SESSION['USER_LOGGED'])) { } } -ValidationUploadedFiles::getValidationUploadedFiles()->dispatch(function($validator) { +/** + * To do: The following evaluation must be moved after saving the data (so as not to lose the data entered in the form). + * It only remains because it is an old behavior, which must be defined by "Product Owner". + * @see workflow/engine/methods/services/ActionsByEmailDataFormPost.php + */ +$validator = ValidationUploadedFiles::getValidationUploadedFiles()->runRulesForFileEmpty(); +if ($validator->fails()) { G::SendMessageText($validator->getMessage(), "ERROR"); $url = explode("sys" . config("system.workspace"), $_SERVER['HTTP_REFERER']); G::header("location: " . "/sys" . config("system.workspace") . $url[1]); die(); -}); +} try { if ($_GET['APP_UID'] !== $_SESSION['APPLICATION']) { diff --git a/workflow/engine/methods/services/ActionsByEmailDataFormPost.php b/workflow/engine/methods/services/ActionsByEmailDataFormPost.php index 1b0c83c09..32198a3d8 100644 --- a/workflow/engine/methods/services/ActionsByEmailDataFormPost.php +++ b/workflow/engine/methods/services/ActionsByEmailDataFormPost.php @@ -5,11 +5,26 @@ * @link https://wiki.processmaker.com/3.3/Actions_by_Email#Link_to_Fill_a_Form */ -use ProcessMaker\ChangeLog\ChangeLog; use ProcessMaker\BusinessModel\Cases\InputDocument; +use ProcessMaker\ChangeLog\ChangeLog; +use ProcessMaker\Validation\ValidationUploadedFiles; if (PMLicensedFeatures::getSingleton() ->verifyfeature('zLhSk5TeEQrNFI2RXFEVktyUGpnczV1WEJNWVp6cjYxbTU3R29mVXVZNWhZQT0=')) { + + /** + * To do: The following evaluation must be moved after saving the data (so as not to lose the data entered in the form). + * It only remains because it is an old behavior, which must be defined by "Product Owner". + * @see workflow/engine/methods/cases/cases_SaveData.php + */ + $validator = ValidationUploadedFiles::getValidationUploadedFiles()->runRulesForFileEmpty(); + if ($validator->fails()) { + G::SendMessageText($validator->getMessage(), "ERROR"); + $url = explode("sys" . config("system.workspace"), $_SERVER['HTTP_REFERER']); + G::header("location: " . "/sys" . config("system.workspace") . $url[1]); + die(); + } + $G_PUBLISH = new Publisher(); try {
" . G::LoadTranslation('ID_CASE') . " #: " . $this->fields["APP_NUMBER"] . "     " . G::LoadTranslation('ID_TITLE') . ": " . $this->fields["APP_TITLE"] . "