From 0c259682f65eaaf23ea4ccb56a706d6baf3007e4 Mon Sep 17 00:00:00 2001
From: alecpl <alec@alec.pl>
Date: Fri, 13 Apr 2012 04:52:02 -0400
Subject: [PATCH] - Merge devel-framework branch, resolved conflicts
---
program/include/rcube_output_json.php | 99 ++++++++++++++++++-------------------------------
1 files changed, 36 insertions(+), 63 deletions(-)
diff --git a/program/include/rcube_json_output.php b/program/include/rcube_output_json.php
similarity index 77%
rename from program/include/rcube_json_output.php
rename to program/include/rcube_output_json.php
index f062d4b..73cf767 100644
--- a/program/include/rcube_json_output.php
+++ b/program/include/rcube_output_json.php
@@ -2,21 +2,20 @@
/*
+-----------------------------------------------------------------------+
- | program/include/rcube_json_output.php |
+ | program/include/rcube_output_json.php |
| |
| This file is part of the Roundcube Webmail client |
- | Copyright (C) 2008-2010, The Roundcube Dev Team |
+ | Copyright (C) 2008-2012, The Roundcube Dev Team |
| |
| Licensed under the GNU General Public License version 3 or |
| any later version with exceptions for skins & plugins. |
| See the README file for a full license statement. |
| |
| PURPOSE: |
- | Class to handle HTML page output using a skin template. |
- | Extends rcube_html_page class from rcube_shared.inc |
- | |
+ | Class to handle JSON (AJAX) output |
+-----------------------------------------------------------------------+
| Author: Thomas Bruederli <roundcube@gmail.com> |
+ | Author: Aleksander Machniak <alec@alec.pl> |
+-----------------------------------------------------------------------+
$Id$
@@ -29,34 +28,15 @@
*
* @package View
*/
-class rcube_json_output
+class rcube_output_json extends rcube_output
{
- /**
- * Stores configuration object.
- *
- * @var rcube_config
- */
- private $config;
- private $charset = RCMAIL_CHARSET;
- private $texts = array();
- private $commands = array();
- private $callbacks = array();
- private $message = null;
+ protected $texts = array();
+ protected $commands = array();
+ protected $callbacks = array();
+ protected $message = null;
- public $browser;
- public $env = array();
public $type = 'js';
public $ajax_call = true;
-
-
- /**
- * Constructor
- */
- public function __construct($task=null)
- {
- $this->config = rcmail::get_instance()->config;
- $this->browser = new rcube_browser();
- }
/**
@@ -88,31 +68,10 @@
/**
- * @ignore
- */
- function set_charset($charset)
- {
- // ignore: $this->charset = $charset;
- }
-
-
- /**
- * Get charset for output
- *
- * @return string Output charset
- */
- function get_charset()
- {
- return $this->charset;
- }
-
-
- /**
* Register a template object handler
*
* @param string $obj Object name
* @param string $func Function name to call
- * @return void
*/
public function add_handler($obj, $func)
{
@@ -124,7 +83,6 @@
* Register a list of template object handlers
*
* @param array $arr Hash array with object=>handler pairs
- * @return void
*/
public function add_handlers($arr)
{
@@ -159,7 +117,7 @@
$args = $args[0];
foreach ($args as $name) {
- $this->texts[$name] = rcube_label($name);
+ $this->texts[$name] = $this->app->gettext($name);
}
}
@@ -177,10 +135,11 @@
public function show_message($message, $type='notice', $vars=null, $override=true, $timeout=0)
{
if ($override || !$this->message) {
- if (rcube_label_exists($message)) {
- if (!empty($vars))
- $vars = array_map('Q', $vars);
- $msgtext = rcube_label(array('name' => $message, 'vars' => $vars));
+ if ($this->app->text_exists($message)) {
+ if (!empty($vars)) {
+ $vars = array_map(array('rcube_ui', 'Q'), $vars);
+ }
+ $msgtext = $this->app->gettext(array('name' => $message, 'vars' => $vars));
}
else
$msgtext = $message;
@@ -196,7 +155,7 @@
*/
public function reset()
{
- $this->env = array();
+ parent::reset();
$this->texts = array();
$this->commands = array();
}
@@ -228,6 +187,20 @@
/**
+ * Show error page and terminate script execution
+ *
+ * @param int $code Error code
+ * @param string $message Error message
+ */
+ public function raise_error($code, $message)
+ {
+ $this->show_message("Application Error ($code): $message", 'error');
+ $this->remote_response();
+ exit;
+ }
+
+
+ /**
* Send an AJAX response with executable JS code
*
* @param string $add Additional JS code
@@ -235,13 +208,13 @@
* @return void
* @deprecated
*/
- public function remote_response($add='')
+ protected function remote_response($add='')
{
static $s_header_sent = false;
if (!$s_header_sent) {
$s_header_sent = true;
- send_nocacheing_headers();
+ $this->nocacheing_headers();
header('Content-Type: text/plain; charset=' . $this->get_charset());
}
@@ -251,7 +224,7 @@
$rcmail = rcmail::get_instance();
$response['action'] = $rcmail->action;
- if ($unlock = get_input_value('_unlock', RCUBE_INPUT_GPC)) {
+ if ($unlock = rcube_ui::get_input_value('_unlock', rcube_ui::INPUT_GPC)) {
$response['unlock'] = $unlock;
}
@@ -267,7 +240,7 @@
if (!empty($this->callbacks))
$response['callbacks'] = $this->callbacks;
- echo json_serialize($response);
+ echo self::json_serialize($response);
}
@@ -276,14 +249,14 @@
*
* @return string $out
*/
- private function get_js_commands()
+ protected function get_js_commands()
{
$out = '';
foreach ($this->commands as $i => $args) {
$method = array_shift($args);
foreach ($args as $i => $arg) {
- $args[$i] = json_serialize($arg);
+ $args[$i] = self::json_serialize($arg);
}
$out .= sprintf(
--
Gitblit v1.9.1