Commit 778b1e4a2625bd4b1499424eb77cee966ac51c65
1 parent
d7948013
added document type validation
git-svn-id: https://kt-dms.svn.sourceforge.net/svnroot/kt-dms/trunk@2527 c91229c3-7414-0410-bfa2-8a42b809f60b
Showing
2 changed files
with
99 additions
and
85 deletions
presentation/lookAndFeel/knowledgeTree/foldermanagement/addFolderBL.php
| @@ -44,103 +44,114 @@ if (checkSession()) { | @@ -44,103 +44,114 @@ if (checkSession()) { | ||
| 44 | $main->setHasRequiredFields(true); | 44 | $main->setHasRequiredFields(true); |
| 45 | $main->render(); | 45 | $main->render(); |
| 46 | } else { | 46 | } else { |
| 47 | + // a document type has been specified | ||
| 48 | + if (isset($fDocumentTypeID)) { | ||
| 47 | //have a folder name to store | 49 | //have a folder name to store |
| 48 | - if (Permission::userHasFolderWritePermission($fFolderID)) { | ||
| 49 | - //check for illegal characters in the folder name | ||
| 50 | - if (strpos($fFolderName, "\\") === false && strpos($fFolderName, ">") === false && | ||
| 51 | - strpos($fFolderName, "<") === false && strpos($fFolderName, ":") === false && | ||
| 52 | - strpos($fFolderName, "*") === false && strpos($fFolderName, "?") === false && | ||
| 53 | - strpos($fFolderName, "|") === false && strpos($fFolderName, "/") === false && | ||
| 54 | - strpos($fFolderName, "\"") === false) { | ||
| 55 | - | ||
| 56 | - if (Folder::folderExistsName($fFolderName, $fFolderID)) { | ||
| 57 | - require_once("$default->fileSystemRoot/presentation/webpageTemplate.inc"); | ||
| 58 | - $oPatternCustom->setHtml(renderBrowseAddPage($fFolderID)); | ||
| 59 | - $main->setCentralPayload($oPatternCustom); | ||
| 60 | - $main->setErrorMessage("There is another folder named $fFolderName in this folder already"); | ||
| 61 | - $main->setHasRequiredFields(true); | ||
| 62 | - $main->setFormAction("addFolderBL.php?fFolderID=$fFolderID"); | ||
| 63 | - $main->render(); | ||
| 64 | - } else { | ||
| 65 | - $oParentFolder = Folder::get($fFolderID); | ||
| 66 | - //create the folder in the db, giving it the properties of it's parent folder | ||
| 67 | - $oFolder = & new Folder($fFolderName, "", $fFolderID, $_SESSION["userID"], $oParentFolder->getUnitID()); | ||
| 68 | - if ($oFolder->create()) { | ||
| 69 | - $oFolderDocTypeLink = & new FolderDocTypeLink($oFolder->getID(), $fDocumentTypeID); | ||
| 70 | - if ($oFolderDocTypeLink->create()) { | ||
| 71 | - //create the folder on the file system | ||
| 72 | - if (PhysicalFolderManagement::createFolder(Folder::getFolderPath($oFolder->getID()))) { | ||
| 73 | - $default->log->info("addFolderBL.php successfully added folder $fFolderName to parent folder " . Folder::getFolderPath($fFolderID) . " id=$fFolderID"); | ||
| 74 | - | ||
| 75 | - // fire subscription alerts for the new folder | ||
| 76 | - $count = SubscriptionEngine::fireSubscription($oParentFolder->getID(), SubscriptionConstants::subscriptionAlertType("AddFolder"), | ||
| 77 | - SubscriptionConstants::subscriptionType("FolderSubscription"), | ||
| 78 | - array( "newFolderName" => $fFolderName, | ||
| 79 | - "parentFolderName" => $oParentFolder->getName()) ); | ||
| 80 | - $default->log->info("addFolderBL.php fired $count subscription alerts for new folder $fFolderName"); | ||
| 81 | - redirect("$default->rootUrl/control.php?action=editFolder&fFolderID=" . $oFolder->getID()); | 50 | + if (Permission::userHasFolderWritePermission($fFolderID)) { |
| 51 | + //check for illegal characters in the folder name | ||
| 52 | + if (strpos($fFolderName, "\\") === false && strpos($fFolderName, ">") === false && | ||
| 53 | + strpos($fFolderName, "<") === false && strpos($fFolderName, ":") === false && | ||
| 54 | + strpos($fFolderName, "*") === false && strpos($fFolderName, "?") === false && | ||
| 55 | + strpos($fFolderName, "|") === false && strpos($fFolderName, "/") === false && | ||
| 56 | + strpos($fFolderName, "\"") === false) { | ||
| 57 | + | ||
| 58 | + if (Folder::folderExistsName($fFolderName, $fFolderID)) { | ||
| 59 | + require_once("$default->fileSystemRoot/presentation/webpageTemplate.inc"); | ||
| 60 | + $oPatternCustom->setHtml(renderBrowseAddPage($fFolderID)); | ||
| 61 | + $main->setCentralPayload($oPatternCustom); | ||
| 62 | + $main->setErrorMessage("There is another folder named $fFolderName in this folder already"); | ||
| 63 | + $main->setHasRequiredFields(true); | ||
| 64 | + $main->setFormAction("addFolderBL.php?fFolderID=$fFolderID"); | ||
| 65 | + $main->render(); | ||
| 66 | + } else { | ||
| 67 | + $oParentFolder = Folder::get($fFolderID); | ||
| 68 | + //create the folder in the db, giving it the properties of it's parent folder | ||
| 69 | + $oFolder = & new Folder($fFolderName, "", $fFolderID, $_SESSION["userID"], $oParentFolder->getUnitID()); | ||
| 70 | + if ($oFolder->create()) { | ||
| 71 | + $oFolderDocTypeLink = & new FolderDocTypeLink($oFolder->getID(), $fDocumentTypeID); | ||
| 72 | + if ($oFolderDocTypeLink->create()) { | ||
| 73 | + //create the folder on the file system | ||
| 74 | + if (PhysicalFolderManagement::createFolder(Folder::getFolderPath($oFolder->getID()))) { | ||
| 75 | + $default->log->info("addFolderBL.php successfully added folder $fFolderName to parent folder " . Folder::getFolderPath($fFolderID) . " id=$fFolderID"); | ||
| 76 | + | ||
| 77 | + // fire subscription alerts for the new folder | ||
| 78 | + $count = SubscriptionEngine::fireSubscription($oParentFolder->getID(), SubscriptionConstants::subscriptionAlertType("AddFolder"), | ||
| 79 | + SubscriptionConstants::subscriptionType("FolderSubscription"), | ||
| 80 | + array( "newFolderName" => $fFolderName, | ||
| 81 | + "parentFolderName" => $oParentFolder->getName()) ); | ||
| 82 | + $default->log->info("addFolderBL.php fired $count subscription alerts for new folder $fFolderName"); | ||
| 83 | + redirect("$default->rootUrl/control.php?action=editFolder&fFolderID=" . $oFolder->getID()); | ||
| 84 | + } else { | ||
| 85 | + //if we couldn't do that | ||
| 86 | + $default->log->error("addFolderBL.php Filesystem error attempting to store folder name=$fFolderName in parent folder '" . Folder::getFolderPath($fFolderID) . "' id=$fFolderID"); | ||
| 87 | + | ||
| 88 | + // remove the folder and its doc type link from the db and report and error | ||
| 89 | + $oFolderDocTypeLink->delete(); | ||
| 90 | + $oFolder->delete(); | ||
| 91 | + require_once("$default->fileSystemRoot/presentation/webpageTemplate.inc"); | ||
| 92 | + $oPatternCustom->setHtml(renderBrowsePage($fFolderID)); | ||
| 93 | + $main->setCentralPayload($oPatternCustom); | ||
| 94 | + $main->setErrorMessage("There was an error creating the folder $fFolderName on the filesystem"); | ||
| 95 | + $main->setFormAction("addFolderBL.php?fFolderID=$fFolderID"); | ||
| 96 | + $main->setHasRequiredFields(true); | ||
| 97 | + $main->render(); | ||
| 98 | + } | ||
| 82 | } else { | 99 | } else { |
| 83 | - //if we couldn't do that | ||
| 84 | - $default->log->error("addDocumentBL.php Filesystem error attempting to store folder name=$fFolderName in parent folder '" . Folder::getFolderPath($fFolderID) . "' id=$fFolderID"); | 100 | + //couldn't associate the chosen document type with this folder |
| 101 | + $default->log->error("addFolderBL.php DB error storing folder-document type link for folder name=$fFolderName in parent folder '" . Folder::getFolderPath($fFolderID) . "' folderID=$fFolderID; docTypeID=$fDocumentTypeID"); | ||
| 85 | 102 | ||
| 86 | - // remove the folder and its doc type link from the db and report and error | ||
| 87 | - $oFolderDocTypeLink->delete(); | 103 | + //remove the folder from the database |
| 88 | $oFolder->delete(); | 104 | $oFolder->delete(); |
| 89 | require_once("$default->fileSystemRoot/presentation/webpageTemplate.inc"); | 105 | require_once("$default->fileSystemRoot/presentation/webpageTemplate.inc"); |
| 90 | $oPatternCustom->setHtml(renderBrowsePage($fFolderID)); | 106 | $oPatternCustom->setHtml(renderBrowsePage($fFolderID)); |
| 91 | $main->setCentralPayload($oPatternCustom); | 107 | $main->setCentralPayload($oPatternCustom); |
| 92 | $main->setErrorMessage("There was an error creating the folder $fFolderName on the filesystem"); | 108 | $main->setErrorMessage("There was an error creating the folder $fFolderName on the filesystem"); |
| 93 | $main->setFormAction("addFolderBL.php?fFolderID=$fFolderID"); | 109 | $main->setFormAction("addFolderBL.php?fFolderID=$fFolderID"); |
| 94 | - $main->setHasRequiredFields(true); | ||
| 95 | - $main->render(); | 110 | + $main->setHasRequiredFields(true); |
| 111 | + $main->render(); | ||
| 96 | } | 112 | } |
| 97 | - } else { | ||
| 98 | - //couldn't associate the chosen document type with this folder | ||
| 99 | - $default->log->error("addDocumentBL.php DB error storing folder-document type link for folder name=$fFolderName in parent folder '" . Folder::getFolderPath($fFolderID) . "' folderID=$fFolderID; docTypeID=$fDocumentTypeID"); | ||
| 100 | - | ||
| 101 | - //remove the folder from the database | ||
| 102 | - $oFolder->delete(); | ||
| 103 | - require_once("$default->fileSystemRoot/presentation/webpageTemplate.inc"); | ||
| 104 | - $oPatternCustom->setHtml(renderBrowsePage($fFolderID)); | ||
| 105 | - $main->setCentralPayload($oPatternCustom); | ||
| 106 | - $main->setErrorMessage("There was an error creating the folder $fFolderName on the filesystem"); | ||
| 107 | - $main->setFormAction("addFolderBL.php?fFolderID=$fFolderID"); | ||
| 108 | - $main->setHasRequiredFields(true); | ||
| 109 | - $main->render(); | ||
| 110 | - } | ||
| 111 | - } else { | ||
| 112 | - //if we couldn't create the folder in the db, report an error | ||
| 113 | - $default->log->error("addDocumentBL.php DB error attempting to store folder name=$fFolderName in parent folder '" . Folder::getFolderPath($fFolderID) . "' id=$fFolderID"); | ||
| 114 | - | ||
| 115 | - require_once("$default->fileSystemRoot/presentation/webpageTemplate.inc"); | ||
| 116 | - $oPatternCustom->setHtml(renderBrowsePage($fFolderID)); | ||
| 117 | - $main->setCentralPayload($oPatternCustom); | ||
| 118 | - $main->setErrorMessage("There was an error creating the folder $fFolderName in the database"); | ||
| 119 | - $main->setFormAction("addFolderBL.php?fFolderID=$fFolderID"); | ||
| 120 | - $main->render(); | ||
| 121 | - } | ||
| 122 | - } | ||
| 123 | - } else { | ||
| 124 | - //the user entered an illegal character in the folder name | ||
| 125 | - require_once("$default->fileSystemRoot/presentation/webpageTemplate.inc"); | ||
| 126 | - $oPatternCustom->setHtml(renderBrowseAddPage($fFolderID)); | ||
| 127 | - $main->setCentralPayload($oPatternCustom); | ||
| 128 | - $main->setErrorMessage("Folder not created. Folder names may not contain: '<', '>', '*', '/', '\', '|', '?' or '\"' "); | ||
| 129 | - $main->setHasRequiredFields(true); | ||
| 130 | - $main->setFormAction("addFolderBL.php?fFolderID=$fFolderID"); | ||
| 131 | - $main->render(); | ||
| 132 | - } | ||
| 133 | - | ||
| 134 | - } else { | ||
| 135 | - //if the user doesn't have write permission for this folder, | ||
| 136 | - //give them only browse facilities | 113 | + } else { |
| 114 | + //if we couldn't create the folder in the db, report an error | ||
| 115 | + $default->log->error("addFolderBL.php DB error attempting to store folder name=$fFolderName in parent folder '" . Folder::getFolderPath($fFolderID) . "' id=$fFolderID"); | ||
| 116 | + | ||
| 117 | + require_once("$default->fileSystemRoot/presentation/webpageTemplate.inc"); | ||
| 118 | + $oPatternCustom->setHtml(renderBrowsePage($fFolderID)); | ||
| 119 | + $main->setCentralPayload($oPatternCustom); | ||
| 120 | + $main->setErrorMessage("There was an error creating the folder $fFolderName in the database"); | ||
| 121 | + $main->setFormAction("addFolderBL.php?fFolderID=$fFolderID"); | ||
| 122 | + $main->render(); | ||
| 123 | + } | ||
| 124 | + } | ||
| 125 | + } else { | ||
| 126 | + //the user entered an illegal character in the folder name | ||
| 127 | + require_once("$default->fileSystemRoot/presentation/webpageTemplate.inc"); | ||
| 128 | + $oPatternCustom->setHtml(renderBrowseAddPage($fFolderID)); | ||
| 129 | + $main->setCentralPayload($oPatternCustom); | ||
| 130 | + $main->setErrorMessage("Folder not created. Folder names may not contain: '<', '>', '*', '/', '\', '|', '?' or '\"' "); | ||
| 131 | + $main->setHasRequiredFields(true); | ||
| 132 | + $main->setFormAction("addFolderBL.php?fFolderID=$fFolderID"); | ||
| 133 | + $main->render(); | ||
| 134 | + } | ||
| 135 | + | ||
| 136 | + } else { | ||
| 137 | + //if the user doesn't have write permission for this folder, | ||
| 138 | + //give them only browse facilities | ||
| 139 | + require_once("$default->fileSystemRoot/presentation/webpageTemplate.inc"); | ||
| 140 | + $oPatternCustom->setHtml(renderBrowsePage($fFolderID)); | ||
| 141 | + $main->setCentralPayload($oPatternCustom); | ||
| 142 | + $main->setErrorMessage("You do not have permission to create new folders in this folder"); | ||
| 143 | + $main->setFormAction("addFolderBL.php?fFolderID=$fFolderID"); | ||
| 144 | + $main->render(); | ||
| 145 | + } | ||
| 146 | + } else { | ||
| 147 | + //there are no document type assigned to this folder | ||
| 137 | require_once("$default->fileSystemRoot/presentation/webpageTemplate.inc"); | 148 | require_once("$default->fileSystemRoot/presentation/webpageTemplate.inc"); |
| 138 | - $oPatternCustom->setHtml(renderBrowsePage($fFolderID)); | 149 | + $oPatternCustom->setHtml(renderBrowseAddPage($fFolderID)); |
| 139 | $main->setCentralPayload($oPatternCustom); | 150 | $main->setCentralPayload($oPatternCustom); |
| 140 | - $main->setErrorMessage("You do not have permission to create new folders in this folder"); | 151 | + $main->setErrorMessage("You did not specify a document type. If there are no system document types, please contact a System Administrator."); |
| 141 | $main->setFormAction("addFolderBL.php?fFolderID=$fFolderID"); | 152 | $main->setFormAction("addFolderBL.php?fFolderID=$fFolderID"); |
| 142 | - $main->render(); | ||
| 143 | - } | 153 | + $main->render(); |
| 154 | + } | ||
| 144 | } | 155 | } |
| 145 | } else { | 156 | } else { |
| 146 | require_once("$default->fileSystemRoot/presentation/webpageTemplate.inc"); | 157 | require_once("$default->fileSystemRoot/presentation/webpageTemplate.inc"); |
presentation/lookAndFeel/knowledgeTree/foldermanagement/addFolderUI.inc
| @@ -38,7 +38,7 @@ function getRightSide($iFolderID) { | @@ -38,7 +38,7 @@ function getRightSide($iFolderID) { | ||
| 38 | $sToRender .= "<td><input type=\"text\" name=\"fFolderName\" value=\"\" /></td>\n"; | 38 | $sToRender .= "<td><input type=\"text\" name=\"fFolderName\" value=\"\" /></td>\n"; |
| 39 | $sToRender .= "</tr>\n"; | 39 | $sToRender .= "</tr>\n"; |
| 40 | $sToRender .= "<tr>\n"; | 40 | $sToRender .= "<tr>\n"; |
| 41 | - $sToRender .= "<td><b>Doc Type: </b></td>\n"; | 41 | + $sToRender .= "<td><b>Document Type: </b></td>\n"; |
| 42 | $sToRender .= "<td>" . getDocumentTypeDropDown() . "</td>\n"; | 42 | $sToRender .= "<td>" . getDocumentTypeDropDown() . "</td>\n"; |
| 43 | $sToRender .= "</tr>\n"; | 43 | $sToRender .= "</tr>\n"; |
| 44 | $sToRender .= "<td><table border=\"0\"><tr><td><input type=\"image\" src=\"$default->graphicsUrl/widgets/add.gif\" border=\"0\"></td><td><a href=\"$default->rootUrl/control.php?action=browse&fFolderID=$iFolderID\"><img src=\"$default->graphicsUrl/widgets/cancel.gif\" border=\"0\"></a></td></tr></table></td><td> </td>\n"; | 44 | $sToRender .= "<td><table border=\"0\"><tr><td><input type=\"image\" src=\"$default->graphicsUrl/widgets/add.gif\" border=\"0\"></td><td><a href=\"$default->rootUrl/control.php?action=browse&fFolderID=$iFolderID\"><img src=\"$default->graphicsUrl/widgets/cancel.gif\" border=\"0\"></a></td></tr></table></td><td> </td>\n"; |
| @@ -49,6 +49,9 @@ function getRightSide($iFolderID) { | @@ -49,6 +49,9 @@ function getRightSide($iFolderID) { | ||
| 49 | $sToRender .= "function validateForm(theForm) {\n"; | 49 | $sToRender .= "function validateForm(theForm) {\n"; |
| 50 | $sToRender .= "\tif (!(validRequired(theForm.fFolderName, 'Folder Name'))) {\n"; | 50 | $sToRender .= "\tif (!(validRequired(theForm.fFolderName, 'Folder Name'))) {\n"; |
| 51 | $sToRender .= "\t\treturn false;\n"; | 51 | $sToRender .= "\t\treturn false;\n"; |
| 52 | + $sToRender .= "\t}\n"; | ||
| 53 | + $sToRender .= "\tif (!(validRequired(theForm.fDocumentTypeID, 'Document Type'))) {\n"; | ||
| 54 | + $sToRender .= "\t\treturn false;\n"; | ||
| 52 | $sToRender .= "\t}\n"; | 55 | $sToRender .= "\t}\n"; |
| 53 | $sToRender .= "return true;\n}\n"; | 56 | $sToRender .= "return true;\n}\n"; |
| 54 | $sToRender .= "//-->\n</script>\n\n"; | 57 | $sToRender .= "//-->\n</script>\n\n"; |