use showVersionDetails() for previous versions

This commit is contained in:
Uwe Steinmann 2021-05-06 13:42:18 +02:00
parent be7df6ffab
commit 75d033d73c

View File

@ -477,7 +477,7 @@ class SeedDMS_View_ViewDocument extends SeedDMS_Theme_Style {
print "</ul>";
} /* }}} */
protected function showVersionDetails($latestContent, $previewer) { /* {{{ */
protected function showVersionDetails($latestContent, $previewer, $islatest=false) { /* {{{ */
$dms = $this->params['dms'];
$user = $this->params['user'];
$folder = $this->params['folder'];
@ -570,7 +570,7 @@ class SeedDMS_View_ViewDocument extends SeedDMS_Theme_Style {
$items = array();
if ($file_exists){
if($accessop->mayEditVersion()) {
if($islatest && $accessop->mayEditVersion()) {
$items[] = array('link'=>"../out/out.EditOnline.php?documentid=".$latestContent->getDocument()->getId()."&version=".$latestContent->getVersion(), 'icon'=>'edit', 'label'=>'edit_version');
}
}
@ -580,7 +580,7 @@ class SeedDMS_View_ViewDocument extends SeedDMS_Theme_Style {
if($accessop->mayRemoveVersion()) {
$items[] = array('link'=>"../out/out.RemoveVersion.php?documentid=".$latestContent->getDocument()->getId()."&version=".$latestContent->getVersion(), 'icon'=>'remove', 'label'=>'rm_version');
}
if($accessop->mayOverwriteStatus()) {
if($islatest && $accessop->mayOverwriteStatus()) {
$items[] = array('link'=>"../out/out.OverrideContentStatus.php?documentid=".$latestContent->getDocument()->getId()."&version=".$latestContent->getVersion(), 'icon'=>'align-justify', 'label'=>'change_status');
}
if($workflowmode == 'traditional' || $workflowmode == 'traditional_only_approval') {
@ -601,6 +601,8 @@ class SeedDMS_View_ViewDocument extends SeedDMS_Theme_Style {
if($accessop->mayEditAttributes()) {
$items[] = array('link'=>"out.EditAttributes.php?documentid=".$latestContent->getDocument()->getId()."&version=".$latestContent->getVersion(), 'icon'=>'edit', 'label'=>'edit_attributes');
}
if(!$islatest)
$items[] = array('link'=>"out.DocumentVersionDetail.php?documentid=".$latestContent->getDocument()->getId()."&version=".$latestContent->getVersion(), 'icon'=>'info', 'label'=>'details');
if($newitems = $this->callHook('extraVersionActions', $latestContent))
$items = array_merge($items, $newitems);
@ -770,7 +772,7 @@ class SeedDMS_View_ViewDocument extends SeedDMS_Theme_Style {
$this->contentContainerStart();
$previewer = new SeedDMS_Preview_Previewer($cachedir, $previewwidthdetail, $timeout, $xsendfile);
$previewer->setConverters($previewconverters);
$this->showVersionDetails($latestContent, $previewer);
$this->showVersionDetails($latestContent, $previewer, true);
$this->contentContainerEnd();
if($user->isAdmin()) {
@ -1275,108 +1277,12 @@ class SeedDMS_View_ViewDocument extends SeedDMS_Theme_Style {
if(is_string($txt))
echo $txt;
$this->contentContainerStart();
print "<table class=\"table\">";
print "<thead>\n<tr>\n";
print "<th colspan=\"2\"></th>\n";
print "<th width='25%'></th>\n";
print "</tr>\n</thead>\n<tbody>\n";
for ($i = count($versions)-2; $i >= 0; $i--) {
$version = $versions[$i];
$vstat = $version->getStatus();
$workflow = $version->getWorkflow();
$workflowstate = $version->getWorkflowState();
// verify if file exists
$file_exists=file_exists($dms->contentDir . $version->getPath());
print "<tr>\n";
print "<td style=\"width:".$previewwidthdetail."px; text-align: center;\">";
if($file_exists) {
if ($viewonlinefiletypes && (in_array(strtolower($version->getFileType()), $viewonlinefiletypes) || in_array(strtolower($version->getMimeType()), $viewonlinefiletypes))) {
print "<a target=\"_blank\" href=\"../op/op.ViewOnline.php?documentid=".$version->getDocument()->getId()."&version=".$version->getVersion()."\">";
} else {
print "<a href=\"../op/op.Download.php?documentid=".$version->getDocument()->getId()."&version=".$version->getVersion()."\">";
}
}
$previewer->createPreview($version);
if($previewer->hasPreview($version)) {
print("<img class=\"mimeicon\" width=\"".$previewwidthdetail."\" src=\"../op/op.Preview.php?documentid=".$version->getDocument()->getId()."&version=".$version->getVersion()."&width=".$previewwidthdetail."\" title=\"".htmlspecialchars($version->getMimeType())."\">");
} else {
print "<img class=\"mimeicon\" width=\"".$previewwidthdetail."\" src=\"".$this->getMimeIcon($version->getFileType())."\" title=\"".htmlspecialchars($version->getMimeType())."\">";
}
if($file_exists) {
print "</a>\n";
}
print "</td>\n";
print "<td><ul class=\"actions unstyled\">\n";
print "<li>".htmlspecialchars($version->getOriginalFileName())."</li>\n";
print "<li>".getMLText('version').": ".$version->getVersion()."</li>\n";
if ($file_exists) print "<li>". SeedDMS_Core_File::format_filesize($version->getFileSize()) .", ".htmlspecialchars($version->getMimeType())."</li>";
else print "<li><span class=\"warning\">".getMLText("document_deleted")."</span></li>";
$updatingUser = $version->getUser();
print "<li>".getMLText("uploaded_by")." <a href=\"mailto:".htmlspecialchars($updatingUser->getEmail())."\">".htmlspecialchars($updatingUser->getFullName())."</a></li>";
print "<li>".getLongReadableDate($version->getDate())."</li>";
print "<li>".getMLText('status').": ".getOverallStatusText($vstat["status"])."</li>";
print "</ul>\n";
$txt = $this->callHook('showVersionComment', $version);
if($txt) {
echo $txt;
} else {
if($version->getComment())
print "<p style=\"font-style: italic;\">".htmlspecialchars($version->getComment())."</p>";
}
print "<ul class=\"actions unstyled\">\n";
$this->printVersionAttributes($folder, $version);
print "</ul></td>\n";
// print "<td>".htmlspecialchars($version->getComment())."</td>";
print "<td>";
if ($file_exists){
print "<ul class=\"actions unstyled\">";
print "<li><a href=\"../op/op.Download.php?documentid=".$version->getDocument()->getId()."&version=".$version->getVersion()."\"><i class=\"fa fa-download\"></i>".getMLText("download")."</a>";
if ($viewonlinefiletypes && (in_array(strtolower($version->getFileType()), $viewonlinefiletypes) || in_array(strtolower($version->getMimeType()), $viewonlinefiletypes)))
print "<li><a target=\"_blank\" href=\"../op/op.ViewOnline.php?documentid=".$version->getDocument()->getId()."&version=".$version->getVersion()."\"><i class=\"fa fa-star\"></i>" . getMLText("view_online") . "</a>";
$items = $this->callHook('extraVersionViews', $version);
if($items) {
foreach($items as $item) {
if(is_string($item))
echo "<li>".$item."</li>";
elseif(is_array($item))
echo "<li><a href=\"".$item['link']."\">".(!empty($item['icon']) ? "<i class=\"fa fa-".$item['icon']."\"></i>" : "").getMLText($item['label'])."</a></li>";
}
}
print "</ul>";
}
print "<ul class=\"actions unstyled\">";
/* Only admin has the right to remove version in any case or a regular
* user if enableVersionDeletion is on
*/
if($accessop->mayRemoveVersion()) {
print "<li><a href=\"out.RemoveVersion.php?documentid=".$version->getDocument()->getId()."&version=".$version->getVersion()."\"><i class=\"fa fa-remove\"></i>".getMLText("rm_version")."</a></li>";
}
if($accessop->mayEditComment()) {
print "<li><a href=\"out.EditComment.php?documentid=".$version->getDocument()->getId()."&version=".$version->getVersion()."\"><i class=\"fa fa-comment\"></i>".getMLText("edit_comment")."</a></li>";
}
if($accessop->mayEditAttributes()) {
print "<li><a href=\"out.EditAttributes.php?documentid=".$version->getDocument()->getId()."&version=".$version->getVersion()."\"><i class=\"fa fa-edit\"></i>".getMLText("edit_attributes")."</a></li>";
}
print "<li><a href='../out/out.DocumentVersionDetail.php?documentid=".$version->getDocument()->getId()."&version=".$version->getVersion()."'><i class=\"fa fa-info-circle\"></i>".getMLText("details")."</a></li>";
$items = $this->callHook('extraVersionActions', $version);
if($items) {
foreach($items as $item) {
if(is_string($item))
echo "<li>".$item."</li>";
elseif(is_array($item))
echo "<li><a href=\"".$item['link']."\">".(!empty($item['icon']) ? "<i class=\"fa fa-".$item['icon']."\"></i>" : "").getMLText($item['label'])."</a></li>";
}
}
print "</ul>";
print "</td>\n</tr>\n";
$this->contentContainerStart();
$this->showVersionDetails($version, $previewer, false);
$this->contentContainerEnd();
}
print "</tbody>\n</table>\n";
$this->contentContainerEnd();
?>
</div>
<?php