take enable[Revision|Receipt]Workflow into account

This commit is contained in:
Uwe Steinmann 2018-04-03 09:32:36 +02:00
parent 28e65a1520
commit fd5920fc8d
13 changed files with 63 additions and 31 deletions

View File

@ -185,7 +185,7 @@ class Settings { /* {{{ */
// the mode of workflow
var $_workflowMode = "traditional";
// enable/disable acknowledge workflow
var $_enableAcknowledgeWorkflow = true;
var $_enableReceiptWorkflow = true;
// enable/disable revision workflow
var $_enableRevisionWorkflow = true;
// enable/disable revision on vote reject
@ -667,7 +667,7 @@ class Settings { /* {{{ */
$this->_initialDocumentStatus = intval($tab["initialDocumentStatus"]);
$this->_versioningFileName = strval($tab["versioningFileName"]);
$this->_workflowMode = strval($tab["workflowMode"]);
$this->_enableAcknowledgeWorkflow = strval($tab["enableAcknowledgeWorkflow"]);
$this->_enableReceiptWorkflow = strval($tab["enableReceiptWorkflow"]);
$this->_enableRevisionWorkflow = strval($tab["enableRevisionWorkflow"]);
$this->_enableRevisionOnVoteReject = strval($tab["enableRevisionOnVoteReject"]);
$this->_allowReviewerOnly = Settings::boolval($tab["allowReviewerOnly"]);
@ -988,7 +988,7 @@ class Settings { /* {{{ */
$this->setXMLAttributValue($node, "initialDocumentStatus", $this->_initialDocumentStatus);
$this->setXMLAttributValue($node, "versioningFileName", $this->_versioningFileName);
$this->setXMLAttributValue($node, "workflowMode", $this->_workflowMode);
$this->setXMLAttributValue($node, "enableAcknowledgeWorkflow", $this->_enableAcknowledgeWorkflow);
$this->setXMLAttributValue($node, "enableReceiptWorkflow", $this->_enableReceiptWorkflow);
$this->setXMLAttributValue($node, "enableRevisionWorkflow", $this->_enableRevisionWorkflow);
$this->setXMLAttributValue($node, "enableRevisionOnVoteReject", $this->_enableRevisionOnVoteReject);
$this->setXMLAttributValue($node, "allowReviewerOnly", $this->_allowReviewerOnly);

View File

@ -180,7 +180,7 @@ if ($action == "saveSettings")
$settings->_presetExpirationDate = $_POST["presetExpirationDate"];
$settings->_initialDocumentStatus = $_POST["initialDocumentStatus"];
$settings->_workflowMode = $_POST["workflowMode"];
$settings->_enableAcknowledgeWorkflow = getBoolValue("enableAcknowledgeWorkflow");
$settings->_enableReceiptWorkflow = getBoolValue("enableReceiptWorkflow");
$settings->_enableRevisionWorkflow = getBoolValue("enableRevisionWorkflow");
$settings->_enableRevisionOnVoteReject = getBoolValue("enableRevisionOnVoteReject");
$settings->_allowReviewerOnly = getBoolValue("allowReviewerOnly");

View File

@ -78,6 +78,7 @@ if($view) {
$view->setParam('enableadminrevapp', $settings->_enableAdminRevApp);
$view->setParam('enableownerrevapp', $settings->_enableOwnerRevApp);
$view->setParam('enableselfrevapp', $settings->_enableSelfRevApp);
$view->setParam('enablereceiptworkflow', $settings->_enableReceiptWorkflow);
$view->setParam('enableadminreceipt', $settings->_enableAdminReceipt);
$view->setParam('enableownerreceipt', $settings->_enableOwnerReceipt);
$view->setParam('enableselfreceipt', $settings->_enableSelfReceipt);

View File

@ -72,6 +72,7 @@ if($view) {
$view->setParam('enableadminrevapp', $settings->_enableAdminRevApp);
$view->setParam('enableownerrevapp', $settings->_enableOwnerRevApp);
$view->setParam('enableselfrevapp', $settings->_enableSelfRevApp);
$view->setParam('enablereceiptworkflow', $settings->_enableReceiptWorkflow);
$view->setParam('enableselfreceipt', $settings->_enableSelfReceipt);
$view->setParam('dropfolderdir', $settings->_dropFolderDir);
$view->setParam('workflowmode', $settings->_workflowMode);

View File

@ -33,6 +33,8 @@ $view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user));
if($view) {
$view->setParam('workflowmode', $settings->_workflowMode);
$view->setParam('enablereceiptworkflow', $settings->_enableReceiptWorkflow);
$view->setParam('enablerevisionworkflow', $settings->_enableRevisionWorkflow);
$view->setParam('previewWidthList', $settings->_previewWidthList);
$view->setParam('timeout', $settings->_cmdTimeout);
$view($_GET);

View File

@ -71,6 +71,7 @@ if($view) {
$view->setParam('enableadminrevapp', $settings->_enableAdminRevApp);
$view->setParam('enableownerrevapp', $settings->_enableOwnerRevApp);
$view->setParam('enableselfrevapp', $settings->_enableSelfRevApp);
$view->setParam('enablereceiptworkflow', $settings->_enableReceiptWorkflow);
$view->setParam('enableselfreceipt', $settings->_enableSelfReceipt);
$view->setParam('dropfolderdir', $settings->_dropFolderDir);
$view->setParam('workflowmode', $settings->_workflowMode);

View File

@ -76,6 +76,8 @@ if($view) {
$view->setParam('showtree', showtree());
$view->setParam('accessobject', $accessop);
$view->setParam('viewonlinefiletypes', $settings->_viewOnlineFileTypes);
$view->setParam('enablereceiptworkflow', $settings->_enableReceiptWorkflow);
$view->setParam('enablerevisionworkflow', $settings->_enableRevisionWorkflow);
$view->setParam('enableownerrevapp', $settings->_enableOwnerRevApp);
$view->setParam('enableownerreceipt', $settings->_enableOwnerReceipt);
$view->setParam('cachedir', $settings->_cacheDir);

View File

@ -160,6 +160,7 @@ $(document).ready(function() {
$enableadminrevapp = $this->params['enableadminrevapp'];
$enableownerrevapp = $this->params['enableownerrevapp'];
$enableselfrevapp = $this->params['enableselfrevapp'];
$enablereceiptworkflow = $this->params['enablereceiptworkflow'];
$enableadminreceipt = $this->params['enableadminreceipt'];
$enableownerreceipt = $this->params['enableownerreceipt'];
$enableselfreceipt = $this->params['enableselfreceipt'];
@ -698,6 +699,7 @@ $(document).ready(function() {
</tr>
<?php
}
if($enablereceiptworkflow) {
// Retrieve a list of all users and groups that have review / approve
// privileges.
$docAccess = $folder->getReadAccessList($enableadminreceipt, $enableownerreceipt);
@ -750,6 +752,9 @@ $(document).ready(function() {
</select>
</td>
</tr>
<?php
}
?>
<tr>
<td>
<?php $this->contentSubHeading(getMLText("add_document_notify")); ?>

View File

@ -85,6 +85,7 @@ $(document).ready(function() {
$enableownerrevapp = $this->params['enableownerrevapp'];
$enableselfrevapp = $this->params['enableselfrevapp'];
$enableselfreceipt = $this->params['enableselfreceipt'];
$enablereceiptworkflow = $this->params['enablereceiptworkflow'];
$workflowmode = $this->params['workflowmode'];
$presetexpiration = $this->params['presetexpiration'];
$documentid = $document->getId();
@ -606,6 +607,7 @@ $(document).ready(function() {
</tr>
<?php
}
if($enablereceiptworkflow) {
?>
<tr>
<td colspan="2">
@ -677,6 +679,9 @@ $(document).ready(function() {
?>
</td>
</tr>
<?php
}
?>
<tr>
<td></td>
<td><input type="submit" class="btn" value="<?php printMLText("checkin_document")?>"></td>

View File

@ -686,9 +686,9 @@ if(!is_writeable($settings->_configFilePath)) {
</select>
</td>
</tr>
<tr title="<?php printMLText("settings_enableAcknowledgeWorkflow_desc");?>">
<td><?php printMLText("settings_enableAcknowledgeWorkflow");?>:</td>
<td><input name="enableAcknowledgeWorkflow" type="checkbox" <?php if ($settings->_enableAcknowledgeWorkflow) echo "checked" ?> /></td>
<tr title="<?php printMLText("settings_enableReceiptWorkflow_desc");?>">
<td><?php printMLText("settings_enableReceiptWorkflow");?>:</td>
<td><input name="enableReceiptWorkflow" type="checkbox" <?php if ($settings->_enableReceiptWorkflow) echo "checked" ?> /></td>
</tr>
<tr title="<?php printMLText("settings_enableRevisionWorkflow_desc");?>">
<td><?php printMLText("settings_enableRevisionWorkflow");?>:</td>

View File

@ -39,6 +39,8 @@ class SeedDMS_View_Tasks extends SeedDMS_Bootstrap_Style {
private function __myTasks() { /* {{{ */
$dms = $this->params['dms'];
$user = $this->params['user'];
$enablereceiptworkflow = $this->params['enablereceiptworkflow'];
$enablerevisionworkflow = $this->params['enablerevisionworkflow'];
$workflowmode = $this->params['workflowmode'];
$tasksinmenu = $this->params['tasksinmenu'];
@ -68,30 +70,32 @@ class SeedDMS_View_Tasks extends SeedDMS_Bootstrap_Style {
}
}
}
if(!$tasksinmenu || in_array('receipt', $tasksinmenu)) {
$tasks['receipt'] = array();
$resArr = $dms->getDocumentList('ReceiptByMe', $user);
if($resArr) {
foreach ($resArr as $res) {
$document = $dms->getDocument($res["id"]);
if($document->getAccessMode($user) >= M_READ && $document->getLatestContent()) {
$tasks['receipt'][] = array('id'=>$res['id'], 'name'=>$res['name']);
if($enablereceiptworkflow)
if(!$tasksinmenu || in_array('receipt', $tasksinmenu)) {
$tasks['receipt'] = array();
$resArr = $dms->getDocumentList('ReceiptByMe', $user);
if($resArr) {
foreach ($resArr as $res) {
$document = $dms->getDocument($res["id"]);
if($document->getAccessMode($user) >= M_READ && $document->getLatestContent()) {
$tasks['receipt'][] = array('id'=>$res['id'], 'name'=>$res['name']);
}
}
}
}
}
if(!$tasksinmenu || in_array('revision', $tasksinmenu)) {
$tasks['revision'] = array();
$resArr = $dms->getDocumentList('ReviseByMe', $user);
if($resArr) {
foreach ($resArr as $res) {
$document = $dms->getDocument($res["id"]);
if($document->getAccessMode($user) >= M_READ && $document->getLatestContent()) {
$tasks['revision'][] = array('id'=>$res['id'], 'name'=>$res['name']);
if($enablerevisionworkflow)
if(!$tasksinmenu || in_array('revision', $tasksinmenu)) {
$tasks['revision'] = array();
$resArr = $dms->getDocumentList('ReviseByMe', $user);
if($resArr) {
foreach ($resArr as $res) {
$document = $dms->getDocument($res["id"]);
if($document->getAccessMode($user) >= M_READ && $document->getLatestContent()) {
$tasks['revision'][] = array('id'=>$res['id'], 'name'=>$res['name']);
}
}
}
}
}
if(!$tasksinmenu || in_array('needscorrection', $tasksinmenu)) {
$tasks['needscorrection'] = array();
$resArr = $dms->getDocumentList('NeedsCorrectionOwner', $user);
@ -133,6 +137,8 @@ class SeedDMS_View_Tasks extends SeedDMS_Bootstrap_Style {
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'];
@ -150,10 +156,12 @@ class SeedDMS_View_Tasks extends SeedDMS_Bootstrap_Style {
if(!$tasksinmenu || in_array('workflow', $tasksinmenu)) {
$tasks['workflow'] = $dms->countTasks('WorkflowByMe', $user);
}
if(!$tasksinmenu || in_array('receipt', $tasksinmenu))
$tasks['receipt'] = $dms->countTasks('ReceiptByMe', $user);
if(!$tasksinmenu || in_array('revision', $tasksinmenu))
$tasks['revision'] = $dms->countTasks('ReviseByMe', $user);
if($enablereceiptworkflow)
if(!$tasksinmenu || in_array('receipt', $tasksinmenu))
$tasks['receipt'] = $dms->countTasks('ReceiptByMe', $user);
if($enablerevisionworkflow)
if(!$tasksinmenu || in_array('revision', $tasksinmenu))
$tasks['revision'] = $dms->countTasks('ReviseByMe', $user);
if(!$tasksinmenu || in_array('needscorrection', $tasksinmenu))
$tasks['needscorrection'] = $dms->countTasks('NeedsCorrectionOwner', $user);

View File

@ -146,6 +146,7 @@ console.log(element);
$enableadminrevapp = $this->params['enableadminrevapp'];
$enableownerrevapp = $this->params['enableownerrevapp'];
$enableselfrevapp = $this->params['enableselfrevapp'];
$enablereceiptworkflow = $this->params['enablereceiptworkflow'];
$enableselfreceipt = $this->params['enableselfreceipt'];
$dropfolderdir = $this->params['dropfolderdir'];
$workflowmode = $this->params['workflowmode'];
@ -716,6 +717,7 @@ console.log(element);
</tr>
<?php
}
if($enablereceiptworkflow) {
?>
<tr>
<td colspan="2">
@ -787,6 +789,9 @@ console.log(element);
?>
</td>
</tr>
<?php
}
?>
<tr>
<td></td>
<td><input type="submit" class="btn" value="<?php printMLText("update_document")?>"></td>

View File

@ -433,6 +433,8 @@ class SeedDMS_View_ViewDocument extends SeedDMS_Bootstrap_Style {
$viewonlinefiletypes = $this->params['viewonlinefiletypes'];
$enableownerrevapp = $this->params['enableownerrevapp'];
$enableownerreceipt = $this->params['enableownerreceipt'];
$enablereceiptworkflow = $this->params['enablereceiptworkflow'];
$enablerevisionworkflow = $this->params['enablerevisionworkflow'];
$workflowmode = $this->params['workflowmode'];
$cachedir = $this->params['cachedir'];
$previewwidthlist = $this->params['previewWidthList'];
@ -666,11 +668,11 @@ class SeedDMS_View_ViewDocument extends SeedDMS_Bootstrap_Style {
if($accessop->mayOverrideStatus($document)) {
print "<li>".$this->html_link('OverrideContentStatus', array('documentid'=>$documentid, 'version'=>$latestContent->getVersion()), array(), "<i class=\"icon-align-justify\"></i>".getMLText("change_status"), false, true)."</li>";
}
if($accessop->check_controller_access('SetRecipients'))
if($enablereceiptworkflow && $accessop->check_controller_access('SetRecipients'))
if($accessop->maySetRecipients($document)) {
print "<li>".$this->html_link('SetRecipients', array('documentid'=>$documentid, 'version'=>$latestContent->getVersion()), array(), "<i class=\"icon-check\"></i>".getMLText("change_recipients"), false, true)."</li>";
}
if($accessop->check_controller_access('SetRevisors'))
if($enablerevisionworkflow && $accessop->check_controller_access('SetRevisors'))
if($accessop->maySetRevisors($document)) {
print "<li>".$this->html_link('SetRevisors', array('documentid'=>$documentid, 'version'=>$latestContent->getVersion()), array(), "<i class=\"icon-refresh\"></i>".getMLText("change_revisors"), false, true)."</li>";
}