<?php /** * Implementation of RemoveUserFromProcesses view * * @category DMS * @package SeedDMS * @license GPL 2 * @version @version@ * @author Uwe Steinmann <uwe@steinmann.cx> * @copyright Copyright (C) 2017 Uwe Steinmann * @version Release: @package_version@ */ /** * Include parent class */ //require_once("class.Bootstrap.php"); /** * Class which outputs the html page for RemoveUserFromProcesses view * * @category DMS * @package SeedDMS * @author Uwe Steinmann <uwe@steinmann.cx> * @copyright Copyright (C) 2017 Uwe Steinmann * @version Release: @package_version@ */ class SeedDMS_View_RemoveUserFromProcesses extends SeedDMS_Theme_Style { public function js() { /* {{{ */ header('Content-Type: application/javascript; charset=UTF-8'); parent::jsTranslations(array('cancel', 'splash_move_document', 'confirm_move_document', 'move_document', 'confirm_transfer_link_document', 'transfer_content', 'link_document', 'splash_move_folder', 'confirm_move_folder', 'move_folder')); $this->printDeleteDocumentButtonJs(); /* Add js for catching click on document in one page mode */ $this->printClickDocumentJs(); ?> $(document).ready( function() { $('body').on('click', 'label.checkbox, td span', function(ev){ ev.preventDefault(); $('#kkkk.ajax').data('action', $(this).data('action')); $('#kkkk.ajax').trigger('update', {userid: $(this).data('userid'), task: $(this).data('task'), type: $(this).data('type')}); }); $('body').on('click', '#selectall', function(ev){ $("input.markforprocess").each(function () { this.checked = !this.checked; }); ev.preventDefault(); }); }); <?php } /* }}} */ function printList() { /* {{{ */ $dms = $this->params['dms']; $user = $this->params['user']; $settings = $this->params['settings']; $cachedir = $this->params['cachedir']; $rootfolder = $this->params['rootfolder']; $conversionmgr = $this->params['conversionmgr']; $previewwidth = $this->params['previewWidthList']; $previewconverters = $this->params['previewconverters']; $timeout = $this->params['timeout']; $rmuser = $this->params['rmuser']; $allusers = $this->params['allusers']; $task = $this->params['task']; $type = $this->params['type']; if(!$task) return; $previewer = new SeedDMS_Preview_Previewer($cachedir, $previewwidth, $timeout); if($conversionmgr) $previewer->setConversionMgr($conversionmgr); else $previewer->setConverters($previewconverters); $docs = array(); switch($task) { case "reviews_not_touched": $reviewStatus = $rmuser->getReviewStatus(); foreach($reviewStatus['indstatus'] as $ri) { $document = $dms->getDocument($ri['documentID']); $ri['latest'] = $document->getLatestContent()->getVersion(); if($ri['latest'] == $ri['version']) { if($ri['status'] == 0) { $document->verifyLastestContentExpriry(); $lc = $document->getLatestContent(); if($document->getAccessMode($user) >= M_READ && $lc) { $docs[] = $document; } } } } break; case "reviews_accepted": $reviewStatus = $rmuser->getReviewStatus(); foreach($reviewStatus['indstatus'] as $ri) { $document = $dms->getDocument($ri['documentID']); $ri['latest'] = $document->getLatestContent()->getVersion(); if($ri['latest'] == $ri['version']) { if($ri['status'] == 1) { $document->verifyLastestContentExpriry(); $lc = $document->getLatestContent(); if($document->getAccessMode($user) >= M_READ && $lc) { $docs[] = $document; } } } } break; case "reviews_rejected": $reviewStatus = $rmuser->getReviewStatus(); foreach($reviewStatus['indstatus'] as $ri) { $document = $dms->getDocument($ri['documentID']); $ri['latest'] = $document->getLatestContent()->getVersion(); if($ri['latest'] == $ri['version']) { if($ri['status'] == -1) { $docs[] = $document; } } } break; case "approvals_not_touched": $approvalStatus = $rmuser->getApprovalStatus(); foreach($approvalStatus['indstatus'] as $ai) { $document = $dms->getDocument($ai['documentID']); $ai['latest'] = $document->getLatestContent()->getVersion(); if($ai['latest'] == $ai['version']) { if($ai['status'] == 0) { $docs[] = $document; } } } break; case "approvals_accepted": $approvalStatus = $rmuser->getApprovalStatus(); foreach($approvalStatus['indstatus'] as $ai) { $document = $dms->getDocument($ai['documentID']); $ai['latest'] = $document->getLatestContent()->getVersion(); if($ai['latest'] == $ai['version']) { if($ai['status'] == 1) { $docs[] = $document; } } } break; case "approvals_rejected": $approvalStatus = $rmuser->getApprovalStatus(); foreach($approvalStatus['indstatus'] as $ai) { $document = $dms->getDocument($ai['documentID']); $ai['latest'] = $document->getLatestContent()->getVersion(); if($ai['latest'] == $ai['version']) { if($ai['status'] == -1) { $docs[] = $document; } } } break; case "receipts_not_touched": $receiptStatus = $rmuser->getReceiptStatus(); foreach($receiptStatus['indstatus'] as $ai) { $document = $dms->getDocument($ai['documentID']); $ai['latest'] = $document->getLatestContent()->getVersion(); if($ai['latest'] == $ai['version']) { if($ai['status'] == 0) { $docs[] = $document; } } } break; case "receipts_accepted": $receiptStatus = $rmuser->getReceiptStatus(); foreach($receiptStatus['indstatus'] as $ai) { $document = $dms->getDocument($ai['documentID']); $ai['latest'] = $document->getLatestContent()->getVersion(); if($ai['latest'] == $ai['version']) { if($ai['status'] == 1) { $docs[] = $document; } } } break; case "receipts_rejected": $receiptStatus = $rmuser->getReceiptStatus(); foreach($receiptStatus['indstatus'] as $ai) { $document = $dms->getDocument($ai['documentID']); $ai['latest'] = $document->getLatestContent()->getVersion(); if($ai['latest'] == $ai['version']) { if($ai['status'] == -1) { $docs[] = $document; } } } break; case "revisions_not_touched": $revisionStatus = $rmuser->getRevisionStatus(); foreach($revisionStatus['indstatus'] as $ai) { $document = $dms->getDocument($ai['documentID']); $ai['latest'] = $document->getLatestContent()->getVersion(); if($ai['latest'] == $ai['version']) { if($ai['status'] == 0) { $docs[] = $document; } } } break; case "revisions_accepted": $revisionStatus = $rmuser->getRevisionStatus(); foreach($revisionStatus['indstatus'] as $ai) { $document = $dms->getDocument($ai['documentID']); $ai['latest'] = $document->getLatestContent()->getVersion(); if($ai['latest'] == $ai['version']) { if($ai['status'] == 1) { $docs[] = $document; } } } break; case "revisions_rejected": $revisionStatus = $rmuser->getRevisionStatus(); foreach($revisionStatus['indstatus'] as $ai) { $document = $dms->getDocument($ai['documentID']); $ai['latest'] = $document->getLatestContent()->getVersion(); if($ai['latest'] == $ai['version']) { if($ai['status'] == -1) { $docs[] = $document; } } } break; case "revisions_pending": $revisionStatus = $rmuser->getRevisionStatus(); foreach($revisionStatus['indstatus'] as $ai) { $document = $dms->getDocument($ai['documentID']); $ai['latest'] = $document->getLatestContent()->getVersion(); if($ai['latest'] == $ai['version']) { if($ai['status'] == -3) { $docs[] = $document; } } } break; } if($docs) { echo '<form id="processform" action="../op/op.UsrMgr.php" method="post">'; echo '<input type="hidden" name="userid" value="'.$rmuser->getID().'">'; if($type) { $kk = explode('_', $type, 2); echo '<input type="hidden" name="status['.$kk[0].'][]" value="'.$kk[1].'">'; } echo '<input type="hidden" name="task" value="'.$task.'">'; echo '<input type="hidden" name="action" value="removefromprocesses">'; echo '<input type="hidden" name="needsdocs" value="1">'; echo createHiddenFieldWithKey('removefromprocesses'); print "<table class=\"table table-condensed table-sm\">"; print "<thead>\n<tr>\n"; print "<th></th>\n"; print "<th>".getMLText("name")."</th>\n"; print "<th>".getMLText("status")."</th>\n"; print "<th>".getMLText("action")."</th>\n"; print "<th><span id=\"selectall\"><i class=\"fa fa-arrows-h\" title=\"".getMLText('object_cleaner_toggle_checkboxes')."\"></i></span></th>\n"; print "</tr>\n</thead>\n<tbody>\n"; foreach($docs as $document) { $document->verifyLastestContentExpriry(); $lc = $document->getLatestContent(); if($document->getAccessMode($user) >= M_READ && $lc) { $txt = $this->callHook('documentListItem', $document, $previewer, false); if(is_string($txt)) echo $txt; else { $extracontent = array(); $extracontent['below_title'] = $this->getListRowPath($document); echo $this->documentListRowStart($document); echo $this->documentListRow($document, $previewer, true, 0, $extracontent); echo '<td>'; echo '<input type="checkbox" class="markforprocess" value="'.$document->getId().'" name="docs['.$document->getId().']">'; echo '</td>'; echo $this->documentListRowEnd($document); } } } echo "</tbody>\n</table>"; $options = array(array(0, getMLText('do_no_transfer_to_user'))); foreach ($allusers as $currUser) { if ($currUser->isGuest() || ($currUser->getID() == $rmuser->getID()) ) continue; if ($rmuser && $currUser->getID()==$rmuser->getID()) $selected=$count; $options[] = array($currUser->getID(), htmlspecialchars($currUser->getLogin()." - ".$currUser->getFullName())); } $this->formField( getMLText("transfer_process_to_user"), array( 'element'=>'select', 'name'=>'assignTo', 'class'=>'chzn-select', 'options'=>$options ) ); $this->formSubmit('<i class="fa fa-remove"></i> '.getMLText('transfer_processes_to_user'),'','','primary'); echo '</form>'; } } /* }}} */ function show() { /* {{{ */ $dms = $this->params['dms']; $user = $this->params['user']; $rmuser = $this->params['rmuser']; $allusers = $this->params['allusers']; $this->htmlStartPage(getMLText("admin_tools")); $this->globalNavigation(); $this->contentStart(); $this->pageNavigation(getMLText("admin_tools"), "admin_tools"); $this->contentHeading(getMLText("rm_user_from_processes")); $this->rowStart(); $this->columnStart(4); $this->warningMsg(getMLText("confirm_rm_user_from_processes", array ("username" => htmlspecialchars($rmuser->getFullName())))); $reviewStatus = $rmuser->getReviewStatus(); $tmpr = array(); $cr = array("-2"=>0, '-1'=>0, '0'=>0, '1'=>0); foreach($reviewStatus['indstatus'] as $ri) { $doc = $dms->getDocument($ri['documentID']); $ri['latest'] = $doc->getLatestContent()->getVersion(); if($ri['latest'] == $ri['version']) $cr[$ri['status']]++; if(isset($tmpr[$ri['status']])) $tmpr[$ri['status']][] = $ri; else $tmpr[$ri['status']] = array($ri); } $approvalStatus = $rmuser->getApprovalStatus(); $tmpa = array(); $ca = array("-2"=>0, '-1'=>0, '0'=>0, '1'=>0); foreach($approvalStatus['indstatus'] as $ai) { $doc = $dms->getDocument($ai['documentID']); $ai['latest'] = $doc->getLatestContent()->getVersion(); if($ai['latest'] == $ai['version']) $ca[$ai['status']]++; if(isset($tmpa[$ai['status']])) $tmpa[$ai['status']][] = $ai; else $tmpa[$ai['status']] = array($ai); } $receiptStatus = $rmuser->getReceiptStatus(); $tmpb = array(); $cb = array("-2"=>0, '-1'=>0, '0'=>0, '1'=>0); foreach($receiptStatus['indstatus'] as $ai) { $doc = $dms->getDocument($ai['documentID']); $ai['latest'] = $doc->getLatestContent()->getVersion(); if($ai['latest'] == $ai['version']) $cb[$ai['status']]++; if(isset($tmpb[$ai['status']])) $tmpb[$ai['status']][] = $ai; else $tmpb[$ai['status']] = array($ai); } $revisionStatus = $rmuser->getRevisionStatus(); $tmpc = array(); $cc = array("-3"=>0, "-2"=>0, '-1'=>0, '0'=>0, '1'=>0); foreach($revisionStatus['indstatus'] as $ai) { $doc = $dms->getDocument($ai['documentID']); $ai['latest'] = $doc->getLatestContent()->getVersion(); if($ai['latest'] == $ai['version']) $cc[$ai['status']]++; if(isset($tmpc[$ai['status']])) $tmpc[$ai['status']][] = $ai; else $tmpc[$ai['status']] = array($ai); } $out = array(); if(isset($tmpr["0"])) { $out[] = array( '0', 'review', 'not_touched', getMLText('reviews_not_touched', array('no_reviews' => count($tmpr["0"]))), getMLText('reviews_not_touched_latest', array('no_reviews' => $cr["0"])) ); } if(isset($tmpr["1"])) { $out[] = array( '1', 'review', 'accepted', getMLText('reviews_accepted', array('no_reviews' => count($tmpr["1"]))), getMLText('reviews_accepted_latest', array('no_reviews' => $cr["1"])) ); } if(isset($tmpr["-1"])) { $out[] = array( '-1', 'review', 'rejected', getMLText('reviews_rejected', array('no_reviews' => count($tmpr["-1"]))), getMLText('reviews_rejected_latest', array('no_reviews' => $cr["-1"])) ); } if(isset($tmpa["0"])) { $out[] = array( '0', 'approval', 'not_touched', getMLText('approvals_not_touched', array('no_approvals' => count($tmpa["0"]))), getMLText('approvals_not_touched_latest', array('no_approvals' => $ca["0"])) ); } if(isset($tmpa["1"])) { $out[] = array( '1', 'approval', 'accepted', getMLText('approvals_accepted', array('no_approvals' => count($tmpa["1"]))), getMLText('approvals_accepted_latest', array('no_approvals' => $ca["1"])) ); } if(isset($tmpa["-1"])) { $out[] = array( '-1', 'approval', 'rejected', getMLText('approvals_rejected', array('no_approvals' => count($tmpa["-1"]))), getMLText('approvals_rejected_latest', array('no_approvals' => $ca["-1"])) ); } if(isset($tmpb["0"])) { $out[] = array( '0', 'receipt', 'not_touched', getMLText('receipts_not_touched', array('no_receipts' => count($tmpb["0"]))), getMLText('receipts_not_touched_latest', array('no_receipts' => $cb["0"])) ); } if(isset($tmpb["1"])) { $out[] = array( '1', 'receipt', 'accepted', getMLText('receipts_accepted', array('no_receipts' => count($tmpb["1"]))), getMLText('receipts_accepted_latest', array('no_receipts' => $cb["1"])) ); } if(isset($tmpb["-1"])) { $out[] = array( '-1', 'receipt', 'rejected', getMLText('receipts_rejected', array('no_receipts' => count($tmpb["-1"]))), getMLText('receipts_rejected_latest', array('no_receipts' => $cb["-1"])) ); } if(isset($tmpc["0"])) { $out[] = array( '0', 'revision', 'not_touched', getMLText('revisions_not_touched', array('no_revisions' => count($tmpc["0"]))), getMLText('revisions_not_touched_latest', array('no_revisions' => $cc["0"])) ); } if(isset($tmpc["1"])) { $out[] = array( '1', 'revision', 'accepted', getMLText('revisions_accepted', array('no_revisions' => count($tmpc["1"]))), getMLText('revisions_accepted_latest', array('no_revisions' => $cc["1"])) ); } if(isset($tmpc["-1"])) { $out[] = array( '-1', 'revision', 'rejected', getMLText('revisions_rejected', array('no_revisions' => count($tmpc["-1"]))), getMLText('revisions_rejected_latest', array('no_revisions' => $cc["-1"])) ); } if(isset($tmpc["-3"])) { $out[] = array( '-3', 'revision', 'pending', getMLText('revisions_pending', array('no_revisions' => count($tmpc["-3"]))), getMLText('revisions_pending_latest', array('no_revisions' => $cc["-3"])) ); } ?> <form class="form-horizontal" action="../op/op.UsrMgr.php" name="form1" method="post"> <input type="hidden" name="userid" value="<?php print $rmuser->getID();?>"> <input type="hidden" name="action" value="removefromprocesses"> <?php echo createHiddenFieldWithKey('removefromprocesses'); ?> <?php echo "<table class=\"table table-condensed table-sm\">"; foreach($out as $o) { echo "<tr><td>".$o[3]."</td><td>".$o[4]."</td><td><input style=\"margin-top: 0px;\" type=\"checkbox\" name=\"status[".$o[1]."][]\" value=\"".$o[0]."\"></td><td><span title=\"".getMLText('select_documents_for_process')."\" data-action=\"printList\" data-userid=\"".$rmuser->getId()."\" data-task=\"".$o[1]."s_".$o[2]."\" data-type=\"".$o[1]."_".$o[0]."\"><i class=\"fa fa-list\"></i></span></td></tr>"; } echo "</table>"; $this->infoMsg(getMLText("info_rm_user_from_processes_user")); $options = array(array(0, getMLText('do_no_transfer_to_user'))); foreach ($allusers as $currUser) { if ($currUser->isGuest() || ($currUser->getID() == $rmuser->getID()) ) continue; if ($rmuser && $currUser->getID()==$rmuser->getID()) $selected=$count; $options[] = array($currUser->getID(), htmlspecialchars($currUser->getLogin()." - ".$currUser->getFullName())); } $this->formField( getMLText("transfer_process_to_user"), array( 'element'=>'select', 'name'=>'assignTo', 'class'=>'chzn-select', 'options'=>$options ) ); $this->formSubmit("<i class=\"fa fa-remove\"></i> ".getMLText('rm_user_from_processes')); ?> </form> <?php $this->columnEnd(); $this->columnStart(8); echo '<div id="kkkk" class="ajax" data-view="RemoveUserFromProcesses" data-action="printList" data-query="userid='.$rmuser->getId().'"></div>'; $this->columnEnd(); $this->rowEnd(); $this->contentEnd(); $this->htmlEndPage(); } /* }}} */ } ?>