diff options
Diffstat (limited to 'program')
-rwxr-xr-x | program/include/rcube_template.php | 7 | ||||
-rw-r--r-- | program/js/app.js | 7 |
2 files changed, 11 insertions, 3 deletions
diff --git a/program/include/rcube_template.php b/program/include/rcube_template.php index 8495ab8ee..6d6c21e87 100755 --- a/program/include/rcube_template.php +++ b/program/include/rcube_template.php @@ -35,6 +35,7 @@ class rcube_template extends rcube_html_page private $pagetitle = ''; private $message = null; private $js_env = array(); + private $js_labels = array(); private $js_commands = array(); private $object_handlers = array(); private $plugin_skin_path; @@ -230,7 +231,7 @@ class rcube_template extends rcube_html_page $args = $args[0]; foreach ($args as $name) { - $this->command('add_label', $name, rcube_label($name)); + $this->js_labels[$name] = rcube_label($name); } } @@ -266,6 +267,7 @@ class rcube_template extends rcube_html_page { $this->env = array(); $this->js_env = array(); + $this->js_labels = array(); $this->js_commands = array(); $this->object_handlers = array(); parent::reset(); @@ -452,6 +454,9 @@ class rcube_template extends rcube_html_page if (!$this->framed && !empty($this->js_env)) { $out .= JS_OBJECT_NAME . '.set_env('.json_serialize($this->js_env).");\n"; } + if (!empty($this->js_labels)) { + $this->command('add_label', $this->js_labels); + } foreach ($this->js_commands as $i => $args) { $method = array_shift($args); foreach ($args as $i => $arg) { diff --git a/program/js/app.js b/program/js/app.js index db79772a1..7878c9c4c 100644 --- a/program/js/app.js +++ b/program/js/app.js @@ -70,9 +70,12 @@ function rcube_webmail() }; // add a localized label to the client environment - this.add_label = function(key, value) + this.add_label = function(p, value) { - this.labels[key] = value; + if (typeof p == 'string') + this.labels[p] = value; + else if (typeof p == 'object') + $.extend(this.labels, p); }; // add a button to the button list |