diff --git a/workflow/engine/classes/class.dashletProcessMakerEnterprise.php b/workflow/engine/classes/class.dashletProcessMakerEnterprise.php index edc7347f2..7411c6067 100644 --- a/workflow/engine/classes/class.dashletProcessMakerEnterprise.php +++ b/workflow/engine/classes/class.dashletProcessMakerEnterprise.php @@ -115,18 +115,6 @@ class dashletProcessMakerEnterprise implements DashletInterface
-
- -
-
- Custom Case List Builder -
- Allows an admin to setup custom column views inside a user's cases boxes (inbox, draft, sent, etc).  Information from report tables or Dynaforms can then be displayed in the columns making the inbox experience more relevent and useful to the user. -
- Read More>> -
-
-
diff --git a/workflow/engine/classes/class.license.app.php b/workflow/engine/classes/class.license.app.php index d46d57fc2..1594fddb7 100644 --- a/workflow/engine/classes/class.license.app.php +++ b/workflow/engine/classes/class.license.app.php @@ -420,9 +420,11 @@ class license_application extends padl $DATA = $this->_unwrap_license($dat_str); if (is_array($DATA)) { # missing / incorrect id therefore it has been tampered with - if ($DATA['ID'] != G::encryptOld($this->ID1)) { + /* + *Disable to accept licenses from other workspaces + *if ($DATA['ID'] != G::encryptOld($this->ID1)) { $DATA['RESULT'] = 'CORRUPT'; - } + }*/ if ($this->USE_TIME) { # the license is being used before it's official start if ($DATA['DATE']['START'] > time() + $this->START_DIF) { diff --git a/workflow/engine/classes/class.pluginRegistry.php b/workflow/engine/classes/class.pluginRegistry.php index e6f77843f..b62e6c6e2 100755 --- a/workflow/engine/classes/class.pluginRegistry.php +++ b/workflow/engine/classes/class.pluginRegistry.php @@ -429,8 +429,8 @@ class PMPluginRegistry $plugins = array (); $namePlugin = array (); foreach ($files as $f) { - //if (preg_match("/^([\w\.]*).ini$/", $f["filename"], $matches)) { - if (preg_match( "/^(.*pluginConfig)\.ini$/", $f["filename"], $matches )) { + if (preg_match("/^([\w\.]*).ini$/", $f["filename"], $matches)) { + //if (preg_match( "/^(.*pluginConfig)\.ini$/", $f["filename"], $matches )) { $plugins[] = $matches[1]; } if (preg_match( "/^.*($pluginName)\.php$/", $f["filename"], $matches )) { @@ -485,7 +485,6 @@ class PMPluginRegistry */ $res = $tar->extract( PATH_PLUGINS ); - if (! file_exists( PATH_PLUGINS . $pluginFile )) { throw (new Exception( "File \"$pluginFile\" doesn't exist" )); } diff --git a/workflow/engine/classes/class.pmFunctions.php b/workflow/engine/classes/class.pmFunctions.php index 161266c10..1bd11272c 100755 --- a/workflow/engine/classes/class.pmFunctions.php +++ b/workflow/engine/classes/class.pmFunctions.php @@ -2820,7 +2820,7 @@ function PMFAddCaseNote($caseUid, $processUid, $taskUid, $userUid, $note, $sendM function PMFAddAttachmentToArray($arrayData, $index, $value, $suffix = " Copy({i})") { if (isset($suffix) && $suffix == "") { - $suffix = " Copy ({i})"; + $suffix = " Copy({i})"; } $newIndex = $index; diff --git a/workflow/engine/classes/class.wsBase.php b/workflow/engine/classes/class.wsBase.php index feb329ecb..ea7aa685b 100755 --- a/workflow/engine/classes/class.wsBase.php +++ b/workflow/engine/classes/class.wsBase.php @@ -1187,7 +1187,7 @@ class wsBase $mktimeDueDate = 0; - if (! empty( $dueDate )) { + if (! empty( $dueDate ) && $dueDate != 'null' && $dueDate) { if (! preg_match( "/^(\d{4})-(\d{2})-(\d{2})$/", $dueDate, $arrayMatch )) { $result = new wsCreateUserResponse( - 1, G::loadTranslation( "ID_INVALID_DATA" ) . " $dueDate", null ); @@ -1199,7 +1199,7 @@ class wsBase $mktimeDueDate = mktime( 0, 0, 0, date( "m" ), date( "d" ), date( "Y" ) + 1 ); } - if (! empty( $status )) { + if (! empty( $status ) && $status != 'null' && $status) { if ($status != "ACTIVE" && $status != "INACTIVE" && $status != "VACATION") { $result = new wsCreateUserResponse( - 1, G::loadTranslation( "ID_INVALID_DATA" ) . " $status", null ); diff --git a/workflow/engine/classes/model/AddonsStore.php b/workflow/engine/classes/model/AddonsStore.php index 36e38a3e3..ed3992ffb 100644 --- a/workflow/engine/classes/model/AddonsStore.php +++ b/workflow/engine/classes/model/AddonsStore.php @@ -41,7 +41,7 @@ class AddonsStore extends BaseAddonsStore $criteria = new Criteria(AddonsStorePeer::DATABASE_NAME); $criteria->addSelectColumn("*"); $criteria->add(AddonsStorePeer::STORE_TYPE, "license", Criteria::EQUAL); - //$criteria->add(AddonsStorePeer::STORE_ID, $licenseManager->id, Criteria::NOT_EQUAL); + $criteria->add(AddonsStorePeer::STORE_ID, $licenseManager->id, Criteria::NOT_EQUAL); foreach (AddonsStorePeer::doSelect($criteria) as $store) { $store->clear(); diff --git a/workflow/engine/classes/model/Dashboard.php b/workflow/engine/classes/model/Dashboard.php index fb38e1778..cef1366e1 100644 --- a/workflow/engine/classes/model/Dashboard.php +++ b/workflow/engine/classes/model/Dashboard.php @@ -35,9 +35,10 @@ class Dashboard extends BaseDashboard try { if (!isset($data['DAS_UID'])) { + + $dashboard = new Dashboard(); $data['DAS_UID'] = G::generateUniqueID(); $data['DAS_CREATE_DATE'] = date('Y-m-d H:i:s'); - $dashboard = new Dashboard(); $msg = 'Create '; } else { $msg = 'Update '; @@ -46,8 +47,11 @@ class Dashboard extends BaseDashboard G::LoadSystem('inputfilter'); $filter = new InputFilter(); + if (isset($data['DAS_TITLE'])) { + $data['DAS_TITLE'] = $filter ->validateInput($data['DAS_TITLE'], "string"); + } + $data['DAS_UPDATE_DATE'] = date('Y-m-d H:i:s'); - $data['DAS_TITLE'] = $filter ->validateInput($data['DAS_TITLE'], "string"); $dashboard->fromArray($data, BasePeer::TYPE_FIELDNAME); if ($dashboard->validate()) { $connection->begin(); diff --git a/workflow/engine/src/ProcessMaker/BusinessModel/ProcessMap.php b/workflow/engine/src/ProcessMaker/BusinessModel/ProcessMap.php index 7685d656b..f3f13a078 100644 --- a/workflow/engine/src/ProcessMaker/BusinessModel/ProcessMap.php +++ b/workflow/engine/src/ProcessMaker/BusinessModel/ProcessMap.php @@ -100,7 +100,7 @@ class ProcessMap $tmpData[2] = $laneset['bou_y']; $tmpData[3] = $laneset['bou_width']; $tmpData[4] = $laneset['bou_height']; - $tmpData[5] = $laneset['dat_type']; + //$tmpData[5] = $laneset['dat_type']; $tmpData[6] = $laneset['lns_name']; $tmpData[7] = ""; $tmpData[8] = $laneset['lns_uid']; @@ -399,7 +399,7 @@ class ProcessMap $tt = explode('_', $figure[7]); $this->print_text($img, $figure[6], 10, 90, $black, $font, $X1, $Y1, $X2, $Y2, $figure[0], $tt[0]); } else { - $this->print_text($img, $figure[6], 10, 90, $black, $font, $X1, $Y1, $X2, $Y2, $figure[0], $figure[5]); + $this->print_text($img, $figure[6], 10, 90, $black, $font, $X1, $Y1, $X2, $Y2, $figure[0]); } break; case 'bpmnLane': diff --git a/workflow/engine/templates/admin/uxUsersList.js b/workflow/engine/templates/admin/uxUsersList.js index d707bf816..7d4a4472f 100755 --- a/workflow/engine/templates/admin/uxUsersList.js +++ b/workflow/engine/templates/admin/uxUsersList.js @@ -35,7 +35,7 @@ Ext.onReady(function(){ ctCls:'pm_search_text_field', allowBlank: true, width: 150, - emptyText: _('ID_ENTER_SEARCH_TERM'),//'enter search term', + emptyText: _('ID_EMPTY_SEARCH'),//'enter search term', listeners: { specialkey: function(f,e){ if (e.getKey() == e.ENTER) { @@ -353,7 +353,7 @@ Ext.onReady(function(){ ctCls:'pm_search_text_field', allowBlank: true, width: 150, - emptyText: _('ID_ENTER_SEARCH_TERM'),//'enter search term', + emptyText: _('ID_EMPTY_SEARCH'),//'enter search term', listeners: { specialkey: function(f,e){ if (e.getKey() == e.ENTER) { diff --git a/workflow/engine/templates/app/main.js b/workflow/engine/templates/app/main.js index 70fdbb402..e1995d6cd 100644 --- a/workflow/engine/templates/app/main.js +++ b/workflow/engine/templates/app/main.js @@ -213,13 +213,18 @@ function openCaseNotesWindow(appUid1, delIndex, modalSw, appTitle, proUid, taskU growMin: 40, growMax: 80, maxLengthText : 500, - allowBlank :true, + allowBlank :false, selectOnFocus :true, enableKeyEvents: true, listeners : { scope : this, keyup : updateTextCtr, - keydown: updateTextCtr + keydown: updateTextCtr, + 'change': function(field, newVal, oldVal){ + var textAreaValue = newVal.replace(/^\s+/,'').replace(/\s+$/,''); + field.setValue(textAreaValue.trim()); + Ext.getCmp('caseNoteText').focus(false, 200); + } } }) ], diff --git a/workflow/engine/templates/authSources/authSourcesList.js b/workflow/engine/templates/authSources/authSourcesList.js index 1a3116a9f..f4a9c434c 100755 --- a/workflow/engine/templates/authSources/authSourcesList.js +++ b/workflow/engine/templates/authSources/authSourcesList.js @@ -107,7 +107,7 @@ Ext.onReady(function(){ ctCls:'pm_search_text_field', allowBlank: true, width: 150, - emptyText: _('ID_ENTER_SEARCH_TERM'),//'enter search term', + emptyText: _('ID_EMPTY_SEARCH'),//'enter search term', listeners: { specialkey: function(f,e){ if (e.getKey() == e.ENTER) { diff --git a/workflow/engine/templates/cases/casesSchedulerLog.js b/workflow/engine/templates/cases/casesSchedulerLog.js index f227d49f1..ff231fe6d 100755 --- a/workflow/engine/templates/cases/casesSchedulerLog.js +++ b/workflow/engine/templates/cases/casesSchedulerLog.js @@ -61,7 +61,7 @@ Ext.onReady(function(){ ctCls:'pm_search_text_field', allowBlank: true, width: 150, - emptyText: _('ID_ENTER_SEARCH_TERM'),//'enter search term', + emptyText: _('ID_EMPTY_SEARCH'),//'enter search term', listeners: { specialkey: function(f,e){ if (e.getKey() == e.ENTER) { diff --git a/workflow/engine/templates/emailServer/emailServer.js b/workflow/engine/templates/emailServer/emailServer.js index b9cdd52ea..540afe30b 100644 --- a/workflow/engine/templates/emailServer/emailServer.js +++ b/workflow/engine/templates/emailServer/emailServer.js @@ -932,7 +932,7 @@ emailServer.application = { var txtSearch = new Ext.form.TextField({ id: "txtSearch", - emptyText: _("ID_ENTER_SEARCH_TERM"), + emptyText: _("ID_EMPTY_SEARCH"), width: 150, allowBlank: true, diff --git a/workflow/engine/templates/enterprise/addonsStore.js b/workflow/engine/templates/enterprise/addonsStore.js index 898899bb1..c181c1422 100644 --- a/workflow/engine/templates/enterprise/addonsStore.js +++ b/workflow/engine/templates/enterprise/addonsStore.js @@ -472,7 +472,8 @@ Ext.onReady(function() { method: "POST" }), baseParams: { - "action": "addonsList" + "action": "addonsList", + "force" : true }, //url: "addonsStoreAction?action=addonsList", diff --git a/workflow/engine/templates/groups/groupsList.js b/workflow/engine/templates/groups/groupsList.js index 1b38439bc..c4cb48656 100755 --- a/workflow/engine/templates/groups/groupsList.js +++ b/workflow/engine/templates/groups/groupsList.js @@ -107,7 +107,7 @@ Ext.onReady(function(){ ctCls:'pm_search_text_field', allowBlank: true, width: 150, - emptyText: _('ID_ENTER_SEARCH_TERM'), + emptyText: _('ID_EMPTY_SEARCH'), listeners: { specialkey: function(f,e){ if (e.getKey() == e.ENTER) { diff --git a/workflow/engine/templates/pmTables/data.js b/workflow/engine/templates/pmTables/data.js index 2f2b045d4..e117afd78 100755 --- a/workflow/engine/templates/pmTables/data.js +++ b/workflow/engine/templates/pmTables/data.js @@ -90,7 +90,7 @@ Ext.onReady(function(){ ctCls:'pm_search_text_field', allowBlank: true, width: 150, - emptyText: _('ID_ENTER_SEARCH_TERM'), + emptyText: _('ID_EMPTY_SEARCH'), listeners: { specialkey: function(f,e){ if (e.getKey() == e.ENTER) { diff --git a/workflow/engine/templates/pmTables/edit.js b/workflow/engine/templates/pmTables/edit.js index 9c8fc1620..204b9aa3a 100644 --- a/workflow/engine/templates/pmTables/edit.js +++ b/workflow/engine/templates/pmTables/edit.js @@ -568,7 +568,7 @@ Ext.onReady(function(){ ctCls:'pm_search_text_field', allowBlank: true, width: 110, - emptyText: _('ID_ENTER_SEARCH_TERM'), + emptyText: _('ID_EMPTY_SEARCH'), listeners: { specialkey: function(f,e){ if (e.getKey() == e.ENTER) { @@ -583,7 +583,7 @@ Ext.onReady(function(){ ctCls:'pm_search_text_field', allowBlank: true, width: 110, - emptyText: _('ID_ENTER_SEARCH_TERM'), + emptyText: _('ID_EMPTY_SEARCH'), listeners: { specialkey: function(f,e){ if (e.getKey() == e.ENTER) { diff --git a/workflow/engine/templates/pmTables/editReport.js b/workflow/engine/templates/pmTables/editReport.js index 9ebf235ec..0a4e678ab 100755 --- a/workflow/engine/templates/pmTables/editReport.js +++ b/workflow/engine/templates/pmTables/editReport.js @@ -172,7 +172,7 @@ Ext.onReady(function(){ ctCls:'pm_search_text_field', allowBlank: true, width: 220, - emptyText: _('ID_ENTER_SEARCH_TERM'), + emptyText: _('ID_EMPTY_SEARCH'), listeners: { specialkey: function(f,e){ if (e.getKey() == e.ENTER) { @@ -696,7 +696,7 @@ function validateFieldSizeAutoincrement(valueType, defaultValue) { ctCls:'pm_search_text_field', allowBlank: true, width: 110, - emptyText: _('ID_ENTER_SEARCH_TERM'), + emptyText: _('ID_EMPTY_SEARCH'), listeners: { specialkey: function(f,e){ if (e.getKey() == e.ENTER) { @@ -711,7 +711,7 @@ function validateFieldSizeAutoincrement(valueType, defaultValue) { ctCls:'pm_search_text_field', allowBlank: true, width: 110, - emptyText: _('ID_ENTER_SEARCH_TERM'), + emptyText: _('ID_EMPTY_SEARCH'), listeners: { specialkey: function(f,e){ if (e.getKey() == e.ENTER) { diff --git a/workflow/engine/templates/pmTables/list.js b/workflow/engine/templates/pmTables/list.js index 6f614f9f2..c3d8c44c7 100755 --- a/workflow/engine/templates/pmTables/list.js +++ b/workflow/engine/templates/pmTables/list.js @@ -164,7 +164,7 @@ Ext.onReady(function(){ ctCls:'pm_search_text_field', allowBlank: true, width: 150, - emptyText: _('ID_ENTER_SEARCH_TERM'), + emptyText: _('ID_EMPTY_SEARCH'), listeners: { specialkey: function(f,e){ if (e.getKey() == e.ENTER) { diff --git a/workflow/engine/templates/processCategory/processCategoryList.js b/workflow/engine/templates/processCategory/processCategoryList.js index b3de47df1..0c002a44c 100755 --- a/workflow/engine/templates/processCategory/processCategoryList.js +++ b/workflow/engine/templates/processCategory/processCategoryList.js @@ -100,7 +100,7 @@ Ext.onReady(function(){ ctCls:'pm_search_text_field', allowBlank: true, width: 150, - emptyText: _('ID_ENTER_SEARCH_TERM'),//'enter search term', + emptyText: _('ID_EMPTY_SEARCH'),//'enter search term', listeners: { specialkey: function(f,e){ if (e.getKey() == e.ENTER) { diff --git a/workflow/engine/templates/processes/main.js b/workflow/engine/templates/processes/main.js index ecd208b4d..d81878208 100755 --- a/workflow/engine/templates/processes/main.js +++ b/workflow/engine/templates/processes/main.js @@ -360,7 +360,7 @@ Ext.onReady(function(){ ctCls:'pm_search_text_field', allowBlank: true, width: 150, - emptyText: _('ID_ENTER_SEARCH_TERM'),//'enter search term', + emptyText: _('ID_EMPTY_SEARCH'),//'enter search term', listeners: { specialkey: function(f,e){ if (e.getKey() == e.ENTER) { diff --git a/workflow/engine/templates/reportTables/edit.js b/workflow/engine/templates/reportTables/edit.js index 028940566..85c11acf7 100755 --- a/workflow/engine/templates/reportTables/edit.js +++ b/workflow/engine/templates/reportTables/edit.js @@ -367,7 +367,7 @@ Ext.onReady(function(){ ctCls:'pm_search_text_field', allowBlank: true, width: 110, - emptyText: _('ID_ENTER_SEARCH_TERM'), + emptyText: _('ID_EMPTY_SEARCH'), listeners: { specialkey: function(f,e){ if (e.getKey() == e.ENTER) { @@ -382,7 +382,7 @@ Ext.onReady(function(){ ctCls:'pm_search_text_field', allowBlank: true, width: 110, - emptyText: _('ID_ENTER_SEARCH_TERM'), + emptyText: _('ID_EMPTY_SEARCH'), listeners: { specialkey: function(f,e){ if (e.getKey() == e.ENTER) { diff --git a/workflow/engine/templates/reportTables/main.js b/workflow/engine/templates/reportTables/main.js index 640db905c..f2c625d47 100755 --- a/workflow/engine/templates/reportTables/main.js +++ b/workflow/engine/templates/reportTables/main.js @@ -129,7 +129,7 @@ Ext.onReady(function(){ ctCls:'pm_search_text_field', allowBlank: true, width: 150, - emptyText: _('ID_ENTER_SEARCH_TERM'), + emptyText: _('ID_EMPTY_SEARCH'), listeners: { specialkey: function(f,e){ if (e.getKey() == e.ENTER) { diff --git a/workflow/engine/templates/roles/rolesList.js b/workflow/engine/templates/roles/rolesList.js index a091d306d..1835e5c99 100755 --- a/workflow/engine/templates/roles/rolesList.js +++ b/workflow/engine/templates/roles/rolesList.js @@ -114,7 +114,7 @@ Ext.onReady(function(){ ctCls:'pm_search_text_field', allowBlank: true, width: 150, - emptyText: _('ID_ENTER_SEARCH_TERM'),//'enter search term', + emptyText: _('ID_EMPTY_SEARCH'),//'enter search term', listeners: { specialkey: function(f,e){ if (e.getKey() == e.ENTER) { diff --git a/workflow/engine/templates/services/login_getStarted.html b/workflow/engine/templates/services/login_getStarted.html index a12d0a538..0c565f946 100755 --- a/workflow/engine/templates/services/login_getStarted.html +++ b/workflow/engine/templates/services/login_getStarted.html @@ -101,10 +101,8 @@ Password: {pass}

We suggest you follow our 7 easy videos to automate your workflow. You can see a demo of each step at http://www.processmaker.com/tutorials/

- Other Resources:

- + Other Resources:
PM Wiki - Manuals
- PM Forum - Ask Questions

We hope you enjoy using ProcessMaker. For more information about our enterprise support and consulting services contact us.

diff --git a/workflow/engine/templates/setup/calendarList.js b/workflow/engine/templates/setup/calendarList.js index 37d5bf604..8b617ff30 100755 --- a/workflow/engine/templates/setup/calendarList.js +++ b/workflow/engine/templates/setup/calendarList.js @@ -108,7 +108,7 @@ Ext.onReady(function(){ ctCls:'pm_search_text_field', allowBlank: true, width: 150, - emptyText: _('ID_ENTER_SEARCH_TERM'), + emptyText: _('ID_EMPTY_SEARCH'), listeners: { specialkey: function(f,e){ if (e.getKey() == e.ENTER) { diff --git a/workflow/engine/templates/setup/skinList.js b/workflow/engine/templates/setup/skinList.js index 5f9062b6e..3430de29d 100755 --- a/workflow/engine/templates/setup/skinList.js +++ b/workflow/engine/templates/setup/skinList.js @@ -104,7 +104,7 @@ Ext.onReady(function(){ ctCls:'pm_search_text_field', allowBlank: true, width: 150, - emptyText: _('ID_ENTER_SEARCH_TERM'), + emptyText: _('ID_EMPTY_SEARCH'), listeners: { specialkey: function(f,e){ if (e.getKey() == e.ENTER) { diff --git a/workflow/engine/templates/strategicDashboard/dashboardList.js b/workflow/engine/templates/strategicDashboard/dashboardList.js index a7c6ea72a..9b96258b5 100644 --- a/workflow/engine/templates/strategicDashboard/dashboardList.js +++ b/workflow/engine/templates/strategicDashboard/dashboardList.js @@ -311,7 +311,7 @@ newDashboard = function() { //Edit Dashboard Action editDashboard = function() { var rowSelected = infoGrid.getSelectionModel().getSelected(); - if (rowSelected){ + if (rowSelected && rowSelected.data.DAS_STATUS == 1 ){ location.href = 'formEditDashboard?DAS_UID=' + rowSelected.data.DAS_UID; } }; diff --git a/workflow/engine/templates/users/usersList.js b/workflow/engine/templates/users/usersList.js index 4cb3965fb..a386e9da7 100755 --- a/workflow/engine/templates/users/usersList.js +++ b/workflow/engine/templates/users/usersList.js @@ -140,7 +140,7 @@ Ext.onReady(function(){ ctCls:'pm_search_text_field', allowBlank: true, width: 100, - emptyText: _('ID_ENTER_SEARCH_TERM'),//'enter search term', + emptyText: _('ID_EMPTY_SEARCH'),//'enter search term', listeners: { specialkey: function(f,e){ if (e.getKey() == e.ENTER) { diff --git a/workflow/engine/xmlform/cases/cases_Scheduler_Options.xml b/workflow/engine/xmlform/cases/cases_Scheduler_Options.xml index 9ec9bd11c..dcb9f0e5d 100755 --- a/workflow/engine/xmlform/cases/cases_Scheduler_Options.xml +++ b/workflow/engine/xmlform/cases/cases_Scheduler_Options.xml @@ -12,6 +12,29 @@ diff --git a/workflow/engine/xmlform/dynaforms/dynaforms_Options.xml b/workflow/engine/xmlform/dynaforms/dynaforms_Options.xml index aa1bc25aa..522731663 100755 --- a/workflow/engine/xmlform/dynaforms/dynaforms_Options.xml +++ b/workflow/engine/xmlform/dynaforms/dynaforms_Options.xml @@ -13,6 +13,27 @@ ]]> + \ No newline at end of file diff --git a/workflow/engine/xmlform/triggers/triggers_Options.xml b/workflow/engine/xmlform/triggers/triggers_Options.xml index 929a79476..f61fc968f 100755 --- a/workflow/engine/xmlform/triggers/triggers_Options.xml +++ b/workflow/engine/xmlform/triggers/triggers_Options.xml @@ -19,6 +19,27 @@ - + \ No newline at end of file