summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Bruederli <thomas@roundcube.net>2013-02-10 15:31:39 +0100
committerThomas Bruederli <thomas@roundcube.net>2013-02-10 15:31:39 +0100
commitd30460ad2fc0f78ce44d474fa2c466d660596d27 (patch)
treea03115edd19a374fa304fe97928d41ad4fe14176
parent3568c7c04b58467d1ad2145de506fdcc8b905e9f (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.php8
-rw-r--r--skins/larry/includes/header.html6
-rw-r--r--skins/larry/styles.css4
-rw-r--r--skins/larry/templates/error.html7
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 &amp;&amp; !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 &amp;&amp; !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 613a08aa1..044a09e05 100644
--- a/skins/larry/styles.css
+++ b/skins/larry/styles.css
@@ -1276,6 +1276,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