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

This commit is contained in:
Uwe Steinmann 2023-11-12 19:16:11 +01:00
commit cd0a5c9844
2 changed files with 89 additions and 48 deletions

View File

@ -46,6 +46,41 @@ class SeedDMS_View_DocumentVersionDetail extends SeedDMS_Theme_Style {
<?php
} /* }}} */
/* This is a copy from ViewDocuments */
protected function showActions($items) { /* {{{ */
print "<ul class=\"action-list nav nav-pills mb-4\">";
foreach($items as $item) {
if(is_string($item))
echo "<li class=\"nav-item\">".$item."</li>";
elseif(is_array($item)) {
echo "<li class=\"nav-item m-1\"><a class=\"_nav-link btn btn-mini btn-outline-primary btn-sm".(!empty($item['class']) ? ' '. $item['class'] : '')."\"".(isset($item['link']) ? " href=\"".$item['link']."\"" : '').(!empty($item['target']) ? ' target="'.$item['target'].'"' : '').(!empty($item['title']) ? ' title="'.getMLText($item['title']).'"' : '');
if(!empty($item['attributes'])) {
foreach($item['attributes'] as $attr) {
echo ' '.$attr[0].'="'.$attr[1].'"';
}
}
echo ">".(!empty($item['icon']) ? "<i class=\"fa fa-".$item['icon']."\"></i> " : "").'<span class="d-none d-lg-inline">'.getMLText($item['label'])."</span></a></li>";
}
}
print "</ul>";
return;
print "<ul class=\"unstyled actions\">";
foreach($items as $item) {
if(is_string($item))
echo "<li>".$item."</li>";
elseif(is_array($item)) {
echo "<li><a href=\"".$item['link']."\"".(!empty($item['target']) ? ' target="'.$item['target'].'"' : '');
if(!empty($item['attributes'])) {
foreach($item['attributes'] as $attr) {
echo ' '.$attr[0].'="'.$attr[1].'"';
}
}
echo ">".(!empty($item['icon']) ? "<i class=\"fa fa-".$item['icon']."\"></i>" : "").getMLText($item['label'])."</a></li>";
}
}
print "</ul>";
} /* }}} */
function preview() { /* {{{ */
$dms = $this->params['dms'];
$document = $this->params['document'];
@ -139,7 +174,7 @@ class SeedDMS_View_DocumentVersionDetail extends SeedDMS_Theme_Style {
$user = $this->params['user'];
$folder = $this->params['folder'];
$document = $this->params['document'];
$accessop = $this->params['accessobject'];
$accessobject = $this->params['accessobject'];
$version = $this->params['version'];
$accessop = $this->params['accessobject'];
$viewonlinefiletypes = $this->params['viewonlinefiletypes'];
@ -250,18 +285,20 @@ class SeedDMS_View_DocumentVersionDetail extends SeedDMS_Theme_Style {
$file_exists=file_exists($dms->contentDir . $version->getPath());
$this->contentHeading(getMLText("details_version", array ("version" => $version->getVersion())));
$this->contentContainerStart();
print "<table class=\"table table-condensed\">";
print "<thead>\n<tr>\n";
print "<th colspan=\"2\">".htmlspecialchars($version->getOriginalFileName())."</th>\n";
// $this->contentContainerStart();
// print "<table class=\"table table-condensed\">";
// print "<thead>\n<tr>\n";
// print "<th colspan=\"2\">".htmlspecialchars($version->getOriginalFileName())."</th>\n";
// print "<th width='25%'>".getMLText("comment")."</th>\n";
print "<th width='20%'>".getMLText("status")."</th>\n";
print "<th width='25%'></th>\n";
print "</tr>\n</thead>\n<tbody>\n";
print "<tr>\n";
print "<td><ul class=\"unstyled\">";
// print "<th width='20%'>".getMLText("status")."</th>\n";
// print "<th width='25%'></th>\n";
// print "</tr>\n</thead>\n<tbody>\n";
// print "<tr>\n";
// print "<td><ul class=\"unstyled\">";
print "</ul>";
// print "</ul>";
$this->rowStart();
$this->columnStart(3);
$previewer = new SeedDMS_Preview_Previewer($cachedir, $previewwidthdetail, $timeout, $xsendfile);
if($conversionmgr)
$previewer->setConversionMgr($conversionmgr);
@ -283,9 +320,12 @@ class SeedDMS_View_DocumentVersionDetail extends SeedDMS_Theme_Style {
if ($file_exists) {
print "</a>";
}
print "</td>\n";
// print "</td>\n";
print "<td><ul class=\"unstyled\">\n";
// print "<td>";
$this->columnEnd();
$this->columnStart(5);
print "<ul class=\"unstyled\">\n";
print "<li>".getMLText('version').": ".$version->getVersion()."</li>\n";
if ($file_exists)
@ -317,52 +357,51 @@ class SeedDMS_View_DocumentVersionDetail extends SeedDMS_Theme_Style {
}
}
}
print "</ul></td>\n";
print "<td width='10%'>";
print getOverallStatusText($status["status"]);
print "<li>".getMLText('status').": ".getOverallStatusText($status["status"]);
if ( $status["status"]==S_DRAFT_REV || $status["status"]==S_DRAFT_APP || $status["status"]==S_IN_WORKFLOW || $status["status"]==S_EXPIRED ){
print "<br><span".($document->hasExpired()?" class=\"warning\" ":"").">".(!$document->getExpires() ? getMLText("does_not_expire") : getMLText("expires").": ".getReadableDate($document->getExpires()))."</span>";
}
print "</td>";
print "</li>";
print "</ul>";
// print "</td>\n";
print "<td>";
// print "<td width='10%'>";
$this->columnEnd();
$this->columnStart(4);
// print "</td>";
//if (($document->getAccessMode($user) >= M_READWRITE)) {
// print "<td>";
$items = array();
if ($file_exists){
print "<ul class=\"actions unstyled\">";
if($accessop->check_controller_access('Download', array('action'=>'run')))
print "<li><a href=\"../op/op.Download.php?documentid=".$document->getID()."&version=".$version->getVersion()."\" title=\"".htmlspecialchars($version->getMimeType())."\"><i class=\"fa fa-download\"></i> ".getMLText("download")."</a>";
$items[] = array('link'=>$this->params['settings']->_httpRoot."op/op.Download.php?documentid=".$version->getDocument()->getId()."&version=".$version->getVersion(), 'icon'=>'download', 'label'=>'download');
if ($viewonlinefiletypes && (in_array(strtolower($version->getFileType()), $viewonlinefiletypes) || in_array(strtolower($version->getMimeType()), $viewonlinefiletypes)))
if($accessop->check_controller_access('ViewOnline', array('action'=>'run')))
print "<li><a target=\"_blank\" href=\"../op/op.ViewOnline.php?documentid=".$document->getID()."&version=".$version->getVersion()."\"><i class=\"fa fa-star\"></i> " . getMLText("view_online") . "</a>";
print "</ul>";
}
print "<ul class=\"actions unstyled\">";
if ($file_exists){
if($accessop->mayEditVersion($version->getDocument())) {
print "<li><a href=\"../out/out.EditOnline.php?documentid=".$document->getId()."&version=".$version->getVersion()."\"><i class=\"fa fa-edit\"></i>".getMLText("edit_version")."</a></li>";
$items[] = array('link'=>$this->params['settings']->_httpRoot."op/op.ViewOnline.php?documentid=".$version->getDocument()->getId()."&version=". $version->getVersion(), 'icon'=>'eye', 'label'=>'view_online', 'target'=>'_blank');
if($newitems = $this->callHook('extraVersionViews', $latestContent))
$items = array_merge($items, $newitems);
if($items) {
$this->showActions($items);
}
}
if($accessop->mayRemoveVersion($version->getDocument())) {
print "<li><a href=\"out.RemoveVersion.php?documentid=".$document->getID()."&version=".$version->getVersion()."\"><i class=\"fa fa-remove\"></i> ".getMLText("rm_version")."</a></li>";
}
if($accessop->mayOverrideStatus($version->getDocument())) {
print "<li><a href='../out/out.OverrideContentStatus.php?documentid=".$document->getID()."&version=".$version->getVersion()."'><i class=\"fa fa-align-justify\"></i>".getMLText("change_status")."</a></li>";
}
if($accessop->mayEditComment($version->getDocument())) {
print "<li><a href=\"out.EditComment.php?documentid=".$document->getID()."&version=".$version->getVersion()."\"><i class=\"fa fa-comment\"></i> ".getMLText("edit_comment")."</a></li>";
}
if($accessop->mayEditAttributes($version->getDocument())) {
print "<li><a href=\"out.EditAttributes.php?documentid=".$document->getID()."&version=".$version->getVersion()."\"><i class=\"fa fa-edit\"></i> ".getMLText("edit_attributes")."</a></li>";
}
print "</ul>";
echo "</td>";
print "</tr></tbody>\n</table>\n";
$items = array();
if($accessobject->mayRemoveVersion($version->getDocument())) {
$items[] = array('link'=>$this->html_url('RemoveVersion', array('documentid'=>$version->getDocument()->getId(),'version'=>$version->getVersion())), 'icon'=>'remove', 'label'=>'rm_version');
}
$this->contentContainerEnd();
if($newitems = $this->callHook('extraVersionActions', $version))
$items = array_merge($items, $newitems);
if($items) {
$this->showActions($items);
}
// echo "</td>";
// print "</tr></tbody>\n</table>\n";
$this->columnEnd();
$this->rowEnd();
// $this->contentContainerEnd();
$this->rowStart();
$this->columnStart(6);
@ -557,7 +596,7 @@ class SeedDMS_View_DocumentVersionDetail extends SeedDMS_Theme_Style {
$this->contentContainerEnd();
} /* }}} */
if($accessop->check_view_access($this, array('action'=>'statuslog'))) {
if($accessobject->check_view_access($this, array('action'=>'statuslog'))) {
$this->contentHeading(getMLText("status"));
$this->contentContainerStart();
$statuslog = $version->getStatusLog();
@ -575,7 +614,7 @@ class SeedDMS_View_DocumentVersionDetail extends SeedDMS_Theme_Style {
$this->contentContainerEnd();
}
if($accessop->check_view_access($this, array('action'=>'finished_workflowlog'))) {
if($accessobject->check_view_access($this, array('action'=>'finished_workflowlog'))) {
$wkfalllogs = $version->getWorkflowLog();
if($wkfalllogs) {
$this->contentHeading(getMLText("finished_workflow_log"));

View File

@ -856,6 +856,7 @@ $(document).ready( function() {
if($islatest && $accessobject->mayOverrideStatus($latestContent->getDocument())) {
$items[] = array('link'=>$this->html_url('OverrideContentStatus', array('documentid'=>$latestContent->getDocument()->getId(),'version'=>$latestContent->getVersion())), 'icon'=>'align-justify', 'label'=>'change_status');
}
if(0) {
if($islatest && $enablereceiptworkflow && $accessobject->check_controller_access('SetRecipients'))
if($accessobject->maySetRecipients($latestContent->getDocument())) {
$items[] = array('link'=>"../out/out.SetRecipients.php?documentid=".$latestContent->getDocument()->getId()."&version=".$latestContent->getVersion(), 'icon'=>'check', 'label'=>'change_recipients');
@ -882,6 +883,7 @@ $(document).ready( function() {
if($accessobject->check_view_access('AddToTransmittal'))
$items[] = array('link'=>"out.AddToTransmittal.php?documentid=".$latestContent->getDocument()->getId()."&version=".$latestContent->getVersion(), 'icon'=>'list', 'label'=>'add_to_transmittal');
}
}
if($accessobject->check_view_access('EditComment'))
if($accessobject->mayEditComment($latestContent->getDocument())) {
$items[] = array('link'=>$this->html_url('EditComment', array('documentid'=>$latestContent->getDocument()->getId(),'version'=>$latestContent->getVersion())), 'icon'=>'comment', 'label'=>'edit_comment');