Merged in marcoAntonioNina/processmaker/dashboards2 (pull request #2325)

Add link home inbox
This commit is contained in:
Dante Loayza
2015-06-11 13:04:47 -04:00
8 changed files with 2192 additions and 2063 deletions

View File

@@ -324,6 +324,7 @@ class ListInbox extends BaseListInbox
$category = isset($filters['category']) ? $filters['category'] : "";
$dateFrom = isset($filters['dateFrom']) ? $filters['dateFrom'] : "";
$dateTo = isset($filters['dateTo']) ? $filters['dateTo'] : "";
$filterStatus = isset($filters['filterStatus']) ? $filters['filterStatus'] : "";
if ($filter != '') {
switch ($filter) {
@@ -379,6 +380,21 @@ class ListInbox extends BaseListInbox
$criteria->add( ListInboxPeer::DEL_DELEGATE_DATE, $dateTo, Criteria::LESS_EQUAL );
}
if ($filterStatus != '') {
switch ($filterStatus) {
case 'ON_TIME':
$criteria->add( ListInboxPeer::DEL_RISK_DATE , "TIMEDIFF(". ListInboxPeer::DEL_RISK_DATE." , NOW( ) ) > 0", Criteria::CUSTOM);
break;
case 'AT_RISK':
$criteria->add( ListInboxPeer::DEL_RISK_DATE , "TIMEDIFF(". ListInboxPeer::DEL_RISK_DATE .", NOW( ) ) < 0", Criteria::CUSTOM);
$criteria->add( ListInboxPeer::DEL_DUE_DATE , "TIMEDIFF(". ListInboxPeer::DEL_DUE_DATE .", NOW( ) ) > 0", Criteria::CUSTOM);
break;
case 'OVERDUE':
$criteria->add( ListInboxPeer::DEL_DUE_DATE , "TIMEDIFF(". ListInboxPeer::DEL_DUE_DATE." , NOW( ) ) < 0", Criteria::CUSTOM);
break;
}
}
}
public function countTotal ($usr_uid, $filters = array())

View File

@@ -174,6 +174,7 @@ class StrategicDashboard extends Controller
$this->setView( 'strategicDashboard/viewDashboard' );
$this->setVar('urlProxy', $this->urlProxy);
$this->setVar('SYS_SYS', SYS_SYS);
$this->setVar('usrId', $this->usrId);
$this->setVar('credentials', $this->clientToken);
$this->setVar('unitCost', $this->usrUnitCost);

View File

@@ -54,8 +54,9 @@ $(document).ready(function() {
});
var bindTimeSeriesLists = function (presenter, elementsToConserve = []) {
var bindTimeSeriesLists = function (presenter, elementsToConserve) {
var conserveStates =[];
elementsToConserve =[];
$.each (elementsToConserve, function (i, elem){
conserveStates.push({id:elem, selValue: $('#' + elem).val()});
});

View File

@@ -376,6 +376,18 @@ $(document).ready(function() {
loadIndicator(indicatorId, defaultInitDate(), defaultEndDate());
});
$('#indicatorsGridStack').on('click','.status-indicator-low', function() {
locationCases('OVERDUE');
});
$('#indicatorsGridStack').on('click','.status-indicator-medium', function() {
locationCases('AT_RISK');
});
$('#indicatorsGridStack').on('click','.status-indicator-high', function() {
locationCases('ON_TIME');
});
$('body').on('click','.bread-back-selector', function() {
var indicatorId = window.currentIndicator.id;
loadIndicator(indicatorId, defaultInitDate(), defaultEndDate());
@@ -1001,6 +1013,28 @@ var animateProgress = function (indicatorItem, widget){
fpAnimationFrame(animacion);
};
var createCookie = function (name, value, time) {
if (time) {
var date = new Date();
date.setTime(date.getTime()+(time*24*60*60*1000));
var expires = "; expires="+date.toUTCString();
} else {
var expires = "";
}
document.cookie = name+"="+value+expires+"; path=/sys"+workspace;
};
var locationCases = function (type) {
createCookie("dashboardListInbox", type, 1);
var currentLocation = location.href;
var position = currentLocation.lastIndexOf('/', currentLocation.lastIndexOf('/') - 1);
currentLocation = currentLocation.substring(0, position+1);
currentLocation = currentLocation + 'cases/main';
parent.location.href = currentLocation;
};
/*var dashboardButtonTemplate = ' <div class="btn-group pull-left"> \
<button id="favorite" type="button" class="btn btn-success"><i class="fa fa-star fa-1x"></i></button> \
<button id="dasB" type="button" class="btn btn-success">'+ G_STRING.ID_MANAGERS_DASHBOARDS +'</button> \

View File

@@ -4,6 +4,10 @@ unset($_SESSION['APPLICATION']);
//get the action from GET or POST, default is todo
$action = isset( $_GET['action'] ) ? $_GET['action'] : (isset( $_POST['action'] ) ? $_POST['action'] : 'todo');
/*----------------------------------********---------------------------------*/
$filterAction = isset( $_GET['filterAction'] ) ? $_GET['filterAction'] : (isset( $_POST['filterAction'] ) ? $_POST['filterAction'] : '');
/*----------------------------------********---------------------------------*/
//fix a previous inconsistency
$urlProxy = 'proxyCasesList';
if ($action == 'selfservice') {
@@ -179,6 +183,28 @@ $oHeadPublisher->assign( 'allUsersValues', $allUsers ); //Sending the listing of
$oHeadPublisher->assign( 'solrEnabled', $solrEnabled ); //Sending the status of solar
$oHeadPublisher->assign( 'enableEnterprise', $enableEnterprise ); //sending the page size
/*----------------------------------********---------------------------------*/
$licensedFeatures = & PMLicensedFeatures::getSingleton();
if ($licensedFeatures->verifyfeature('r19Vm5DK1UrT09MenlLYjZxejlhNUZ1b1NhV0JHWjBsZEJ6dnpJa3dTeWVLVT0=') ) {
$filterStatus[] = array('', G::LoadTranslation('ID_ALL_STATUS'));
$filterStatus[] = array('ON_TIME', G::LoadTranslation('ID_ON_TIME'));
$filterStatus[] = array('AT_RISK', G::LoadTranslation('ID_AT_RISK'));
$filterStatus[] = array('OVERDUE', G::LoadTranslation('ID_TASK_OVERDUE'));
$oHeadPublisher->assign('filterStatus', $filterStatus);
if (isset($_COOKIE['dashboardListInbox'])) {
$oHeadPublisher->assign('valueFilterStatus', $_COOKIE['dashboardListInbox']);
if (PHP_VERSION < 5.2) {
setcookie("dashboardListInbox", '', time() + (24 * 60 * 60), "/sys" . SYS_SYS, "; HttpOnly");
} else {
setcookie("dashboardListInbox", '', time() + (24 * 60 * 60), "/sys" . SYS_SYS, null, false, true);
}
}
}
/*----------------------------------********---------------------------------*/
//menu permissions
/*$c = new Criteria('workflow');
$c->clearSelectColumns();

View File

@@ -32,6 +32,7 @@ try {
$filters['action'] = isset( $_REQUEST["action"] ) ? $_REQUEST["action"] : "";
$listName = isset( $_REQUEST["list"] ) ? $_REQUEST["list"] : "inbox";
$filters['filterStatus'] = isset( $_REQUEST["filterStatus"] ) ? $_REQUEST["filterStatus"] : "";
// Select list
switch ($listName) {
@@ -155,6 +156,7 @@ try {
$filtersData['date_from'] = $filters['dateFrom'];
$filtersData['date_to'] = $filters['dateTo'];
$filtersData["action"] = $filters["action"];
$filtersData["filterStatus"] = $filters['filterStatus'];
$response = array();
$response['filters'] = $filtersData;

View File

@@ -836,6 +836,13 @@ Ext.onReady ( function() {
});
//Layout Resizing
/*----------------------------------********---------------------------------*/
if (typeof valueFilterStatus != 'undefined') {
if (valueFilterStatus != '') {
storeCases.setBaseParam('filterStatus', valueFilterStatus);
}
}
/*----------------------------------********---------------------------------*/
storeCases.on('load',function(){var viewport = Ext.getCmp("viewportcases");viewport.doLayout();})
// create the Data Store for processes
@@ -1050,6 +1057,40 @@ Ext.onReady ( function() {
iconCls: 'no-icon'
});
/*----------------------------------********---------------------------------*/
var comboFilterStatus = new Ext.form.ComboBox({
width : 180,
boxMaxWidth : 200,
editable : false,
displayField : 'NAME',
valueField : 'UID',
forceSelection : false,
emptyText : _('ID_SELECT_STATUS'),
selectOnFocus : true,
typeAhead : true,
mode : 'local',
autocomplete : true,
triggerAction : 'all',
store : new Ext.data.ArrayStore({
fields : ['UID','NAME'],
data : filterStatus
}),
listeners:{
scope: this,
'select': function() {
var filter = comboFilterStatus.value;
if ( action == 'search' ){
storeCases.setBaseParam('dateFrom', dateFrom.getValue());
storeCases.setBaseParam('dateTo', dateTo.getValue());
}
storeCases.setBaseParam('filterStatus', filter);
storeCases.load({params:{ start : 0 , limit : pageSize }});
}
},
iconCls: 'no-icon'
});
/*----------------------------------********---------------------------------*/
var btnSelectAll = new Ext.Button ({
text: _('CHECK_ALL'),
// text: 'Check All',
@@ -1664,6 +1705,8 @@ Ext.onReady ( function() {
'-',
btnAll,
'->', // begin using the right-justified button container
_('ID_OVERDUE'),
comboFilterStatus,
_("ID_CATEGORY"),
comboCategory,
"-",
@@ -2267,6 +2310,11 @@ var gridForm = new Ext.FormPanel({
comboCategory.setValue("");
comboProcess.setValue("");
comboStatus.setValue("");
/*----------------------------------********---------------------------------*/
if (typeof valueFilterStatus != 'undefined') {
comboFilterStatus.setValue(valueFilterStatus);
}
/*----------------------------------********---------------------------------*/
if(typeof(comboUser) != 'undefined'){
comboUser.setValue("");
}

View File

@@ -24,6 +24,7 @@
<script type="text/javascript" src="/js/pmchart/pmCharts.js"></script>
<script type="text/javascript" >
var urlProxy = '{$urlProxy}';
var workspace = '{$SYS_SYS}';
var pageUserId = '{$usrId}';
var token = '{$credentials.access_token}';
var moneyUnit = '{$unitCost}';