From 409b86461b64a543f88b265554c0827bb1a00d12 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Thu, 25 Apr 2024 18:33:05 +0200 Subject: [PATCH] add transmittals in menu --- CHANGELOG | 1 + inc/inc.ClassSettings.php | 4 ++ inc/inc.ClassUI.php | 1 + op/op.Settings.php | 1 + views/bootstrap/class.Bootstrap.php | 10 +++++ views/bootstrap/class.Settings.php | 1 + views/bootstrap/class.TransmittalMgr.php | 57 +++++++++++++++++++++--- views/bootstrap4/class.Bootstrap4.php | 10 +++++ 8 files changed, 79 insertions(+), 6 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 7e85a6194..ecac07174 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -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 diff --git a/inc/inc.ClassSettings.php b/inc/inc.ClassSettings.php index 99688f64e..31e17e58b 100644 --- a/inc/inc.ClassSettings.php +++ b/inc/inc.ClassSettings.php @@ -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); diff --git a/inc/inc.ClassUI.php b/inc/inc.ClassUI.php index 11b6ab922..73b2e42c6 100644 --- a/inc/inc.ClassUI.php +++ b/inc/inc.ClassUI.php @@ -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); diff --git a/op/op.Settings.php b/op/op.Settings.php index 97f8cdc77..573c0b5cd 100644 --- a/op/op.Settings.php +++ b/op/op.Settings.php @@ -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(); diff --git a/views/bootstrap/class.Bootstrap.php b/views/bootstrap/class.Bootstrap.php index 3e73d5979..c4d6b1192 100644 --- a/views/bootstrap/class.Bootstrap.php +++ b/views/bootstrap/class.Bootstrap.php @@ -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 "
"; + echo "
"; + echo "
"; + } + } + /* }}} End of menu tasks */ + /* drop folder dir {{{ */ if($this->params['dropfolderdir'] && $this->params['enabledropfolderlist']) { echo "
"; diff --git a/views/bootstrap/class.Settings.php b/views/bootstrap/class.Settings.php index 322e7ea0d..699921066 100644 --- a/views/bootstrap/class.Settings.php +++ b/views/bootstrap/class.Settings.php @@ -422,6 +422,7 @@ if(($kkk = $this->callHook('getFullSearchEngine')) && is_array($kkk)) showConfigText('settings_stopWordsFile', 'stopWordsFile'); ?> showConfigCheckbox('settings_enableClipboard', 'enableClipboard'); ?> showConfigCheckbox('settings_alwaysShowClipboard', 'alwaysShowClipboard'); ?> +showConfigCheckbox('settings_enableMenuTransmittals', 'enableMenuTransmittals'); ?> showConfigCheckbox('settings_enableMenuTasks', 'enableMenuTasks'); ?> showConfigCheckbox('settings_alwaysShowMenuTasks', 'alwaysShowMenuTasks'); ?> 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); ?> diff --git a/views/bootstrap/class.TransmittalMgr.php b/views/bootstrap/class.TransmittalMgr.php index b89bd7a31..118ac4e8b 100644 --- a/views/bootstrap/class.TransmittalMgr.php +++ b/views/bootstrap/class.TransmittalMgr.php @@ -68,6 +68,50 @@ $(document).ready( function() { 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()."¤ttab=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 ""; print "\n\n"; print "\n"; - print "\n"; print "\n"; print "\n"; print "\n\n\n"; foreach($transmittals as $transmittal) { print "\n"; - print ""; - print ""; + print ""; $items = $transmittal->getItems(); - print ""; + print ""; print "
".getMLText("name")."".getMLText("comment")."".getMLText("transmittal_size")."
".$transmittal->getName()."".$transmittal->getComment()."getID()."\">".htmlspecialchars($transmittal->getName()); + if($comment = $transmittal->getComment()) + print "
".htmlspecialchars($comment).""; + print "
".count($items)." (".SeedDMS_Core_File::format_filesize($transmittal->getSize()).")getID()."\">".count($items)." (".SeedDMS_Core_File::format_filesize($transmittal->getSize()).")"; print "
"; - print "getID()."\" href=\"../out/out.TransmittalMgr.php?transmittalid=".$transmittal->getID()."\" title=\"".getMLText("edit_transmittal_props")."\">"; +// print "getID()."\" href=\"../out/out.TransmittalMgr.php?transmittalid=".$transmittal->getID()."\" title=\"".getMLText("edit_transmittal_props")."\">"; if($transmittal && $accessop->check_controller_access('TransmittalMgr', array('action'=>'removetransmittal'))) { print "getID()."\" href=\"../out/out.RemoveTransmittal.php?transmittalid=".$transmittal->getID()."\" title=\"".getMLText("rm_transmittal")."\">"; } @@ -234,7 +279,7 @@ $(document).ready( function() { } if($accessop->check_view_access($this, array('action'=>'items'))) { ?> -
getID()."\"" : "") ?>>
+
getID()."\"" : "") ?>>
columnEnd(); diff --git a/views/bootstrap4/class.Bootstrap4.php b/views/bootstrap4/class.Bootstrap4.php index 7ca5af99a..f49b1d8f6 100644 --- a/views/bootstrap4/class.Bootstrap4.php +++ b/views/bootstrap4/class.Bootstrap4.php @@ -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 "
"; + echo "
"; + echo "
"; + } + } + /* }}} End of menu transmittals */ + /* drop folder dir {{{ */ if($this->params['dropfolderdir'] && $this->params['enabledropfolderlist']) { echo "
";