Commit ca6455e764811ac36e27ec74a2c6c89778654d75

Authored by michael
1 parent 345bdee5

completed dashboard news administration pages


git-svn-id: https://kt-dms.svn.sourceforge.net/svnroot/kt-dms/trunk@1795 c91229c3-7414-0410-bfa2-8a42b809f60b
presentation/lookAndFeel/knowledgeTree/administration/news/addNewsBL.php 0 → 100644
  1 +<?php
  2 +
  3 +require_once("../../../../../config/dmsDefaults.php");
  4 +require_once("$default->fileSystemRoot/lib/dashboard/DashboardNews.inc");
  5 +require_once("$default->fileSystemRoot/lib/visualpatterns/PatternMainPage.inc");
  6 +require_once("$default->fileSystemRoot/lib/visualpatterns/PatternCustom.inc");
  7 +require_once("$default->fileSystemRoot/lib/visualpatterns/PatternTableSqlQuery.inc");
  8 +require_once("$default->uiDirectory/administration/news/newsUI.inc");
  9 +
  10 +/**
  11 + * $Id$
  12 + *
  13 + * Business logic for adding a news item
  14 + *
  15 + * Licensed under the GNU GPL. For full terms see the file DOCS/COPYING.
  16 + *
  17 + * @version $Revision$
  18 + * @author Michael Joseph <michael@jamwarehouse.com>, Jam Warehouse (Pty) Ltd, South Africa
  19 + * @package presentation.lookAndFeel.knowledgeTree.administration.news
  20 + */
  21 +
  22 +if (checkSession()) {
  23 + global $default;
  24 +
  25 + // instantiate my content pattern
  26 + $oContent = new PatternCustom();
  27 +
  28 + // check that we have all the required parameters
  29 + if ($fStore) {
  30 + // construct the news object
  31 + $oDashboardNews = new DashboardNews($fSynopsis, $fBody, $fRank);
  32 +
  33 + if (isset($fSynopsis) && isset($fBody) && isset($fRank)) {
  34 + // if we have a new image
  35 + if (strlen($_FILES['fImage']['name']) > 0) {
  36 + // return the size of the image
  37 + $aSize = getimagesize($_FILES['fImage']['tmp_name']);
  38 + // don't accept it if it isn't an image
  39 + if (!$aSize) {
  40 + $default->log->error("addNewsBL.php attempted to upload a non-image:" . $_FILES['fImage']['tmp_name']);
  41 + $oContent->setHtml(renderAddNewsPage($oDashboardNews, "You may only upload an image file."));
  42 + } else {
  43 + // we have an image, now check the size
  44 + $iImgWidth = $aSize[0];
  45 + $iImgHeight = $aSize[1];
  46 + if ($oDashboardNews->checkImageSize($iImgWidth, $iImgHeight)) {
  47 + // size is fine, so set it
  48 + $default->log->info("setting image file=" . $_FILES['fImage']['tmp_name']);
  49 + $oDashboardNews->setImageFile($_FILES['fImage']['tmp_name']);
  50 +
  51 + // store it
  52 + if ($oDashboardNews->create()) {
  53 + $default->log->info("addNewsBL.php successfully created dashboard news id=" . $oDashboardNews->getID());
  54 + // redirect to view page
  55 + redirect("$default->rootUrl/control.php?action=viewNews");
  56 + } else {
  57 + // insert failed
  58 + $default->log->error("addNewsBL.php DB error inserting dashboard news ($fSynopsis, $fBody, $fRank, with image)");
  59 + $oContent->setHtml(renderAddNewsPage($oDashboardNews, "An error occurred while creating this news item."));
  60 + }
  61 +
  62 + } else {
  63 + // the image is too big
  64 + $oContent->setHtml(renderAddNewsPage($oDashboardNews, "The image you have submitted is too big (" . $iImgHeight . "x" . $iImgWidth . " > " . $oDashboardNews->getMaxImageDimensions() . "), please correct and retry"));
  65 + }
  66 + }
  67 + } else {
  68 + $default->log->info("no image");
  69 + // no image uploaded, store what we've got
  70 + $default->log->info("about to create");
  71 + if ($oDashboardNews->create()) {
  72 + // insert worked
  73 + $default->log->info("addNewsBL.php successfully created dashboard news id=" . $oDashboardNews->getID());
  74 + // redirect to view page
  75 + redirect("$default->rootUrl/control.php?action=viewNews");
  76 + } else {
  77 + // insert failed
  78 + $default->log->error("addNewsBL.php DB error inserting dashboard news ($fSynopsis, $fBody, $fRank, no image)");
  79 + $oContent->setHtml(renderAddNewsPage($oDashboardNews, "An error occurred while creating this news item."));
  80 + }
  81 + }
  82 + } else {
  83 + // all params not present, so display an error message
  84 + $oContent->setHtml(renderAddNewsPage($oDashboardNews, "Please complete the form before submitting."));
  85 + }
  86 + } else {
  87 + // display the form
  88 + $oContent->setHtml(renderAddNewsPage(null));
  89 + }
  90 +
  91 + // build the page
  92 + require_once("$default->fileSystemRoot/presentation/webpageTemplate.inc");
  93 + $main->setCentralPayload($oContent);
  94 + $main->setFormEncType("multipart/form-data");
  95 + $main->setFormAction($_SERVER['PHP_SELF']);
  96 + $main->setHasRequiredFields(true);
  97 + $main->render();
  98 +}
  99 +?>
0 \ No newline at end of file 100 \ No newline at end of file
presentation/lookAndFeel/knowledgeTree/administration/news/editNewsBL.php
@@ -41,21 +41,54 @@ if (checkSession()) { @@ -41,21 +41,54 @@ if (checkSession()) {
41 if ($oDashboardNews->getRank() <> $fRank) { 41 if ($oDashboardNews->getRank() <> $fRank) {
42 $oDashboardNews->setRank($fRank); 42 $oDashboardNews->setRank($fRank);
43 } 43 }
44 - // if we have a new image  
45 - // TODO: check that it is an image  
46 - if (strlen($_FILES['fImage']['name']) > 0) {  
47 - $oDashboardNews->setImageFile($_FILES['fImage']['tmp_name']);  
48 - }  
49 -  
50 - if ($oDashboardNews->update()) {  
51 - $default->log->info("editNewsBL.php successfully updated dashboard news id=$fNewsID");  
52 - // redirect to view page  
53 - redirect("$default->rootUrl/control.php?action=viewNews"); 44 + // if we have a new image
  45 + if (strlen($_FILES['fImage']['name']) > 0) {
  46 + // return the size of the image
  47 + $aSize = getimagesize($_FILES['fImage']['tmp_name']);
  48 + // don't accept it if it isn't an image
  49 + if (!$aSize) {
  50 + $default->log->error("editNewsBL.php attempted to upload a non-image:" . $_FILES['fImage']['name']);
  51 + // display the edit form, with error message
  52 + $oContent->setHtml(renderEditNewsPage($oDashboardNews, "You may only upload an image."));
  53 +
  54 + } else {
  55 + // we have an image, now check the size
  56 + $iImgWidth = $aSize[0];
  57 + $iImgHeight = $aSize[1];
  58 + if (DashboardNews::checkImageSize($iImgWidth, $iImgHeight)) {
  59 + // size is fine, so set it
  60 + $oDashboardNews->setImageFile($_FILES['fImage']['tmp_name']);
  61 +
  62 + // store it
  63 + if ($oDashboardNews->update()) {
  64 + $default->log->info("editNewsBL.php successfully updated dashboard news id=$fNewsID");
  65 + // redirect to view page
  66 + redirect("$default->rootUrl/control.php?action=viewNews");
  67 + } else {
  68 + // update failed
  69 + $default->log->error("editNewsBL.php DB error updating dashboard news id=$fNewsID; ($fSynopsis, $fBody, $fRank)");
  70 + // display the edit form, with error message
  71 + $oContent->setHtml(renderEditNewsPage($oDashboardNews, "An error occurred while updating this news item."));
  72 + }
  73 +
  74 + } else {
  75 + // the image is too big
  76 + $oContent->setHtml(renderEditNewsPage($oDashboardNews, "The image you have submitted is too big (" . $iImgHeight . "x" . $iImgWidth . " > " . $oDashboardNews->getMaxImageDimensions() . "), please correct and retry"));
  77 + }
  78 + }
54 } else { 79 } else {
55 - // update failed  
56 - $default->log->error("editNewsBL.php DB error updating dashboard news id=$fNewsID; ($fSynopsis, $fBody, $fRank)");  
57 - $oContent->setHtml(renderErrorMessage("An error occurred while updating this news item."));  
58 - } 80 + // store it
  81 + if ($oDashboardNews->update()) {
  82 + $default->log->info("editNewsBL.php successfully updated dashboard news id=$fNewsID");
  83 + // redirect to view page
  84 + redirect("$default->rootUrl/control.php?action=viewNews");
  85 + } else {
  86 + // update failed
  87 + $default->log->error("editNewsBL.php DB error updating dashboard news id=$fNewsID; ($fSynopsis, $fBody, $fRank)");
  88 + $oContent->setHtml(renderErrorMessage("An error occurred while updating this news item."));
  89 + }
  90 + }
  91 +
59 } else { 92 } else {
60 // display the edit form 93 // display the edit form
61 $oContent->setHtml(renderEditNewsPage($oDashboardNews)); 94 $oContent->setHtml(renderEditNewsPage($oDashboardNews));
presentation/lookAndFeel/knowledgeTree/administration/news/manageNewsBL.php
@@ -28,12 +28,9 @@ if (checkSession()) { @@ -28,12 +28,9 @@ if (checkSession()) {
28 // we have an id, so we're either deleting, editing or previewing a current item 28 // we have an id, so we're either deleting, editing or previewing a current item
29 } else { 29 } else {
30 // no news id, so list the current news items 30 // no news id, so list the current news items
31 - $oContent->setHtml(renderViewNewsPage()); 31 + $oContent->setHtml(renderListNewsPage());
32 } 32 }
33 33
34 - //$main->setFormAction("$default->rootUrl/presentation/lookAndFeel/knowledgeTree/create.php?fRedirectURL=".urlencode("$default->rootUrl/control.php?action=addLinkSuccess&fLinkID="));  
35 - //$main->setHasRequiredFields(true);  
36 -  
37 // build the page 34 // build the page
38 require_once("$default->fileSystemRoot/presentation/webpageTemplate.inc"); 35 require_once("$default->fileSystemRoot/presentation/webpageTemplate.inc");
39 $main->setCentralPayload($oContent); 36 $main->setCentralPayload($oContent);
presentation/lookAndFeel/knowledgeTree/administration/news/newsUI.inc
@@ -6,28 +6,15 @@ require_once(&quot;$default-&gt;uiDirectory/administration/adminUI.inc&quot;); @@ -6,28 +6,15 @@ require_once(&quot;$default-&gt;uiDirectory/administration/adminUI.inc&quot;);
6 /** 6 /**
7 * $Id$ 7 * $Id$
8 * 8 *
9 - * This page controls browsing for documents- this can be done either by  
10 - * folder, category or document type.  
11 - * The relevant permission checking is performed, calls to the business logic  
12 - * layer to retrieve the details of the documents to view are made and the user  
13 - * interface is contructed. 9 + * This page holds all presentation code for administering dashboard news.
14 * 10 *
15 * Licensed under the GNU GPL. For full terms see the file DOCS/COPYING. 11 * Licensed under the GNU GPL. For full terms see the file DOCS/COPYING.
16 * 12 *
17 * @version $Revision$ 13 * @version $Revision$
18 * @author Michael Joseph <michael@jamwarehouse.com>, Jam Warehouse (Pty) Ltd, South Africa 14 * @author Michael Joseph <michael@jamwarehouse.com>, Jam Warehouse (Pty) Ltd, South Africa
19 - * @package presentation.lookAndFeel.knowledgeTree.documentmanagement 15 + * @package presentation.lookAndFeel.knowledgeTree.administration.news
20 */ 16 */
21 17
22 -/**  
23 - * Displays an error message  
24 - */  
25 -function renderErrorMessage($sErrorMessage) {  
26 - $sToRender = "<table>";  
27 - $sToRender .= "<tr><td><p><font color=\"red\">$sErrorMessage</font></p></td></tr>";  
28 - $sToRender .= "</table>";  
29 - return $sToRender;  
30 -}  
31 18
32 function renderNewsPopupJavascript() { 19 function renderNewsPopupJavascript() {
33 global $default; 20 global $default;
@@ -42,11 +29,21 @@ function renderNewsPopupJavascript() { @@ -42,11 +29,21 @@ function renderNewsPopupJavascript() {
42 } 29 }
43 30
44 /** 31 /**
  32 + * Displays an error message
  33 + */
  34 +function renderErrorMessage($sErrorMessage) {
  35 + $sToRender = "<table>";
  36 + $sToRender .= "<tr><td><p><font color=\"red\">$sErrorMessage</font></p></td></tr>";
  37 + $sToRender .= "</table>";
  38 + return $sToRender;
  39 +}
  40 +
  41 +/**
45 * Displays the current news items 42 * Displays the current news items
46 */ 43 */
47 function renderNewsTable() { 44 function renderNewsTable() {
48 global $default; 45 global $default;
49 - $sQuery = "SELECT id, synopsis, body, rank, if((length(image)>0),'yes','no') as image, 'Edit' AS edit, 'Preview' AS preview, 'Delete' AS del " . 46 + $sQuery = "SELECT id, synopsis, IF(LENGTH(body) > 25, CONCAT(LEFT(body,25),'...'), body) AS body, rank, IF(LENGTH(image)>0, 'yes', 'no') as image, 'Edit' AS edit, 'Preview' AS preview, 'Delete' AS del " .
50 "FROM $default->owl_news_table ORDER BY rank ASC"; 47 "FROM $default->owl_news_table ORDER BY rank ASC";
51 $aColumns = array("synopsis", "body", "rank", "image", "edit", "preview", "del"); 48 $aColumns = array("synopsis", "body", "rank", "image", "edit", "preview", "del");
52 $aColumnHeaders = array("Synopsis", "Body", "Rank", "Image"); 49 $aColumnHeaders = array("Synopsis", "Body", "Rank", "Image");
@@ -57,65 +54,78 @@ function renderNewsTable() { @@ -57,65 +54,78 @@ function renderNewsTable() {
57 5=> "$default->rootUrl/control.php?action=previewNews", 54 5=> "$default->rootUrl/control.php?action=previewNews",
58 6=> "$default->rootUrl/control.php?action=removeNews"); 55 6=> "$default->rootUrl/control.php?action=removeNews");
59 56
60 - $oPatternTableSqlQuery = & new PatternTableSqlQuery($sQuery, $aColumns, $aColumnTypes, $aColumnHeaders, "10%", $aLinkURLs,$aDBColumnArray,$aQueryStringVariableNames); 57 + $oPatternTableSqlQuery = & new PatternTableSqlQuery($sQuery, $aColumns, $aColumnTypes, $aColumnHeaders, "100%", $aLinkURLs,$aDBColumnArray,$aQueryStringVariableNames);
61 $oPatternTableSqlQuery->setTableHeading("Dashboard News"); 58 $oPatternTableSqlQuery->setTableHeading("Dashboard News");
62 $oPatternTableSqlQuery->setDisplayColumnHeadings(true); 59 $oPatternTableSqlQuery->setDisplayColumnHeadings(true);
63 return $oPatternTableSqlQuery->render(); 60 return $oPatternTableSqlQuery->render();
64 } 61 }
65 62
66 /** 63 /**
  64 + * Displays a news item
  65 + */
  66 +function renderNewsItem($oDashboardNews) {
  67 + global $default;
  68 +
  69 + $sToRender .= "<tr><td>Synopsis:</td><td>" . $oDashboardNews->getSynopsis() . "</td></tr>";
  70 + $sToRender .= "<tr><td>Body:</td><td>" . $oDashboardNews->getBody() . "</td></tr>";
  71 + $sToRender .= "<tr><td>Rank:</td><td>" . $oDashboardNews->getRank() . "</td></tr>";
  72 + $sToRender .= "<tr><td colspan=\"2\"><img src=\"$default->rootUrl/" . $default->siteMap->getPage("viewNewsImage") . "?fNewsID=" . $oDashboardNews->getID() . "\" border=\"0\"></td></tr>";
  73 + $sToRender .= "<input type=\"hidden\" name=\"fNewsID\" value=\"" . $oDashboardNews->getID() . "\">";
  74 + return $sToRender;
  75 +}
  76 +
  77 +/**
67 * Displays the edit/add news item form 78 * Displays the edit/add news item form
68 * 79 *
69 * @param DashboardNews the news item to modify 80 * @param DashboardNews the news item to modify
70 */ 81 */
71 -function renderModifyAddNewsForm($oDashboardNews = null) { 82 +function renderEditAddNewsForm($oDashboardNews, $bUpdate) {
72 global $default; 83 global $default;
73 84
74 $sToRender = "<table>"; 85 $sToRender = "<table>";
75 - $sToRender .= "<tr><td>Synopsis</td><td><input type=\"text\" name=\"fSynopsis\" value=\"" . ($oDashboardNews ? $oDashboardNews->getSynopsis() : "") . "\"></td></tr>";  
76 - $sToRender .= "<tr><td>Body</td><td><input type=\"textarea\" name=\"fBody\" value=\"" . ($oDashboardNews ? $oDashboardNews->getBody() : "") . "\"></td></tr>";  
77 - $sToRender .= "<tr><td>Rank</td><td><input type=\"text\" name=\"fRank\" value=\"" . ($oDashboardNews ? $oDashboardNews->getRank() : "") . "\"></td></tr>";  
78 - $sToRender .= "<tr><td>Image</td><td><input type=\"file\" name=\"fImage\"></td></tr>";  
79 - $sToRender .= (isset($oDashboardNews) ? "<input type=\"hidden\" name=\"fNewsID\" value=\"" . $oDashboardNews->getID() . "\">" : "");  
80 - $sToRender .= "<input type=\"hidden\" name=\"fUpdate\" value=\"1\">"; 86 +
  87 + $sToRender .= "<tr><td>Synopsis:</td><td><input type=\"text\" name=\"fSynopsis\" value=\"" . ($oDashboardNews ? $oDashboardNews->getSynopsis() : "") . "\"></td></tr>";
  88 + $sToRender .= "<tr><td>Body:</td><td><textarea name=\"fBody\" cols=\"35\" rows=\"10\">" . ($oDashboardNews ? $oDashboardNews->getBody() : "") . "</textarea></td></tr>";
  89 + $sToRender .= "<tr><td>Rank:</td><td><input type=\"text\" name=\"fRank\" value=\"" . ($oDashboardNews ? $oDashboardNews->getRank() : "") . "\"></td></tr>";
  90 + $sToRender .= "<tr><td>Image:</td><td><input type=\"file\" name=\"fImage\"></td></tr>";
  91 +
  92 + if ($bUpdate) {
  93 + $sToRender .= "<input type=\"hidden\" name=\"fNewsID\" value=\"" . $oDashboardNews->getID() . "\">";
  94 + $sToRender .= "<input type=\"hidden\" name=\"fUpdate\" value=\"1\">";
  95 + } else {
  96 + $sToRender .= "<input type=\"hidden\" name=\"fStore\" value=\"1\">";
  97 + }
  98 +
81 $sToRender .= "<tr><td><input type=\"image\" src=\"$default->graphicsUrl/widgets/submit.gif\" border=\"0\">\n"; 99 $sToRender .= "<tr><td><input type=\"image\" src=\"$default->graphicsUrl/widgets/submit.gif\" border=\"0\">\n";
82 $sToRender .= "<a href=\"$default->rootUrl/control.php?action=viewNews\"><img src=\"$default->graphicsUrl/widgets/cancel.gif\" border=\"0\"></a></td></tr>\n"; 100 $sToRender .= "<a href=\"$default->rootUrl/control.php?action=viewNews\"><img src=\"$default->graphicsUrl/widgets/cancel.gif\" border=\"0\"></a></td></tr>\n";
83 $sToRender .= "</table>"; 101 $sToRender .= "</table>";
  102 +
  103 + $sToRender .= "\n\n<script language=\"javascript\">\n<!--\n";
  104 + $sToRender .= "function validateForm(theForm) {\n";
  105 + $sToRender .= "\tif (!(validRequired(theForm.fSynopsis,'Synopsis'))) {\n";
  106 + $sToRender .= "\t\treturn false;\n\t}\n";
  107 + $sToRender .= "\tif (!(validRequired(theForm.fBody,'Body'))) {\n";
  108 + $sToRender .= "\t\treturn false;\n\t}\n";
  109 + $sToRender .= "\tif (!(validNum(theForm.fRank,'Rank')) || !(validRequired(theForm.fRank,'Rank'))) {\n";
  110 + $sToRender .= "\t\treturn false;\n\t}\n";
  111 + $sToRender .= "return true;\n}\n";
  112 + $sToRender .= "//-->\n</script>\n\n";
  113 +
84 return $sToRender; 114 return $sToRender;
85 } 115 }
86 -  
87 -/**  
88 - * Prompts for confirmation when deleting a news item  
89 - */  
90 -function renderDeleteNewsConfirmationPage($oDashboardNews) {  
91 - global $default;  
92 -  
93 - $sToRender .= "<table width=\"600\">" . renderHeading("Delete Dashboard News") . "</table>";  
94 - $sToRender .= "<table>\n";  
95 - $sToRender .= "<tr><td>Are you sure you wish to delete this news item?</td></tr>";  
96 116
97 - $sToRender .= "<tr><td>Synopsis</td><td>" . $oDashboardNews->getSynopsis() . "</td></tr>";  
98 - $sToRender .= "<tr><td>Body</td><td>" . $oDashboardNews->getBody() . "</td></tr>";  
99 - $sToRender .= "<tr><td>Rank</td><td>" . $oDashboardNews->getRank() . "</td></tr>";  
100 - $sToRender .= "<tr><td colspan=\"2\"><img src=\"$default->rootUrl/" . $default->siteMap->getPage("viewNewsImage") . "?fNewsID=" . $oDashboardNews->getID() . "\" border=\"0\"></td></tr>";  
101 - $sToRender .= "<input type=\"hidden\" name=\"fNewsID\" value=\"" . $oDashboardNews->getID() . "\">";  
102 - $sToRender .= "<input type=\"hidden\" name=\"fDeleteConfirmed\" value=\"1\">";  
103 - $sToRender .= "<tr><td><input type=\"image\" src=\"$default->graphicsUrl/widgets/delete.gif\" border=\"0\">\n";  
104 - $sToRender .= "<a href=\"$default->rootUrl/control.php?action=viewNews\"><img src=\"$default->graphicsUrl/widgets/cancel.gif\" border=\"0\"></a></td></tr>\n";  
105 -  
106 - $sToRender .= "</table>\n";  
107 - return $sToRender;  
108 -}  
109 -  
110 /** 117 /**
111 * Displays the edit news page 118 * Displays the edit news page
112 */ 119 */
113 -function renderEditNewsPage($oDashboardNews) { 120 +function renderEditNewsPage($oDashboardNews, $sErrorMessage = "") {
114 global $default; 121 global $default;
115 122
116 $sToRender .= "<table width=\"600\">" . renderHeading("Edit Dashboard News") . "</table>"; 123 $sToRender .= "<table width=\"600\">" . renderHeading("Edit Dashboard News") . "</table>";
  124 + if (strlen($sErrorMessage) > 0) {
  125 + $sToRender .= renderErrorMessage($sErrorMessage);
  126 + }
117 $sToRender .= "<table>\n"; 127 $sToRender .= "<table>\n";
118 - $sToRender .= renderModifyAddNewsForm($oDashboardNews); 128 + $sToRender .= renderEditAddNewsForm($oDashboardNews, true);
119 $sToRender .= "</table>\n"; 129 $sToRender .= "</table>\n";
120 return $sToRender; 130 return $sToRender;
121 } 131 }
@@ -123,19 +133,22 @@ function renderEditNewsPage($oDashboardNews) { @@ -123,19 +133,22 @@ function renderEditNewsPage($oDashboardNews) {
123 /** 133 /**
124 * Displays the add new new item page 134 * Displays the add new new item page
125 */ 135 */
126 -function renderNewNewsPage() { 136 +function renderAddNewsPage($oDashboardNews, $sErrorMessage = "") {
127 global $default; 137 global $default;
128 138
129 $sToRender .= "<table width=\"600\">" . renderHeading("View Dashboard News") . "</table>"; 139 $sToRender .= "<table width=\"600\">" . renderHeading("View Dashboard News") . "</table>";
  140 + if (strlen($sErrorMessage) > 0) {
  141 + $sToRender .= renderErrorMessage($sErrorMessage);
  142 + }
130 $sToRender .= "<table>\n"; 143 $sToRender .= "<table>\n";
131 - $sToRender .= renderModifyAddNewsForm(); 144 + $sToRender .= renderEditAddNewsForm($oDashboardNews, false);
132 $sToRender .= "</table>\n"; 145 $sToRender .= "</table>\n";
133 return $sToRender; 146 return $sToRender;
134 } 147 }
135 /** 148 /**
136 * Displays a list of news items 149 * Displays a list of news items
137 */ 150 */
138 -function renderViewNewsPage() { 151 +function renderListNewsPage() {
139 global $default; 152 global $default;
140 153
141 $sToRender .= "<table width=\"600\">" . renderHeading("View Dashboard News") . "</table>"; 154 $sToRender .= "<table width=\"600\">" . renderHeading("View Dashboard News") . "</table>";
@@ -143,5 +156,39 @@ function renderViewNewsPage() { @@ -143,5 +156,39 @@ function renderViewNewsPage() {
143 $sToRender .= renderNewsTable(); 156 $sToRender .= renderNewsTable();
144 $sToRender .= "</table>\n"; 157 $sToRender .= "</table>\n";
145 return $sToRender; 158 return $sToRender;
  159 +}
  160 +
  161 +/**
  162 + * Displays the preview page
  163 + */
  164 +function renderPreviewNewsPage($oDashboardNews) {
  165 + global $default;
  166 +
  167 + $sToRender .= "<table width=\"600\">" . renderHeading("Preview Dashboard News") . "</table>";
  168 + $sToRender .= "<table>\n";
  169 + $sToRender .= renderNewsItem($oDashboardNews);
  170 + $sToRender .= "<tr><td><a href=\"$default->rootUrl/control.php?action=viewNews\"><img src=\"$default->graphicsUrl/widgets/back.gif\" border=\"0\"></a></td></tr>\n";
  171 + $sToRender .= "</table>\n";
  172 + return $sToRender;
146 } 173 }
  174 +
  175 +/**
  176 + * Prompts for confirmation when deleting a news item
  177 + */
  178 +function renderDeleteNewsConfirmationPage($oDashboardNews) {
  179 + global $default;
  180 +
  181 + $sToRender .= "<table width=\"600\">" . renderHeading("Delete Dashboard News") . "</table>";
  182 + $sToRender .= "<table>\n";
  183 + $sToRender .= "<tr><td colspan=\"2\">Are you sure you wish to delete this news item?</td></tr>";
  184 +
  185 + $sToRender .= renderNewsItem($oDashboardNews);
  186 +
  187 + $sToRender .= "<input type=\"hidden\" name=\"fDeleteConfirmed\" value=\"1\">";
  188 + $sToRender .= "<tr><td><input type=\"image\" src=\"$default->graphicsUrl/widgets/delete.gif\" border=\"0\">\n";
  189 + $sToRender .= "<a href=\"$default->rootUrl/control.php?action=viewNews\"><img src=\"$default->graphicsUrl/widgets/cancel.gif\" border=\"0\"></a></td></tr>\n";
  190 +
  191 + $sToRender .= "</table>\n";
  192 + return $sToRender;
  193 +}
147 ?> 194 ?>
148 \ No newline at end of file 195 \ No newline at end of file
presentation/lookAndFeel/knowledgeTree/administration/news/previewNewsBL.php 0 → 100644
  1 +<?php
  2 +
  3 +require_once("../../../../../config/dmsDefaults.php");
  4 +require_once("$default->fileSystemRoot/lib/dashboard/DashboardNews.inc");
  5 +require_once("$default->fileSystemRoot/lib/visualpatterns/PatternMainPage.inc");
  6 +require_once("$default->fileSystemRoot/lib/visualpatterns/PatternCustom.inc");
  7 +require_once("$default->fileSystemRoot/lib/visualpatterns/PatternTableSqlQuery.inc");
  8 +require_once("$default->uiDirectory/administration/news/newsUI.inc");
  9 +
  10 +/**
  11 + * $Id$
  12 + *
  13 + * This page previews a news item
  14 + *
  15 + * Licensed under the GNU GPL. For full terms see the file DOCS/COPYING.
  16 + *
  17 + * @version $Revision$
  18 + * @author Michael Joseph <michael@jamwarehouse.com>, Jam Warehouse (Pty) Ltd, South Africa
  19 + * @package presentation.lookAndFeel.knowledgeTree.administration.news
  20 + */
  21 +
  22 +if (checkSession()) {
  23 +
  24 + // instantiate my content pattern
  25 + $oContent = new PatternCustom();
  26 +
  27 + if (isset($fNewsID)) {
  28 + // we have an id, so we're can proceed
  29 + $oContent->setHtml(renderPreviewNewsPage(DashboardNews::get($fNewsID)));
  30 + } else {
  31 + // no news id, nothing to preview
  32 + $oContent->setHtml(renderListNewsPage());
  33 + }
  34 +
  35 + // build the page
  36 + require_once("$default->fileSystemRoot/presentation/webpageTemplate.inc");
  37 + $main->setCentralPayload($oContent);
  38 + $main->render();
  39 +}
  40 +?>
0 \ No newline at end of file 41 \ No newline at end of file
presentation/lookAndFeel/knowledgeTree/administration/news/removeNewsBL.php
@@ -31,13 +31,14 @@ if (checkSession()) { @@ -31,13 +31,14 @@ if (checkSession()) {
31 if ($fDeleteConfirmed) { 31 if ($fDeleteConfirmed) {
32 // confirmation received, so delete 32 // confirmation received, so delete
33 if ($oDashboardNews->delete()) { 33 if ($oDashboardNews->delete()) {
34 - $default->log->info("deleteNewsBL.php successfully delete dashboard news id=$fNewsID"); 34 + $default->log->info("deleteNewsBL.php successfully deleted dashboard news id=$fNewsID");
35 // redirect to view page 35 // redirect to view page
36 redirect("$default->rootUrl/control.php?action=viewNews"); 36 redirect("$default->rootUrl/control.php?action=viewNews");
37 } else { 37 } else {
38 // delete failed 38 // delete failed
39 $default->log->error("deleteNewsBL.php DB error deleting dashboard news (" . arrayToString($oDashboardNews) . ")"); 39 $default->log->error("deleteNewsBL.php DB error deleting dashboard news (" . arrayToString($oDashboardNews) . ")");
40 $oContent->setHtml(renderErrorMessage("An error occurred while deleting this news item.")); 40 $oContent->setHtml(renderErrorMessage("An error occurred while deleting this news item."));
  41 + // TODO: incorporate message into another page
41 } 42 }
42 } else { 43 } else {
43 // display the delete confirmation page 44 // display the delete confirmation page
@@ -46,6 +47,7 @@ if (checkSession()) { @@ -46,6 +47,7 @@ if (checkSession()) {
46 } else { 47 } else {
47 // no news id, so display an error message 48 // no news id, so display an error message
48 $oContent->setHtml(renderErrorMessage("No news item was selected for deletion")); 49 $oContent->setHtml(renderErrorMessage("No news item was selected for deletion"));
  50 + // TODO: incorporate message into another page
49 } 51 }
50 52
51 // build the page 53 // build the page