Merge branch 'seeddms-5.1.x' into seeddms-6.0.x

This commit is contained in:
Uwe Steinmann 2021-04-19 08:38:41 +02:00
commit d994232cc4
4 changed files with 105 additions and 91 deletions

View File

@ -35,16 +35,24 @@ class SeedDMS_View_AdminTools extends SeedDMS_Theme_Style {
return self::startRow().$content.self::endRow();
} /* }}} */
static function startRow() { /* {{{ */
return '<div class="row-fluid">';
public function startRow() { /* {{{ */
ob_start();
$this->rowStart();
return ob_get_clean();
} /* }}} */
static function endRow() { /* {{{ */
return '</div>';
public function endRow() { /* {{{ */
ob_start();
$this->rowEnd();
return ob_get_clean();
} /* }}} */
static function rowButton($link, $icon, $label) { /* {{{ */
return '<a href="'.$link.'" class="span2 btn btn-medium"><i class="fa fa-'.$icon.'"></i><br />'.getMLText($label).'</a>';
public function rowButton($link, $icon, $label) { /* {{{ */
ob_start();
$this->columnStart(2);
echo '<a href="'.$link.'" class="btn btn-medium btn-light btn-block btn-md"><i class="fa fa-'.$icon.'"></i><br />'.getMLText($label).'</a>';
$this->columnEnd();
return ob_get_clean();
} /* }}} */
function show() { /* {{{ */
@ -59,7 +67,7 @@ class SeedDMS_View_AdminTools extends SeedDMS_Theme_Style {
$this->contentStart();
$this->pageNavigation(getMLText("admin_tools"), "admin_tools");
// $this->contentHeading(getMLText("admin_tools"));
$this->contentContainerStart();
// $this->contentContainerStart();
?>
<div id="admin-tools">
<?php echo $this->callHook('beforeRows'); ?>
@ -171,7 +179,7 @@ class SeedDMS_View_AdminTools extends SeedDMS_Theme_Style {
<?php echo $this->callHook('afterRows'); ?>
</div>
<?php
$this->contentContainerEnd();
// $this->contentContainerEnd();
$this->contentEnd();
$this->htmlEndPage();
} /* }}} */

View File

@ -79,7 +79,7 @@ $(document).ready( function() {
foreach(array('document', 'folder', 'content') as $type) {
$content = '';
if(isset($res['frequencies'][$type]) && $res['frequencies'][$type]) {
$content .= "<table class=\"table table-condensed\">";
$content .= "<table class=\"table table-condensed table-sm\">";
$content .= "<thead>\n<tr>\n";
$content .= "<th>".getMLText("attribute_value")."</th>\n";
$content .= "<th>".getMLText("attribute_count")."</th>\n";

View File

@ -384,6 +384,8 @@ background-image: linear-gradient(to bottom, #882222, #111111);;
echo " <span class=\"fa fa-bars\"></span>\n";
echo " </a>\n";
echo " <a class=\"brand\" href=\"../out/out.ViewFolder.php?folderid=".$this->params['dms']->getRootFolder()->getId()."\">".(strlen($this->params['sitename'])>0 ? $this->params['sitename'] : "SeedDMS")."</a>\n";
/* user profile menu {{{ */
if(isset($this->params['session']) && isset($this->params['user']) && $this->params['user']) {
echo " <div class=\"nav-collapse nav-col1\">\n";
echo " <ul id=\"main-menu-admin\" class=\"nav pull-right\">\n";
@ -451,6 +453,7 @@ background-image: linear-gradient(to bottom, #882222, #111111);;
echo " </ul>\n";
echo " </li>\n";
echo " </ul>\n";
/* }}} End of user profile menu */
/* menu tasks {{{ */
if($this->params['enablemenutasks']) {
@ -523,6 +526,8 @@ background-image: linear-gradient(to bottom, #882222, #111111);;
}
}
echo " </ul>\n";
/* search form {{{ */
echo " <form action=\"../out/out.Search.php\" class=\"form-inline navbar-search pull-left\" autocomplete=\"off\">";
if ($folder!=null && is_object($folder) && $folder->isType('folder')) {
echo " <input type=\"hidden\" name=\"folderid\" value=\"".$folder->getID()."\" />";
@ -536,6 +541,7 @@ background-image: linear-gradient(to bottom, #882222, #111111);;
// }
// echo " <input type=\"submit\" value=\"".getMLText("search")."\" id=\"searchButton\" class=\"btn\"/>";
echo "</form>\n";
/* }}} End of search form */
echo " </div>\n";
}
echo " </div>\n";
@ -734,7 +740,7 @@ background-image: linear-gradient(to bottom, #882222, #111111);;
if ($accessMode == M_READ && !$this->params['user']->isGuest()) {
if ($accessobject->check_view_access('FolderNotify'))
$menuitems['edit_folder_notify'] = array('link'=>"../out/out.FolderNotify.php?folderid=".$folderID."&showtree=".showtree(), 'label'=>getMLText('edit_folder_notify'));
$menuitems['edit_folder_notify'] = array('link'=>"../out/out.FolderNotify.php?folderid=".$folderID."&showtree=".showtree(), 'label'=>getMLText('edit_folder_notify'));
}
else if ($accessMode >= M_READWRITE) {
if ($accessobject->check_view_access('AddSubFolder'))
@ -754,10 +760,10 @@ background-image: linear-gradient(to bottom, #882222, #111111);;
}
if ($accessMode == M_ALL) {
if ($accessobject->check_view_access('FolderAccess'))
$menuitems['edit_folder_access'] = array('link'=>"../out/out.FolderAccess.php?folderid=".$folderID."&showtree=".showtree(), 'label'=>getMLText('edit_folder_access'));
$menuitems['edit_folder_access'] = array('link'=>"../out/out.FolderAccess.php?folderid=".$folderID."&showtree=".showtree(), 'label'=>getMLText('edit_folder_access'));
}
if ($accessobject->check_view_access('FolderNotify'))
$menuitems['edit_existing_notify'] = array('link'=>"../out/out.FolderNotify.php?folderid=". $folderID ."&showtree=". showtree(), 'label'=>getMLText('edit_existing_notify'));
$menuitems['edit_existing_notify'] = array('link'=>"../out/out.FolderNotify.php?folderid=". $folderID ."&showtree=". showtree(), 'label'=>getMLText('edit_existing_notify'));
}
if ($accessobject->check_view_access('Indexer') && $this->params['enablefullsearch']) {
$menuitems['index_folder'] = array('link'=>"../out/out.Indexer.php?folderid=". $folderID."&showtree=".showtree(), 'label'=>getMLText('index_folder'));
@ -899,12 +905,12 @@ background-image: linear-gradient(to bottom, #882222, #111111);;
$menuitems['all_documents'] = array('link'=>"../out/out.MyDocuments.php", 'label'=>getMLText('all_documents'));
if($this->params['workflowmode'] == 'traditional' || $this->params['workflowmode'] == 'traditional_only_approval') {
if ($accessobject->check_view_access('ReviewSummary'))
$menuitems['review_summary'] = array('link'=>"../out/out.ReviewSummary.php", 'label'=>getMLText('review_summary'));
$menuitems['review_summary'] = array('link'=>"../out/out.ReviewSummary.php", 'label'=>getMLText('review_summary'));
if ($accessobject->check_view_access('ApprovalSummary'))
$menuitems['approval_summary'] = array('link'=>"../out/out.ApprovalSummary.php", 'label'=>getMLText('approval_summary'));
$menuitems['approval_summary'] = array('link'=>"../out/out.ApprovalSummary.php", 'label'=>getMLText('approval_summary'));
} else {
if ($accessobject->check_view_access('WorkflowSummary'))
$menuitems['workflow_summary'] = array('link'=>"../out/out.WorkflowSummary.php", 'label'=>getMLText('workflow_summary'));
$menuitems['workflow_summary'] = array('link'=>"../out/out.WorkflowSummary.php", 'label'=>getMLText('workflow_summary'));
}
if ($accessobject->check_view_access('ReceiptSummary'))
$menuitems['receipt_summary'] = array('link'=>"../out/out.ReceiptSummary.php", 'label'=>getMLText('receipt_summary'));
@ -928,46 +934,46 @@ background-image: linear-gradient(to bottom, #882222, #111111);;
$menuitems = array();
if($accessobject->check_view_access(array('UsrMgr', 'RoleMgr', 'GroupMgr', 'UserList', 'Acl'))) {
$menuitems['user_group_management'] = array('link'=>"#", 'label'=>getMLText('user_group_management'));
if ($accessobject->check_view_access('UsrMgr'))
$menuitems['user_group_management']['children']['user_management'] = array('link'=>"../out/out.UsrMgr.php", 'label'=>getMLText('user_management'));
if ($accessobject->check_view_access('RoleMgr'))
$menuitems['user_group_management']['children']['role_management'] = array('link'=>"../out/out.RoleMgr.php", 'label'=>getMLText('role_management'));
if ($accessobject->check_view_access('GroupMgr'))
$menuitems['user_group_management']['children']['group_management'] = array('link'=>"../out/out.GroupMgr.php", 'label'=>getMLText('group_management'));
if ($accessobject->check_view_access('UserList'))
$menuitems['user_group_management']['children']['user_list'] = array('link'=>"../out/out.UserList.php", 'label'=>getMLText('user_list'));
if ($accessobject->check_view_access('Acl'))
$menuitems['user_group_management']['children']['access_control'] = array('link'=>"../out/out.Acl.php", 'label'=>getMLText('access_control'));
}
$menuitems['user_group_management'] = array('link'=>"#", 'label'=>getMLText('user_group_management'));
if ($accessobject->check_view_access('UsrMgr'))
$menuitems['user_group_management']['children']['user_management'] = array('link'=>"../out/out.UsrMgr.php", 'label'=>getMLText('user_management'));
if ($accessobject->check_view_access('RoleMgr'))
$menuitems['user_group_management']['children']['role_management'] = array('link'=>"../out/out.RoleMgr.php", 'label'=>getMLText('role_management'));
if ($accessobject->check_view_access('GroupMgr'))
$menuitems['user_group_management']['children']['group_management'] = array('link'=>"../out/out.GroupMgr.php", 'label'=>getMLText('group_management'));
if ($accessobject->check_view_access('UserList'))
$menuitems['user_group_management']['children']['user_list'] = array('link'=>"../out/out.UserList.php", 'label'=>getMLText('user_list'));
if ($accessobject->check_view_access('Acl'))
$menuitems['user_group_management']['children']['access_control'] = array('link'=>"../out/out.Acl.php", 'label'=>getMLText('access_control'));
}
if($accessobject->check_view_access(array('DefaultKeywords', 'Categories', 'AttributeMgr', 'WorkflowMgr', 'WorkflowStatesMgr', 'WorkflowActionsMgr'))) {
$menuitems['definitions'] = array('link'=>"#", 'label'=>getMLText('definitions'));
if ($accessobject->check_view_access('DefaultKeywords'))
$menuitems['definitions']['children']['default_keywords'] = array('link'=>"../out/out.DefaultKeywords.php", 'label'=>getMLText('global_default_keywords'));
if ($accessobject->check_view_access('Categories'))
$menuitems['definitions']['children']['document_categories'] = array('link'=>"../out/out.Categories.php", 'label'=>getMLText('global_document_categories'));
if ($accessobject->check_view_access('AttributeMgr'))
$menuitems['definitions']['children']['attribute_definitions'] = array('link'=>"../out/out.AttributeMgr.php", 'label'=>getMLText('global_attributedefinitions'));
if($this->params['workflowmode'] == 'advanced') {
if ($accessobject->check_view_access('WorkflowMgr'))
$menuitems['definitions']['children']['workflows'] = array('link'=>"../out/out.WorkflowMgr.php", 'label'=>getMLText('global_workflows'));
if ($accessobject->check_view_access('WorkflowStatesMgr'))
$menuitems['definitions']['children']['workflow_states'] = array('link'=>"../out/out.WorkflowStatesMgr.php", 'label'=>getMLText('global_workflow_states'));
if ($accessobject->check_view_access('WorkflowActionsMgr'))
$menuitems['definitions']['children']['workflow_actions'] = array('link'=>"../out/out.WorkflowActionsMgr.php", 'label'=>getMLText('global_workflow_actions'));
}
if($accessobject->check_view_access(array('DefaultKeywords', 'Categories', 'AttributeMgr', 'WorkflowMgr', 'WorkflowStatesMgr', 'WorkflowActionsMgr'))) {
$menuitems['definitions'] = array('link'=>"#", 'label'=>getMLText('definitions'));
if ($accessobject->check_view_access('DefaultKeywords'))
$menuitems['definitions']['children']['default_keywords'] = array('link'=>"../out/out.DefaultKeywords.php", 'label'=>getMLText('global_default_keywords'));
if ($accessobject->check_view_access('Categories'))
$menuitems['definitions']['children']['document_categories'] = array('link'=>"../out/out.Categories.php", 'label'=>getMLText('global_document_categories'));
if ($accessobject->check_view_access('AttributeMgr'))
$menuitems['definitions']['children']['attribute_definitions'] = array('link'=>"../out/out.AttributeMgr.php", 'label'=>getMLText('global_attributedefinitions'));
if($this->params['workflowmode'] == 'advanced') {
if ($accessobject->check_view_access('WorkflowMgr'))
$menuitems['definitions']['children']['workflows'] = array('link'=>"../out/out.WorkflowMgr.php", 'label'=>getMLText('global_workflows'));
if ($accessobject->check_view_access('WorkflowStatesMgr'))
$menuitems['definitions']['children']['workflow_states'] = array('link'=>"../out/out.WorkflowStatesMgr.php", 'label'=>getMLText('global_workflow_states'));
if ($accessobject->check_view_access('WorkflowActionsMgr'))
$menuitems['definitions']['children']['workflow_actions'] = array('link'=>"../out/out.WorkflowActionsMgr.php", 'label'=>getMLText('global_workflow_actions'));
}
}
if($this->params['enablefullsearch']) {
if($accessobject->check_view_access(array('Indexer', 'CreateIndex', 'IndexInfo'))) {
$menuitems['fulltext'] = array('link'=>"#", 'label'=>getMLText('fullsearch'));
$menuitems['fulltext'] = array('link'=>"#", 'label'=>getMLText('fullsearch'));
if ($accessobject->check_view_access('Indexer'))
$menuitems['fulltext']['children']['update_fulltext_index'] = array('link'=>"../out/out.Indexer.php", 'label'=>getMLText('update_fulltext_index'));
$menuitems['fulltext']['children']['update_fulltext_index'] = array('link'=>"../out/out.Indexer.php", 'label'=>getMLText('update_fulltext_index'));
if ($accessobject->check_view_access('CreateIndex'))
$menuitems['fulltext']['children']['create_fulltext_index'] = array('link'=>"../out/out.CreateIndex.php", 'label'=>getMLText('create_fulltext_index'));
$menuitems['fulltext']['children']['create_fulltext_index'] = array('link'=>"../out/out.CreateIndex.php", 'label'=>getMLText('create_fulltext_index'));
if ($accessobject->check_view_access('IndexInfo'))
$menuitems['fulltext']['children']['fulltext_info'] = array('link'=>"../out/out.IndexInfo.php", 'label'=>getMLText('fulltext_info'));
$menuitems['fulltext']['children']['fulltext_info'] = array('link'=>"../out/out.IndexInfo.php", 'label'=>getMLText('fulltext_info'));
}
}
@ -981,29 +987,29 @@ background-image: linear-gradient(to bottom, #882222, #111111);;
}
if($accessobject->check_view_access(array('ImportFS', 'ImportUsers', 'Statistic', 'Charts', 'Timeline', 'ObjectCheck', 'ExtensionMgr', 'Info'))) {
$menuitems['misc'] = array('link'=>"#", 'label'=>getMLText('misc'));
if ($accessobject->check_view_access('ImportFS'))
$menuitems['misc']['children']['import_fs'] = array('link'=>"../out/out.ImportFS.php", 'label'=>getMLText('import_fs'));
if ($accessobject->check_view_access('ImportUsers'))
$menuitems['misc']['children']['import_users'] = array('link'=>"../out/out.ImportUsers.php", 'label'=>getMLText('import_users'));
if ($accessobject->check_view_access('Statistic'))
$menuitems['misc']['children']['folders_and_documents_statistic'] = array('link'=>"../out/out.Statistic.php", 'label'=>getMLText('folders_and_documents_statistic'));
if ($accessobject->check_view_access('Charts'))
$menuitems['misc']['children']['charts'] = array('link'=>"../out/out.Charts.php", 'label'=>getMLText('charts'));
if ($accessobject->check_view_access('Timeline'))
$menuitems['misc']['children']['timeline'] = array('link'=>"../out/out.Timeline.php", 'label'=>getMLText('timeline'));
if ($accessobject->check_view_access('SchedulerTaskMgr'))
$menuitems['misc']['children']['schedulertaskmgr'] = array('link'=>"../out/out.SchedulerTaskMgr.php", 'label'=>getMLText('scheduler_task_mgr'));
if ($accessobject->check_view_access('ObjectCheck'))
$menuitems['misc']['children']['objectcheck'] = array('link'=>"../out/out.ObjectCheck.php", 'label'=>getMLText('objectcheck'));
if ($accessobject->check_view_access('ExpiredDocuments'))
$menuitems['misc']['children']['documents_expired'] = array('link'=>"../out/out.ExpiredDocuments.php", 'label'=>getMLText('documents_expired'));
if ($accessobject->check_view_access('ExtensionMgr'))
$menuitems['misc']['children']['extension_manager'] = array('link'=>"../out/out.ExtensionMgr.php", 'label'=>getMLText('extension_manager'));
if ($accessobject->check_view_access('ClearCache'))
$menuitems['misc']['children']['clear_cache'] = array('link'=>"../out/out.ClearCache.php", 'label'=>getMLText('clear_cache'));
if ($accessobject->check_view_access('Info'))
$menuitems['misc']['children']['version_info'] = array('link'=>"../out/out.Info.php", 'label'=>getMLText('version_info'));
$menuitems['misc'] = array('link'=>"#", 'label'=>getMLText('misc'));
if ($accessobject->check_view_access('ImportFS'))
$menuitems['misc']['children']['import_fs'] = array('link'=>"../out/out.ImportFS.php", 'label'=>getMLText('import_fs'));
if ($accessobject->check_view_access('ImportUsers'))
$menuitems['misc']['children']['import_users'] = array('link'=>"../out/out.ImportUsers.php", 'label'=>getMLText('import_users'));
if ($accessobject->check_view_access('Statistic'))
$menuitems['misc']['children']['folders_and_documents_statistic'] = array('link'=>"../out/out.Statistic.php", 'label'=>getMLText('folders_and_documents_statistic'));
if ($accessobject->check_view_access('Charts'))
$menuitems['misc']['children']['charts'] = array('link'=>"../out/out.Charts.php", 'label'=>getMLText('charts'));
if ($accessobject->check_view_access('Timeline'))
$menuitems['misc']['children']['timeline'] = array('link'=>"../out/out.Timeline.php", 'label'=>getMLText('timeline'));
if ($accessobject->check_view_access('SchedulerTaskMgr'))
$menuitems['misc']['children']['schedulertaskmgr'] = array('link'=>"../out/out.SchedulerTaskMgr.php", 'label'=>getMLText('scheduler_task_mgr'));
if ($accessobject->check_view_access('ObjectCheck'))
$menuitems['misc']['children']['objectcheck'] = array('link'=>"../out/out.ObjectCheck.php", 'label'=>getMLText('objectcheck'));
if ($accessobject->check_view_access('ExpiredDocuments'))
$menuitems['misc']['children']['documents_expired'] = array('link'=>"../out/out.ExpiredDocuments.php", 'label'=>getMLText('documents_expired'));
if ($accessobject->check_view_access('ExtensionMgr'))
$menuitems['misc']['children']['extension_manager'] = array('link'=>"../out/out.ExtensionMgr.php", 'label'=>getMLText('extension_manager'));
if ($accessobject->check_view_access('ClearCache'))
$menuitems['misc']['children']['clear_cache'] = array('link'=>"../out/out.ClearCache.php", 'label'=>getMLText('clear_cache'));
if ($accessobject->check_view_access('Info'))
$menuitems['misc']['children']['version_info'] = array('link'=>"../out/out.Info.php", 'label'=>getMLText('version_info'));
}
if ($settings->_enableDebugMode) {
@ -2226,17 +2232,17 @@ $(function() {
*/
autoOpen: false,
drapAndDrop: true,
onCreateLi: function(node, $li) {
// Add 'icon' span before title
if(node.is_folder)
$li.find('.jqtree-title').before('<i class="fa fa-folder-o table-row-folder droptarget" data-droptarget="folder_' + node.id + '" rel="folder_' + node.id + '"></i> ').attr('data-name', node.name).attr('rel', 'folder_' + node.id).attr('formtoken', '<?php echo createFormKey(''); ?>').attr('data-uploadformtoken', '<?php echo createFormKey(''); ?>').attr('data-droptarget', 'folder_' + node.id).addClass('droptarget');
else
$li.find('.jqtree-title').before('<i class="fa fa-file"></i> ');
}
onCreateLi: function(node, $li) {
// Add 'icon' span before title
if(node.is_folder)
$li.find('.jqtree-title').before('<i class="fa fa-folder-o table-row-folder droptarget" data-droptarget="folder_' + node.id + '" rel="folder_' + node.id + '"></i> ').attr('data-name', node.name).attr('rel', 'folder_' + node.id).attr('formtoken', '<?php echo createFormKey(''); ?>').attr('data-uploadformtoken', '<?php echo createFormKey(''); ?>').attr('data-droptarget', 'folder_' + node.id).addClass('droptarget');
else
$li.find('.jqtree-title').before('<i class="fa fa-file"></i> ');
}
});
// Unfold node for currently selected folder
$('#jqtree<?php echo $formid ?>').tree('selectNode', $('#jqtree<?php echo $formid ?>').tree('getNodeById', <?php echo $folderid ?>), false, true);
$('#jqtree<?php echo $formid ?>').on(
$('#jqtree<?php echo $formid ?>').on(
'tree.click',
function(event) {
var node = event.node;
@ -2292,7 +2298,7 @@ $(function() {
if(typeof node.fetched == 'undefined') {
node.fetched = true;
$(this).tree('loadDataFromUrl', node, function() {$(this).tree('openNode', node);});
}
}
});
});
<?php
@ -2556,7 +2562,7 @@ $(function() {
$title = 'lock_document';
}
$content = '';
$content .= '<a class="lock-document-btn" rel="'.$docid.'" msg="'.getMLText($msg).'" title="'.getMLText($title).'"><i class="fa fa-'.$icon.'"></i></a>';
$content .= '<a class="lock-document-btn" rel="'.$docid.'" msg="'.getMLText($msg).'" title="'.getMLText($title).'"><i class="fa fa-'.$icon.'"></i></a>';
if($return)
return $content;
else
@ -2760,7 +2766,7 @@ $(document).ready( function() {
*/
function printDeleteAttributeValueButton($attrdef, $value, $msg, $return=false){ /* {{{ */
$content = '';
$content .= '<a class="delete-attribute-value-btn" rel="'.$attrdef->getID().'" msg="'.getMLText($msg).'" attrvalue="'.htmlspecialchars($value, ENT_QUOTES).'" confirmmsg="'.htmlspecialchars(getMLText("confirm_rm_attr_value", array ("attrdefname" => $attrdef->getName())), ENT_QUOTES).'"><i class="fa fa-remove"></i></a>';
$content .= '<a class="delete-attribute-value-btn" rel="'.$attrdef->getID().'" msg="'.getMLText($msg).'" attrvalue="'.htmlspecialchars($value, ENT_QUOTES).'" confirmmsg="'.htmlspecialchars(getMLText("confirm_rm_attr_value", array ("attrdefname" => $attrdef->getName())), ENT_QUOTES).'"><i class="fa fa-remove"></i></a>';
if($return)
return $content;
else
@ -3602,21 +3608,21 @@ $("body").on("click", "span.openpopupbox", function(e) {
$id = substr(md5(uniqid()), 0, 4);
?>
<div class="accordion" id="accordion<?php echo $id; ?>">
<div class="accordion-group">
<div class="accordion-heading">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion<?php echo $id; ?>" href="#collapse<?php echo $id; ?>">
<?php echo $title; ?>
</a>
</div>
</a>
</div>
<div id="collapse<?php echo $id; ?>" class="accordion-body collapse" style="height: 0px;">
<div class="accordion-inner">
<div class="accordion-inner">
<?php
echo $content;
?>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<?php
} /* }}} */
}

View File

@ -119,7 +119,7 @@ $(document).ready( function() {
if($selgroup) {
$previewer = new SeedDMS_Preview_Previewer($cachedir, $previewwidth, $timeout, $xsendfile);
$this->contentHeading(getMLText("group_info"));
echo "<table class=\"table table-condensed\">\n";
echo "<table class=\"table table-condensed table-sm\">\n";
if($workflowmode == "traditional") {
$reviewstatus = $selgroup->getReviewStatus();
$i = 0;