* @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 ViewFolder view * * @category DMS * @package SeedDMS * @author Markus Westphal, Malcolm Cowe, Uwe Steinmann * @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_ViewFolder extends SeedDMS_Bootstrap_Style { function getAccessModeText($defMode) { /* {{{ */ switch($defMode) { case M_NONE: return getMLText("access_mode_none"); break; case M_READ: return getMLText("access_mode_read"); break; case M_READWRITE: return getMLText("access_mode_readwrite"); break; case M_ALL: return getMLText("access_mode_all"); break; } } /* }}} */ function printAccessList($obj) { /* {{{ */ $accessList = $obj->getAccessList(); if (count($accessList["users"]) == 0 && count($accessList["groups"]) == 0) return; for ($i = 0; $i < count($accessList["groups"]); $i++) { $group = $accessList["groups"][$i]->getGroup(); $accesstext = $this->getAccessModeText($accessList["groups"][$i]->getMode()); print $accesstext.": ".htmlspecialchars($group->getName()); if ($i+1 < count($accessList["groups"]) || count($accessList["users"]) > 0) print "
"; } for ($i = 0; $i < count($accessList["users"]); $i++) { $user = $accessList["users"][$i]->getUser(); $accesstext = $this->getAccessModeText($accessList["users"][$i]->getMode()); print $accesstext.": ".htmlspecialchars($user->getFullName()); if ($i+1 < count($accessList["users"])) print "
"; } } /* }}} */ function show() { /* {{{ */ $dms = $this->params['dms']; $user = $this->params['user']; $folder = $this->params['folder']; $orderby = $this->params['orderby']; $enableFolderTree = $this->params['enableFolderTree']; $enableClipboard = $this->params['enableClipboard']; $expandFolderTree = $this->params['expandFolderTree']; $showtree = $this->params['showtree']; $cachedir = $this->params['cachedir']; $workflowmode = $this->params['workflowmode']; $enableRecursiveCount = $this->params['enableRecursiveCount']; $maxRecursiveCount = $this->params['maxRecursiveCount']; $folderid = $folder->getId(); $this->htmlStartPage(getMLText("folder_title", array("foldername" => htmlspecialchars($folder->getName())))); $this->globalNavigation($folder); $this->contentStart(); $this->pageNavigation($this->getFolderPathHTML($folder), "view_folder", $folder); echo "
\n"; // dynamic columns - left column removed if no content and right column then fills span12. if (!($enableFolderTree || $enableClipboard)) { $LeftColumnSpan = 0; $RightColumnSpan = 12; } else { $LeftColumnSpan = 4; $RightColumnSpan = 8; } if ($LeftColumnSpan > 0) { echo "
\n"; if ($enableFolderTree) { if ($showtree==1){ $this->contentHeading("", true); $this->contentContainerStart(); ?> printNewTreeNavigation($folderid, M_READ, 0, '', $expandFolderTree == 2); $this->contentContainerEnd(); } else { $this->contentHeading("", true); } if ($enableClipboard) $this->printClipboard($this->params['session']->getClipboard()); echo "
\n"; } } echo "
\n"; $this->contentHeading(getMLText("folder_infos")); $owner = $folder->getOwner(); $this->contentContainerStart(); echo "\n"; if($user->isAdmin()) { echo ""; echo "\n"; echo "\n"; echo ""; } echo ""; echo "\n"; echo "\n"; echo ""; if($folder->getComment()) { echo ""; echo "\n"; echo "\n"; echo ""; } if($user->isAdmin()) { if($folder->inheritsAccess()) { echo ""; echo "\n"; echo ""; } else { echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; } } $attributes = $folder->getAttributes(); if($attributes) { foreach($attributes as $attribute) { $attrdef = $attribute->getAttributeDefinition(); ?> \n"; $this->contentContainerEnd(); $this->contentHeading(getMLText("folder_contents")); $subFolders = $folder->getSubFolders($orderby); $subFolders = SeedDMS_Core_DMS::filterAccess($subFolders, $user, M_READ); $documents = $folder->getDocuments($orderby); $documents = SeedDMS_Core_DMS::filterAccess($documents, $user, M_READ); if ((count($subFolders) > 0)||(count($documents) > 0)){ print "
".getMLText("id").":".htmlspecialchars($folder->getID())."
".getMLText("owner").":getEmail())."\">".htmlspecialchars($owner->getFullName())."
".getMLText("comment").":".htmlspecialchars($folder->getComment())."
".getMLText("access_mode").":"; echo getMLText("inherited"); echo "
".getMLText('default_access').":".$this->getAccessModeText($folder->getDefaultAccess())."
".getMLText('access_mode').":"; $this->printAccessList($folder); echo "
getName()); ?>: getValue()); ?>
"; print "\n\n"; print "\n"; print "\n"; // print "\n"; print "\n"; // print "\n"; print "\n"; print "\n\n\n"; } else printMLText("empty_folder_list"); foreach($subFolders as $subFolder) { $owner = $subFolder->getOwner(); $comment = $subFolder->getComment(); if (strlen($comment) > 150) $comment = substr($comment, 0, 147) . "..."; $subsub = $subFolder->getSubFolders(); $subsub = SeedDMS_Core_DMS::filterAccess($subsub, $user, M_READ); $subdoc = $subFolder->getDocuments(); $subdoc = SeedDMS_Core_DMS::filterAccess($subdoc, $user, M_READ); print "getID()."\" class=\"folder\" ondragover=\"allowDrop(event)\" ondrop=\"onDrop(event)\">"; // print ""; print "\n"; print "\n"; // print ""; print ""; // print ""; print ""; print "\n"; } $previewer = new SeedDMS_Preview_Previewer($cachedir, 40); foreach($documents as $document) { $owner = $document->getOwner(); $comment = $document->getComment(); if (strlen($comment) > 150) $comment = substr($comment, 0, 147) . "..."; $docID = $document->getID(); if($latestContent = $document->getLatestContent()) { $previewer->createPreview($latestContent); $version = $latestContent->getVersion(); $status = $latestContent->getStatus(); $needwkflaction = false; if($workflowmode == 'advanced') { $workflow = $latestContent->getWorkflow(); if($workflow) { $needwkflaction = $latestContent->needsWorkflowAction($user); } } /* Retrieve attacheѕ files */ $files = $document->getDocumentFiles(); /* Retrieve linked documents */ $links = $document->getDocumentLinks(); $links = SeedDMS_Core_DMS::filterDocumentLinks($user, $links); print ""; if (file_exists($dms->contentDir . $latestContent->getPath())) { print ""; } else print ""; print "\n"; // print ""; print ""; // print ""; print ""; print "\n"; } } if ((count($subFolders) > 0)||(count($documents) > 0)) echo "\n
".getMLText("name")."".getMLText("owner")."".getMLText("status")."".getMLText("version")."".getMLText("action")."
getID()."\" draggable=\"true\" ondragstart=\"onDragStartFolder(event);\" href=\"out.ViewFolder.php?folderid=".$subFolder->getID()."&showtree=".$showtree."\">imgpath."folder.png\" width=\"24\" height=\"24\" border=0>getID()."&showtree=".$showtree."\">" . htmlspecialchars($subFolder->getName()) . ""; print "
".getMLText('owner').": ".htmlspecialchars($owner->getFullName()).", ".getMLText('creation_date').": ".date('Y-m-d', $subFolder->getDate()).""; if($comment) { print "
".htmlspecialchars($comment).""; } print "
".htmlspecialchars($owner->getFullName()).""; if($enableRecursiveCount) { if($user->isAdmin()) { /* No need to check for access rights in countChildren() for * admin. So pass 0 as the limit. */ $cc = $subFolder->countChildren($user, 0); print $cc['folder_count']." ".getMLText("folders")."
".$cc['document_count']." ".getMLText("documents"); } else { $cc = $subFolder->countChildren($user, $maxRecursiveCount); if($maxRecursiveCount > 5000) $rr = 100.0; else $rr = 10.0; print (!$cc['folder_precise'] ? '~'.(round($cc['folder_count']/$rr)*$rr) : $cc['folder_count'])." ".getMLText("folders")."
".(!$cc['document_precise'] ? '~'.(round($cc['document_count']/$rr)*$rr) : $cc['document_count'])." ".getMLText("documents"); } } else { print count($subsub)." ".getMLText("folders")."
".count($subdoc)." ".getMLText("documents"); } print "
"; print "
"; if($subFolder->getAccessMode($user) >= M_ALL) { ?> getAccessMode($user) >= M_READWRITE) { ?> getID(); ?>" msg="" _href="../op/op.AddToClipboard.php?folderid=getID(); ?>&type=folder&id=getID(); ?>" title=""> "; print "
"; if($previewer->hasPreview($latestContent)) { print "getID()."&version=".$latestContent->getVersion()."&width=40\" title=\"".htmlspecialchars($latestContent->getMimeType())."\">"; } else { print "getMimeIcon($latestContent->getFileType())."\" title=\"".htmlspecialchars($latestContent->getMimeType())."\">"; } print "getMimeIcon($latestContent->getFileType())."\" title=\"".htmlspecialchars($latestContent->getMimeType())."\">" . htmlspecialchars($document->getName()) . ""; print "
".getMLText('owner').": ".htmlspecialchars($owner->getFullName()).", ".getMLText('creation_date').": ".date('Y-m-d', $document->getDate()).", ".getMLText('version')." ".$version." - ".date('Y-m-d', $latestContent->getDate()).""; if($comment) { print "
".htmlspecialchars($comment).""; } print "
".htmlspecialchars($owner->getFullName()).""; $attentionstr = ''; if ( $document->isLocked() ) { $attentionstr .= "getImgPath("lock.png")."\" title=\"". getMLText("locked_by").": ".htmlspecialchars($document->getLockingUser()->getFullName())."\"> "; } if ( $needwkflaction ) { $attentionstr .= "getImgPath("attention.gif")."\" title=\"". getMLText("workflow").": "."\"> "; } if($attentionstr) print $attentionstr."
"; print ""; if(count($files)) print count($files)." ".getMLText("linked_files")."
"; if(count($links)) print count($links)." ".getMLText("linked_documents")."
"; print getOverallStatusText($status["status"])."
".$version.""; print "
"; if($document->getAccessMode($user) >= M_ALL) { ?> getAccessMode($user) >= M_READWRITE) { ?> " msg="" _href="../op/op.AddToClipboard.php?folderid=getID(); ?>&type=document&id=" title=""> "; print "
\n"; echo "
\n"; $this->contentEnd(); $this->htmlEndPage(); } /* }}} */ } ?>