diff --git a/Rakefile b/Rakefile index 82c3a4699..d90e3fdf6 100644 --- a/Rakefile +++ b/Rakefile @@ -387,6 +387,7 @@ def getJsIncludeFiles "gulliver/js/codemirror/addon/hint/javascript-hint.js", "gulliver/js/codemirror/addon/hint/sql-hint.js", "gulliver/js/codemirror/addon/hint/php-hint.js", + "gulliver/js/codemirror/addon/hint/html-hint.js", "gulliver/js/codemirror/mode/javascript/javascript.js", "gulliver/js/codemirror/addon/edit/matchbrackets.js", "gulliver/js/codemirror/mode/htmlmixed/htmlmixed.js", diff --git a/workflow/engine/content/translations/english/processmaker.en.po b/workflow/engine/content/translations/english/processmaker.en.po index 708a7b13a..244106fee 100644 --- a/workflow/engine/content/translations/english/processmaker.en.po +++ b/workflow/engine/content/translations/english/processmaker.en.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: ProcessMaker 3.0\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2015-05-04 12:02:00\n" +"PO-Revision-Date: 2015-05-08 12:24:12\n" "Last-Translator: \n" "Language-Team: Colosa Developers Team \n" "MIME-Version: 1.0\n" @@ -4294,8 +4294,8 @@ msgstr "Processes" # TRANSLATION # LABEL/ID_ENTER_SEARCH_TERM #: LABEL/ID_ENTER_SEARCH_TERM -msgid "Enter search term" -msgstr "Enter search term" +msgid "Search..." +msgstr "Search..." # TRANSLATION # LABEL/ID_DETAILS @@ -14968,8 +14968,8 @@ msgstr "At Risk" # TRANSLATION # LABEL/ID_OVERDUE #: LABEL/ID_OVERDUE -msgid "Overdue" -msgstr "Overdue" +msgid "Task Status" +msgstr "Task Status" # TRANSLATION # LABEL/ID_SUCCESS_RECORD @@ -18340,8 +18340,8 @@ msgstr "No Dashboards to display" # TRANSLATION # LABEL/ID_CONFIRM_DELETE_DASHBOARD #: LABEL/ID_CONFIRM_DELETE_DASHBOARD -msgid "Do you want to delete selected Dashboard?" -msgstr "Do you want to delete selected Dashboard?" +msgid "Are you sure you want to delete the selected Dashboard?" +msgstr "Are you sure you want to delete the selected Dashboard?" # TRANSLATION # LABEL/ID_DASHBOARD_SUCCESS_DELETE @@ -18364,8 +18364,8 @@ msgstr "No Owners to display" # TRANSLATION # LABEL/ID_OWNER_TYPE #: LABEL/ID_OWNER_TYPE -msgid "Type owner" -msgstr "Type owner" +msgid "Owner type" +msgstr "Owner type" # TRANSLATION # LABEL/ID_OWNER_INFORMATION @@ -18472,8 +18472,8 @@ msgstr "Inefficience Cost By User" # TRANSLATION # LABEL/ID_OVER_DUE #: LABEL/ID_OVER_DUE -msgid "[LABEL/ID_OVER_DUE] Status" -msgstr "Status" +msgid "Inbox Status" +msgstr "Inbox Status" # TRANSLATION # LABEL/ID_NEW_CASES @@ -18694,8 +18694,8 @@ msgstr "Efficiency Index" # TRANSLATION # LABEL/ID_INEFFICIENCY_COST #: LABEL/ID_INEFFICIENCY_COST -msgid "Inefficiency Cost" -msgstr "Inefficiency Cost" +msgid "Costs or Savings" +msgstr "Costs or Savings" # TRANSLATION # LABEL/ID_EFFICIENCY_COST @@ -18865,6 +18865,42 @@ msgstr "No Inefficient Users" msgid "The marked fields in the form are required and/or have errors in their format. Please verify the fields before continuing." msgstr "The marked fields in the form are required and/or have errors in their format. Please verify the fields before continuing." +# TRANSLATION +# LABEL/ID_INBOX_EMPTY +#: LABEL/ID_INBOX_EMPTY +msgid "Your Inbox is empty..." +msgstr "Your Inbox is empty..." + +# TRANSLATION +# LABEL/ID_KPI +#: LABEL/ID_KPI +msgid "Key Performance Indicators" +msgstr "Key Performance Indicators" + +# TRANSLATION +# LABEL/ID_INVALID_VALUE_EXPECTING_POSITIVE_DECIMAL +#: LABEL/ID_INVALID_VALUE_EXPECTING_POSITIVE_DECIMAL +msgid "Invalid value for \"{0}\". Please enter a positive decimal value." +msgstr "Invalid value for \"{0}\". Please enter a positive decimal value." + +# TRANSLATION +# LABEL/ID_CONFIRM_DELETE_DASHBOARD_OWNER +#: LABEL/ID_CONFIRM_DELETE_DASHBOARD_OWNER +msgid "Are you sure you want to delete this user?" +msgstr "Are you sure you want to delete this user?" + +# TRANSLATION +# LABEL/ID_CASE_CODE +#: LABEL/ID_CASE_CODE +msgid "Case Code" +msgstr "Case Code" + +# TRANSLATION +# LABEL/ID_PIN +#: LABEL/ID_PIN +msgid "Pin" +msgstr "Pin" + # additionalTables/additionalTablesData.xml?ADD_TAB_NAME # additionalTables/additionalTablesData.xml #: text - ADD_TAB_NAME @@ -35810,13 +35846,13 @@ msgstr "CASE TRACKER" # tracker/login.xml?CASE # tracker/login.xml #: Text - CASE -msgid "Case Code" +msgid "[tracker/login.xml?CASE] Case Code" msgstr "Case Code" # tracker/login.xml?PIN # tracker/login.xml #: password - PIN -msgid "Pin" +msgid "[tracker/login.xml?PIN] Pin" msgstr "Pin" # tracker/login.xml?BSUBMIT diff --git a/workflow/engine/controllers/pmTablesProxy.php b/workflow/engine/controllers/pmTablesProxy.php index 03700369e..0fd99f919 100755 --- a/workflow/engine/controllers/pmTablesProxy.php +++ b/workflow/engine/controllers/pmTablesProxy.php @@ -1642,13 +1642,16 @@ class pmTablesProxy extends HttpProxyController $index = 0; while ($oDataset->next()) { $row = $oDataset->getRow(); - array_push($fields, array( - "FIELD_UID" => $row["VAR_NAME"] . "-" . $row["VAR_FIELD_TYPE"], - "FIELD_NAME" => $row["VAR_NAME"], - "FIELD_VALIDATE" => "any", - "_index" => $index ++, - "_isset" => true - )); + $fieldType = isset($row["VAR_FIELD_TYPE"]) ? $row["VAR_FIELD_TYPE"]: ''; + if(! in_array( $fieldType, $excludeFieldsList )){ + array_push($fields, array( + "FIELD_UID" => $row["VAR_NAME"] . "-" . $row["VAR_FIELD_TYPE"], + "FIELD_NAME" => $row["VAR_NAME"], + "FIELD_VALIDATE" => "any", + "_index" => $index ++, + "_isset" => true + )); + } } } diff --git a/workflow/engine/data/mssql/insert.sql b/workflow/engine/data/mssql/insert.sql index 7e04625ea..d2c3e94b2 100755 --- a/workflow/engine/data/mssql/insert.sql +++ b/workflow/engine/data/mssql/insert.sql @@ -2832,7 +2832,7 @@ SELECT 'LABEL','ID_SELFSERVICE','en','Self Service','2014-01-15' UNION ALL SELECT 'LABEL','ID_PROCESSES','en','Processes','2014-01-15' UNION ALL -SELECT 'LABEL','ID_ENTER_SEARCH_TERM','en','Enter search term','2014-01-15' +SELECT 'LABEL','ID_ENTER_SEARCH_TERM','en','Search...','2015-05-08' UNION ALL SELECT 'LABEL','ID_DETAILS','en','Details','2014-01-15' UNION ALL @@ -6436,7 +6436,7 @@ SELECT 'LABEL','ID_ON_TIME','en','On Time','2014-01-15' UNION ALL SELECT 'LABEL','ID_AT_RISK','en','At Risk','2014-01-15' UNION ALL -SELECT 'LABEL','ID_OVERDUE','en','Overdue','2014-01-15' +SELECT 'LABEL','ID_OVERDUE','en','Task Status','2015-05-06' UNION ALL SELECT 'LABEL','ID_SUCCESS_RECORD','en','Success Records:','2014-01-15' UNION ALL @@ -7574,7 +7574,7 @@ SELECT 'LABEL','ID_GRID_PAGE_DISPLAYING_DASHBOARD_MESSAGE','en','Displaying Dash UNION ALL SELECT 'LABEL','ID_GRID_PAGE_NO_DASHBOARD_MESSAGE','en','No Dashboards to display','2015-03-09' UNION ALL -SELECT 'LABEL','ID_CONFIRM_DELETE_DASHBOARD','en','Do you want to delete selected Dashboard?','2015-03-09' +SELECT 'LABEL','ID_CONFIRM_DELETE_DASHBOARD','en','Are you sure you want to delete the selected Dashboard?','2015-05-06' UNION ALL SELECT 'LABEL','ID_DASHBOARD_SUCCESS_DELETE','en','Dashboard has been deleted correctly.','2015-03-09' UNION ALL @@ -7582,7 +7582,7 @@ SELECT 'LABEL','ID_GRID_PAGE_DISPLAYING_0WNER_MESSAGE','en','Displaying Owners { UNION ALL SELECT 'LABEL','ID_GRID_PAGE_NO_OWNER_MESSAGE','en','No Owners to display','2015-03-09' UNION ALL -SELECT 'LABEL','ID_OWNER_TYPE','en','Type owner','2015-03-09' +SELECT 'LABEL','ID_OWNER_TYPE','en','Owner type','2015-05-08' UNION ALL SELECT 'LABEL','ID_OWNER_INFORMATION','en','Owner Information','2015-03-09' UNION ALL @@ -7618,7 +7618,7 @@ SELECT 'LABEL','ID_EMPLYEE_EFFICIENCIE','en','Employee Efficience Index','2015-0 UNION ALL SELECT 'LABEL','ID_USER_INEFFICIENCE','en','Inefficience Cost By User','2015-03-09' UNION ALL -SELECT 'LABEL','ID_OVER_DUE','en','Status','2015-04-01' +SELECT 'LABEL','ID_OVER_DUE','en','Inbox Status','2015-05-06' UNION ALL SELECT 'LABEL','ID_NEW_CASES','en','% New Cases','2015-04-06' UNION ALL @@ -7692,7 +7692,7 @@ SELECT 'LABEL','ID_NUMBER_CASES','en','Number cases','2015-03-30' UNION ALL SELECT 'LABEL','ID_EFFICIENCY_INDEX','en','Efficiency Index','2015-03-30' UNION ALL -SELECT 'LABEL','ID_INEFFICIENCY_COST','en','Inefficiency Cost','2015-03-30' +SELECT 'LABEL','ID_INEFFICIENCY_COST','en','Costs or Savings','2015-05-06' UNION ALL SELECT 'LABEL','ID_EFFICIENCY_COST','en','Efficiency cost','2015-03-30' UNION ALL @@ -7751,6 +7751,18 @@ SELECT 'LABEL','ID_NO_INEFFICIENT_USER_GROUPS','en','No Inefficient User Groups' SELECT 'LABEL','ID_NO_INEFFICIENT_USERS','en','No Inefficient Users','2015-04-29' UNION ALL SELECT 'LABEL','ID_REQUIRED_FIELDS_GRID','en','The marked fields in the form are required and/or have errors in their format. Please verify the fields before continuing.','2015-05-04' + UNION ALL +SELECT 'LABEL','ID_INBOX_EMPTY','en','Your Inbox is empty...','2015-05-06' + UNION ALL +SELECT 'LABEL','ID_KPI','en','Key Performance Indicators','2015-05-07' + UNION ALL +SELECT 'LABEL','ID_INVALID_VALUE_EXPECTING_POSITIVE_DECIMAL','en','Invalid value for "{0}". Please enter a positive decimal value.','2015-05-08' + UNION ALL +SELECT 'LABEL','ID_CONFIRM_DELETE_DASHBOARD_OWNER','en','Are you sure you want to delete this user?','2015-05-08' + UNION ALL +SELECT 'LABEL','ID_CASE_CODE','en','Case Code','2015-05-08' + UNION ALL +SELECT 'LABEL','ID_PIN','en','Pin','2015-05-08' ; INSERT INTO ISO_LOCATION ([IC_UID],[IL_UID],[IL_NAME],[IL_NORMAL_NAME],[IS_UID]) diff --git a/workflow/engine/data/mysql/insert.sql b/workflow/engine/data/mysql/insert.sql index 535f83269..7b7970189 100644 --- a/workflow/engine/data/mysql/insert.sql +++ b/workflow/engine/data/mysql/insert.sql @@ -2119,7 +2119,7 @@ INSERT INTO TRANSLATION (TRN_CATEGORY,TRN_ID,TRN_LANG,TRN_VALUE,TRN_UPDATE_DATE ( 'LABEL','ID_CLEAR_CACHE_CONFIRM1','en','Clear all cache files now?','2014-01-15') , ( 'LABEL','ID_SELFSERVICE','en','Self Service','2014-01-15') , ( 'LABEL','ID_PROCESSES','en','Processes','2014-01-15') , -( 'LABEL','ID_ENTER_SEARCH_TERM','en','Enter search term','2014-01-15') , +( 'LABEL','ID_ENTER_SEARCH_TERM','en','Search...','2015-05-08') , ( 'LABEL','ID_DETAILS','en','Details','2014-01-15') , ( 'LABEL','ID_METHOD','en','Method','2014-01-15') , ( 'JAVASCRIPT','ID_FIELD_DUPLICATE','en','Duplicate Field','2014-01-15') , @@ -3944,7 +3944,7 @@ INSERT INTO TRANSLATION (TRN_CATEGORY,TRN_ID,TRN_LANG,TRN_VALUE,TRN_UPDATE_DATE ( 'LABEL','ID_PREVIOUS_QUARTER','en','Previous quarter','2014-01-15') , ( 'LABEL','ID_ON_TIME','en','On Time','2014-01-15') , ( 'LABEL','ID_AT_RISK','en','At Risk','2014-01-15') , -( 'LABEL','ID_OVERDUE','en','Overdue','2014-01-15') , +( 'LABEL','ID_OVERDUE','en','Task Status','2015-05-06') , ( 'LABEL','ID_SUCCESS_RECORD','en','Success Records:','2014-01-15') , ( 'LABEL','ID_FILE_NUM_RECORD','en','PO File num. records:','2014-01-15') , ( 'LABEL','ID_FAILED_RECORD','en','Failed Records:','2014-01-15') , @@ -4520,11 +4520,11 @@ INSERT INTO TRANSLATION (TRN_CATEGORY,TRN_ID,TRN_LANG,TRN_VALUE,TRN_UPDATE_DATE ( 'LABEL','ID_DEL_THREAD_STATUS','en','Thread Status','2015-02-27') , ( 'LABEL','ID_GRID_PAGE_DISPLAYING_DASHBOARD_MESSAGE','en','Displaying Dashboards {0} - {1} of {2}','2015-03-09') , ( 'LABEL','ID_GRID_PAGE_NO_DASHBOARD_MESSAGE','en','No Dashboards to display','2015-03-09') , -( 'LABEL','ID_CONFIRM_DELETE_DASHBOARD','en','Do you want to delete selected Dashboard?','2015-03-09') , +( 'LABEL','ID_CONFIRM_DELETE_DASHBOARD','en','Are you sure you want to delete the selected Dashboard?','2015-05-06') , ( 'LABEL','ID_DASHBOARD_SUCCESS_DELETE','en','Dashboard has been deleted correctly.','2015-03-09') , ( 'LABEL','ID_GRID_PAGE_DISPLAYING_0WNER_MESSAGE','en','Displaying Owners {0} - {1} of {2}','2015-03-09') , ( 'LABEL','ID_GRID_PAGE_NO_OWNER_MESSAGE','en','No Owners to display','2015-03-09') , -( 'LABEL','ID_OWNER_TYPE','en','Type owner','2015-03-09') , +( 'LABEL','ID_OWNER_TYPE','en','Owner type','2015-05-08') , ( 'LABEL','ID_OWNER_INFORMATION','en','Owner Information','2015-03-09') , ( 'LABEL','ID_NEW_TAB_INDICATOR','en','Add Indicator','2015-03-09') , ( 'LABEL','ID_TITLE_DASHBOARD','en','Dashboard Indicator Title','2015-03-09') , @@ -4542,7 +4542,7 @@ INSERT INTO TRANSLATION (TRN_CATEGORY,TRN_ID,TRN_LANG,TRN_VALUE,TRN_UPDATE_DATE ( 'LABEL','ID_PROCESS_INEFFICIENCE','en','Process Inefficiency Cost','2015-04-01') , ( 'LABEL','ID_EMPLYEE_EFFICIENCIE','en','Employee Efficience Index','2015-03-09') , ( 'LABEL','ID_USER_INEFFICIENCE','en','Inefficience Cost By User','2015-03-09') , -( 'LABEL','ID_OVER_DUE','en','Status','2015-04-01') , +( 'LABEL','ID_OVER_DUE','en','Inbox Status','2015-05-06') , ( 'LABEL','ID_NEW_CASES','en','% New Cases','2015-04-06') , ( 'LABEL','ID_COMPLETED_CASES','en','Completed Cases','2015-03-09') , ( 'LABEL','ID_WORKING_CASES','en','% In Progress','2015-04-06') , @@ -4579,7 +4579,7 @@ INSERT INTO TRANSLATION (TRN_CATEGORY,TRN_ID,TRN_LANG,TRN_VALUE,TRN_UPDATE_DATE ( 'LABEL','ID_WELL_DONE','en','Well Done!','2015-03-30') , ( 'LABEL','ID_NUMBER_CASES','en','Number cases','2015-03-30') , ( 'LABEL','ID_EFFICIENCY_INDEX','en','Efficiency Index','2015-03-30') , -( 'LABEL','ID_INEFFICIENCY_COST','en','Inefficiency Cost','2015-03-30') , +( 'LABEL','ID_INEFFICIENCY_COST','en','Costs or Savings','2015-05-06') , ( 'LABEL','ID_EFFICIENCY_COST','en','Efficiency cost','2015-03-30') , ( 'LABEL','ID_RELATED_PROCESS','en','Related Process','2015-03-30') , ( 'LABEL','ID_RELATED_GROUPS','en','Related Groups','2015-03-30') , @@ -4609,7 +4609,13 @@ INSERT INTO TRANSLATION (TRN_CATEGORY,TRN_ID,TRN_LANG,TRN_VALUE,TRN_UPDATE_DATE ( 'LABEL','ID_NO_INEFFICIENT_TASKS','en','No Inefficient Tasks','2015-04-29') , ( 'LABEL','ID_NO_INEFFICIENT_USER_GROUPS','en','No Inefficient User Groups','2015-04-29') , ( 'LABEL','ID_NO_INEFFICIENT_USERS','en','No Inefficient Users','2015-04-29') , -( 'LABEL','ID_REQUIRED_FIELDS_GRID','en','The marked fields in the form are required and/or have errors in their format. Please verify the fields before continuing.','2015-05-04') ; +( 'LABEL','ID_REQUIRED_FIELDS_GRID','en','The marked fields in the form are required and/or have errors in their format. Please verify the fields before continuing.','2015-05-04') , +( 'LABEL','ID_INBOX_EMPTY','en','Your Inbox is empty...','2015-05-06') , +( 'LABEL','ID_KPI','en','Key Performance Indicators','2015-05-07') , +( 'LABEL','ID_INVALID_VALUE_EXPECTING_POSITIVE_DECIMAL','en','Invalid value for "{0}". Please enter a positive decimal value.','2015-05-08') , +( 'LABEL','ID_CONFIRM_DELETE_DASHBOARD_OWNER','en','Are you sure you want to delete this user?','2015-05-08') , +( 'LABEL','ID_CASE_CODE','en','Case Code','2015-05-08') , +( 'LABEL','ID_PIN','en','Pin','2015-05-08') ; INSERT INTO ISO_LOCATION (IC_UID,IL_UID,IL_NAME,IL_NORMAL_NAME,IS_UID) VALUES ('AD','','',' ','') , diff --git a/workflow/engine/js/strategicDashboard/viewDashboardPresenter.js b/workflow/engine/js/strategicDashboard/viewDashboardPresenter.js index 13c8be6bf..77968c892 100644 --- a/workflow/engine/js/strategicDashboard/viewDashboardPresenter.js +++ b/workflow/engine/js/strategicDashboard/viewDashboardPresenter.js @@ -22,6 +22,7 @@ ViewDashboardPresenter.prototype.userDashboardsViewModel = function(data) { //if null data is returned we default to an empty array if (data == null) { data = []; } var returnList = []; + var hasFavorite = false; $.each(data, function(index, originalObject) { var map = { "DAS_TITLE" : "title", @@ -29,8 +30,17 @@ ViewDashboardPresenter.prototype.userDashboardsViewModel = function(data) { "DAS_FAVORITE" : "isFavorite" }; var newObject = that.helper.merge(originalObject, {}, map); + if (newObject.isFavorite == 1) { + hasFavorite = true; + } returnList.push(newObject); }); + + //if no favorite is selected, the first one is selected. + if (!hasFavorite && returnList.length > 0 ) { + returnList[0].isFavorite = 1; + } + return returnList; }; @@ -88,12 +98,12 @@ ViewDashboardPresenter.prototype.dashboardIndicatorsViewModel = function(data) { //rounding newObject.comparative = Math.round(newObject.comparative*100)/100; - newObject.comparative = ((newObject.comparative > 0)? "+": "") + newObject.comparative; + newObject.comparative = ((newObject.comparative > 0) ? "+": "") + newObject.comparative; newObject.percentComparative = (newObject.percentComparative != '--') ? '(' + newObject.percentComparative + '%)' : ""; - newObject.percentComparative = (newObject.comparative == 0) + newObject.percentComparative = (newObject.comparative == 0 && newObject.percentComparative != '') ? "(0%)" : newObject.percentComparative; @@ -255,7 +265,8 @@ ViewDashboardPresenter.prototype.peiViewModel = function(data) { var newObject = that.helper.merge(originalObject, {}, map); graphData.push(newObject); originalObject.efficiencyIndexToShow = that.roundedIndicatorValue(originalObject.efficiencyIndex); - originalObject.inefficiencyCostToShow = Math.round(originalObject.inefficiencyCost); + //rounded to 1 decimal + originalObject.inefficiencyCostToShow = Math.round(originalObject.inefficiencyCost * 10) / 10; originalObject.indicatorId = data.id; originalObject.json = JSON.stringify(originalObject); }); @@ -266,7 +277,7 @@ ViewDashboardPresenter.prototype.peiViewModel = function(data) { this.makeShortLabel(graphData, 10); retval.dataToDraw = this.adaptGraphData(graphData); - retval.inefficiencyCostToShow = Math.round(retval.inefficiencyCost); + retval.inefficiencyCostToShow = Math.round(retval.inefficiencyCost * 10) / 10; retval.efficiencyIndexToShow = that.roundedIndicatorValue(retval.efficiencyIndex); return retval; }; @@ -284,7 +295,7 @@ ViewDashboardPresenter.prototype.ueiViewModel = function(data) { }; var newObject = that.helper.merge(originalObject, {}, map); graphData.push(newObject); - originalObject.inefficiencyCostToShow = Math.round(originalObject.inefficiencyCost); + originalObject.inefficiencyCostToShow = Math.round(originalObject.inefficiencyCost * 10)/10; originalObject.efficiencyIndexToShow = that.roundedIndicatorValue(originalObject.efficiencyIndex); originalObject.indicatorId = data.id; originalObject.json = JSON.stringify(originalObject); @@ -295,7 +306,7 @@ ViewDashboardPresenter.prototype.ueiViewModel = function(data) { this.makeShortLabel(graphData, 10); retval.dataToDraw = this.adaptGraphData(graphData); - retval.inefficiencyCostToShow = Math.round(retval.inefficiencyCost); + retval.inefficiencyCostToShow = Math.round(retval.inefficiencyCost * 10) / 10; retval.efficiencyIndexToShow = that.roundedIndicatorValue(retval.efficiencyIndex); return retval; }; @@ -418,7 +429,7 @@ ViewDashboardPresenter.prototype.returnIndicatorSecondLevelPei = function(modelD "deviationTime" : "dispersion" }; var newObject = that.helper.merge(originalObject, {}, map); - originalObject.inefficiencyCostToShow = Math.round(originalObject.inefficiencyCost); + originalObject.inefficiencyCostToShow = Math.round(originalObject.inefficiencyCost * 10) / 10; originalObject.efficiencyIndexToShow = that.roundedIndicatorValue(originalObject.efficiencyIndex); originalObject.deviationTimeToShow = Math.round(originalObject.deviationTime); originalObject.rankToShow = originalObject.rank + "/" + modelData.length; @@ -445,7 +456,7 @@ ViewDashboardPresenter.prototype.returnIndicatorSecondLevelUei = function(modelD "deviationTime" : "dispersion" }; var newObject = that.helper.merge(originalObject, {}, map); - originalObject.inefficiencyCostToShow = Math.round(originalObject.inefficiencyCost); + originalObject.inefficiencyCostToShow = Math.round(originalObject.inefficiencyCost * 10) / 10; originalObject.efficiencyIndexToShow = that.roundedIndicatorValue(originalObject.efficiencyIndex); originalObject.deviationTimeToShow = Math.round(originalObject.deviationTime); originalObject.rankToShow = originalObject.rank + "/" + modelData.length; diff --git a/workflow/engine/js/strategicDashboard/viewDashboardView.js b/workflow/engine/js/strategicDashboard/viewDashboardView.js index c5f03c931..6d2f112d3 100644 --- a/workflow/engine/js/strategicDashboard/viewDashboardView.js +++ b/workflow/engine/js/strategicDashboard/viewDashboardView.js @@ -535,7 +535,9 @@ var defaultEndDate = function () { var fillDashboardsList = function (presenterData) { if (presenterData == null || presenterData.length == 0) { - $('#dashboardsList').append(G_STRING['ID_NO_DATA_TO_DISPLAY']); + $('#dashboardMessage').text(G_STRING['ID_GRID_PAGE_NO_DASHBOARD_MESSAGE']); + $('#titleH4').text(G_STRING['ID_GRID_PAGE_NO_DASHBOARD_MESSAGE']); + $('#compareIndicators').hide(); } _.templateSettings.variable = "dashboard"; var template = _.template ($("script.dashboardButtonTemplate").html()) diff --git a/workflow/engine/methods/cases/cases_Step.php b/workflow/engine/methods/cases/cases_Step.php index f3af8eb91..6f436bce3 100755 --- a/workflow/engine/methods/cases/cases_Step.php +++ b/workflow/engine/methods/cases/cases_Step.php @@ -160,16 +160,15 @@ if ($flagExecuteBeforeTriggers) { if (! isset( $_SESSION['_NO_EXECUTE_TRIGGERS_'] )) { //Execute before triggers - Start $Fields['APP_DATA'] = $oCase->ExecuteTriggers( $_SESSION['TASK'], $_GET['TYPE'], $_GET['UID'], 'BEFORE', $Fields['APP_DATA'] ); - $Fields['DEL_INDEX'] = $_SESSION['INDEX']; - $Fields['TAS_UID'] = $_SESSION['TASK']; //Execute before triggers - End } else { unset( $_SESSION['_NO_EXECUTE_TRIGGERS_'] ); - $Fields['DEL_INDEX'] = $_SESSION['INDEX']; - $Fields['TAS_UID'] = $_SESSION['TASK']; } } +$Fields["DEL_INDEX"] = $_SESSION["INDEX"]; +$Fields["TAS_UID"] = $_SESSION["TASK"]; + if (isset( $_GET['breakpoint'] )) { $_POST['NextStep'] = $_SESSION['TRIGGER_DEBUG']['BREAKPAGE']; } @@ -518,7 +517,7 @@ try { $util = new Java( "com.processmaker.util.pmutils" ); $util->setInputPath( $javaInput ); $util->setOutputPath( $javaOutput ); - + G::LoadSystem('inputfilter'); $filter = new InputFilter(); @@ -553,17 +552,17 @@ try { $util = new Java( "com.processmaker.util.pmutils" ); $util->setInputPath( $javaInput ); $util->setOutputPath( $javaOutput ); - + G::LoadSystem('inputfilter'); $filter = new InputFilter(); - + $locationFrom = PATH_DYNAFORM . $aOD['PRO_UID'] . PATH_SEP . $aOD['OUT_DOC_UID'] . '.pdf'; $locationFrom = $filter->validateInput($locationFrom, "path"); copy( $locationFrom, $javaInput . $aOD['OUT_DOC_UID'] . '.pdf' ); $outputFile = $javaOutput . $sFilename . '.pdf'; print $util->writeVarsToAcroFields( $aOD['OUT_DOC_UID'] . '.pdf', $xmlData ); - + $locationFrom = $javaOutput . $aOD['OUT_DOC_UID'] . '.pdf'; $locationFrom = $filter->validateInput($locationFrom, "path"); copy( $locationFrom, $pathOutput . $sFilename . '.pdf' ); diff --git a/workflow/engine/methods/cases/cases_StepToRevise.php b/workflow/engine/methods/cases/cases_StepToRevise.php index dbf7e5f88..fb032ea3e 100755 --- a/workflow/engine/methods/cases/cases_StepToRevise.php +++ b/workflow/engine/methods/cases/cases_StepToRevise.php @@ -123,7 +123,16 @@ $oDbConnections->loadAdditionalConnections(); $G_PUBLISH = new Publisher(); if ($_GET['DYN_UID'] != '') { $_SESSION['CURRENT_DYN_UID'] = $_GET['DYN_UID']; - $G_PUBLISH->AddContent( 'dynaform', 'xmlform', $_SESSION['PROCESS'] . '/' . $_GET['DYN_UID'], '', $Fields['APP_DATA'], 'cases_SaveDataSupervisor?UID=' . $_GET['DYN_UID'] ); + G::LoadClass('pmDynaform'); + $FieldsPmDynaform = $Fields; + $FieldsPmDynaform["PRO_UID"] = $_SESSION['PROCESS']; + $FieldsPmDynaform["CURRENT_DYNAFORM"] = $_GET['DYN_UID']; + $a = new pmDynaform($FieldsPmDynaform); + if ($a->isResponsive()) { + $a->printView(); + }else{ + $G_PUBLISH->AddContent( 'dynaform', 'xmlform', $_SESSION['PROCESS'] . '/' . $_GET['DYN_UID'], '', $Fields['APP_DATA'], 'cases_SaveDataSupervisor?UID=' . $_GET['DYN_UID'] ); + } } G::RenderPage( 'publish', 'blank' ); diff --git a/workflow/engine/methods/setup/setupSchemas/triggerFillReportByProcess.sql b/workflow/engine/methods/setup/setupSchemas/triggerFillReportByProcess.sql index d25283597..bfb22baf7 100644 --- a/workflow/engine/methods/setup/setupSchemas/triggerFillReportByProcess.sql +++ b/workflow/engine/methods/setup/setupSchemas/triggerFillReportByProcess.sql @@ -39,7 +39,7 @@ WHERE APPLICATION.APP_INIT_DATE BETWEEN CAST(@INIT_DATE AS DATETIME) AND CAST(@FINISH_DATE AS DATETIME) GROUP BY APPLICATION.PRO_UID; - +#TODO task duration should be calculated with the calendar UPDATE PRO_REPORTING SET PRO_REPORTING.CONFIGURED_PROCESS_TIME = ( SELECT SUM(if (TASK.TAS_TIMEUNIT = "DAYS", (TASK.TAS_DURATION*24), TASK.TAS_DURATION)) diff --git a/workflow/engine/methods/setup/setupSchemas/triggerFillReportByUser.sql b/workflow/engine/methods/setup/setupSchemas/triggerFillReportByUser.sql index 6479d5ddb..12cadab2c 100644 --- a/workflow/engine/methods/setup/setupSchemas/triggerFillReportByUser.sql +++ b/workflow/engine/methods/setup/setupSchemas/triggerFillReportByUser.sql @@ -39,11 +39,15 @@ SELECT count(if(ACV.DEL_DELAY_DURATION > 0, 1, NULL)) AS TOTAL_CASES_OVERDUE, count(if(ACV.DEL_DELAY_DURATION <= 0, 1, NULL)) AS TOTAL_CASES_ON_TIME FROM - APP_CACHE_VIEW AS ACV + APP_CACHE_VIEW AS ACV WHERE ACV.DEL_INIT_DATE BETWEEN CAST(@INIT_DATE AS DATETIME) AND CAST(@FINISH_DATE AS DATETIME) GROUP BY ACV.USR_UID , ACV.TAS_UID , ACV.PRO_UID; +DELETE USR_REPORTING +FROM USR_REPORTING +INNER JOIN TASK ON TASK.TAS_UID = USR_REPORTING.TAS_UID +WHERE TASK.TAS_TYPE NOT IN ('NORMAL', 'ADHOC'); UPDATE USR_REPORTING INNER JOIN @@ -52,10 +56,16 @@ ON USR_REPORTING.USR_UID = USERS.USR_UID SET USR_REPORTING.USER_HOUR_COST = USERS.USR_COST_BY_HOUR; UPDATE USR_REPORTING -INNER JOIN -TASK -ON USR_REPORTING.TAS_UID = TASK.TAS_UID -SET USR_REPORTING.CONFIGURED_TASK_TIME = if (TASK.TAS_TIMEUNIT = "DAYS", (TASK.TAS_DURATION*24), TASK.TAS_DURATION) - +INNER JOIN TASK ON USR_REPORTING.TAS_UID = TASK.TAS_UID +SET USR_REPORTING.CONFIGURED_TASK_TIME = +IF(TASK.TAS_TIMEUNIT = "DAYS", + (TASK.TAS_DURATION * + (IF ((SELECT CA.CALENDAR_UID FROM CALENDAR_ASSIGNMENTS AS CA WHERE CA.OBJECT_UID = TASK.TAS_UID limit 1) IS NOT NULL, + (SELECT AVG(TIMEDIFF(STR_TO_DATE(CBH.CALENDAR_BUSINESS_END, '%H:%i'), STR_TO_DATE(CBH.CALENDAR_BUSINESS_START, '%H:%i')))/10000 + FROM CALENDAR_ASSIGNMENTS AS CA, CALENDAR_BUSINESS_HOURS AS CBH + WHERE CA.OBJECT_UID = TASK.TAS_UID + AND CA.CALENDAR_UID = CBH.CALENDAR_UID + GROUP BY CA.CALENDAR_UID LIMIT 1) ,24))) +,TASK.TAS_DURATION) diff --git a/workflow/engine/src/ProcessMaker/BusinessModel/Dashboard.php b/workflow/engine/src/ProcessMaker/BusinessModel/Dashboard.php index 741af63e9..5bb656d86 100644 --- a/workflow/engine/src/ProcessMaker/BusinessModel/Dashboard.php +++ b/workflow/engine/src/ProcessMaker/BusinessModel/Dashboard.php @@ -41,26 +41,27 @@ class Dashboard { $resp = array(); $dashboards = $this->getDashboardsUidByUser($usr_uid); $existFavorite = false; + $cont = 0; foreach($dashboards as $i=>$x) { //$resp[$i] = $this->getDashboard($x['DAS_UID']); $dashboardUser = $this->getDashboard($x['DAS_UID']); if ($dashboardUser['DAS_STATUS'] == 0) { continue; } - $resp[$i] = $dashboardUser; + $resp[$cont] = $dashboardUser; $Dashboard = new \ProcessMaker\BusinessModel\Dashboard(); $dashConfig = $Dashboard->getConfig($usr_uid); - $resp[$i]['DAS_FAVORITE'] = 0; + $resp[$cont]['DAS_FAVORITE'] = 0; foreach ($dashConfig as $dashId=>$dashData) { if($dashId == $x['DAS_UID'] ) { - $resp[$i]['DAS_FAVORITE'] = $dashData['dashFavorite']; + $resp[$cont]['DAS_FAVORITE'] = $dashData['dashFavorite']; if ($dashData['dashFavorite']==1) { $existFavorite = true; } } } + $cont++; } - //if no favorite is set, the default favorite is the first one if ($existFavorite == false && $resp != null && sizeof($resp)>0) { $resp[0]['DAS_FAVORITE'] = 1; diff --git a/workflow/engine/src/ProcessMaker/Project/Bpmn.php b/workflow/engine/src/ProcessMaker/Project/Bpmn.php index 13feacc2e..9517a37a1 100755 --- a/workflow/engine/src/ProcessMaker/Project/Bpmn.php +++ b/workflow/engine/src/ProcessMaker/Project/Bpmn.php @@ -83,6 +83,7 @@ class Bpmn extends Handler "lane" => array("BOU_ELEMENT_TYPE", "BOU_SIZE_IDENTICAL", "BOU_UID") ); + private $arrayElementOriginChecked = array(); public function __construct($data = null) { @@ -1378,6 +1379,13 @@ class Bpmn extends Handler $index ) { try { + if (isset($this->arrayElementOriginChecked[$elementOriginUid]) && $this->arrayElementOriginChecked[$elementOriginUid] == $elementOriginType) { + //Return + return array(); + } + + $this->arrayElementOriginChecked[$elementOriginUid] = $elementOriginType; + if ($elementOriginType == $elementDestType && $elementOriginUid == $elementDestUid) { $arrayEvent = array(); $arrayEvent[$index] = array($elementDestUid, $elementDestType); @@ -1403,7 +1411,7 @@ class Bpmn extends Handler $index + 1 ); - if (count($arrayEvent) > 0) { + if (!empty($arrayEvent)) { $arrayEvent[$index] = array($elementOriginUid, $elementOriginType); //Return @@ -1431,6 +1439,8 @@ class Bpmn extends Handler $arrayEventType = array("END", "INTERMEDIATE"); $arrayEventMarker = array("MESSAGETHROW"); + $this->arrayElementOriginChecked = array(); + $arrayEventAux = $this->getElementsBetweenElementOriginAndElementDest( $elementOriginUid, $elementOriginType, diff --git a/workflow/engine/templates/strategicDashboard/viewDashboard.html b/workflow/engine/templates/strategicDashboard/viewDashboard.html index 4460e1c8b..9d6803363 100644 --- a/workflow/engine/templates/strategicDashboard/viewDashboard.html +++ b/workflow/engine/templates/strategicDashboard/viewDashboard.html @@ -170,7 +170,9 @@ - - + +