diff --git a/lib/dashboard/Dashboard.inc b/lib/dashboard/Dashboard.inc index d022bbd..01fa69b 100644 --- a/lib/dashboard/Dashboard.inc +++ b/lib/dashboard/Dashboard.inc @@ -130,4 +130,44 @@ class Dashboard { } return $aDocumentList; } + + + /** + * Retrieves Public Folders + */ + function getPublicFolders() { + global $default; + $sQuery = array("SELECT id FROM $default->folders_table WHERE is_public = 1"); + $aFolderList = array(); + $sql = $default->db; + $sql->query($sQuery); + while ($sql->next_record()) { + $aFolderList[] = & Folder::get($sql->f("id")); + } + return $aFolderList; + } + + /** + * Retrieves Browseable Folders for this user + */ + function getBrowseableFolders() { + global $default; + $sQuery = array("SELECT DISTINCT F.id as folderid, F.parent_id as parentfolderid " . + "FROM $default->folders_table F, $default->groups_folders_table GFL, $default->users_groups_table UGL " . + "WHERE UGL.user_id=? AND UGL.group_id=GFL.group_id AND GFL.folder_id = F.id AND " . + "F.id=F.permission_folder_id AND F.id \!= 1 ORDER BY F.id", $this->iUserID); + $aBrowseableList = array(); + $aShowedFolderList = array(); + $sql = $default->db; + $sql->query($sQuery); + while ($sql->next_record()) { + + if (!$aShowedFolderList[$sql->f("parentfolderid")]) { + $aBrowseableList[] = & Folder::get($sql->f("folderid")); + } + $aShowedFolderList[$sql->f("folderid")] = 1; // check the showed folder + } + return $aBrowseableList; + } + } diff --git a/presentation/lookAndFeel/knowledgeTree/dashboardBL.php b/presentation/lookAndFeel/knowledgeTree/dashboardBL.php index 815ee64..bf67c19 100644 --- a/presentation/lookAndFeel/knowledgeTree/dashboardBL.php +++ b/presentation/lookAndFeel/knowledgeTree/dashboardBL.php @@ -2,6 +2,7 @@ // main library routines and defaults require_once("../../../config/dmsDefaults.php"); +require_once("$default->fileSystemRoot/lib/unitmanagement/Unit.inc"); require_once("$default->fileSystemRoot/lib/dashboard/Dashboard.inc"); require_once("$default->fileSystemRoot/lib/dashboard/DashboardNews.inc"); require_once("$default->fileSystemRoot/lib/visualpatterns/PatternCustom.inc"); @@ -64,8 +65,14 @@ if (checkSession()) { // retrieve archive restoration requests $aRestorationRequests = $oDashboard->getArchiveRestorationRequestDocuments(); - // generate the html - $oContent->setHtml(renderPage($aPendingDocumentList, $aCheckedOutDocumentList, $aSubscriptionAlertList, $aQuickLinks, $aPendingWebDocuments, $aDependantDocuments, $aRestorationRequests)); + // retrieve public folders + $aPublicFolders = $oDashboard->getPublicFolders(); + + // retrieve browseable folders + $aBrowseableFolders = $oDashboard->getBrowseableFolders(); + + // generate the html + $oContent->setHtml(renderPage($aPendingDocumentList, $aCheckedOutDocumentList, $aSubscriptionAlertList, $aQuickLinks, $aPendingWebDocuments, $aDependantDocuments, $aRestorationRequests, $aBrowseableFolders, $aPublicFolders)); // display $main->setCentralPayload($oContent); diff --git a/presentation/lookAndFeel/knowledgeTree/dashboardUI.inc b/presentation/lookAndFeel/knowledgeTree/dashboardUI.inc index c4fff1b..fb2d487 100644 --- a/presentation/lookAndFeel/knowledgeTree/dashboardUI.inc +++ b/presentation/lookAndFeel/knowledgeTree/dashboardUI.inc @@ -263,6 +263,66 @@ function renderDashboardNews() { return $sToRender; } + +function renderPublicFolders($aPublicFolders) { + global $default; + if (count($aPublicFolders) > 0) { + $sBgColor = "#9D9D7F"; + } else { + $sBgColor = "#CECEBF"; + } + $sToRender = "\t\t\t\n"; + $sToRender .= "\t\t\t\t graphicsUrl/widgets/dfolder.gif> " . _("Public Folders") . "\n"; + $sToRender .= "\t\t\t\n"; + for ($i = 0; $i < count($aPublicFolders); $i++) { + $sToRender .= "\t\t\t\n"; + + $sToRender .= "\t\t\t\t"; + $sToRender .= ""; + + $oUnit = Unit::get($aPublicFolders[$i]->getUnitID()); + if ($oUnit) { + $sToRender .= $aPublicFolders[$i]->getName() . " (Unit: "; + $sToRender .= $oUnit->getName() . ")\n"; + } else { + $sToRender .= $aPublicFolders[$i]->getName() . " (No Unit)\n"; + } + + $sToRender .= "\t\t\t\n"; + } + return $sToRender; +} + +function renderBrowseableFolders($aBrowseableFolders) { + global $default; + if (count($aBrowseableFolders) > 0) { + $sBgColor = "#9D9D7F"; + } else { + $sBgColor = "#CECEBF"; + } + $sToRender = "\t\t\t\n"; + $sToRender .= "\t\t\t\t graphicsUrl/widgets/dfolder.gif> " . _("Browseable Folders") . "\n"; + $sToRender .= "\t\t\t\n"; + for ($i = 0; $i < count($aBrowseableFolders); $i++) { + $sToRender .= "\t\t\t\n"; + + $sToRender .= "\t\t\t\t"; + $sToRender .= ""; + + $oUnit = Unit::get($aBrowseableFolders[$i]->getUnitID()); + if ($oUnit) { + $sToRender .= $aBrowseableFolders[$i]->getName() . " (Unit: "; + $sToRender .= $oUnit->getName() . ")\n"; + } else { + $sToRender .= $aBrowseableFolders[$i]->getName() . " (No Unit)\n"; + } + + $sToRender .= "\t\t\t\n"; + } + return $sToRender; +} + + /** * Renders the dashboard * @@ -270,7 +330,7 @@ function renderDashboardNews() { * @param array checked out documents for this user * @param array subscription alerts for this user */ -function renderPage($aPendingDocumentList, $aCheckedOutDocumentList, $aSubscriptionAlertList, $aQuickLinks, $aWebDocuments, $aDependantDocuments, $aRestorationRequests) { +function renderPage($aPendingDocumentList, $aCheckedOutDocumentList, $aSubscriptionAlertList, $aQuickLinks, $aWebDocuments, $aDependantDocuments, $aRestorationRequests, $aBrowseableFolders, $aPublicFolders) { global $default; $sToRender = "\n"; @@ -300,6 +360,9 @@ function renderPage($aPendingDocumentList, $aCheckedOutDocumentList, $aSubscript $sToRender .= renderCheckedOutDocuments($aCheckedOutDocumentList) . "\n"; $sToRender .= renderSubscriptionAlerts($aSubscriptionAlertList) . "\n"; $sToRender .= renderDependantDocuments($aDependantDocuments) . "\n"; + $sToRender .= "\n"; + $sToRender .= renderBrowseableFolders($aBrowseableFolders) . "\n"; + $sToRender .= renderPublicFolders($aPublicFolders) . "\n"; $sToRender .= "\t\t\t

\n"; $sToRender .= "\t\t\n"; @@ -307,6 +370,7 @@ function renderPage($aPendingDocumentList, $aCheckedOutDocumentList, $aSubscript $sToRender .= "\t\t\n"; $sToRender .= "\t\t\t\n"; $sToRender .= renderQuickLinks($aQuickLinks); + $sToRender .= "\n"; $sToRender .= "\t\t\t
\n";