optimize counting tasks

This commit is contained in:
Uwe Steinmann 2024-11-11 09:29:41 +01:00
parent 9573d473e9
commit bbfd144906
3 changed files with 46 additions and 14 deletions

View File

@ -112,6 +112,38 @@ class SeedDMS_View_Tasks extends SeedDMS_Theme_Style {
return $tasks;
} /* }}} */
/**
* Returns the number of tasks
*
* @return array list of tasks an its number
*/
function countTasks() { /* {{{ */
$dms = $this->params['dms'];
$user = $this->params['user'];
$enablereceiptworkflow = $this->params['enablereceiptworkflow'];
$enablerevisionworkflow = $this->params['enablerevisionworkflow'];
$workflowmode = $this->params['workflowmode'];
$tasksinmenu = $this->params['tasksinmenu'];
$startts = microtime(true);
$tasks = array();
if($workflowmode == 'traditional' || $workflowmode == 'traditional_only_approval')
if(!$tasksinmenu || in_array('approval', $tasksinmenu)) {
$tasks['approval'] = $dms->countTasks('ApproveByMe', $user);
}
if($workflowmode == 'traditional')
if(!$tasksinmenu || in_array('review', $tasksinmenu)) {
$tasks['review'] = $dms->countTasks('ReviewByMe', $user);
}
if($workflowmode == 'advanced')
if(!$tasksinmenu || in_array('workflow', $tasksinmenu)) {
$tasks['workflow'] = $dms->countTasks('WorkflowByMe', $user);
}
header('Content-Type: application/json');
echo json_encode(array('error'=>0, 'data'=>$tasks, 'processing_time'=>microtime(true)-$startts));
} /* }}} */
/**
* Returns the html needed for the task list in the menu
*

View File

@ -1618,17 +1618,17 @@ $(document).ready(function() { /* {{{ */
$.ajax({url: seeddms_webroot+'out/out.Tasks.php',
type: 'GET',
dataType: "json",
data: {action: 'mytasks'},
data: {action: 'counttasks'},
success: function(data) {
if(data) {
if((typeof data.data.approval != 'undefined' && approval_count != data.data.approval.length) ||
(typeof data.data.review != 'undefined' && review_count != data.data.review.length) ||
(typeof data.data.workflow != 'undefined' && workflow_count != data.data.workflow.length)) {
if((typeof data.data.approval != 'undefined' && approval_count != data.data.approval) ||
(typeof data.data.review != 'undefined' && review_count != data.data.review) ||
(typeof data.data.workflow != 'undefined' && workflow_count != data.data.workflow)) {
// $("#menu-tasks").html('Loading').hide().load('../out/out.Tasks.php?action=menutasks').fadeIn('500')
$('#menu-tasks > div.ajax').trigger('update', {folderid: seeddms_folder});
approval_count = typeof data.data.approval != 'undefined' ? data.data.approval.length : 0;
review_count = typeof data.data.review != 'undefined' ? data.data.review.length : 0;
workflow_count = typeof data.data.workflow != 'undefined' ? data.data.workflow.length : 0;
approval_count = typeof data.data.approval != 'undefined' ? data.data.approval : 0;
review_count = typeof data.data.review != 'undefined' ? data.data.review : 0;
workflow_count = typeof data.data.workflow != 'undefined' ? data.data.workflow : 0;
}
}
},

View File

@ -1697,17 +1697,17 @@ $(document).ready(function() { /* {{{ */
$.ajax({url: seeddms_webroot+'out/out.Tasks.php',
type: 'GET',
dataType: "json",
data: {action: 'mytasks'},
data: {action: 'counttasks'},
success: function(data) {
if(data) {
if((typeof data.data.approval != 'undefined' && approval_count != data.data.approval.length) ||
(typeof data.data.review != 'undefined' && review_count != data.data.review.length) ||
(typeof data.data.workflow != 'undefined' && workflow_count != data.data.workflow.length)) {
if((typeof data.data.approval != 'undefined' && approval_count != data.data.approval) ||
(typeof data.data.review != 'undefined' && review_count != data.data.review) ||
(typeof data.data.workflow != 'undefined' && workflow_count != data.data.workflow)) {
// $("#menu-tasks").html('Loading').hide().load('../out/out.Tasks.php?action=menutasks').fadeIn('500')
$('#menu-tasks > div.ajax').trigger('update', {folderid: seeddms_folder});
approval_count = typeof data.data.approval != 'undefined' ? data.data.approval.length : 0;
review_count = typeof data.data.review != 'undefined' ? data.data.review.length : 0;
workflow_count = typeof data.data.workflow != 'undefined' ? data.data.workflow.length : 0;
approval_count = typeof data.data.approval != 'undefined' ? data.data.approval : 0;
review_count = typeof data.data.review != 'undefined' ? data.data.review : 0;
workflow_count = typeof data.data.workflow != 'undefined' ? data.data.workflow : 0;
}
}
},