Commit 0d379e20e3f116feb412bc4387be384b5913ceb4

Authored by Michael Joseph
1 parent 08387927

refactored use of patterns and webpage template

created separate modify folder data page (fixes ##2653)


git-svn-id: https://kt-dms.svn.sourceforge.net/svnroot/kt-dms/trunk@2274 c91229c3-7414-0410-bfa2-8a42b809f60b
presentation/lookAndFeel/knowledgeTree/foldermanagement/editBL.php
... ... @@ -19,130 +19,62 @@ require_once("../../../../config/dmsDefaults.php");
19 19 if (checkSession()) {
20 20 require_once("$default->fileSystemRoot/lib/visualpatterns/PatternListBox.inc");
21 21 require_once("$default->fileSystemRoot/lib/visualpatterns/PatternEditableListFromQuery.inc");
  22 + require_once("$default->fileSystemRoot/lib/visualpatterns/PatternListFromQuery.inc");
22 23 require_once("editUI.inc");
23 24 require_once("$default->fileSystemRoot/lib/security/permission.inc");
24   - require_once("$default->fileSystemRoot/presentation/webpageTemplate.inc");
25 25 require_once("$default->fileSystemRoot/lib/visualpatterns/PatternCustom.inc");
26 26 require_once("$default->fileSystemRoot/lib/foldermanagement/Folder.inc");
27 27 require_once("$default->fileSystemRoot/presentation/lookAndFeel/knowledgeTree/foldermanagement/folderUI.inc");
28 28 require_once("$default->fileSystemRoot/presentation/Html.inc");
  29 + require_once("$default->fileSystemRoot/presentation/webpageTemplate.inc");
29 30  
  31 + $oPatternCustom = & new PatternCustom();
30 32 if (isset($fFolderID)) {
31 33 $oFolder = Folder::get($fFolderID);
32 34 if ($oFolder) {
33 35 //if the user can edit the folder
34 36 if (Permission::userHasFolderWritePermission($fFolderID)) {
35   - if (isset($fForUpdate)) {
36   - //user is updating folder data
37   - $oFolder = Folder::get($fFolderID);
38   - $oFolder->setDescription($fDescription);
39   - if (isset($fIsPublic)) {
40   - $oFolder->setIsPublic(true);
41   - } else {
42   - $oFolder->setIsPublic(false);
43   - }
44   - $bSuccessfulUpdate = false;
45   - if (isset($fFolderName) && strcmp($oFolder->getName(), $fFolderName) != 0) {
46   - //folder name has changed, update the full_path
47   - $sOldName = $oFolder->getName();
48   - $sOldPath = $default->documentRoot . "/" . $oFolder->getFullPath() . "/" . $oFolder->getName();
49   - $oFolder->setName($fFolderName);
50   - if ($oFolder->update(true)) {
51   - $bSuccessfulUpdate = true;
52   - if (!PhysicalFolderManagement::renameFolder($sOldPath, $default->documentRoot . "/" . $oFolder->getFullPath() . "/" . $oFolder->getName())) {
53   - //reverse the database changes if the physical rename failed
54   - $oFolder->setName($sOldName);
55   - $oFolder->update(true);
56   - $bSuccessfulUpdate = false;
57   - }
58   - }
59   - } else {
60   - $bSuccessfulUpdate = $oFolder->update();
61   - }
62   - if ($bSuccessfulUpdate) {
63   - $oPatternCustom = & new PatternCustom();
64   - $oPatternCustom->setHtml(getStatusPage($fFolderID, "Folder successfully updated"));
65   - $main->setDHTMLScrolling(false);
66   - $main->setOnLoadJavaScript("switchDiv('folderData', 'folder')");
67   -
68   - $main->setCentralPayload($oPatternCustom);
69   - $main->setHasRequiredFields(true);
70   - $main->setFormAction("../store.php?fReturnURL=" . urlencode("$default->rootUrl/control.php?action=browse&fFolderID=$fFolderID"));
71   - $main->render();
72   - } else {
73   - $oPatternCustom = & new PatternCustom();
74   - $main->setDHTMLScrolling(false);
75   - $main->setOnLoadJavaScript("switchDiv('folderData', 'folder')");
76   -
77   - $oPatternCustom->setHtml(getStatusPage($fFolderID, "An error occurred while updating this folder"));
78   - $main->setCentralPayload($oPatternCustom);
79   - $main->setHasRequiredFields(true);
80   - $main->setFormAction("../store.php?fReturnURL=" . urlencode("$default->rootUrl/control.php?action=browse&fFolderID=$fFolderID"));
81   - $main->render();
82   - }
83   - } else if (isset($fCollaborationEdit)) {
  37 + if (isset($fCollaborationEdit)) {
84 38 //user attempted to edit the folder collaboration process but could not because there is
85 39 //a document currently in this process
86   - $oPatternCustom = & new PatternCustom();
87   - $main->setDHTMLScrolling(false);
88   - $main->setOnLoadJavaScript("switchDiv('folderRouting', 'folder')");
  40 + $oPatternCustom->setHtml(getStatusPage($fFolderID, "You cannot edit this folder collaboration process as a document is currently undergoing this collaboration process"));
89 41  
90   - $oPatternCustom->setHtml(getPage($fFolderID, "You cannot edit this folder collaboration process as a document is currently undergoing this collaboration process", true));
91   - $main->setCentralPayload($oPatternCustom);
92 42 $main->setHasRequiredFields(true);
93 43 $main->setFormAction("../store.php?fReturnURL=" . urlencode("$default->rootUrl/control.php?action=browse&fFolderID=$fFolderID"));
94   - $main->render();
95 44 } else if (isset($fCollaborationDelete)) {
96 45 //user attempted to delete the folder collaboration process but could not because there is
97 46 //a document currently in this process
98   - $oPatternCustom = & new PatternCustom();
99   - $main->setDHTMLScrolling(false);
100   - $main->setOnLoadJavaScript("switchDiv('folderRouting', 'folder')");
101   -
102   - $oPatternCustom->setHtml(getPage($fFolderID, "You cannot delete this folder collaboration process as a document is currently undergoing this collaboration process", true));
103   - $main->setCentralPayload($oPatternCustom);
  47 + $oPatternCustom->setHtml(getStatusPage($fFolderID, "You cannot delete this folder collaboration process as a document is currently undergoing this collaboration process"));
104 48 $main->setHasRequiredFields(true);
105 49 $main->setFormAction("../store.php?fReturnURL=" . urlencode("$default->rootUrl/control.php?action=browse&fFolderID=$fFolderID"));
106   - $main->render();
107 50 } else {
108   - $oPatternCustom = & new PatternCustom();
109 51 // does this folder have a document in it that has started collaboration?
110 52 $bCollaboration = Folder::hasDocumentInCollaboration($fFolderID);
111 53 $main->setDHTMLScrolling(false);
112 54 $main->setOnLoadJavaScript("switchDiv('" . (isset($fShowSection) ? $fShowSection : "folderData") . "', 'folder')");
113 55  
114 56 $oPatternCustom->setHtml(getPage($fFolderID, "", $bCollaboration));
115   - $main->setCentralPayload($oPatternCustom);
116 57 $main->setHasRequiredFields(true);
117 58 $main->setFormAction("../store.php?fReturnURL=" . urlencode("$default->rootUrl/control.php?action=browse&fFolderID=$fFolderID"));
118   - $main->render();
119 59 }
120 60 } else {
121 61 //user does not have write permission for this folder,
122   - require_once("$default->fileSystemRoot/presentation/webpageTemplate.inc");
123   - $oPatternCustom = & new PatternCustom();
124 62 $oPatternCustom->setHtml("<a href=\"javascript:history.go(-1)\"><img src=\"$default->graphicsUrl/widgets/back.gif\" border=\"0\" /></a>\n");
125   - $main->setCentralPayload($oPatternCustom);
126 63 $main->setErrorMessage("You do not have permission to edit this folder");
127   - $main->render();
128 64 }
129 65 } else {
130 66 // folder doesn't exist
131   - $oPatternCustom = & new PatternCustom();
132 67 $oPatternCustom->setHtml("<a href=\"javascript:history.go(-1)\"><img src=\"$default->graphicsUrl/widgets/back.gif\" border=\"0\" /></a>\n");
133   - $main->setCentralPayload($oPatternCustom);
134 68 $main->setErrorMessage("The folder you're trying to modify does not exist in the DMS");
135 69 $main->setFormAction("../store.php?fReturnURL=" . urlencode("$default->rootUrl/control.php?action=browse&fFolderID=$fFolderID"));
136   - $main->render();
137 70 }
138 71 } else {
139 72 //else display an error message
140   - $oPatternCustom = & new PatternCustom();
141 73 $oPatternCustom->setHtml("<a href=\"javascript:history.go(-1)\"><img src=\"$default->graphicsUrl/widgets/back.gif\" border=\"0\" /></a>\n");
142   - $main->setCentralPayload($oPatternCustom);
143 74 $main->setErrorMessage("No folder currently selected");
144 75 $main->setFormAction("../store.php?fReturnURL=" . urlencode("$default->rootUrl/control.php?action=browse&fFolderID=$fFolderID"));
145   - $main->render();
146 76 }
  77 + $main->setCentralPayload($oPatternCustom);
  78 + $main->render();
147 79 }
148 80 ?>
149 81 \ No newline at end of file
... ...
presentation/lookAndFeel/knowledgeTree/foldermanagement/editUI.inc
... ... @@ -17,7 +17,7 @@ function getFolderPath($iFolderID) {
17 17 global $default;
18 18 $sSectionName = $default->siteMap->getSectionName(substr($_SERVER["PHP_SELF"], strlen($default->rootUrl), strlen($_SERVER["PHP_SELF"])));
19 19 $sTDBGColour = $default->siteMap->getSectionColour($sSectionName, "td");
20   - return "<table border=\"0\" cellpadding=\"0\" width=\"610\"><tr><td bgcolor=\"$sTDBGColour\">" . displayFolderPathLink(Folder::getFolderPathAsArray($iFolderID), Folder::getFolderPathNamesAsArray($iFolderID), "$default->rootUrl/control.php?action=browse") . "</td></tr></table>\n";
  20 + return "<table border=\"0\" cellpadding=\"5\" width=\"610\"><tr><td bgcolor=\"$sTDBGColour\">" . displayFolderPathLink(Folder::getFolderPathAsArray($iFolderID), Folder::getFolderPathNamesAsArray($iFolderID), "$default->rootUrl/control.php?action=browse") . "</td></tr></table>\n";
21 21 }
22 22  
23 23 function getFolderData($iFolderID, $sDivName, $sStatusMessage = "") {
... ... @@ -28,43 +28,25 @@ function getFolderData($iFolderID, $sDivName, $sStatusMessage = &quot;&quot;) {
28 28 "FROM $default->owl_folders_table AS F " .
29 29 "WHERE F.id = $iFolderID";
30 30  
31   - $sql = $default->db;
32   - $sql->query($sQuery);
  31 +
  32 + $aColumns = array("name", "description", "is_public");
  33 + $aColumnHeaders = array("Name", "Description", "Public");
  34 + $aColumnTypes = array(1,1,2);
  35 +
  36 + $oPatternListFromQuery = & new PatternListFromQuery($sQuery, $aColumns, $aColumnHeaders, $aColumnTypes);
  37 + $oPatternListFromQuery->setTableHeading("Folder Data");
  38 + $oPatternListFromQuery->setTableWidth("610");
33 39  
34 40 $sToRender .= "<table>";
35   - $sToRender .= "<tr><td>";
36   - $sToRender .= "<table cellpadding=\"5\" border=\"0\" width=\"610\">\n";
37   - $sToRender .= "<caption><strong>Folder Data</strong></caption>";
38   - if ($sql->next_record()) {
39   - $sToRender .= "<tr>\n";
40   - $sToRender .= "<td bgcolor=\"" . $sTDBGColour . "\">Name</td>\n";
41   - if (Folder::folderIsUnitRootFolder($iFolderID)) {
42   - $sToRender .= "<td>" . $sql->f("name") . "</td>\n";
43   - } else {
44   - $sToRender .= "<td><input type=\"text\" name=\"fFolderName\" value=\"" . $sql->f("name") . "\" size=\"50\"></td>\n";
45   - }
46   - $sToRender .= "</tr>\n";
47   - $sToRender .= "<tr>\n";
48   - $sToRender .= "<td bgcolor=\"" . $sTDBGColour . "\">Description</td>\n";
49   - $sToRender .= "<td><input type=\"text\" name=\"fDescription\" value=\"" . $sql->f("description") . "\" size=\"50\"></td>\n";
50   - $sToRender .= "</tr>\n";
51   - $sToRender .= "<tr>\n";
52   - $sToRender .= "<td bgcolor=\"" . $sTDBGColour . "\">Public</td>\n";
53   - $sToRender .= "<td><input type=\"checkbox\" name=\"fIsPublic\" " . ($sql->f("is_public") ? "CHECKED" : "") ." ></td>\n";
54   - $sToRender .= "</tr>\n";
55   - $sToRender .= "<tr>\n";
56   - $sToRender .= "<td></td>\n";
57   - $sToRender .= "</tr>\n";
58   - $sToRender .= "<input type=\"hidden\" name=\"fFolderID\" value=\"$iFolderID\">";
59   - $sToRender .= "<input type=\"hidden\" name=\fForUpdate\" value=\"1\">";
60   -
61   - }
62   - $sToRender .= "</table></td></tr>";
63   - //$sToRender .= "<tr><td><input type=\"image\" src=\"$default->graphicsUrl/widgets/update.gif\" onClick=\"setActionAndSubmit('" . $_SERVER["PHP_SELF"] . "?fFolderID=$iFolderID&fForUpdate=1')\" border=\"0\" /></td></tr>\n";
64   - $sToRender .= "<tr><td><input type=\"image\" src=\"$default->graphicsUrl/widgets/update.gif\" border=\"0\" /></td></tr>\n";
65   - $sToRender .= "</table>\n";
  41 + $sToRender .= "<tr><td>" . $oPatternListFromQuery->render() . "</td></tr>";
  42 + $sToRender .= "<tr><td><a href=\"$default->rootUrl/control.php?action=modifyFolderData&fFolderID=$iFolderID\"><img src=\"$default->graphicsUrl/widgets/edit.gif\" border=\"0\" /></a></td></tr>";
  43 + $sToRender .= "</table>";;
66 44  
67   - return renderSectionDiv($sDivName, $sToRender);
  45 + if ($sStatusMessage) {
  46 + return $sToRender;
  47 + } else {
  48 + return renderSectionDiv($sDivName, $sToRender);
  49 + }
68 50 }
69 51  
70 52 function getFolderRouting($iFolderID, $sDivName, $bCollaboration) {
... ...
presentation/lookAndFeel/knowledgeTree/foldermanagement/modifyFolderDataBL.php 0 → 100644
  1 +<?php
  2 +
  3 +/**
  4 + * $Id$
  5 + *
  6 + * Presentation information used for folder data editing.
  7 + *
  8 + * Licensed under the GNU GPL. For full terms see the file DOCS/COPYING.
  9 + *
  10 + * @version $Revision$
  11 + * @author Michael Joseph <michael@jamwarehouse.com>, Jam Warehouse (Pty) Ltd, South Africa
  12 + * @package presentation.lookAndFeel.knowledgeTree.foldermanagement
  13 + */
  14 +
  15 +require_once("../../../../config/dmsDefaults.php");
  16 +
  17 +if (checkSession()) {
  18 + require_once("$default->fileSystemRoot/lib/visualpatterns/PatternListBox.inc");
  19 + require_once("$default->fileSystemRoot/lib/visualpatterns/PatternEditableListFromQuery.inc");
  20 + require_once("$default->fileSystemRoot/lib/visualpatterns/PatternListFromQuery.inc");
  21 + require_once("$default->fileSystemRoot/lib/security/permission.inc");
  22 + require_once("$default->fileSystemRoot/lib/visualpatterns/PatternCustom.inc");
  23 + require_once("$default->fileSystemRoot/lib/foldermanagement/Folder.inc");
  24 + require_once("$default->fileSystemRoot/presentation/lookAndFeel/knowledgeTree/foldermanagement/folderUI.inc");
  25 + require_once("$default->fileSystemRoot/presentation/Html.inc");
  26 + require_once("modifyFolderDataUI.inc");
  27 +
  28 + if (isset($fFolderID)) {
  29 + if (isset($fForUpdate)) {
  30 + //user is updating folder data
  31 + $oFolder = Folder::get($fFolderID);
  32 + $oFolder->setDescription($fDescription);
  33 + if (isset($fIsPublic)) {
  34 + $oFolder->setIsPublic(true);
  35 + } else {
  36 + $oFolder->setIsPublic(false);
  37 + }
  38 + $bSuccessfulUpdate = false;
  39 + if (isset($fFolderName) && strcmp($oFolder->getName(), $fFolderName) != 0) {
  40 + //folder name has changed, update the full_path
  41 + $sOldName = $oFolder->getName();
  42 + $sOldPath = $default->documentRoot . "/" . $oFolder->getFullPath() . "/" . $oFolder->getName();
  43 + $oFolder->setName($fFolderName);
  44 + if ($oFolder->update(true)) {
  45 + $bSuccessfulUpdate = true;
  46 + if (!PhysicalFolderManagement::renameFolder($sOldPath, $default->documentRoot . "/" . $oFolder->getFullPath() . "/" . $oFolder->getName())) {
  47 + //reverse the database changes if the physical rename failed
  48 + $oFolder->setName($sOldName);
  49 + $oFolder->update(true);
  50 + $bSuccessfulUpdate = false;
  51 + }
  52 + }
  53 + } else {
  54 + $bSuccessfulUpdate = $oFolder->update();
  55 + }
  56 + if ($bSuccessfulUpdate) {
  57 + // redirect to edit folder page
  58 + controllerRedirect("editFolder", "fFolderID=$fFolderID");
  59 + exit;
  60 + } else {
  61 + require_once("$default->fileSystemRoot/presentation/webpageTemplate.inc");
  62 + $oPatternCustom = & new PatternCustom();
  63 + $oPatternCustom->setHtml(getFolderData($fFolderID, "An error occurred while updating this folder"));
  64 + $main->setHasRequiredFields(true);
  65 + $main->setFormAction("../store.php?fReturnURL=" . urlencode("$default->rootUrl/control.php?action=browse&fFolderID=$fFolderID"));
  66 + }
  67 + } else {
  68 + require_once("$default->fileSystemRoot/presentation/webpageTemplate.inc");
  69 + $oPatternCustom = & new PatternCustom();
  70 + // display form
  71 + $oPatternCustom->setHtml(getFolderData($fFolderID));
  72 + $main->setHasRequiredFields(true);
  73 + $main->setFormAction($_SERVER['PHP_SELF']);
  74 + }
  75 + }
  76 + $main->setCentralPayload($oPatternCustom);
  77 + $main->render();
  78 +}
  79 +?>
0 80 \ No newline at end of file
... ...
presentation/lookAndFeel/knowledgeTree/foldermanagement/modifyFolderDataUI.inc 0 → 100644
  1 +<?php
  2 +/**
  3 + * $Id$
  4 + *
  5 + * Presentation information used for folder data editing.
  6 + *
  7 + * Licensed under the GNU GPL. For full terms see the file DOCS/COPYING.
  8 + *
  9 + * @version $Revision$
  10 + * @author Michael Joseph <michael@jamwarehouse.com>, Jam Warehouse (Pty) Ltd, South Africa
  11 + * @package presentation.lookAndFeel.knowledgeTree.foldermanagement
  12 + */
  13 +
  14 +
  15 +function getFolderData($iFolderID, $sStatusMessage = "") {
  16 + global $default;
  17 + $sSectionName = $default->siteMap->getSectionName(substr($_SERVER["PHP_SELF"], strlen($default->rootUrl), strlen($_SERVER["PHP_SELF"])));
  18 + $sTDBGColour = $default->siteMap->getSectionColour($sSectionName, "td");
  19 + $sQuery = "SELECT F.id, F.name, F.description, F.is_public " .
  20 + "FROM $default->owl_folders_table AS F " .
  21 + "WHERE F.id = $iFolderID";
  22 +
  23 + $sql = $default->db;
  24 + $sql->query($sQuery);
  25 +
  26 + $sToRender .= renderHeading("Modify Folder Properties");
  27 + $sToRender .= renderFolderPath($iFolderID, "/control.php?action=browse");
  28 + $sToRender .= "<table>";
  29 + $sToRender .= "<tr><td>";
  30 + $sToRender .= "<table cellpadding=\"5\" border=\"0\" width=\"610\">\n";
  31 + $sToRender .= "<caption><strong>Folder Data</strong></caption>";
  32 + if ($sql->next_record()) {
  33 + $sToRender .= "<tr>\n";
  34 + $sToRender .= "<td bgcolor=\"" . $sTDBGColour . "\">Name</td>\n";
  35 + if (Folder::folderIsUnitRootFolder($iFolderID)) {
  36 + $sToRender .= "<td>" . $sql->f("name") . "</td>\n";
  37 + } else {
  38 + $sToRender .= "<td><input type=\"text\" name=\"fFolderName\" value=\"" . $sql->f("name") . "\" size=\"50\"></td>\n";
  39 + }
  40 + $sToRender .= "</tr>\n";
  41 + $sToRender .= "<tr>\n";
  42 + $sToRender .= "<td bgcolor=\"" . $sTDBGColour . "\">Description</td>\n";
  43 + $sToRender .= "<td><input type=\"text\" name=\"fDescription\" value=\"" . $sql->f("description") . "\" size=\"50\"></td>\n";
  44 + $sToRender .= "</tr>\n";
  45 + $sToRender .= "<tr>\n";
  46 + $sToRender .= "<td bgcolor=\"" . $sTDBGColour . "\">Public</td>\n";
  47 + $sToRender .= "<td><input type=\"checkbox\" name=\"fIsPublic\" " . ($sql->f("is_public") ? "CHECKED" : "") ." ></td>\n";
  48 + $sToRender .= "</tr>\n";
  49 + $sToRender .= "<tr>\n";
  50 + $sToRender .= "<td></td>\n";
  51 + $sToRender .= "</tr>\n";
  52 + $sToRender .= "<input type=\"hidden\" name=\"fFolderID\" value=\"$iFolderID\">";
  53 + $sToRender .= "<input type=\"hidden\" name=\"fForUpdate\" value=\"1\">";
  54 +
  55 + }
  56 + $sToRender .= "</table></td></tr>";
  57 + $sToRender .= "<tr><td><input type=\"image\" src=\"$default->graphicsUrl/widgets/update.gif\" border=\"0\" />";
  58 + $sToRender .= generateControllerLink("editFolder", "fFolderID=$iFolderID", "<image src=\"$default->graphicsUrl/widgets/cancel.gif\" border=\"0\"/>") . "</td></tr>\n";
  59 + $sToRender .= "</table>\n";
  60 +
  61 + return $sToRender;
  62 +}
  63 +?>
0 64 \ No newline at end of file
... ...