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 3 * Business logic page that provides business logic for adding a folder (uses
4 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 9 * @author Rob Cherry, Jam Warehouse (Pty) Ltd, South Africa
10 10 * @date 27 January 2003
... ... @@ -12,109 +12,116 @@
12 12 */
13 13  
14 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 ?>
... ...