From 9f4c3d3196dba25051ced5304c5360eed3edabf9 Mon Sep 17 00:00:00 2001 From: Andrew O'Neil Date: Wed, 8 Aug 2007 01:16:02 +0000 Subject: [PATCH] Began interface for comment administration git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/cms/trunk@39725 467b73ca-7a2a-4603-9d3b-597d59a354a9 --- _config.php | 1 + code/FeedbackAdmin.php | 46 ++++++++++++++++++++ code/LeftAndMain.php | 3 +- javascript/FeedbackAdmin_right.js | 18 ++++++++ templates/Includes/FeedbackAdmin_SiteTree.ss | 11 +++++ templates/Includes/FeedbackAdmin_left.ss | 7 +++ templates/Includes/FeedbackAdmin_right.ss | 11 +++++ 7 files changed, 96 insertions(+), 1 deletion(-) create mode 100644 code/FeedbackAdmin.php create mode 100644 javascript/FeedbackAdmin_right.js create mode 100644 templates/Includes/FeedbackAdmin_SiteTree.ss create mode 100644 templates/Includes/FeedbackAdmin_left.ss create mode 100644 templates/Includes/FeedbackAdmin_right.ss diff --git a/_config.php b/_config.php index 99e92ca9..96363ff6 100644 --- a/_config.php +++ b/_config.php @@ -9,6 +9,7 @@ Director::addRules(50, array( 'admin/newsletter/$Action/$ID' => 'NewsletterAdmin', 'admin/reports/$Action/$ID' => 'ReportAdmin', 'admin/assets/$Action/$ID' => 'AssetAdmin', + 'admin/feedback/$Action' => 'FeedbackAdmin', 'admin/ReportField/$Action/$ID/$Type/$OtherID' => 'ReportField_Controller', 'admin/bulkload/$Action/$ID/$OtherID' => 'BulkLoaderAdmin', 'admin/$Action/$ID/$OtherID' => 'CMSMain', diff --git a/code/FeedbackAdmin.php b/code/FeedbackAdmin.php new file mode 100644 index 00000000..63353f7e --- /dev/null +++ b/code/FeedbackAdmin.php @@ -0,0 +1,46 @@ +getLastFormIn($this->renderWith('FeedbackAdmin_right')); + } + + public function EditForm() { + $url = rtrim($_SERVER['REQUEST_URI'], '/'); + $section = substr($url, strrpos($url, '/') + 1); + + if($section != 'accepted' && $section != 'unmoderated' && $section != 'spam') { + $section = 'accepted'; + } + + if($section == 'accepted') { + $filter = 'IsSpam=0 AND NeedsModeration=0'; + } else if($section == 'unmoderation') { + $filter = 'NeedsModeration=1'; + } else { + $filter = 'IsSpam=1'; + } + + $idField = new HiddenField('ID'); + $table = new ComplexTableField($this, "Comments", "PageComment", array("Name" => "Name", "Comment" => "Comment"), new FieldSet(), $filter); + + $fields = new FieldSet($idField, $table); + $actions = new FieldSet(); + $form = new Form($this, "EditForm", $fields, $actions); + + return $form; + } +} + +?> \ No newline at end of file diff --git a/code/LeftAndMain.php b/code/LeftAndMain.php index e462cefe..84450bac 100644 --- a/code/LeftAndMain.php +++ b/code/LeftAndMain.php @@ -154,6 +154,7 @@ abstract class LeftAndMain extends Controller { "Newsletters" => array("newsletter", "admin/newsletter/", "NewsletterAdmin"), "Reports" => array("report", "admin/reports/", "ReportAdmin"), "Security" => array("security", "admin/security/", "SecurityAdmin"), + "Feedback" => array("feedback", "admin/feedback/", "FeedbackAdmin"), "Help" => array("help", "http://userhelp.silverstripe.com"), ); @@ -641,7 +642,7 @@ JS; public function currentPageID() { if(isset($_REQUEST['ID']) && is_numeric($_REQUEST['ID'])) { return $_REQUEST['ID']; - } elseif (is_numeric($this->urlParams['ID'])) { + } elseif (isset($this->urlParams['ID']) && is_numeric($this->urlParams['ID'])) { return $this->urlParams['ID']; } elseif(Session::get("{$this->class}.currentPage")) { return Session::get("{$this->class}.currentPage"); diff --git a/javascript/FeedbackAdmin_right.js b/javascript/FeedbackAdmin_right.js new file mode 100644 index 00000000..8a97178d --- /dev/null +++ b/javascript/FeedbackAdmin_right.js @@ -0,0 +1,18 @@ +Behaviour.register({ + '#Form_EditForm' : { + getPageFromServer : function(id) { + statusMessage("loading..."); + + var requestURL = 'admin/feedback/showtable/' + id; + new Ajax.Request(requestURL, { + asynchronous : true, + method : 'post', + postBody : 'ajax=1', + onSuccess : this.successfullyReceivedPage.bind(this), + onFailure : function(response) { + errorMessage('error loading page',response); + } + }); + } + } +}); \ No newline at end of file diff --git a/templates/Includes/FeedbackAdmin_SiteTree.ss b/templates/Includes/FeedbackAdmin_SiteTree.ss new file mode 100644 index 00000000..4dda2ebf --- /dev/null +++ b/templates/Includes/FeedbackAdmin_SiteTree.ss @@ -0,0 +1,11 @@ + \ No newline at end of file diff --git a/templates/Includes/FeedbackAdmin_left.ss b/templates/Includes/FeedbackAdmin_left.ss new file mode 100644 index 00000000..dfbdb467 --- /dev/null +++ b/templates/Includes/FeedbackAdmin_left.ss @@ -0,0 +1,7 @@ +
Feedback
+ +
+
+ <% include FeedbackAdmin_SiteTree %> +
+
\ No newline at end of file diff --git a/templates/Includes/FeedbackAdmin_right.ss b/templates/Includes/FeedbackAdmin_right.ss new file mode 100644 index 00000000..5e7bcaef --- /dev/null +++ b/templates/Includes/FeedbackAdmin_right.ss @@ -0,0 +1,11 @@ +
Feedback Management
+ +<% if EditForm %> + $EditForm +<% else %> +
+

Welcome to the $ApplicationName feedback management. Please select a folder in the tree on the left.

+
+<% end_if %> + +