Thomas Bruederli
2013-02-10 df229677457d1f59d08c14990514273114fed87d
Let some env variables survive reset(); don't show taskbar and top line in framed error pages (#1488938)
4 files modified
25 ■■■■ changed files
program/include/rcmail_output_html.php 8 ●●●● patch | view | raw | blame | history
skins/larry/includes/header.html 6 ●●●● patch | view | raw | blame | history
skins/larry/styles.css 4 ●●●● patch | view | raw | blame | history
skins/larry/templates/error.html 7 ●●●● patch | view | raw | blame | history
program/include/rcmail_output_html.php
@@ -80,6 +80,8 @@
        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 @@
     */
    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();
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" />
skins/larry/styles.css
@@ -1246,6 +1246,10 @@
    margin: 38px 0 10px 0;
}
body.iframe.error {
    background: #ededed;
}
body.iframe.floatingbuttons {
    margin-bottom: 40px;
}
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