From d1407750a53ab8b85a3cef1bdc111748c3729687 Mon Sep 17 00:00:00 2001 From: Neil Blakey-Milner Date: Thu, 29 Sep 2005 11:27:01 +0000 Subject: [PATCH] Simplified folder -> document type setting system (including the ability to say that the folder doesn't have any restrictions) --- presentation/lookAndFeel/knowledgeTree/foldermanagement/folderDocumentTypes.php | 72 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ templates/ktcore/documenttypes/folderassign.smarty | 20 ++++++++++++++++++++ 2 files changed, 92 insertions(+), 0 deletions(-) create mode 100644 presentation/lookAndFeel/knowledgeTree/foldermanagement/folderDocumentTypes.php create mode 100644 templates/ktcore/documenttypes/folderassign.smarty diff --git a/presentation/lookAndFeel/knowledgeTree/foldermanagement/folderDocumentTypes.php b/presentation/lookAndFeel/knowledgeTree/foldermanagement/folderDocumentTypes.php new file mode 100644 index 0000000..65acf25 --- /dev/null +++ b/presentation/lookAndFeel/knowledgeTree/foldermanagement/folderDocumentTypes.php @@ -0,0 +1,72 @@ +permissionDenied(); + exit(0); + } + $oPermission = KTPermission::getByName('ktcore.permissions.write'); + $this->oFolder =& Folder::get($_REQUEST['fFolderId']); + $oUser =& User::get($_SESSION['userID']); + if (!KTPermissionUtil::userHasPermissionOnItem($oUser, $oPermission, $this->oFolder)) { + $this->permissionDenied(); + exit(0); + } + return true; + } + + function do_main() { + $oTemplating =& KTTemplating::getSingleton(); + $oTemplate = $oTemplating->loadTemplate('ktcore/documenttypes/folderassign'); + + $sTable = KTUtil::getTableName('folder_doctypes'); + $aQuery = array( + "SELECT document_type_id FROM $sTable WHERE folder_id = ?", + array($this->oFolder->getId()), + ); + $aSelectedIds = DBUtil::getResultArrayKey($aQuery, 'document_type_id'); + + $oTemplate->setData(array( + 'oFolder' => $this->oFolder, + 'document_types' => DocumentType::getList(), + 'selected_types' => $aSelectedIds, + )); + return $oTemplate; + } + + function do_assign() { + if (empty($_REQUEST['restricted'])) { + $this->oFolder->setRestrictDocumentTypes(false); + } else { + $this->oFolder->setRestrictDocumentTypes(true); + } + + $sTable = KTUtil::getTableName('folder_doctypes'); + $res = DBUtil::runQuery(array( + "DELETE FROM $sTable WHERE folder_id = ?", + array($this->oFolder->getId()), + )); + foreach ($_REQUEST['document_types'] as $iDocumentTypeId) { + $oLink = new FolderDocTypeLink($this->oFolder->getId(), $iDocumentTypeId); + $oLink->create(); + } + $this->oFolder->update(); + $this->errorRedirectToMain('Changes made', 'fFolderId=' . + $this->oFolder->getId()); + exit(0); + } +} + +$d =& new KTFolderDocumentTypeDispatcher; +$d->dispatch(); + +?> diff --git a/templates/ktcore/documenttypes/folderassign.smarty b/templates/ktcore/documenttypes/folderassign.smarty new file mode 100644 index 0000000..0e99831 --- /dev/null +++ b/templates/ktcore/documenttypes/folderassign.smarty @@ -0,0 +1,20 @@ +

Document types

+ +

Select document types allowed in folder:

+ +
+ + + + + + +
Folder{$oFolder->getName()}
Restrict document types{boolean_checkbox name="restricted" bool=$oFolder->getRestrictDocumentTypes() }
Document Types +{entity_select entities=$document_types selected=$selected_types name="document_types[]" multiple="yes"} +
+ + +
+ +{assign var="iFolderId" value=$oFolder->getId()} +Back to folder -- libgit2 0.21.4