add transmittals in menu

This commit is contained in:
Uwe Steinmann 2024-04-25 18:33:05 +02:00
parent 0d2cc403da
commit 409b86461b
8 changed files with 79 additions and 6 deletions

View File

@ -8,6 +8,7 @@
- fix creating user via rest api
- checkout info does not depend on whether the logged in user was substituted
- add new endpoints for managing roles by rest api
- add transmittals in menu
--------------------------------------------------------------------------------
Changes in version 6.0.26

View File

@ -291,6 +291,8 @@ class Settings { /* {{{ */
var $_enableClipboard = true;
// show always clipboard in main menu, even if empty
var $_alwaysShowClipboard = false;
// enable/disable list of transmittals in main menu
var $_enableMenuTransmittals = false;
// enable/disable list of tasks in main menu
var $_enableMenuTasks = true;
// select which tasks show up in main menu
@ -601,6 +603,7 @@ class Settings { /* {{{ */
$this->_enableSessionList = Settings::boolVal($tab["enableSessionList"]);
$this->_enableClipboard = Settings::boolVal($tab["enableClipboard"]);
$this->_alwaysShowClipboard = Settings::boolVal($tab["alwaysShowClipboard"]);
$this->_enableMenuTransmittals = Settings::boolVal($tab["enableMenuTransmittals"]);
$this->_enableMenuTasks = Settings::boolVal($tab["enableMenuTasks"]);
$this->_alwaysShowMenuTasks = Settings::boolVal($tab["alwaysShowMenuTasks"]);
$this->_tasksInMenu = Settings::arrayVal($tab["tasksInMenu"]);
@ -1022,6 +1025,7 @@ class Settings { /* {{{ */
$this->setXMLAttributValue($node, "enableSessionList", $this->_enableSessionList);
$this->setXMLAttributValue($node, "enableClipboard", $this->_enableClipboard);
$this->setXMLAttributValue($node, "alwaysShowClipboard", $this->_alwaysShowClipboard);
$this->setXMLAttributValue($node, "enableMenuTransmittals", $this->_enableMenuTransmittals);
$this->setXMLAttributValue($node, "enableMenuTasks", $this->_enableMenuTasks);
$this->setXMLAttributValue($node, "alwaysShowMenuTasks", $this->_alwaysShowMenuTasks);
$this->setXMLAttributValue($node, "tasksInMenu", $this->_tasksInMenu);

View File

@ -153,6 +153,7 @@ class UI extends UI_Default {
$view->setParam('enablefoldertree', $settings->_enableFolderTree);
$view->setParam('enablelanguageselector', $settings->_enableLanguageSelector);
$view->setParam('enableclipboard', $settings->_enableClipboard);
$view->setParam('enablemenutransmittals', $settings->_enableMenuTransmittals);
$view->setParam('enablemenutasks', $settings->_enableMenuTasks);
$view->setParam('tasksinmenu', $settings->_tasksInMenu);
$view->setParam('enabledropfolderlist', $settings->_enableDropFolderList);

View File

@ -138,6 +138,7 @@ if ($action == "saveSettings")
setBoolValue("enableSessionList");
setBoolValue("enableClipboard");
setBoolValue("alwaysShowClipboard");
setBoolValue("enableMenuTransmittals");
setBoolValue("enableMenuTasks");
setBoolValue("alwaysShowMenuTasks");
$settings->_tasksInMenu = isset($_POST["tasksInMenu"]) ? $_POST["tasksInMenu"] : array();

View File

@ -502,6 +502,16 @@ background-image: linear-gradient(to bottom, #882222, #111111);;
}
/* }}} End of menu tasks */
/* menu transmittals {{{ */
if($this->params['enablemenutransmittals']) {
if($accessobject->check_view_access('TransmittalMgr', array('action'=>'menuTransmittals'))) {
echo " <div id=\"menu-transmittals\">";
echo " <div class=\"ajax\" data-no-spinner=\"true\" data-view=\"TransmittalMgr\" data-action=\"menuTransmittals\"></div>";
echo " </div>";
}
}
/* }}} End of menu tasks */
/* drop folder dir {{{ */
if($this->params['dropfolderdir'] && $this->params['enabledropfolderlist']) {
echo " <div id=\"menu-dropfolder\">";

View File

@ -422,6 +422,7 @@ if(($kkk = $this->callHook('getFullSearchEngine')) && is_array($kkk))
<?php $this->showConfigText('settings_stopWordsFile', 'stopWordsFile'); ?>
<?php $this->showConfigCheckbox('settings_enableClipboard', 'enableClipboard'); ?>
<?php $this->showConfigCheckbox('settings_alwaysShowClipboard', 'alwaysShowClipboard'); ?>
<?php $this->showConfigCheckbox('settings_enableMenuTransmittals', 'enableMenuTransmittals'); ?>
<?php $this->showConfigCheckbox('settings_enableMenuTasks', 'enableMenuTasks'); ?>
<?php $this->showConfigCheckbox('settings_alwaysShowMenuTasks', 'alwaysShowMenuTasks'); ?>
<?php $this->showConfigOption('settings_tasksInMenu', 'tasksInMenu', array('review'=>'settings_tasksInMenu_review', 'approval'=>'settings_tasksInMenu_approval', 'workflow'=>'settings_tasksInMenu_workflow', 'receipt'=>'settings_tasksInMenu_receipt', 'revision'=>'settings_tasksInMenu_revision', 'needscorrection'=>'settings_tasksInMenu_needscorrection', 'rejected'=>'settings_tasksInMenu_rejected', 'checkedout'=>'settings_tasksInMenu_checkedout'), true, true); ?>

View File

@ -68,6 +68,50 @@ $(document).ready( function() {
<?php
} /* }}} */
/**
* Returns the html needed for the transmittals in the menu
*
* This function renders the transmittals in a way suitable to be
* used as a menu
*
* @return string html code
*/
function menuTransmittals() { /* {{{ */
$dms = $this->params['dms'];
$user = $this->params['user'];
$accessobject = $this->params['accessobject'];
$settings = $this->params['settings'];
if(!$transmittals = $dms->getAllTransmittals($user)) {;
echo '';
return;
}
$menuitems = [];
$menuitems['transmittals'] = array('label'=>getMLText('transmittals')." (".count($transmittals).")");
$menuitems['transmittals']['children'] = [];
foreach($transmittals as $transmittal) {
$subitems = [];
$items = $transmittal->getItems();
if($items) {
foreach($items as $item) {
if($content = $item->getContent()) {
$document = $content->getDocument();
$subitems[] = array('label'=>$document->getName(), 'link'=>$this->params['settings']->_httpRoot."out/out.ViewDocument.php?documentid=".$document->getID()."&currenttab=docinfo", 'class'=>"table-row-document", 'rel'=>"document_".$document->getID());
}
}
}
$menuitems['transmittals']['children'][$transmittal->getId()] = array('label'=>$transmittal->getName(), 'children'=>$subitems);
}
if ($accessobject->check_view_access('TransmittalMgr')) {
$menuitems['transmittals']['children']['divider'] = array('divider'=>true);
$menuitems['transmittals']['children']['mytransmittals'] = array('label'=>getMLText('my_transmittals'), 'link'=>$this->params['settings']->_httpRoot.'out/out.TransmittalMgr.php');
}
self::showNavigationBar($menuitems, array('right'=>true));
} /* }}} */
protected function showTransmittalForm($transmittal) { /* {{{ */
$dms = $this->params['dms'];
$user = $this->params['user'];
@ -202,19 +246,20 @@ $(document).ready( function() {
print "<table class=\"table table-condensed table-sm\">";
print "<thead>\n<tr>\n";
print "<th>".getMLText("name")."</th>\n";
print "<th>".getMLText("comment")."</th>\n";
print "<th>".getMLText("transmittal_size")."</th>\n";
print "<th></th>\n";
print "</tr>\n</thead>\n<tbody>\n";
foreach($transmittals as $transmittal) {
print "<tr>\n";
print "<td>".$transmittal->getName()."</td>";
print "<td>".$transmittal->getComment()."</td>";
print "<td style=\"cursor: pointer;\" class=\"selecttransmittal\" data-transmittalid=\"".$transmittal->getID()."\">".htmlspecialchars($transmittal->getName());
if($comment = $transmittal->getComment())
print "<br /><span style=\"font-size: 85%;\">".htmlspecialchars($comment)."</span>";
print "</td>";
$items = $transmittal->getItems();
print "<td>".count($items)." <em>(".SeedDMS_Core_File::format_filesize($transmittal->getSize()).")</em></td>";
print "<td style=\"cursor: pointer;\" class=\"selecttransmittal\" data-transmittalid=\"".$transmittal->getID()."\">".count($items)." <em>(".SeedDMS_Core_File::format_filesize($transmittal->getSize()).")</em></td>";
print "<td>";
print "<div class=\"list-action\">";
print "<a class=\"selecttransmittal\" data-transmittalid=\"".$transmittal->getID()."\" href=\"../out/out.TransmittalMgr.php?transmittalid=".$transmittal->getID()."\" title=\"".getMLText("edit_transmittal_props")."\"><i class=\"fa fa-edit\"></i></a>";
// print "<a class=\"selecttransmittal\" data-transmittalid=\"".$transmittal->getID()."\" href=\"../out/out.TransmittalMgr.php?transmittalid=".$transmittal->getID()."\" title=\"".getMLText("edit_transmittal_props")."\"><i class=\"fa fa-edit\"></i></a>";
if($transmittal && $accessop->check_controller_access('TransmittalMgr', array('action'=>'removetransmittal'))) {
print "<a data-transmittalid=\"".$transmittal->getID()."\" href=\"../out/out.RemoveTransmittal.php?transmittalid=".$transmittal->getID()."\" title=\"".getMLText("rm_transmittal")."\"><i class=\"fa fa-remove\"></i></a>";
}
@ -234,7 +279,7 @@ $(document).ready( function() {
}
if($accessop->check_view_access($this, array('action'=>'items'))) {
?>
<div class="ajax" data-view="TransmittalMgr" data-action="items" <?php echo ($seltransmittal ? "data-query=\"transmittalid=".$seltransmittal->getID()."\"" : "") ?>></div>
<div style="margin-top: 10px;" class="ajax" data-view="TransmittalMgr" data-action="items" <?php echo ($seltransmittal ? "data-query=\"transmittalid=".$seltransmittal->getID()."\"" : "") ?>></div>
<?php
}
$this->columnEnd();

View File

@ -395,6 +395,16 @@ background-image: linear-gradient(to bottom, #882222, #111111);;
}
/* }}} End of menu tasks */
/* menu transmittals {{{ */
if($this->params['enablemenutransmittals'] && !$this->params['user']->isGuest()) {
if($accessobject->check_view_access('TransmittalMgr', array('action'=>'menuTransmittals'))) {
echo " <div id=\"menu-transmittals\" class=\"ml-auto\">";
echo " <div class=\"ajax\" data-no-spinner=\"true\" data-view=\"TransmittalMgr\" data-action=\"menuTransmittals\"></div>";
echo " </div>";
}
}
/* }}} End of menu transmittals */
/* drop folder dir {{{ */
if($this->params['dropfolderdir'] && $this->params['enabledropfolderlist']) {
echo " <div id=\"menu-dropfolder\">";