From 69abc612b45c080bf67293ce0555669c6a1520d2 Mon Sep 17 00:00:00 2001 From: Brayan Pereyra Date: Wed, 10 Jun 2015 11:18:22 -0400 Subject: [PATCH 01/18] BUG-17427 HTML Editor available for multiple Textarea controls in Dynaforms --- gulliver/js/dveditor/core/dveditor.js | 251 +++++++++++++------------- 1 file changed, 129 insertions(+), 122 deletions(-) diff --git a/gulliver/js/dveditor/core/dveditor.js b/gulliver/js/dveditor/core/dveditor.js index 20a2770ab..03aeebace 100755 --- a/gulliver/js/dveditor/core/dveditor.js +++ b/gulliver/js/dveditor/core/dveditor.js @@ -1,129 +1,136 @@ -function DVEditor(where,body,oHiddenInput,height,mode) +function DVEditor(where,body,oHiddenInput,height,mode,editorId) { - var me=this; - var hiddenInput=oHiddenInput; - var iframe=$dce("iframe"); - //NOTE: className no funciona en FIREFOX - iframe.style.width="100%"; - iframe.style.height=height; - iframe.style.margin="0px"; - iframe.style.padding="0px"; - iframe.style.border="none"; - where.appendChild(iframe); - var head=document.childNodes[0].childNodes[0]; - var header=''; - if (iframe.contentWindow) - { - var doc=iframe.contentWindow.document; - } - else - { - var doc=iframe.contentDocument; - } - var _header=$dce("head");// head.cloneNode(true); - for(var i=0;i'+header+''+body+''); + doc.close(); + doc.designMode="on"; + if (mode=="edit") { + doc.contentEditable=true; + } else { + doc.contentEditable=false; + } + this.doc=doc; + + me.insertHTML = function (html) { - } - } - header=_header.innerHTML; - //alert(header); - doc.open(); - doc.write(''+header+''+body+''); - doc.close(); - doc.designMode="on"; - if(mode=="edit"){ - doc.contentEditable=true; - }else{ - doc.contentEditable=false; - } - this.doc=doc; - me.insertHTML=function (html) - { - var cmd = 'inserthtml'; - var bool = false; - var value = html; - try + var cmd = 'inserthtml'; + var bool = false; + var value = html; + try { + doc.execCommand(cmd,bool,value); + } catch (e) { + } + return false; + }; + + me.command = function() { - doc.execCommand(cmd,bool,value); - } catch (e) { - } - return false; - }; - me.command=function() - { - var cmd = this.getAttribute('name'); - var bool = false; - var value = this.getAttribute('cmdValue') || null; - if (value == 'promptUser') - value = prompt( - (typeof(G_STRINGS[this.getAttribute('promptText')])!=='undefined')? - G_STRINGS[this.getAttribute('promptText')]: - this.getAttribute('promptText') - ); - try + var cmd = this.getAttribute('name'); + var bool = false; + var value = this.getAttribute('cmdValue') || null; + if (value == 'promptUser') { + value = prompt( + (typeof(G_STRINGS[this.getAttribute('promptText')])!=='undefined')? + G_STRINGS[this.getAttribute('promptText')]: + this.getAttribute('promptText') + ); + } + try { + if (editorId) { + if (window.ActiveXObject && cmd == 'hilitecolor') { + doc.selection.createRange().pasteHTML('' +doc.selection.createRange().text +''); + } else { + eval("window._editor" +editorId+".doc.execCommand(cmd,bool,value);"); + } + } else { + doc.execCommand(cmd,bool,value); + } + } catch (e) { + } + return false; + }; + + me.loadToolBar = function(uri) { - doc.execCommand(cmd,bool,value); - } catch (e) { - } - return false; - } - me.loadToolBar=function(uri) - { - var tb=WebResource(uri); - iframe.parentNode.insertBefore(tb,iframe); - me.setToolBar(tb); - } - me.setToolBar=function(toolbar) - { - var buttons=toolbar.getElementsByTagName('area'); - for(var b=0;b Date: Wed, 10 Jun 2015 15:56:06 +0000 Subject: [PATCH 02/18] BUG-17411 Output document generados con smarty para codigo en template --- .../engine/classes/model/OutputDocument.php | 74 ++++++++++++------- 1 file changed, 46 insertions(+), 28 deletions(-) diff --git a/workflow/engine/classes/model/OutputDocument.php b/workflow/engine/classes/model/OutputDocument.php index 47d48d602..0e53cf3dc 100755 --- a/workflow/engine/classes/model/OutputDocument.php +++ b/workflow/engine/classes/model/OutputDocument.php @@ -178,12 +178,12 @@ class OutputDocument extends BaseOutputDocument if(!empty($aData['OUT_DOC_DESCRIPTION'])){ $description .= ", Description: ".$aData['OUT_DOC_DESCRIPTION']; } - if(!empty($aData['OUT_DOC_REPORT_GENERATOR'])){ - $description .= ", Report Generator: ". $aData['OUT_DOC_REPORT_GENERATOR']; - } - if(!empty($aData['OUT_DOC_GENERATE'])){ - $description .= ", Output Document to Generate: ".$aData['OUT_DOC_GENERATE']; - } + if(!empty($aData['OUT_DOC_REPORT_GENERATOR'])){ + $description .= ", Report Generator: ". $aData['OUT_DOC_REPORT_GENERATOR']; + } + if(!empty($aData['OUT_DOC_GENERATE'])){ + $description .= ", Output Document to Generate: ".$aData['OUT_DOC_GENERATE']; + } if($aData['OUT_DOC_PDF_SECURITY_ENABLED']==0){ $pdfSecurity = 'Disabled'; }else{ @@ -199,14 +199,14 @@ class OutputDocument extends BaseOutputDocument if(!empty($aData['OUT_DOC_TAGS'])){ $description .= ", Tags: ".$aData['OUT_DOC_TAGS']; } - if(!empty($aData['OUT_DOC_OPEN_TYPE'])){ - if($aData['OUT_DOC_OPEN_TYPE']==0){ - $genLink = 'Open the file'; - }else{ - $genLink = 'Download the file'; - } - $description .= ", By clicking on the generated file link: ".$genLink; - } + if(!empty($aData['OUT_DOC_OPEN_TYPE'])){ + if($aData['OUT_DOC_OPEN_TYPE']==0){ + $genLink = 'Open the file'; + }else{ + $genLink = 'Download the file'; + } + $description .= ", By clicking on the generated file link: ".$genLink; + } G::auditLog("CreateOutputDocument", $description); return $aData['OUT_DOC_UID']; @@ -268,12 +268,12 @@ class OutputDocument extends BaseOutputDocument if(!empty($aData['OUT_DOC_DESCRIPTION'])){ $description .= ", Description: ".$aData['OUT_DOC_DESCRIPTION']; } - if(!empty($aData['OUT_DOC_REPORT_GENERATOR'])){ - $description .= ", Report Generator: ". $aData['OUT_DOC_REPORT_GENERATOR']; - } - if(!empty($aData['OUT_DOC_REPORT_GENERATOR'])){ - $description .= ", Output Document to Generate: ".$aData['OUT_DOC_GENERATE']; - } + if(!empty($aData['OUT_DOC_REPORT_GENERATOR'])){ + $description .= ", Report Generator: ". $aData['OUT_DOC_REPORT_GENERATOR']; + } + if(!empty($aData['OUT_DOC_REPORT_GENERATOR'])){ + $description .= ", Output Document to Generate: ".$aData['OUT_DOC_GENERATE']; + } if($aData['OUT_DOC_PDF_SECURITY_ENABLED']==0){ $pdfSecurity = 'Disabled'; }else{ @@ -289,14 +289,14 @@ class OutputDocument extends BaseOutputDocument if(!empty($aData['OUT_DOC_TAGS'])){ $description .= ", Tags: ".$aData['OUT_DOC_TAGS']; } - if(!empty($aData['OUT_DOC_OPEN_TYPE'])){ - if($aData['OUT_DOC_OPEN_TYPE']==0){ - $genLink = 'Open the file'; - }else{ - $genLink = 'Download the file'; - } - $description .= ", By clicking on the generated file link: ".$genLink; - } + if(!empty($aData['OUT_DOC_OPEN_TYPE'])){ + if($aData['OUT_DOC_OPEN_TYPE']==0){ + $genLink = 'Open the file'; + }else{ + $genLink = 'Download the file'; + } + $description .= ", By clicking on the generated file link: ".$genLink; + } if (isset($aData['OUT_DOC_TEMPLATE'])) { $description .= ", [EDIT TEMPLATE]"; } @@ -556,6 +556,24 @@ class OutputDocument extends BaseOutputDocument if (($sUID != '') && is_array($aFields) && ($sPath != '')) { $sContent = G::replaceDataGridField($sContent, $aFields); + if (strpos($sContent, ''; + $oFile = fopen($sPath . $sFilename . '_smarty.html', 'wb'); + fwrite($oFile, $sContent); + fclose($oFile); + $template->templateFile = $sPath . $sFilename . '_smarty.html'; + //assign the variables and use the template $template + $template->assign($aFields); + $sContent = $template->fetch($template->templateFile); + unlink($template->templateFile); + } + G::verifyPath($sPath, true); //Start - Create .doc From ab832b65f7f288c24fd2dd8335533107e24fd649 Mon Sep 17 00:00:00 2001 From: Brayan Pereyra Date: Wed, 10 Jun 2015 16:48:12 -0400 Subject: [PATCH 03/18] BUG-17552 Dependatnt checkgroups into grids --- gulliver/system/class.xmlform.php | 36 +++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/gulliver/system/class.xmlform.php b/gulliver/system/class.xmlform.php index 5f2c36a66..954d6315d 100755 --- a/gulliver/system/class.xmlform.php +++ b/gulliver/system/class.xmlform.php @@ -4028,6 +4028,42 @@ class XmlForm_Field_CheckGroup extends XmlForm_Field } } + + /** + * Renderring the checkgroup inner grid for Staff Eval Plugin + * @see class.form.php#validateArray(); + * @author Edauto + * @since 2012-07-20 + */ + public function renderGrid($values = NULL, $owner = NULL) { + $this->executeSQL ( $owner ); + $disable = ($owner->mode === 'view') ? 'disabled="disabled" ' : ' '; + $r = 1; + $result = array(); + foreach ( $values as $v ) { // foreach the grid row with selection + $i=1; + $html = ''; + if (! is_array ( $v )) { + $aV = explode ( '|', str_replace(" ","",$v)); + } else { + $aV = $v; + } + foreach ( $this->options as $optionName => $option ) { // foreach the options of checkbox group + $bChecked = in_array ( $i , $aV, true ) || in_array($optionName, $aV, true); + $html .= 'name . ']['. $r .']['. $this->name .'][]" '; + $html .= 'type="checkbox" value="' . $optionName . '" ' . ($bChecked ? 'checked ' : ' ') ; + $html .= $disable . '>' . $option . ''; + if(++$i==count($this->options)){ + $html .= ' ' . $this->renderHint(); + } + $html .= '
'; + } + $result[] = $html; + $r++; + } + return $result; + } } /* TODO: DEPRECATED */ From 310aaa3a3d49605b267353293dcb792cc6a39e16 Mon Sep 17 00:00:00 2001 From: "Paula V. Quispe" Date: Tue, 16 Jun 2015 15:46:41 -0400 Subject: [PATCH 04/18] PM-2973: classic, despues de derivar no actualiza la data de la grilla --- .../ProcessMaker/BusinessModel/Consolidated.php | 15 ++++++++++++++- .../ProcessMaker/Services/Api/Consolidated.php | 8 +++++--- .../templates/cases/casesListConsolidated.js | 16 ++++++++++++---- 3 files changed, 31 insertions(+), 8 deletions(-) diff --git a/workflow/engine/src/ProcessMaker/BusinessModel/Consolidated.php b/workflow/engine/src/ProcessMaker/BusinessModel/Consolidated.php index 41cf13800..5c83d2f5e 100644 --- a/workflow/engine/src/ProcessMaker/BusinessModel/Consolidated.php +++ b/workflow/engine/src/ProcessMaker/BusinessModel/Consolidated.php @@ -70,7 +70,7 @@ class Consolidated * @author Brayan Pereyra (Cochalo) * @copyright Colosa - Bolivia */ - public function postDerivate ($app_uid, $app_number, $del_index, $usr_uid) + public function postDerivate ($app_uid, $app_number, $del_index, $usr_uid, $fieldName='', $fieldValue='') { G::LoadClass("library"); G::LoadClass("wsBase"); @@ -82,6 +82,19 @@ class Consolidated if (!isset($Fields["DEL_INIT_DATE"])) { $oCase->setDelInitDate($app_uid, $del_index); $aFields = $oCase->loadCase($app_uid, $del_index); + //Update data grid + $aData = $aFields['APP_DATA']; + foreach ($aData as $k => $dataField) { + if(is_array($dataField)){ + $pos = count($dataField); + if(isset($aData[$k][$pos][$fieldName])){ + $aData[$k][$pos][$fieldName] = $fieldValue; + } + } + } + $aFields['APP_DATA'] = $aData; + $oCase->updateCase($app_uid, $aFields); + //End update } $res = $ws->derivateCase($usr_uid, $app_uid, $del_index, true); diff --git a/workflow/engine/src/ProcessMaker/Services/Api/Consolidated.php b/workflow/engine/src/ProcessMaker/Services/Api/Consolidated.php index 35705c86f..8c06c1bba 100644 --- a/workflow/engine/src/ProcessMaker/Services/Api/Consolidated.php +++ b/workflow/engine/src/ProcessMaker/Services/Api/Consolidated.php @@ -136,19 +136,21 @@ class Consolidated extends Api * @param string $app_uid {@min 1} {@max 32} * @param string $app_number * @param string $del_index + * @param string $field_grid + * @param string $field_grid_val * @return array * * @author Brayan Pereyra (Cochalo) * @copyright Colosa - Bolivia * - * @url POST /derivate/:app_uid/:app_number/:del_index + * @url POST /derivate/:app_uid/:app_number/:del_index/:field_grid/:field_grid_val */ - public function doPostDerivate($app_uid, $app_number, $del_index) + public function doPostDerivate($app_uid, $app_number, $del_index, $field_grid, $field_grid_val) { try { $usr_uid = $this->getUserId(); $consolidated = new \ProcessMaker\BusinessModel\Consolidated(); - return $consolidated->postDerivate($app_uid, $app_number, $del_index, $usr_uid); + return $consolidated->postDerivate($app_uid, $app_number, $del_index, $usr_uid,$field_grid, $field_grid_val); } catch (\Exception $e) { throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage())); } diff --git a/workflow/engine/templates/cases/casesListConsolidated.js b/workflow/engine/templates/cases/casesListConsolidated.js index b2e9dd1df..3eb244e35 100644 --- a/workflow/engine/templates/cases/casesListConsolidated.js +++ b/workflow/engine/templates/cases/casesListConsolidated.js @@ -1,6 +1,7 @@ var grdNumRows = 0; // var grdRowLabel = []; // - +var fieldGridGral = ''; +var fieldGridGralVal = ''; @@ -409,9 +410,16 @@ Ext.onReady(function () { var selectedRow = Ext.getCmp(gridId).getSelectionModel().getSelections(); var maxLenght = selectedRow.length; for (var i in selectedRow) { + rowGrid = selectedRow[i].data + for (fieldGrid in rowGrid){ + if(fieldGrid != 'APP_UID' && fieldGrid != 'APP_NUMBER' && fieldGrid != 'APP_TITLE' && fieldGrid != 'DEL_INDEX' ){ + fieldGridGral = fieldGrid; + fieldGridGralVal = rowGrid[fieldGrid]; + } + } if (selectedRow[i].data) { //alert (derivateRequestAjax(selectedRow[i].data["company"])); - ajaxDerivationRequest(selectedRow[i].data["APP_UID"], selectedRow[i].data["DEL_INDEX"], maxLenght, selectedRow[i].data["APP_NUMBER"]); + ajaxDerivationRequest(selectedRow[i].data["APP_UID"], selectedRow[i].data["DEL_INDEX"], maxLenght, selectedRow[i].data["APP_NUMBER"],fieldGridGral, fieldGridGralVal); } } } @@ -1298,14 +1306,14 @@ function generateGrid(proUid, tasUid, dynUid) }); } -function ajaxDerivationRequest(appUid, delIndex, maxLenght, appNumber){ +function ajaxDerivationRequest(appUid, delIndex, maxLenght, appNumber,fieldGridGral, fieldGridGralVal){ Ext.Ajax.request({ method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'Bearer ' + credentials.access_token }, - url: urlProxy + 'derivate/' + appUid + '/' + appNumber + '/' + delIndex, + url: urlProxy + 'derivate/' + appUid + '/' + appNumber + '/' + delIndex + '/' + fieldGridGral + '/' + fieldGridGralVal, success: function(response) { var dataResponse; var fullResponseText = response.responseText; From 4a1725492b9531275ab5bbe1a420858928156ae0 Mon Sep 17 00:00:00 2001 From: "Paula V. Quispe" Date: Wed, 17 Jun 2015 10:52:47 -0400 Subject: [PATCH 05/18] PM-2938: I solved a notice --- .../methods/cases/casesConsolidatedListExtJs.php | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/workflow/engine/methods/cases/casesConsolidatedListExtJs.php b/workflow/engine/methods/cases/casesConsolidatedListExtJs.php index 2861f4f95..173112538 100644 --- a/workflow/engine/methods/cases/casesConsolidatedListExtJs.php +++ b/workflow/engine/methods/cases/casesConsolidatedListExtJs.php @@ -3,9 +3,9 @@ $action = (isset($_REQUEST["action"])) ? $_REQUEST["action"] : "consolidated"; $oCriteria = new Criteria("workflow"); -$oCriteria->addSelectColumn(CaseConsolidatedPeer::CON_STATUS); -$oCriteria->add(CaseConsolidatedPeer::CON_STATUS, "ACTIVE"); -$activeNumRows = CaseConsolidatedPeer::doCount($oCriteria); +$oCriteria->addSelectColumn(CaseConsolidatedCorePeer::CON_STATUS); +$oCriteria->add(CaseConsolidatedCorePeer::CON_STATUS, "ACTIVE"); +$activeNumRows = CaseConsolidatedCorePeer::doCount($oCriteria); G::LoadClass ("BasePeer"); G::LoadClass ("configuration"); @@ -18,16 +18,16 @@ $usrUid = $_SESSION["USER_LOGGED"]; $oCriteria = new Criteria("workflow"); $oCriteria->addSelectColumn("*"); -$oCriteria->addSelectColumn(CaseConsolidatedPeer::TAS_UID); -$oCriteria->addJoin(CaseConsolidatedPeer::TAS_UID,ContentPeer::CON_ID, Criteria::LEFT_JOIN); -$oCriteria->addJoin(CaseConsolidatedPeer::TAS_UID,TaskPeer::TAS_UID, Criteria::LEFT_JOIN); +$oCriteria->addSelectColumn(CaseConsolidatedCorePeer::TAS_UID); +$oCriteria->addJoin(CaseConsolidatedCorePeer::TAS_UID,ContentPeer::CON_ID, Criteria::LEFT_JOIN); +$oCriteria->addJoin(CaseConsolidatedCorePeer::TAS_UID,TaskPeer::TAS_UID, Criteria::LEFT_JOIN); $oCriteria->addAnd(ContentPeer::CON_CATEGORY, "TAS_TITLE"); $oCriteria->addAnd(ContentPeer::CON_LANG, "en"); $params = array(); //This will be filled with the parameters $sql = BasePeer::createSelectSql($oCriteria, $params); -$oDataset = CaseConsolidatedPeer::doSelectRS($oCriteria); +$oDataset = CaseConsolidatedCorePeer::doSelectRS($oCriteria); $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); //$oDataset->next(); while ($oDataset->next()) { From e9f1f9ad4104250c7cbb0e072487143da935e3b2 Mon Sep 17 00:00:00 2001 From: Marco Antonio Nina Mena Date: Wed, 17 Jun 2015 13:47:52 -0400 Subject: [PATCH 06/18] Delete graphic task status --- workflow/engine/js/strategicDashboard/viewDashboardView.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/workflow/engine/js/strategicDashboard/viewDashboardView.js b/workflow/engine/js/strategicDashboard/viewDashboardView.js index 68bc584db..c69a67957 100644 --- a/workflow/engine/js/strategicDashboard/viewDashboardView.js +++ b/workflow/engine/js/strategicDashboard/viewDashboardView.js @@ -505,7 +505,7 @@ var loadIndicator = function (indicatorId, initDate, endDate) { fillSpecialIndicatorFirstView(viewModel); break; case "1050": - fillStatusIndicatorFirstView(viewModel); + //fillStatusIndicatorFirstView(viewModel); break; default: fillGeneralIndicatorFirstView(viewModel); From 2e0198622d8ce9517c368d392c5c18aa995f8a05 Mon Sep 17 00:00:00 2001 From: Marco Antonio Nina Mena Date: Thu, 18 Jun 2015 10:09:38 -0400 Subject: [PATCH 07/18] NND-74 Agregar un total queue - Se agrego la columna en usr_reporting, schema.xml, schema.sql --- workflow/engine/config/schema.xml | 33 ++++++++++--------- workflow/engine/data/mysql/schema.sql | 33 ++++++++++--------- .../setupSchemas/triggerFillReportByUser.sql | 2 ++ 3 files changed, 36 insertions(+), 32 deletions(-) diff --git a/workflow/engine/config/schema.xml b/workflow/engine/config/schema.xml index f2c40ce46..c3c7e0d14 100755 --- a/workflow/engine/config/schema.xml +++ b/workflow/engine/config/schema.xml @@ -4852,22 +4852,23 @@ - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + diff --git a/workflow/engine/data/mysql/schema.sql b/workflow/engine/data/mysql/schema.sql index f54fdb02c..aba16cf92 100755 --- a/workflow/engine/data/mysql/schema.sql +++ b/workflow/engine/data/mysql/schema.sql @@ -2702,22 +2702,23 @@ DROP TABLE IF EXISTS `USR_REPORTING`; CREATE TABLE `USR_REPORTING` ( - `USR_UID` VARCHAR(32) NOT NULL, - `TAS_UID` VARCHAR(32) NOT NULL, - `PRO_UID` VARCHAR(32) NOT NULL, - `MONTH` INTEGER default 0 NOT NULL, - `YEAR` INTEGER default 0 NOT NULL, - `TOTAL_TIME_BY_TASK` DECIMAL(7,2) default 0, - `TOTAL_CASES_IN` DECIMAL(7,2) default 0, - `TOTAL_CASES_OUT` DECIMAL(7,2) default 0, - `USER_HOUR_COST` DECIMAL(7,2) default 0, - `AVG_TIME` DECIMAL(7,2) default 0, - `SDV_TIME` DECIMAL(7,2) default 0, - `CONFIGURED_TASK_TIME` DECIMAL(7,2) default 0, - `TOTAL_CASES_OVERDUE` DECIMAL(7,2) default 0, - `TOTAL_CASES_ON_TIME` DECIMAL(7,2) default 0, - `PRO_COST` DECIMAL(7,2) default 0, - `PRO_UNIT_COST` VARCHAR(50) default '', + `USR_UID` VARCHAR(32) NOT NULL, + `TAS_UID` VARCHAR(32) NOT NULL, + `PRO_UID` VARCHAR(32) NOT NULL, + `MONTH` INTEGER default 0 NOT NULL, + `YEAR` INTEGER default 0 NOT NULL, + `TOTAL_QUEUE_TIME_BY_TASK` DECIMAL(7,2) default 0, + `TOTAL_TIME_BY_TASK` DECIMAL(7,2) default 0, + `TOTAL_CASES_IN` DECIMAL(7,2) default 0, + `TOTAL_CASES_OUT` DECIMAL(7,2) default 0, + `USER_HOUR_COST` DECIMAL(7,2) default 0, + `AVG_TIME` DECIMAL(7,2) default 0, + `SDV_TIME` DECIMAL(7,2) default 0, + `CONFIGURED_TASK_TIME` DECIMAL(7,2) default 0, + `TOTAL_CASES_OVERDUE` DECIMAL(7,2) default 0, + `TOTAL_CASES_ON_TIME` DECIMAL(7,2) default 0, + `PRO_COST` DECIMAL(7,2) default 0, + `PRO_UNIT_COST` VARCHAR(50) default '', PRIMARY KEY (`USR_UID`, `TAS_UID`,`MONTH`,`YEAR`), KEY `indexReporting`(`USR_UID`, `TAS_UID`, `PRO_UID`) )ENGINE=InnoDB DEFAULT CHARSET='utf8' COMMENT='Data calculated users by task'; diff --git a/workflow/engine/methods/setup/setupSchemas/triggerFillReportByUser.sql b/workflow/engine/methods/setup/setupSchemas/triggerFillReportByUser.sql index dc468398f..a630c7b43 100644 --- a/workflow/engine/methods/setup/setupSchemas/triggerFillReportByUser.sql +++ b/workflow/engine/methods/setup/setupSchemas/triggerFillReportByUser.sql @@ -12,6 +12,7 @@ INSERT INTO USR_REPORTING ( PRO_UID, MONTH, YEAR, + TOTAL_QUEUE_TIME_BY_TASK, TOTAL_TIME_BY_TASK, TOTAL_CASES_IN, TOTAL_CASES_OUT, @@ -31,6 +32,7 @@ SELECT ACV.PRO_UID, DATE_FORMAT(ACV.DEL_INIT_DATE, '%m') AS `MONTH`, DATE_FORMAT(ACV.DEL_INIT_DATE, '%Y') AS `YEAR`, + SUM(ACV.DEL_QUEUE_DURATION*24) AS TOTAL_QUEUE_TIME_BY_TASK, SUM(ACV.DEL_DURATION*24) AS TOT_TIME_BY_TASK, COUNT(ACV.DEL_INIT_DATE) AS TOT_CASES_IN, COUNT(ACV.DEL_FINISH_DATE) AS TOT_CASES_OUT, From e8258b2e635d38e345aee18bd33ad06df0167eec Mon Sep 17 00:00:00 2001 From: Dante Date: Thu, 18 Jun 2015 10:25:57 -0400 Subject: [PATCH 08/18] NDD70, 66, 73 --- .../strategicDashboard/timeSeriesPresenter.js | 50 ++++++++++++++++++- .../strategicDashboard/viewDashboard.html | 10 ++-- workflow/public_html/css/sb-admin-2.css | 4 +- 3 files changed, 55 insertions(+), 9 deletions(-) diff --git a/workflow/engine/js/strategicDashboard/timeSeriesPresenter.js b/workflow/engine/js/strategicDashboard/timeSeriesPresenter.js index e274443c0..7f2efcc3e 100644 --- a/workflow/engine/js/strategicDashboard/timeSeriesPresenter.js +++ b/workflow/engine/js/strategicDashboard/timeSeriesPresenter.js @@ -113,6 +113,7 @@ TimeSeriesPresenter.prototype.changePeriodicityToMonth = function (monthList) { this.endPeriodState.list = monthList; this.initPeriodState.visible = true; this.endPeriodState.visible = true; + this.endPeriodState.selValue = this.periodEquivalentFromDate (this.helper.ReportingPeriodicityEnum.MONTH, new Date()); } TimeSeriesPresenter.prototype.changePeriodicityToQuarter = function (quarterList) { @@ -120,6 +121,7 @@ TimeSeriesPresenter.prototype.changePeriodicityToQuarter = function (quarterList this.endPeriodState.list = quarterList; this.initPeriodState.visible = true; this.endPeriodState.visible = true; + this.endPeriodState.selValue = this.periodEquivalentFromDate (this.helper.ReportingPeriodicityEnum.QUARTER, new Date()); } TimeSeriesPresenter.prototype.changePeriodicityToSemester = function (semesterList) { @@ -127,6 +129,7 @@ TimeSeriesPresenter.prototype.changePeriodicityToSemester = function (semesterLi this.endPeriodState.list = semesterList; this.initPeriodState.visible = true; this.endPeriodState.visible = true; + this.endPeriodState.selValue = this.periodEquivalentFromDate (this.helper.ReportingPeriodicityEnum.SEMESTER, new Date()); } TimeSeriesPresenter.prototype.changePeriodicityToYear = function (yearList) { @@ -134,6 +137,7 @@ TimeSeriesPresenter.prototype.changePeriodicityToYear = function (yearList) { this.endPeriodState.list = []; this.initPeriodState.visible = false; this.endPeriodState.visible = false; + this.endPeriodState.selValue = this.periodEquivalentFromDate (this.helper.ReportingPeriodicityEnum.YEAR, new Date()); } TimeSeriesPresenter.prototype.historicData = function (indicator, periodicity, initPeriod, @@ -145,7 +149,7 @@ TimeSeriesPresenter.prototype.historicData = function (indicator, periodicity, i this.model.historicData(indicator, periodicity, initDate, endDate).done(function (data) { var graphData = []; $.each(data, function(index, originalObject) { - var newObject = {datalabel: that.periodValue(periodicity, originalObject) + '/' + originalObject['YEAR'], + var newObject = {datalabel: that.periodColumnName(periodicity, originalObject) + '/' + originalObject['YEAR'], value: originalObject.VALUE } graphData.push(newObject); @@ -157,7 +161,7 @@ TimeSeriesPresenter.prototype.historicData = function (indicator, periodicity, i } -TimeSeriesPresenter.prototype.periodValue = function (periodicity, object) { +TimeSeriesPresenter.prototype.periodColumnName = function (periodicity, object) { var retval = ""; switch (periodicity*1) { case this.helper.ReportingPeriodicityEnum.MONTH: @@ -179,6 +183,48 @@ TimeSeriesPresenter.prototype.periodValue = function (periodicity, object) { return retval; } +TimeSeriesPresenter.prototype.periodEquivalentFromDate = function (periodicity, date) { + var retval = null; + var year = date.getFullYear(); + + switch (periodicity * 1) { + case this.helper.ReportingPeriodicityEnum.MONTH: + for (var i = 1; i < 12; i++) { + var periodInitDate = this.periodInitDate (periodicity, i, year); + var periodEndDate = this.periodEndDate (periodicity, i, year); + if (periodInitDate <= date && periodEndDate >= date) { + retval = i; + } + } + break; + case this.helper.ReportingPeriodicityEnum.QUARTER: + for (var i = 1; i < 4; i++) { + var periodInitDate = this.periodInitDate (periodicity, i, year); + var periodEndDate = this.periodEndDate (periodicity, i, year); + if (periodInitDate <= date && periodEndDate >= date) { + retval = i; + } + } + break; + case this.helper.ReportingPeriodicityEnum.SEMESTER: + for (var i = 1; i < 2; i++) { + var periodInitDate = this.periodInitDate (periodicity, i, year); + var periodEndDate = this.periodEndDate (periodicity, i, year); + if (periodInitDate <= date && periodEndDate >= date) { + retval = i; + } + } + break; + case this.helper.ReportingPeriodicityEnum.YEAR: + retval = year + break; + } + if (retval == null) { + throw new Error("The periodicity " + periodicity + " is not supported."); + } + return retval; +} + TimeSeriesPresenter.prototype.periodInitDate = function (periodicity, period, year) { var retval = null; switch (periodicity * 1) { diff --git a/workflow/engine/templates/strategicDashboard/viewDashboard.html b/workflow/engine/templates/strategicDashboard/viewDashboard.html index 0c6d51ef7..0ad1b3b74 100644 --- a/workflow/engine/templates/strategicDashboard/viewDashboard.html +++ b/workflow/engine/templates/strategicDashboard/viewDashboard.html @@ -79,7 +79,7 @@ data-indicator-type="<%- indicator.type %>" data-gs-min-width="3" data-gs-min-height="2" data-gs-max-height="2" data-toggle="tooltip" data-original-title={translate label="ID_DASH_HELP_INBOX_STATUS"}> -
+