Commit c2f835b2aed1e9ca801d2b53ac6372871c1862cb

Authored by rob
1 parent 58981949

Changed handling of updating of folder


git-svn-id: https://kt-dms.svn.sourceforge.net/svnroot/kt-dms/trunk@1263 c91229c3-7414-0410-bfa2-8a42b809f60b
presentation/lookAndFeel/knowledgeTree/foldermanagement/editBL.php
@@ -27,7 +27,50 @@ if (checkSession()) { @@ -27,7 +27,50 @@ if (checkSession()) {
27 if (isset($fFolderID)) { 27 if (isset($fFolderID)) {
28 //if the user can edit the folder 28 //if the user can edit the folder
29 if (Permission::userHasFolderWritePermission($fFolderID)) { 29 if (Permission::userHasFolderWritePermission($fFolderID)) {
30 - if (isset($fCollaborationEdit)) { 30 + if (isset($fForUpdate)) {
  31 + //user is updating folder data
  32 + $oFolder = Folder::get($fFolderID);
  33 + $oFolder->setDescription($fDescription);
  34 + if (isset($fIsPublic)) {
  35 + $oFolder->setIsPublic(true);
  36 + } else {
  37 + $oFolder->setIsPublic(false);
  38 + }
  39 + $bSuccessfulUpdate = false;
  40 + if (strcmp($oFolder->getName(), $fFolderName) != 0) {
  41 + //folder name has changed, update the full_path
  42 + $sOldName = $oFolder->getName();
  43 + $sOldPath = $default->documentRoot . "/" . $oFolder->getFullPath() . "/" . $oFolder->getName();
  44 + $oFolder->setName($fFolderName);
  45 + if ($oFolder->update(true)) {
  46 + $bSuccessfulUpdate = true;
  47 + if (!PhysicalFolderManagement::renameFolder($sOldPath, $default->documentRoot . "/" . $oFolder->getFullPath() . "/" . $oFolder->getName())) {
  48 + //reverse the database changes if the physical rename failed
  49 + $oFolder->setName($sOldName);
  50 + $oFolder->update(true);
  51 + $bSuccessfulUpdate = false;
  52 + }
  53 + }
  54 + } else {
  55 + $bSuccessfulUpdate = $oFolder->update();
  56 + }
  57 + if ($bSuccessfulUpdate) {
  58 + $oPatternCustom = & new PatternCustom();
  59 + $oPatternCustom->setHtml(getPage($fFolderID));
  60 + $main->setCentralPayload($oPatternCustom);
  61 + $main->setHasRequiredFields(true);
  62 + $main->setFormAction("../store.php?fReturnURL=" . urlencode("$default->rootUrl/control.php?action=browse&fFolderID=$fFolderID"));
  63 + $main->render();
  64 + } else {
  65 + $oPatternCustom = & new PatternCustom();
  66 + $oPatternCustom->setHtml(getPage($fFolderID));
  67 + $main->setErrorMessage("An error occured while updating this folder");
  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 + }
  73 + } else if (isset($fCollaborationEdit)) {
31 //user attempted to edit the folder collaboration process but could not because there is 74 //user attempted to edit the folder collaboration process but could not because there is
32 //a document currently in this process 75 //a document currently in this process
33 $oPatternCustom = & new PatternCustom(); 76 $oPatternCustom = & new PatternCustom();
presentation/lookAndFeel/knowledgeTree/foldermanagement/editUI.inc
@@ -16,11 +16,39 @@ function getFolderPath($iFolderID) { @@ -16,11 +16,39 @@ function getFolderPath($iFolderID) {
16 16
17 function getFolderData($iFolderID) { 17 function getFolderData($iFolderID) {
18 global $default; 18 global $default;
19 - $sQuery = "SELECT F.id, F.name AS folder_name, F.description, F.is_public " . 19 + $sQuery = "SELECT F.id, F.name, F.description, F.is_public " .
20 "FROM $default->owl_folders_table AS F " . 20 "FROM $default->owl_folders_table AS F " .
21 "WHERE F.id = $iFolderID"; 21 "WHERE F.id = $iFolderID";
  22 +
  23 + $sql = $default->db;
  24 + $sql->query($sQuery);
  25 + $sToRender = "<table>\n";
  26 + if ($sql->next_record()) {
  27 + $sToRender .= "<tr>\n";
  28 + $sToRender .= "<td>Name</td>\n";
  29 + if (Folder::folderIsUnitRootFolder($iFolderID)) {
  30 + $sToRender .= "<td>" . $sql->f("name") . "</td>\n";
  31 + } else {
  32 + $sToRender .= "<td><input type=\"text\" name=\"fFolderName\" value=\"" . $sql->f("name") . "\" size=\"30\"></td>\n";
  33 + }
  34 + $sToRender .= "</tr>\n";
  35 + $sToRender .= "<tr>\n";
  36 + $sToRender .= "<td>Description</td>\n";
  37 + $sToRender .= "<td><input type=\"text\" name=\"fDescription\" value=\"" . $sql->f("description") . "\" size=\"30\"></td>\n";
  38 + $sToRender .= "</tr>\n";
  39 + $sToRender .= "<tr>\n";
  40 + $sToRender .= "<td>Public</td>\n";
  41 + $sToRender .= "<td><input type=\"checkbox\" name=\"fIsPublic\" " . ($sql->f("is_public") ? "CHECKED" : "") ." ></td>\n";
  42 + $sToRender .= "</tr>\n";
  43 + $sToRender .= "<tr>\n";
  44 + $sToRender .= "<td></td>\n";
  45 + $sToRender .= "</tr>\n";
  46 +
  47 + }
  48 + $sToRender .= "</table>\n";
  49 +
22 50
23 - $aDisplayColumns = array("folder_name", "description", "is_public"); 51 + /*$aDisplayColumns = array("folder_name", "description", "is_public");
24 $aStoreColumns = array("name", "description" , "is_public"); 52 $aStoreColumns = array("name", "description" , "is_public");
25 $aColumnNames = array("Name", "Description", "Public"); 53 $aColumnNames = array("Name", "Description", "Public");
26 $aDisplayColumnTypes = array(1,1,2); 54 $aDisplayColumnTypes = array(1,1,2);
@@ -32,7 +60,9 @@ function getFolderData($iFolderID) { @@ -32,7 +60,9 @@ function getFolderData($iFolderID) {
32 $oPatternEditableListFromQuery->setDropDownListTableNames($aDropDownListTableNames); 60 $oPatternEditableListFromQuery->setDropDownListTableNames($aDropDownListTableNames);
33 $oPatternEditableListFromQuery->setColumnsRequired(array(1,0,1,0)); 61 $oPatternEditableListFromQuery->setColumnsRequired(array(1,0,1,0));
34 62
35 - return $oPatternEditableListFromQuery->render(); 63 + return $oPatternEditableListFromQuery->render();*/
  64 +
  65 + return $sToRender;
36 66
37 } 67 }
38 68
@@ -92,22 +122,7 @@ function getPage($iFolderID) { @@ -92,22 +122,7 @@ function getPage($iFolderID) {
92 $sToRender .= getRightSide($iFolderID); 122 $sToRender .= getRightSide($iFolderID);
93 $sToRender .= "</td>\n"; 123 $sToRender .= "</td>\n";
94 $sToRender .= "</tr>\n"; 124 $sToRender .= "</tr>\n";
95 - $sToRender .= "</table>\n";  
96 - /*$sToRender = "<table border=\"1\" width=\"100%\"><tr><td>" . getFolderPath($iFolderID) . "</td></tr></table>\n";  
97 - $sToRender .= "<table border =\"0\">\n";  
98 - $sToRender .= "<tr>\n";  
99 - $sToRender .= "<td valign=\"top\">" . wrapInTable(getFolderData($iFolderID)) . "</td>\n";  
100 - $sToRender .= "<td>" . wrapInTable(getFolderDocTypes($iFolderID)) . "</td>\n";  
101 - $sToRender .= "</tr>\n";  
102 - $sToRender .= "<tr>\n";  
103 - $sToRender .= "<td><input type=\"image\" src=\"$default->graphicsUrl/widgets/update.gif\" border=\"0\" /></td>\n";  
104 - $sToRender .= "</tr>\n";  
105 - $sToRender .= "<tr>\n";  
106 - $sToRender .= "<td>" . wrapInTable(getFolderRouting($iFolderID)) . "</td>\n";  
107 - $sToRender .= "</tr>\n";  
108 - $sToRender .= "<tr>\n";  
109 - $sToRender .= "<td><a href=\"$default->rootUrl/control.php?action=addFolderCollaboration&fFolderID=$iFolderID\"><img src=\"$default->graphicsUrl/widgets/add.gif\" border=\"0\" /></a></td>\n";  
110 - $sToRender .= "</table>\n";*/ 125 + $sToRender .= "</table>\n";
111 return $sToRender; 126 return $sToRender;
112 } 127 }
113 128
@@ -120,8 +135,8 @@ function getLeftSide($iFolderID) { @@ -120,8 +135,8 @@ function getLeftSide($iFolderID) {
120 $sToRender .= "</td>\n"; 135 $sToRender .= "</td>\n";
121 $sToRender .= "</tr>\n"; 136 $sToRender .= "</tr>\n";
122 $sToRender .= "<tr>\n"; 137 $sToRender .= "<tr>\n";
123 - $sToRender .= "<td>\n";  
124 - $sToRender .= "<input type=\"image\" src=\"$default->graphicsUrl/widgets/update.gif\" border=\"0\" />\n"; 138 + $sToRender .= "<td>\n";
  139 + $sToRender .= "<input type=\"image\" src=\"$default->graphicsUrl/widgets/update.gif\" onClick=\"setActionAndSubmit('" . $_SERVER["PHP_SELF"] . "?fFolderID=$iFolderID&fForUpdate=1')\" border=\"0\" />\n";
125 $sToRender .= "</td>\n"; 140 $sToRender .= "</td>\n";
126 $sToRender .= "</tr>\n"; 141 $sToRender .= "</tr>\n";
127 $sToRender .= "<tr>\n"; 142 $sToRender .= "<tr>\n";