summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--actions/newnotice.php6
-rw-r--r--classes/Channel.php27
2 files changed, 32 insertions, 1 deletions
diff --git a/actions/newnotice.php b/actions/newnotice.php
index 932099c60..8ac36320d 100644
--- a/actions/newnotice.php
+++ b/actions/newnotice.php
@@ -66,7 +66,11 @@ class NewnoticeAction extends Action {
$cmd = $inter->handle_command($user, $content_shortened);
if ($cmd) {
- $cmd->execute(new WebChannel());
+ if ($this->boolean('ajax')) {
+ $cmd->execute(new AjaxWebChannel());
+ } else {
+ $cmd->execute(new WebChannel());
+ }
return;
}
diff --git a/classes/Channel.php b/classes/Channel.php
index 87f02b316..34735c450 100644
--- a/classes/Channel.php
+++ b/classes/Channel.php
@@ -120,6 +120,33 @@ class WebChannel extends Channel {
}
}
+
+class AjaxWebChannel extends WebChannel {
+
+ function output($user, $text) {
+ common_start_html('text/xml;charset=utf-8', false);
+ common_element_start('head');
+ common_element('title', null, _('Command results'));
+ common_element_end('head');
+ common_element_start('body');
+ common_element('p', array('class' => 'command_results'), $text);
+ common_element_end('body');
+ common_element_end('html');
+ }
+
+ function error($user, $text) {
+ common_start_html('text/xml;charset=utf-8', false);
+ common_element_start('head');
+ common_element('title', null, _('Ajax Error'));
+ common_element_end('head');
+ common_element_start('body');
+ common_element('p', array('class' => 'error'), $text);
+ common_element_end('body');
+ common_element_end('html');
+ }
+}
+
+
class MailChannel extends Channel {
var $addr = NULL;