count workflows to trigger if workflowmode='advanced'

This commit is contained in:
Uwe Steinmann 2018-03-27 17:47:58 +02:00
parent f594d1ef62
commit d017726984
3 changed files with 66 additions and 26 deletions

View File

@ -32,6 +32,7 @@ $tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME']));
$view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user)); $view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user));
if($view) { if($view) {
$view->setParam('workflowmode', $settings->_workflowMode);
$view->setParam('previewWidthList', $settings->_previewWidthList); $view->setParam('previewWidthList', $settings->_previewWidthList);
$view->setParam('timeout', $settings->_cmdTimeout); $view->setParam('timeout', $settings->_cmdTimeout);
$view($_GET); $view($_GET);

View File

@ -1003,7 +1003,7 @@ $(document).ready(function() { /* {{{ */
}); });
}); /* }}} */ }); /* }}} */
var approval_count, review_count, receipt_count, revision_count; var approval_count, review_count, workflow_count;
var checkTasks = function() { var checkTasks = function() {
$.ajax({url: '../out/out.Tasks.php', $.ajax({url: '../out/out.Tasks.php',
type: 'GET', type: 'GET',
@ -1011,11 +1011,13 @@ $(document).ready(function() { /* {{{ */
data: {action: 'mytasks'}, data: {action: 'mytasks'},
success: function(data) { success: function(data) {
if(data) { if(data) {
if(approval_count != data.data.approval.length || if((typeof data.data.approval != 'undefined' && approval_count != data.data.approval.length) ||
review_count != data.data.review.length) { (typeof data.data.review != 'undefined' && review_count != data.data.review.length) ||
(typeof data.data.workflow != 'undefined' && workflow_count != data.data.workflow.length)) {
$("#menu-tasks > ul > li").html('Loading').hide().load('../out/out.Tasks.php?action=menutasks').fadeIn('500') $("#menu-tasks > ul > li").html('Loading').hide().load('../out/out.Tasks.php?action=menutasks').fadeIn('500')
approval_count = data.data.approval.length; approval_count = typeof data.data.approval != 'undefined' ? data.data.approval.length : 0;
review_count = data.data.review.length; review_count = typeof data.data.review != 'undefined' ? data.data.review.length : 0;
workflow_count = typeof data.data.workflow != 'undefined' ? data.data.workflow.length : 0;
} }
} }
}, },

View File

@ -39,25 +39,42 @@ class SeedDMS_View_Tasks extends SeedDMS_Bootstrap_Style {
private function __myTasks() { /* {{{ */ private function __myTasks() { /* {{{ */
$dms = $this->params['dms']; $dms = $this->params['dms'];
$user = $this->params['user']; $user = $this->params['user'];
$tasks['review'] = array(); $workflowmode = $this->params['workflowmode'];
$tasks['approval'] = array(); if($workflowmode == 'traditional')
$tasks['receipt'] = array(); $tasks['review'] = array();
$tasks['revision'] = array(); elseif($workflowmode == 'traditional' || $workflowmode == 'traditional_only_approval')
$resArr = $dms->getDocumentList('ApproveByMe', $user); $tasks['approval'] = array();
if($resArr) { elseif($workflowmode == 'advanced')
foreach ($resArr as $res) { $tasks['workflow'] = array();
$document = $dms->getDocument($res["id"]);
if($document->getAccessMode($user) >= M_READ && $document->getLatestContent()) { if($workflowmode == 'traditional' || $workflowmode == 'traditional_only_approval') {
$tasks['approval'][] = array('id'=>$res['id'], 'name'=>$res['name']); $resArr = $dms->getDocumentList('ApproveByMe', $user);
if($resArr) {
foreach ($resArr as $res) {
$document = $dms->getDocument($res["id"]);
if($document->getAccessMode($user) >= M_READ && $document->getLatestContent()) {
$tasks['approval'][] = array('id'=>$res['id'], 'name'=>$res['name']);
}
} }
} }
} } elseif($workflowmode == 'traditional') {
$resArr = $dms->getDocumentList('ReviewByMe', $user); $resArr = $dms->getDocumentList('ReviewByMe', $user);
if($resArr) { if($resArr) {
foreach ($resArr as $res) { foreach ($resArr as $res) {
$document = $dms->getDocument($res["id"]); $document = $dms->getDocument($res["id"]);
if($document->getAccessMode($user) >= M_READ && $document->getLatestContent()) { if($document->getAccessMode($user) >= M_READ && $document->getLatestContent()) {
$tasks['review'][] = array('id'=>$res['id'], 'name'=>$res['name']); $tasks['review'][] = array('id'=>$res['id'], 'name'=>$res['name']);
}
}
}
} elseif($workflowmode == 'advanced') {
$resArr = $dms->getDocumentList('WorkflowByMe', $user);
if($resArr) {
foreach ($resArr as $res) {
$document = $dms->getDocument($res["id"]);
if($document->getAccessMode($user) >= M_READ && $document->getLatestContent()) {
$tasks['workflow'][] = array('id'=>$res['id'], 'name'=>$res['name']);
}
} }
} }
} }
@ -104,11 +121,20 @@ class SeedDMS_View_Tasks extends SeedDMS_Bootstrap_Style {
$content = ''; $content = '';
// $content .= " <ul id=\"main-menu-tasks\" class=\"nav pull-right\">\n"; // $content .= " <ul id=\"main-menu-tasks\" class=\"nav pull-right\">\n";
// $content .= " <li class=\"dropdown\">\n"; // $content .= " <li class=\"dropdown\">\n";
$content .= " <a href=\"#\" class=\"dropdown-toggle\" data-toggle=\"dropdown\">".getMLText('tasks')." (".count($tasks['review'])."/".count($tasks['approval']).")"; $content .= " <a href=\"#\" class=\"dropdown-toggle\" data-toggle=\"dropdown\">".getMLText('tasks')." (";
if($tasks['review'] || $tasks['approval']) { $ct = array();
if(isset($tasks['review']))
$ct[] = count($tasks['review']);
if(isset($tasks['approval']))
$ct[] = count($tasks['approval']);
if(isset($tasks['workflow']))
$ct[] = count($tasks['workflow']);
$content .= implode('/', $ct);
$content .= ")";
if(!empty($tasks['review']) || !empty($tasks['approval']) || !empty($tasks['workflow'])) {
$content .= " <i class=\"icon-caret-down\"></i></a>\n"; $content .= " <i class=\"icon-caret-down\"></i></a>\n";
$content .= " <ul class=\"dropdown-menu\" role=\"menu\">\n"; $content .= " <ul class=\"dropdown-menu\" role=\"menu\">\n";
if($tasks['review']) { if(!empty($tasks['review'])) {
$content .= " <li class=\"dropdown-submenu\">\n"; $content .= " <li class=\"dropdown-submenu\">\n";
$content .= " <a href=\"#\" class=\"dropdown-toggle\" data-toggle=\"dropdown\">".getMLText("documents_to_review")."</a>\n"; $content .= " <a href=\"#\" class=\"dropdown-toggle\" data-toggle=\"dropdown\">".getMLText("documents_to_review")."</a>\n";
$content .= " <ul class=\"dropdown-menu\" role=\"menu\">\n"; $content .= " <ul class=\"dropdown-menu\" role=\"menu\">\n";
@ -119,7 +145,7 @@ class SeedDMS_View_Tasks extends SeedDMS_Bootstrap_Style {
$content .= " </ul>\n"; $content .= " </ul>\n";
$content .= " </li>\n"; $content .= " </li>\n";
} }
if($tasks['approval']) { if(!empty($tasks['approval'])) {
$content .= " <li class=\"dropdown-submenu\">\n"; $content .= " <li class=\"dropdown-submenu\">\n";
$content .= " <a href=\"#\" class=\"dropdown-toggle\" data-toggle=\"dropdown\">".getMLText("documents_to_approve")."</a>\n"; $content .= " <a href=\"#\" class=\"dropdown-toggle\" data-toggle=\"dropdown\">".getMLText("documents_to_approve")."</a>\n";
$content .= " <ul class=\"dropdown-menu\" role=\"menu\">\n"; $content .= " <ul class=\"dropdown-menu\" role=\"menu\">\n";
@ -130,6 +156,17 @@ class SeedDMS_View_Tasks extends SeedDMS_Bootstrap_Style {
$content .= " </ul>\n"; $content .= " </ul>\n";
$content .= " </li>\n"; $content .= " </li>\n";
} }
if(!empty($tasks['workflow'])) {
$content .= " <li class=\"dropdown-submenu\">\n";
$content .= " <a href=\"#\" class=\"dropdown-toggle\" data-toggle=\"dropdown\">".getMLText("documents_to_trigger_workflow")."</a>\n";
$content .= " <ul class=\"dropdown-menu\" role=\"menu\">\n";
foreach($tasks['workflow'] as $t) {
$doc = $dms->getDocument($t['id']);
$content .= " <li><a href=\"../out/out.ViewDocument.php?documentid=".$doc->getID()."&currenttab=workflow\">".$doc->getName()."</a></li>";
}
$content .= " </ul>\n";
$content .= " </li>\n";
}
$content .= " <li class=\"divider\"></li>\n"; $content .= " <li class=\"divider\"></li>\n";
$content .= " <li><a href=\"../out/out.MyDocuments.php\">".getMLText("my_documents")."</a></li>\n"; $content .= " <li><a href=\"../out/out.MyDocuments.php\">".getMLText("my_documents")."</a></li>\n";
$content .= " </ul>\n"; $content .= " </ul>\n";