Commit 6bd468305f8fcdce3350043d1dd387ae35b19a24

Authored by Michael Joseph
1 parent 70a99a6c

added subscription firing code and reformatted


git-svn-id: https://kt-dms.svn.sourceforge.net/svnroot/kt-dms/trunk@990 c91229c3-7414-0410-bfa2-8a42b809f60b
presentation/lookAndFeel/knowledgeTree/foldermanagement/addFolderBL.php
@@ -3,8 +3,8 @@ @@ -3,8 +3,8 @@
3 * Business logic page that provides business logic for adding a folder (uses 3 * Business logic page that provides business logic for adding a folder (uses
4 * addFolderUI.inc for HTML) 4 * addFolderUI.inc for HTML)
5 * 5 *
6 -* The following form variables are exptected:  
7 -* o $fFolderID - id of the folder the user is currently in 6 +* The following form variables are expected:
  7 +* o $fFolderID - id of the folder the user is currently in
8 * 8 *
9 * @author Rob Cherry, Jam Warehouse (Pty) Ltd, South Africa 9 * @author Rob Cherry, Jam Warehouse (Pty) Ltd, South Africa
10 * @date 27 January 2003 10 * @date 27 January 2003
@@ -12,109 +12,116 @@ @@ -12,109 +12,116 @@
12 */ 12 */
13 13
14 require_once("../../../../config/dmsDefaults.php"); 14 require_once("../../../../config/dmsDefaults.php");
15 -if (checkSession()) {  
16 - require_once("$default->owl_fs_root/lib/visualpatterns/PatternCustom.inc");  
17 -  
18 - $oPatternCustom = & new PatternCustom();  
19 -  
20 - if (isset($fFolderID)) {  
21 - require_once("$default->owl_fs_root/lib/visualpatterns/PatternTableSqlQuery.inc");  
22 - require_once("$default->owl_fs_root/lib/foldermanagement/Folder.inc");  
23 - require_once("$default->owl_fs_root/lib/foldermanagement/PhysicalFolderManagement.inc");  
24 - require_once("$default->owl_fs_root/presentation/lookAndFeel/knowledgeTree/foldermanagement/folderUI.inc");  
25 - require_once("$default->owl_fs_root/presentation/Html.inc");  
26 - require_once("addFolderUI.inc");  
27 -  
28 - if (!isset($fFolderName)) {  
29 - require_once("$default->owl_fs_root/presentation/webpageTemplate.inc");  
30 - //we're still browsing  
31 - if (Permission::userHasFolderWritePermission($fFolderID)) {  
32 - //if the user is allowed to add folders, then display the add button  
33 - $oPatternCustom->setHtml(renderBrowseAddPage($fFolderID));  
34 - } else {  
35 - //otherwise just let the user browse  
36 - $oPatternCustom->setHtml(renderBrowsePage($fFolderID));  
37 - $main->setErrorMessage("You do not have permission to create new folders in this folder");  
38 - }  
39 - $main->setCentralPayload($oPatternCustom);  
40 - $main->setFormAction("addFolderBL.php?fFolderID=$fFolderID");  
41 - $main->setHasRequiredFields(true);  
42 - $main->render();  
43 - } else {  
44 - //have a folder name to store  
45 - if (Permission::userHasFolderWritePermission($fFolderID)) {  
46 - //check for illegal characters in the folder name  
47 - if (strpos($fFolderName, "\\") === false && strpos($fFolderName, ">") === false &&  
48 - strpos($fFolderName, "<") === false && strpos($fFolderName, ":") === false &&  
49 - strpos($fFolderName, "*") === false && strpos($fFolderName, "?") === false &&  
50 - strpos($fFolderName, "|") === false && strpos($fFolderName, "/") === false &&  
51 - strpos($fFolderName, "\"") === false) {  
52 - if (Folder::folderExistsName($fFolderName, $fFolderID)) {  
53 - require_once("$default->owl_fs_root/presentation/webpageTemplate.inc");  
54 - $oPatternCustom->setHtml(renderBrowseAddPage($fFolderID));  
55 - $main->setCentralPayload($oPatternCustom);  
56 - $main->setErrorMessage("There is another folder named $fFolderName in this folder already");  
57 - $main->setHasRequiredFields(true);  
58 - $main->setFormAction("addFolderBL.php?fFolderID=$fFolderID");  
59 - $main->render();  
60 - } else {  
61 - $oParentFolder = Folder::get($fFolderID);  
62 - //create the folder in the db, giving it the properties of it's parent folder  
63 - $oFolder = &new Folder($fFolderName, "", $fFolderID, $_SESSION["userID"], $oParentFolder->getDocumentTypeID(), $oParentFolder->getUnitID());  
64 - if ($oFolder->create()) {  
65 - //create the folder on the file system  
66 - if (PhysicalFolderManagement::createFolder(Folder::getFolderPath($oFolder->getID()))) {  
67 - redirect("$default->owl_root_url/control.php?action=editFolder&fFolderID=" . $oFolder->getID());  
68 - } else {  
69 - //if we couldn't do that, remove the folder from the db and report and error  
70 - $oFolder->delete();  
71 - require_once("$default->owl_fs_root/presentation/webpageTemplate.inc");  
72 - $oPatternCustom->setHtml(renderBrowsePage($fFolderID));  
73 - $main->setCentralPayload($oPatternCustom);  
74 - $main->setErrorMessage("There was an error creating the folder $fFolderName on the filesystem");  
75 - $main->setFormAction("addFolderBL.php?fFolderID=$fFolderID");  
76 - $main->setHasRequiredFields(true);  
77 - $main->render();  
78 - }  
79 - } else {  
80 - //if we couldn't create the folder in the db, report an error  
81 - require_once("$default->owl_fs_root/presentation/webpageTemplate.inc");  
82 - $oPatternCustom->setHtml(renderBrowsePage($fFolderID));  
83 - $main->setCentralPayload($oPatternCustom);  
84 - $main->setErrorMessage("There was an error creating the folder $fFolderName in the database");  
85 - $main->setFormAction("addFolderBL.php?fFolderID=$fFolderID");  
86 - $main->render();  
87 - }  
88 - }  
89 - } else {  
90 - //the user entered an illegal character in the folder name  
91 - require_once("$default->owl_fs_root/presentation/webpageTemplate.inc");  
92 - $oPatternCustom->setHtml(renderBrowseAddPage($fFolderID));  
93 - $main->setCentralPayload($oPatternCustom);  
94 - $main->setErrorMessage("Folder not created. Folder names may not contain: '<', '>', '*', '/', '\', '|', '?' or '\"' ");  
95 - $main->setHasRequiredFields(true);  
96 - $main->setFormAction("addFolderBL.php?fFolderID=$fFolderID");  
97 - $main->render();  
98 - }  
99 -  
100 - } else {  
101 - //if the user doesn't have write permission for this folder,  
102 - //give them only browse facilities  
103 - require_once("$default->owl_fs_root/presentation/webpageTemplate.inc");  
104 - $oPatternCustom->setHtml(renderBrowsePage($fFolderID));  
105 - $main->setCentralPayload($oPatternCustom);  
106 - $main->setErrorMessage("You do not have permission to create new folders in this folder");  
107 - $main->setFormAction("addFolderBL.php?fFolderID=$fFolderID");  
108 - $main->render();  
109 - }  
110 - }  
111 - } else {  
112 - require_once("$default->owl_fs_root/presentation/webpageTemplate.inc");  
113 - $oPatternCustom->setHtml("");  
114 - $main->setCentralPayload($oPatternCustom);  
115 - $main->setErrorMessage("No folder currently selected");  
116 - $main->render();  
117 - } 15 +if (checkSession()) {
  16 + require_once("$default->owl_fs_root/lib/visualpatterns/PatternCustom.inc");
  17 +
  18 + $oPatternCustom = & new PatternCustom();
  19 +
  20 + if (isset($fFolderID)) {
  21 + require_once("$default->owl_fs_root/lib/visualpatterns/PatternTableSqlQuery.inc");
  22 + require_once("$default->owl_fs_root/lib/foldermanagement/Folder.inc");
  23 + require_once("$default->owl_fs_root/lib/foldermanagement/PhysicalFolderManagement.inc");
  24 + require_once("$default->owl_fs_root/lib/subscriptions/SubscriptionEngine.inc");
  25 + require_once("$default->owl_fs_root/presentation/lookAndFeel/knowledgeTree/foldermanagement/folderUI.inc");
  26 + require_once("$default->owl_fs_root/presentation/Html.inc");
  27 + require_once("addFolderUI.inc");
  28 +
  29 + if (!isset($fFolderName)) {
  30 + require_once("$default->owl_fs_root/presentation/webpageTemplate.inc");
  31 + //we're still browsing
  32 + if (Permission::userHasFolderWritePermission($fFolderID)) {
  33 + //if the user is allowed to add folders, then display the add button
  34 + $oPatternCustom->setHtml(renderBrowseAddPage($fFolderID));
  35 + } else {
  36 + //otherwise just let the user browse
  37 + $oPatternCustom->setHtml(renderBrowsePage($fFolderID));
  38 + $main->setErrorMessage("You do not have permission to create new folders in this folder");
  39 + }
  40 + $main->setCentralPayload($oPatternCustom);
  41 + $main->setFormAction("addFolderBL.php?fFolderID=$fFolderID");
  42 + $main->setHasRequiredFields(true);
  43 + $main->render();
  44 + } else {
  45 + //have a folder name to store
  46 + if (Permission::userHasFolderWritePermission($fFolderID)) {
  47 + //check for illegal characters in the folder name
  48 + if (strpos($fFolderName, "\\") === false && strpos($fFolderName, ">") === false &&
  49 + strpos($fFolderName, "<") === false && strpos($fFolderName, ":") === false &&
  50 + strpos($fFolderName, "*") === false && strpos($fFolderName, "?") === false &&
  51 + strpos($fFolderName, "|") === false && strpos($fFolderName, "/") === false &&
  52 + strpos($fFolderName, "\"") === false) {
  53 + if (Folder::folderExistsName($fFolderName, $fFolderID)) {
  54 + require_once("$default->owl_fs_root/presentation/webpageTemplate.inc");
  55 + $oPatternCustom->setHtml(renderBrowseAddPage($fFolderID));
  56 + $main->setCentralPayload($oPatternCustom);
  57 + $main->setErrorMessage("There is another folder named $fFolderName in this folder already");
  58 + $main->setHasRequiredFields(true);
  59 + $main->setFormAction("addFolderBL.php?fFolderID=$fFolderID");
  60 + $main->render();
  61 + } else {
  62 + $oParentFolder = Folder::get($fFolderID);
  63 + //create the folder in the db, giving it the properties of it's parent folder
  64 + $oFolder = &new Folder($fFolderName, "", $fFolderID, $_SESSION["userID"], $oParentFolder->getDocumentTypeID(), $oParentFolder->getUnitID());
  65 + if ($oFolder->create()) {
  66 + //create the folder on the file system
  67 + if (PhysicalFolderManagement::createFolder(Folder::getFolderPath($oFolder->getID()))) {
  68 + // fire subscription alerts for the new folder
  69 + $count = SubscriptionEngine::fireSubscription($oParentFolder->getID(), SubscriptionConstants::subscriptionAlertType("AddFolder"),
  70 + SubscriptionConstants::subscriptionType("FolderSubscription"),
  71 + array( "newFolderName" => $fFolderName,
  72 + "parentFolderName" => $oParentFolder->getName()) );
  73 + $default->log->info("addFolderBL.php fired $count subscription alerts for new folder $fFolderName");
  74 + redirect("$default->owl_root_url/control.php?action=editFolder&fFolderID=" . $oFolder->getID());
  75 + } else {
  76 + //if we couldn't do that, remove the folder from the db and report and error
  77 + $oFolder->delete();
  78 + require_once("$default->owl_fs_root/presentation/webpageTemplate.inc");
  79 + $oPatternCustom->setHtml(renderBrowsePage($fFolderID));
  80 + $main->setCentralPayload($oPatternCustom);
  81 + $main->setErrorMessage("There was an error creating the folder $fFolderName on the filesystem");
  82 + $main->setFormAction("addFolderBL.php?fFolderID=$fFolderID");
  83 + $main->setHasRequiredFields(true);
  84 + $main->render();
  85 + }
  86 + } else {
  87 + //if we couldn't create the folder in the db, report an error
  88 + require_once("$default->owl_fs_root/presentation/webpageTemplate.inc");
  89 + $oPatternCustom->setHtml(renderBrowsePage($fFolderID));
  90 + $main->setCentralPayload($oPatternCustom);
  91 + $main->setErrorMessage("There was an error creating the folder $fFolderName in the database");
  92 + $main->setFormAction("addFolderBL.php?fFolderID=$fFolderID");
  93 + $main->render();
  94 + }
  95 + }
  96 + } else {
  97 + //the user entered an illegal character in the folder name
  98 + require_once("$default->owl_fs_root/presentation/webpageTemplate.inc");
  99 + $oPatternCustom->setHtml(renderBrowseAddPage($fFolderID));
  100 + $main->setCentralPayload($oPatternCustom);
  101 + $main->setErrorMessage("Folder not created. Folder names may not contain: '<', '>', '*', '/', '\', '|', '?' or '\"' ");
  102 + $main->setHasRequiredFields(true);
  103 + $main->setFormAction("addFolderBL.php?fFolderID=$fFolderID");
  104 + $main->render();
  105 + }
  106 +
  107 + } else {
  108 + //if the user doesn't have write permission for this folder,
  109 + //give them only browse facilities
  110 + require_once("$default->owl_fs_root/presentation/webpageTemplate.inc");
  111 + $oPatternCustom->setHtml(renderBrowsePage($fFolderID));
  112 + $main->setCentralPayload($oPatternCustom);
  113 + $main->setErrorMessage("You do not have permission to create new folders in this folder");
  114 + $main->setFormAction("addFolderBL.php?fFolderID=$fFolderID");
  115 + $main->render();
  116 + }
  117 + }
  118 + } else {
  119 + require_once("$default->owl_fs_root/presentation/webpageTemplate.inc");
  120 + $oPatternCustom->setHtml("");
  121 + $main->setCentralPayload($oPatternCustom);
  122 + $main->setErrorMessage("No folder currently selected");
  123 + $main->render();
  124 + }
118 } 125 }
119 126
120 ?> 127 ?>