mirror of
https://git.code.sf.net/p/seeddms/code
synced 2024-11-26 15:32:13 +00:00
223 lines
6.9 KiB
PHP
223 lines
6.9 KiB
PHP
<?php
|
|
/**
|
|
* Implementation of Statistic view
|
|
*
|
|
* @category DMS
|
|
* @package SeedDMS
|
|
* @license GPL 2
|
|
* @version @version@
|
|
* @author Uwe Steinmann <uwe@steinmann.cx>
|
|
* @copyright Copyright (C) 2002-2005 Markus Westphal,
|
|
* 2006-2008 Malcolm Cowe, 2010 Matteo Lucarelli,
|
|
* 2010-2012 Uwe Steinmann
|
|
* @version Release: @package_version@
|
|
*/
|
|
|
|
/**
|
|
* Include parent class
|
|
*/
|
|
//require_once("class.Bootstrap.php");
|
|
|
|
/**
|
|
* Class which outputs the html page for Statistic view
|
|
*
|
|
* @category DMS
|
|
* @package SeedDMS
|
|
* @author Markus Westphal, Malcolm Cowe, Uwe Steinmann <uwe@steinmann.cx>
|
|
* @copyright Copyright (C) 2002-2005 Markus Westphal,
|
|
* 2006-2008 Malcolm Cowe, 2010 Matteo Lucarelli,
|
|
* 2010-2012 Uwe Steinmann
|
|
* @version Release: @package_version@
|
|
*/
|
|
class SeedDMS_View_Statistic extends SeedDMS_Theme_Style {
|
|
var $dms;
|
|
var $folder_count;
|
|
var $document_count;
|
|
var $file_count;
|
|
var $storage_size;
|
|
|
|
function getAccessColor($mode) { /* {{{ */
|
|
if ($mode == M_NONE)
|
|
return "gray";
|
|
else if ($mode == M_READ)
|
|
return "green";
|
|
else if ($mode == M_READWRITE)
|
|
return "blue";
|
|
else // if ($mode == M_ALL)
|
|
return "red";
|
|
} /* }}} */
|
|
|
|
function printFolder($folder) { /* {{{ */
|
|
$this->folder_count++;
|
|
$folder_size=0;
|
|
$doc_count=0;
|
|
|
|
$color = $folder->inheritsAccess() ? "black" : $this->getAccessColor($folder->getDefaultAccess());
|
|
|
|
print "<li class=\"folderClass\">";
|
|
print "<a style=\"color: $color\" href=\"out.ViewFolder.php?folderid=".$folder->getID()."\">".htmlspecialchars($folder->getName()) ."</a>";
|
|
|
|
$owner = $folder->getOwner();
|
|
$color = $this->getAccessColor(M_ALL);
|
|
print " [<span style=\"color: $color\">".htmlspecialchars($owner->getFullName())."</span>] ";
|
|
|
|
if (! $folder->inheritsAccess())
|
|
$this->printAccessList($folder);
|
|
|
|
$subFolders = $folder->getSubFolders();
|
|
$documents = $folder->getDocuments();
|
|
|
|
print "<ul>";
|
|
|
|
foreach ($subFolders as $sub) $folder_size += $this->printFolder($sub);
|
|
foreach ($documents as $document){
|
|
$doc_count++;
|
|
$folder_size += $this->printDocument($document);
|
|
}
|
|
|
|
print "</ul>";
|
|
|
|
print "<small>".SeedDMS_Core_File::format_filesize($folder_size).", ".$doc_count." ".getMLText("documents")."</small>\n";
|
|
|
|
print "</li>";
|
|
|
|
return $folder_size;
|
|
} /* }}} */
|
|
|
|
function printDocument($document) { /* {{{ */
|
|
$this->document_count++;
|
|
|
|
$local_file_count=0;
|
|
$folder_size=0;
|
|
|
|
if (file_exists($this->dms->contentDir.$document->getDir())) {
|
|
$handle = opendir($this->dms->contentDir.$document->getDir());
|
|
while ($entry = readdir($handle) ) {
|
|
if (is_dir($this->dms->contentDir.$document->getDir().$entry)) continue;
|
|
else{
|
|
$local_file_count++;
|
|
$folder_size += filesize($this->dms->contentDir.$document->getDir().$entry);
|
|
}
|
|
|
|
}
|
|
closedir($handle);
|
|
}
|
|
$this->storage_size += $folder_size;
|
|
|
|
$color = $document->inheritsAccess() ? "black" : $this->getAccessColor($document->getDefaultAccess());
|
|
print "<li class=\"documentClass\">";
|
|
print "<a style=\"color: $color\" href=\"out.ViewDocument.php?documentid=".$document->getID()."\">".htmlspecialchars($document->getName())."</a>";
|
|
|
|
$owner = $document->getOwner();
|
|
$color = $this->getAccessColor(M_ALL);
|
|
print " [<span style=\"color: $color\">".htmlspecialchars($owner->getFullName())."</span>] ";
|
|
|
|
if (! $document->inheritsAccess()) $this->printAccessList($document);
|
|
|
|
print "<small>".SeedDMS_Core_File::format_filesize($folder_size).", ".$local_file_count." ".getMLText("files")."</small>\n";
|
|
|
|
print "</li>";
|
|
|
|
$this->file_count += $local_file_count;
|
|
return $folder_size;
|
|
} /* }}} */
|
|
|
|
function printAccessList($obj) { /* {{{ */
|
|
$accessList = $obj->getAccessList();
|
|
if (count($accessList["users"]) == 0 && count($accessList["groups"]) == 0)
|
|
return;
|
|
|
|
print " <span>(";
|
|
|
|
for ($i = 0; $i < count($accessList["groups"]); $i++)
|
|
{
|
|
$group = $accessList["groups"][$i]->getGroup();
|
|
$color = $this->getAccessColor($accessList["groups"][$i]->getMode());
|
|
print "<span style=\"color: $color\">".htmlspecialchars($group->getName())."</span>";
|
|
if ($i+1 < count($accessList["groups"]) || count($accessList["users"]) > 0)
|
|
print ", ";
|
|
}
|
|
for ($i = 0; $i < count($accessList["users"]); $i++)
|
|
{
|
|
$user = $accessList["users"][$i]->getUser();
|
|
$color = $this->getAccessColor($accessList["users"][$i]->getMode());
|
|
print "<span style=\"color: $color\">".htmlspecialchars($user->getFullName())."</span>";
|
|
if ($i+1 < count($accessList["users"]))
|
|
print ", ";
|
|
}
|
|
print ")</span>";
|
|
} /* }}} */
|
|
|
|
function show() { /* {{{ */
|
|
$this->dms = $this->params['dms'];
|
|
$user = $this->params['user'];
|
|
$rootfolder = $this->params['rootfolder'];
|
|
|
|
$this->htmlStartPage(getMLText("folders_and_documents_statistic"));
|
|
$this->globalNavigation();
|
|
$this->contentStart();
|
|
$this->pageNavigation(getMLText("admin_tools"), "admin_tools");
|
|
|
|
$this->folder_count=0;
|
|
$this->document_count=0;
|
|
$this->file_count=0;
|
|
$this->storage_size=0;
|
|
?>
|
|
<style type="text/css">
|
|
li.documentClass, li.folderClass {
|
|
margin: 0;
|
|
padding: 4px 0 4px 30px;
|
|
list-style: none;
|
|
background-image: url("<?php $this->printImgPath("text-x-preview.svg");?>");
|
|
background-repeat: no-repeat;
|
|
background-position: left top;
|
|
background-size: 24px;
|
|
}
|
|
li.folderClass {
|
|
background-image: url("<?php $this->printImgPath("folder.svg");?>");
|
|
}
|
|
</style>
|
|
|
|
<?php
|
|
$this->contentHeading(getMLText("folders_and_documents_statistic"));
|
|
$this->rowStart();
|
|
$this->columnStart(8);
|
|
$this->contentContainerStart();
|
|
|
|
print "<ul>\n";
|
|
$this->printFolder($rootfolder);
|
|
print "</ul>\n";
|
|
|
|
$this->contentContainerEnd();
|
|
$this->columnEnd();
|
|
$this->columnStart(4);
|
|
$this->contentContainerStart();
|
|
print "<legend>".getMLText("legend")."</legend>\n";
|
|
print "<ul class=\"unstyled\">\n";
|
|
print "<li><span style=\"color:black\">".getMLText("access_inheritance")." </span></li>";
|
|
print "<li><span style=\"color:".$this->getAccessColor(M_ALL)."\">".getMLText("access_mode_all")." </span></li>";
|
|
print "<li><span style=\"color:".$this->getAccessColor(M_READWRITE)."\">".getMLText("access_mode_readwrite")." </span></li>";
|
|
print "<li><span style=\"color:".$this->getAccessColor(M_READ)."\">".getMLText("access_mode_read")." </span></li>";
|
|
print "<li><span style=\"color:".$this->getAccessColor(M_NONE)."\">".getMLText("access_mode_none")." </span></li>";
|
|
print "</ul>\n";
|
|
|
|
print "<legend>".getMLText("statistic")."</legend>\n";
|
|
print "<ul class=\"unstyled\">\n";
|
|
print "<li>".getMLText("folders").": ".$this->folder_count."</li>\n";
|
|
print "<li>".getMLText("documents").": ".$this->document_count."</li>\n";
|
|
print "<li>".getMLText("files").": ".$this->file_count."</li>\n";
|
|
print "<li>".getMLText("storage_size").": ".SeedDMS_Core_File::format_filesize($this->storage_size)."</li>\n";
|
|
|
|
print "</ul>\n";
|
|
|
|
$this->contentContainerEnd();
|
|
$this->columnEnd();
|
|
$this->rowEnd();
|
|
|
|
$this->contentContainerEnd();
|
|
$this->contentEnd();
|
|
$this->htmlEndPage();
|
|
} /* }}} */
|
|
}
|
|
?>
|