From 27acfd67746e7ec4a7cdd82e98bb9ab28079927a Mon Sep 17 00:00:00 2001 From: alecpl Date: Thu, 2 Dec 2010 09:05:56 +0000 Subject: - Fix preview window doesn't work when RC is in a frame (#1487314) - Add helper function is_framed() --- program/js/app.js | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) (limited to 'program') diff --git a/program/js/app.js b/program/js/app.js index 7ab31cb46..cc5da4e07 100644 --- a/program/js/app.js +++ b/program/js/app.js @@ -148,7 +148,7 @@ function rcube_webmail() this.init_buttons(); // tell parent window that this frame is loaded - if (this.env.framed && parent.rcmail && parent.rcmail.set_busy) { + if (this.is_framed()) { parent.rcmail.set_busy(false, null, parent.rcmail.env.frame_lock); parent.rcmail.env.frame_lock = null; } @@ -222,7 +222,7 @@ function rcube_webmail() } // make preview/message frame visible - if (this.env.action == 'preview' && this.env.framed && parent.rcmail) { + if (this.env.action == 'preview' && this.is_framed()) { this.enable_command('compose', 'add-contact', false); parent.rcmail.show_contentframe(true); } @@ -435,7 +435,7 @@ function rcube_webmail() // command not supported or allowed if (!this.commands[command]) { // pass command to parent window - if (this.env.framed && parent.rcmail && parent.rcmail.command) + if (this.is_framed()) parent.rcmail.command(command, props); return false; @@ -1120,7 +1120,7 @@ function rcube_webmail() this.reload = function(delay) { - if (this.env.framed && parent.rcmail) + if (this.is_framed()) parent.rcmail.reload(delay); else if (delay) window.setTimeout(function(){ rcmail.reload(); }, delay); @@ -1149,6 +1149,12 @@ function rcube_webmail() return url + '?' + name + '=' + value; }; + this.is_framed = function() + { + return (this.env.framed && parent.rcmail); + }; + + /*********************************************************/ /********* event handling methods *********/ /*********************************************************/ @@ -1823,7 +1829,7 @@ function rcube_webmail() this.show_contentframe(true); else { if (!this.env.frame_lock) { - (parent.rcmail ? parent.rcmail : this).env.frame_lock = this.set_busy(true, 'loading'); + (this.is_framed() ? parent.rcmail : this).env.frame_lock = this.set_busy(true, 'loading'); } target.location.href = this.env.comm_path+url; @@ -4599,7 +4605,7 @@ function rcube_webmail() this.display_message = function(msg, type) { // pass command to parent window - if (this.env.framed && parent.rcmail) + if (this.is_framed()) return parent.rcmail.display_message(msg, type); if (!this.gui_objects.message) { @@ -4647,7 +4653,7 @@ function rcube_webmail() this.hide_message = function(obj, fade) { // pass command to parent window - if (this.env.framed && parent.rcmail) + if (this.is_framed()) return parent.rcmail.hide_message(obj, fade); if (typeof(obj) == 'object') { -- cgit v1.2.3