From 84ea1c0cafe90e0185c1fd0caf874821b13c4618 Mon Sep 17 00:00:00 2001 From: davidcallizaya Date: Sun, 4 Jun 2017 12:20:39 -0400 Subject: [PATCH 1/6] HOR-3340 1. Fix error message labels The event with {0}: {1} not is \"Start Event\" 2. Fix error message labels The event with {0}: {1} does not is registered. 3. Custom domain: FQDN does not include protocol and port, include from server. --- .../translations/english/processmaker.en.po | 8 ++-- workflow/engine/data/mysql/insert.sql | 4 +- .../BusinessModel/WebEntryEvent.php | 38 ++++++++++++++----- 3 files changed, 34 insertions(+), 16 deletions(-) diff --git a/workflow/engine/content/translations/english/processmaker.en.po b/workflow/engine/content/translations/english/processmaker.en.po index 92858bd7d..017bcbec5 100644 --- a/workflow/engine/content/translations/english/processmaker.en.po +++ b/workflow/engine/content/translations/english/processmaker.en.po @@ -17836,14 +17836,14 @@ msgstr "Sending a test mail to: {0}" # TRANSLATION # LABEL/ID_EVENT_NOT_IS_START_EVENT #: LABEL/ID_EVENT_NOT_IS_START_EVENT -msgid "The event with {0}: {1} not is \"Start Event\"." -msgstr "The event with {0}: {1} not is \"Start Event\"." +msgid "The event with {0}: {1} is not a \"Start Event\"." +msgstr "The event with {0}: {1} is not a \"Start Event\"." # TRANSLATION # LABEL/ID_WEB_ENTRY_EVENT_DOES_NOT_IS_REGISTERED #: LABEL/ID_WEB_ENTRY_EVENT_DOES_NOT_IS_REGISTERED -msgid "The event with {0}: {1} does not is registered." -msgstr "The event with {0}: {1} does not is registered." +msgid "The event with {0}: {1} is not registered." +msgstr "The event with {0}: {1} is not registered." # TRANSLATION # LABEL/ID_WEB_ENTRY_EVENT_TITLE_ALREADY_EXISTS diff --git a/workflow/engine/data/mysql/insert.sql b/workflow/engine/data/mysql/insert.sql index f7f6545cf..017437ec8 100644 --- a/workflow/engine/data/mysql/insert.sql +++ b/workflow/engine/data/mysql/insert.sql @@ -4480,8 +4480,8 @@ INSERT INTO TRANSLATION (TRN_CATEGORY,TRN_ID,TRN_LANG,TRN_VALUE,TRN_UPDATE_DATE ( 'LABEL','ID_EMAIL_SERVER_TEST_CONNECTION_SENDING_EMAIL','en','Sending a test mail to: {0}','2014-12-24') ; INSERT INTO TRANSLATION (TRN_CATEGORY,TRN_ID,TRN_LANG,TRN_VALUE,TRN_UPDATE_DATE ) VALUES -( 'LABEL','ID_EVENT_NOT_IS_START_EVENT','en','The event with {0}: {1} not is "Start Event".','2015-01-13') , -( 'LABEL','ID_WEB_ENTRY_EVENT_DOES_NOT_IS_REGISTERED','en','The event with {0}: {1} does not is registered.','2015-01-16') , +( 'LABEL','ID_EVENT_NOT_IS_START_EVENT','en','The event with {0}: {1} is not a "Start Event".','2015-01-13') , +( 'LABEL','ID_WEB_ENTRY_EVENT_DOES_NOT_IS_REGISTERED','en','The event with {0}: {1} is not registered.','2015-01-16') , ( 'LABEL','ID_WEB_ENTRY_EVENT_TITLE_ALREADY_EXISTS','en','The WebEntry-Event title with {0}: "{1}" already exists.','2015-01-16') , ( 'LABEL','ID_CASE_STOPPED_TRIGGER','en','The case has not stopped due to its trigger.','2015-01-29') , ( 'LABEL','ID_TRANSLATION_NOT_WRITEABLE','en','The translation file is not writable.
Please give write permission to file:','2015-01-31') , diff --git a/workflow/engine/src/ProcessMaker/BusinessModel/WebEntryEvent.php b/workflow/engine/src/ProcessMaker/BusinessModel/WebEntryEvent.php index ba3b67472..ff1a9ed3c 100644 --- a/workflow/engine/src/ProcessMaker/BusinessModel/WebEntryEvent.php +++ b/workflow/engine/src/ProcessMaker/BusinessModel/WebEntryEvent.php @@ -4,16 +4,19 @@ namespace ProcessMaker\BusinessModel; class WebEntryEvent { private $arrayFieldDefinition = array( - "WEE_UID" => array("type" => "string", "required" => false, "empty" => false, "defaultValues" => array(), "fieldNameAux" => "webEntryEventUid"), + "WEE_UID" => array("type" => "string", "required" => false, "empty" => false, "defaultValues" => array(), "fieldNameAux" => "webEntryEventUid"), - "EVN_UID" => array("type" => "string", "required" => true, "empty" => false, "defaultValues" => array(), "fieldNameAux" => "eventUid"), - "ACT_UID" => array("type" => "string", "required" => true, "empty" => false, "defaultValues" => array(), "fieldNameAux" => "activityUid"), - "DYN_UID" => array("type" => "string", "required" => false, "empty" => true, "defaultValues" => array(), "fieldNameAux" => "dynaFormUid"), - "USR_UID" => array("type" => "string", "required" => false, "empty" => true, "defaultValues" => array(), "fieldNameAux" => "userUid"), + "EVN_UID" => array("type" => "string", "required" => true, "empty" => false, "defaultValues" => array(), "fieldNameAux" => "eventUid"), + "ACT_UID" => array("type" => "string", "required" => true, "empty" => false, "defaultValues" => array(), "fieldNameAux" => "activityUid"), + "DYN_UID" => array("type" => "string", "required" => false, "empty" => true, "defaultValues" => array(), "fieldNameAux" => "dynaFormUid"), + "USR_UID" => array("type" => "string", "required" => false, "empty" => true, "defaultValues" => array(), "fieldNameAux" => "userUid"), - "WEE_TITLE" => array("type" => "string", "required" => false, "empty" => true, "defaultValues" => array(), "fieldNameAux" => "webEntryEventTitle"), - "WEE_DESCRIPTION" => array("type" => "string", "required" => false, "empty" => true, "defaultValues" => array(), "fieldNameAux" => "webEntryEventDescription"), - "WEE_STATUS" => array("type" => "string", "required" => false, "empty" => false, "defaultValues" => array("ENABLED", "DISABLED"), "fieldNameAux" => "webEntryEventStatus") + "WEE_TITLE" => array("type" => "string", "required" => false, "empty" => false, "defaultValues" => array(), "fieldNameAux" => "webEntryEventTitle"), + "WEE_DESCRIPTION" => array("type" => "string", "required" => false, "empty" => true, "defaultValues" => array(), "fieldNameAux" => "webEntryEventDescription"), + "WEE_STATUS" => array("type" => "string", "required" => false, "empty" => false, "defaultValues" => array("ENABLED", "DISABLED"), "fieldNameAux" => "webEntryEventStatus"), + "WE_LINK_SKIN" => array("type" => "string", "required" => false, "empty" => true, "defaultValues" => array(), "fieldNameAux" => "webEntryEventSkin"), + "WE_LINK_LANGUAGE" => array("type" => "string", "required" => false, "empty" => true, "defaultValues" => array(), "fieldNameAux" => "webEntryEventLanguage"), + "WE_LINK_DOMAIN" => array("type" => "string", "required" => false, "empty" => true, "defaultValues" => array(), "fieldNameAux" => "webEntryEventDomain"), ); private $formatFieldNameInUppercase = true; @@ -269,6 +272,15 @@ class WebEntryEvent == 'SINGLE') { $this->arrayFieldDefinition['DYN_UID']['required'] = true; } + if (isset($arrayData['WE_LINK_GENERATION']) && $arrayData['WE_LINK_GENERATION'] + == 'ADVANCED') { + $this->arrayFieldDefinition['WE_LINK_SKIN']['required'] = true; + $this->arrayFieldDefinition['WE_LINK_LANGUAGE']['required'] = true; + $this->arrayFieldDefinition['WE_LINK_DOMAIN']['required'] = true; + $this->arrayFieldDefinition['WE_LINK_SKIN']['empty'] = false; + $this->arrayFieldDefinition['WE_LINK_LANGUAGE']['empty'] = false; + $this->arrayFieldDefinition['WE_LINK_DOMAIN']['empty'] = false; + } $process->throwExceptionIfDataNotMetFieldDefinition($arrayData, $this->arrayFieldDefinition, $this->arrayFieldNameForException, $flagInsert); @@ -1099,14 +1111,20 @@ class WebEntryEvent ) ); } + $http = (\G::is_https()) ? "https://" : "http://"; + $port = $_SERVER['SERVER_PORT'] == '80' ? '' : ':'.$_SERVER['SERVER_PORT']; if ($webEntry->getWeLinkGeneration() === 'ADVANCED') { $domain = $webEntry->getWeLinkDomain(); - $url = $domain . "/sys".SYS_SYS."/". + $hasProtocol = strpos($domain, 'http://') === 0 || + strpos($domain, 'https://') === 0; + $hasPort = preg_match('/\:\d+$/', $domain); + $url = ($hasProtocol ? '' : $http). + $domain.($hasPort ? '' : $port). + "/sys".SYS_SYS."/". $webEntry->getWeLinkLanguage()."/". $webEntry->getWeLinkSkin()."/".$prj_uid; return $url."/".$webEntry->getWeUid().'.php'; } else { - $http = (\G::is_https()) ? "https://" : "http://"; $url = $http.$_SERVER["HTTP_HOST"]."/sys".SYS_SYS."/".SYS_LANG."/".SYS_SKIN."/".$prj_uid; return $url."/".$webEntry->getWeData(); } From ab82f369e68331a3a42663d0c3131406431aa8d3 Mon Sep 17 00:00:00 2001 From: davidcallizaya Date: Sun, 4 Jun 2017 12:42:15 -0400 Subject: [PATCH 2/6] HOR-3340 Validate custom skins and languages. --- .../src/ProcessMaker/BusinessModel/WebEntryEvent.php | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/workflow/engine/src/ProcessMaker/BusinessModel/WebEntryEvent.php b/workflow/engine/src/ProcessMaker/BusinessModel/WebEntryEvent.php index ff1a9ed3c..a089556eb 100644 --- a/workflow/engine/src/ProcessMaker/BusinessModel/WebEntryEvent.php +++ b/workflow/engine/src/ProcessMaker/BusinessModel/WebEntryEvent.php @@ -280,6 +280,18 @@ class WebEntryEvent $this->arrayFieldDefinition['WE_LINK_SKIN']['empty'] = false; $this->arrayFieldDefinition['WE_LINK_LANGUAGE']['empty'] = false; $this->arrayFieldDefinition['WE_LINK_DOMAIN']['empty'] = false; + $modelSkins = new \ProcessMaker\BusinessModel\Skins(); + $skins = []; + foreach ($modelSkins->getSkins() as $mSkin) { + $skins[] = $mSkin['SKIN_FOLDER_ID']; + } + $this->arrayFieldDefinition['WE_LINK_SKIN']['defaultValues'] = $skins; + $modelLanguages = new \ProcessMaker\BusinessModel\Language(); + $languages = []; + foreach ($modelLanguages->getLanguageList() as $mLang) { + $languages[] = $mLang['LANG_ID']; + } + $this->arrayFieldDefinition['WE_LINK_LANGUAGE']['defaultValues'] = $languages; } $process->throwExceptionIfDataNotMetFieldDefinition($arrayData, $this->arrayFieldDefinition, $this->arrayFieldNameForException, $flagInsert); From 479ee817806c1db4da1ee4d77991f53fa5d01cfe Mon Sep 17 00:00:00 2001 From: davidcallizaya Date: Sun, 4 Jun 2017 12:49:38 -0400 Subject: [PATCH 3/6] HOR-3340 5. Change default value of HIDE_INFORMATION_BAR to 1 (To maintain same configuration of webentry1 registers) --- workflow/engine/classes/model/om/BaseWebEntry.php | 4 ++-- workflow/engine/config/schema.xml | 2 +- workflow/engine/data/mysql/schema.sql | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/workflow/engine/classes/model/om/BaseWebEntry.php b/workflow/engine/classes/model/om/BaseWebEntry.php index a1c78ed9f..77821569e 100644 --- a/workflow/engine/classes/model/om/BaseWebEntry.php +++ b/workflow/engine/classes/model/om/BaseWebEntry.php @@ -121,7 +121,7 @@ abstract class BaseWebEntry extends BaseObject implements Persistent * The value for the we_hide_information_bar field. * @var string */ - protected $we_hide_information_bar = '0'; + protected $we_hide_information_bar = '1'; /** * The value for the we_callback field. @@ -816,7 +816,7 @@ abstract class BaseWebEntry extends BaseObject implements Persistent $v = (string) $v; } - if ($this->we_hide_information_bar !== $v || $v === '0') { + if ($this->we_hide_information_bar !== $v || $v === '1') { $this->we_hide_information_bar = $v; $this->modifiedColumns[] = WebEntryPeer::WE_HIDE_INFORMATION_BAR; } diff --git a/workflow/engine/config/schema.xml b/workflow/engine/config/schema.xml index 10dc0c51f..837be11b5 100644 --- a/workflow/engine/config/schema.xml +++ b/workflow/engine/config/schema.xml @@ -3346,7 +3346,7 @@ - + diff --git a/workflow/engine/data/mysql/schema.sql b/workflow/engine/data/mysql/schema.sql index c872e884b..dad4d9cbe 100644 --- a/workflow/engine/data/mysql/schema.sql +++ b/workflow/engine/data/mysql/schema.sql @@ -1664,7 +1664,7 @@ CREATE TABLE `WEB_ENTRY` `WE_TYPE` VARCHAR(8) default 'SINGLE' NOT NULL, `WE_CUSTOM_TITLE` MEDIUMTEXT, `WE_AUTHENTICATION` VARCHAR(14) default 'ANONYMOUS' NOT NULL, - `WE_HIDE_INFORMATION_BAR` CHAR(1) default '0', + `WE_HIDE_INFORMATION_BAR` CHAR(1) default '1', `WE_CALLBACK` VARCHAR(13) default 'PROCESSMAKER' NOT NULL, `WE_CALLBACK_URL` MEDIUMTEXT, `WE_LINK_GENERATION` VARCHAR(8) default 'DEFAULT' NOT NULL, From 8ecbb89662b28d20b4fcbc50281d925e489b5ed5 Mon Sep 17 00:00:00 2001 From: davidcallizaya Date: Sun, 4 Jun 2017 14:31:39 -0400 Subject: [PATCH 4/6] HOR-3340 Fix WEE_URL getter --- .../BusinessModel/WebEntryEvent.php | 58 ++++++++++++++----- 1 file changed, 44 insertions(+), 14 deletions(-) diff --git a/workflow/engine/src/ProcessMaker/BusinessModel/WebEntryEvent.php b/workflow/engine/src/ProcessMaker/BusinessModel/WebEntryEvent.php index a089556eb..299e20540 100644 --- a/workflow/engine/src/ProcessMaker/BusinessModel/WebEntryEvent.php +++ b/workflow/engine/src/ProcessMaker/BusinessModel/WebEntryEvent.php @@ -904,14 +904,13 @@ class WebEntryEvent public function getWebEntryEventDataFromRecord(array $record) { try { - if ( - (!isset($record['WE_LINK_GENERATION']) || $record['WE_LINK_GENERATION']==='DEFAULT') - && $record["WEE_WE_UID"] . "" != "" - ) { - $http = (\G::is_https())? "https://" : "http://"; - $url = $http . $_SERVER["HTTP_HOST"] . "/sys" . SYS_SYS . "/" . SYS_LANG . "/" . SYS_SKIN . "/" . $record["PRJ_UID"]; - - $record["WEE_WE_URL"] = $url . "/" . $record["WEE_WE_URL"]; + if ($record["WEE_WE_UID"]."" != "") { + $record["WEE_WE_URL"] = $this->getGeneratedLink( + $record["WEE_UID"], $record["PRJ_UID"], + $record["WE_LINK_GENERATION"], $record["WE_LINK_DOMAIN"], + $record["WE_LINK_LANGUAGE"], $record["WE_LINK_SKIN"], + $record["WEE_WE_URL"] + ); } return array( @@ -1123,22 +1122,53 @@ class WebEntryEvent ) ); } + return $this->getGeneratedLink( + $webEntry->getWeUid(), + $prj_uid, + $webEntry->getWeLinkGeneration(), + $webEntry->getWeLinkDomain(), + $webEntry->getWeLinkLanguage(), + $webEntry->getWeLinkSkin(), + $webEntry->getWeData() + ); + } + + /** + * Get the WebEntry URL. + * + * @param string $weUid + * @param string $weLinkGeneration + * @param string $weLinkDomain + * @param string $weLinkLanguage + * @param string $weLinkSkin + * @param string $weData + * @return string + */ + private function getGeneratedLink( + $weUid, + $prj_uid, + $weLinkGeneration, + $weLinkDomain, + $weLinkLanguage, + $weLinkSkin, + $weData + ) { $http = (\G::is_https()) ? "https://" : "http://"; $port = $_SERVER['SERVER_PORT'] == '80' ? '' : ':'.$_SERVER['SERVER_PORT']; - if ($webEntry->getWeLinkGeneration() === 'ADVANCED') { - $domain = $webEntry->getWeLinkDomain(); + if ($weLinkGeneration === 'ADVANCED') { + $domain = $weLinkDomain; $hasProtocol = strpos($domain, 'http://') === 0 || strpos($domain, 'https://') === 0; $hasPort = preg_match('/\:\d+$/', $domain); $url = ($hasProtocol ? '' : $http). $domain.($hasPort ? '' : $port). "/sys".SYS_SYS."/". - $webEntry->getWeLinkLanguage()."/". - $webEntry->getWeLinkSkin()."/".$prj_uid; - return $url."/".$webEntry->getWeUid().'.php'; + $weLinkLanguage."/". + $weLinkSkin."/".$prj_uid; + return $url."/".$weUid.'.php'; } else { $url = $http.$_SERVER["HTTP_HOST"]."/sys".SYS_SYS."/".SYS_LANG."/".SYS_SKIN."/".$prj_uid; - return $url."/".$webEntry->getWeData(); + return $url."/".$weData; } } } From b82557b086538e54389550951166c7c643caa589 Mon Sep 17 00:00:00 2001 From: davidcallizaya Date: Mon, 5 Jun 2017 15:35:29 -0400 Subject: [PATCH 5/6] HOR-3340 Fixes WE2 --- workflow/engine/methods/webentry/access.php | 37 +++- .../ProcessMaker/BusinessModel/WebEntry.php | 4 +- .../BusinessModel/WebEntryEvent.php | 200 +++++++++--------- 3 files changed, 131 insertions(+), 110 deletions(-) diff --git a/workflow/engine/methods/webentry/access.php b/workflow/engine/methods/webentry/access.php index b25770a58..3c7cd6bbe 100644 --- a/workflow/engine/methods/webentry/access.php +++ b/workflow/engine/methods/webentry/access.php @@ -23,6 +23,8 @@ $webEntryModel = \WebEntryPeer::retrieveByPK($weUid); <?php echo htmlentities($webEntryModel->getWeCustomTitle()); ?> + + getExtJsStylesheets(SYS_SKIN); @@ -91,7 +93,7 @@ $webEntryModel = \WebEntryPeer::retrieveByPK($weUid); - + +
+