From 407ce3bd8fa6ef6fe3c73d41bb0a0d11e64bac99 Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Tue, 9 Dec 2008 16:06:54 -0500 Subject: [PATCH] New AjaxWebChannel for returning ajaxy responses to notice input box commands darcs-hash:20081209210654-7b5ce-2ef432aa8cb7bf5cc1a973a71eb70e6b2aae4ab6.gz --- actions/newnotice.php | 6 +++++- classes/Channel.php | 27 +++++++++++++++++++++++++++ 2 files changed, 32 insertions(+), 1 deletion(-) diff --git a/actions/newnotice.php b/actions/newnotice.php index 932099c605..8ac36320de 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 87f02b3167..34735c450d 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;