diff options
author | Thomas Bruederli <thomas@roundcube.net> | 2013-02-10 15:31:39 +0100 |
---|---|---|
committer | Thomas Bruederli <thomas@roundcube.net> | 2013-02-10 16:03:18 +0100 |
commit | df229677457d1f59d08c14990514273114fed87d (patch) | |
tree | c5d6a66c4058f32779208f7a4aa21555293cb840 | |
parent | 0016cde2fe143643e95a878c53b1c95b318d5aa4 (diff) |
Let some env variables survive reset(); don't show taskbar and top line in framed error pages (#1488938)
-rw-r--r-- | program/include/rcmail_output_html.php | 8 | ||||
-rw-r--r-- | skins/larry/includes/header.html | 6 | ||||
-rw-r--r-- | skins/larry/styles.css | 4 | ||||
-rw-r--r-- | skins/larry/templates/error.html | 7 |
4 files changed, 19 insertions, 6 deletions
diff --git a/program/include/rcmail_output_html.php b/program/include/rcmail_output_html.php index f6c5d919d..2babe1cbb 100644 --- a/program/include/rcmail_output_html.php +++ b/program/include/rcmail_output_html.php @@ -80,6 +80,8 @@ class rcmail_output_html extends rcmail_output if (!empty($_REQUEST['_extwin'])) $this->set_env('extwin', 1); + if ($this->framed || !empty($_REQUEST['_framed'])) + $this->set_env('framed', 1); // add common javascripts $this->add_script('var '.self::JS_OBJECT_NAME.' = new rcube_webmail();', 'head_top'); @@ -308,8 +310,12 @@ class rcmail_output_html extends rcmail_output */ public function reset() { + $env = array_intersect_key($this->env, array('extwin'=>1, 'framed'=>1)); + parent::reset(); - $this->js_env = array(); + + // let some env variables survive + $this->env = $this->js_env = $env; $this->js_labels = array(); $this->js_commands = array(); $this->script_files = array(); diff --git a/skins/larry/includes/header.html b/skins/larry/includes/header.html index 5a30020f3..f2efb8e06 100644 --- a/skins/larry/includes/header.html +++ b/skins/larry/includes/header.html @@ -10,16 +10,16 @@ <roundcube:container name="topline-center" id="topline-center" /> <div class="topright"> <roundcube:container name="topline-right" id="topline-right" /> - <roundcube:if condition="!env:extwin" /> + <roundcube:if condition="!env:extwin && !env:framed" /> <span class="username"><roundcube:object name="username" /></span> <roundcube:button command="logout" label="logout" class="button-logout" /> - <roundcube:else /> + <roundcube:elseif condition="env:extwin" /> <roundcube:button command="close" label="close" class="closelink" /> <roundcube:endif /> </div> </div> -<roundcube:if condition="!env:extwin" /> +<roundcube:if condition="!env:extwin && !env:framed" /> <div id="topnav"> <div id="taskbar" class="topright"> <roundcube:button command="mail" label="mail" class="button-mail" classSel="button-mail button-selected" innerClass="button-inner" /> diff --git a/skins/larry/styles.css b/skins/larry/styles.css index 9fdab8bcc..f4b41fcb5 100644 --- a/skins/larry/styles.css +++ b/skins/larry/styles.css @@ -1246,6 +1246,10 @@ body.iframe { margin: 38px 0 10px 0; } +body.iframe.error { + background: #ededed; +} + body.iframe.floatingbuttons { margin-bottom: 40px; } diff --git a/skins/larry/templates/error.html b/skins/larry/templates/error.html index cd0fc9656..a65733eb0 100644 --- a/skins/larry/templates/error.html +++ b/skins/larry/templates/error.html @@ -4,9 +4,12 @@ <title><roundcube:object name="pagetitle" /></title> <roundcube:include file="/includes/links.html" /> </head> -<body> - +<roundcube:if condition="!env:framed" /> +<body class="error"> <roundcube:include file="/includes/header.html" /> +<roundcube:else /> +<body class="error iframe"> +<roundcube:endif /> <div class="uibox centerbox errorbox"> $__page_content |