From af3cf8a0a7de74ab169f44277eda73f5f9e18cd7 Mon Sep 17 00:00:00 2001 From: thomascube <thomas@roundcube.net> Date: Tue, 08 Jun 2010 17:13:20 -0400 Subject: [PATCH] Bring back some previously removed lines --- program/include/rcube_template.php | 72 +++++++++++++++++++----------------- 1 files changed, 38 insertions(+), 34 deletions(-) diff --git a/program/include/rcube_template.php b/program/include/rcube_template.php index c622380..2c9e951 100755 --- a/program/include/rcube_template.php +++ b/program/include/rcube_template.php @@ -5,7 +5,7 @@ | program/include/rcube_template.php | | | | This file is part of the RoundCube Webmail client | - | Copyright (C) 2006-2009, RoundCube Dev. - Switzerland | + | Copyright (C) 2006-2010, RoundCube Dev. - Switzerland | | Licensed under the GNU GPL | | | | PURPOSE: | @@ -536,7 +536,7 @@ /** - * + * Inserts hidden field with CSRF-prevention-token into POST forms */ private function alter_form_tag($matches) { @@ -770,7 +770,6 @@ */ public function button($attrib) { - static $sa_buttons = array(); static $s_button_count = 100; // these commands can be called directly via url @@ -787,25 +786,14 @@ else { $attrib['type'] = ($attrib['image'] || $attrib['imagepas'] || $attrib['imageact']) ? 'image' : 'link'; } + $command = $attrib['command']; - // take the button from the stack - if ($attrib['name'] && $sa_buttons[$attrib['name']]) { - $attrib = $sa_buttons[$attrib['name']]; - } - else if($attrib['image'] || $attrib['imageact'] || $attrib['imagepas'] || $attrib['class']) { - // add button to button stack - if (!$attrib['name']) { - $attrib['name'] = $command; - } - if (!$attrib['image']) { - $attrib['image'] = $attrib['imagepas'] ? $attrib['imagepas'] : $attrib['imageact']; - } - $sa_buttons[$attrib['name']] = $attrib; - } - else if ($command && $sa_buttons[$command]) { - // get saved button for this command/name - $attrib = $sa_buttons[$command]; + if ($attrib['task']) + $command = $attrib['task'] . '.' . $command; + + if (!$attrib['image']) { + $attrib['image'] = $attrib['imagepas'] ? $attrib['imagepas'] : $attrib['imageact']; } if (!$attrib['id']) { @@ -849,6 +837,9 @@ if (in_array($attrib['command'], rcmail::$main_tasks)) { $attrib['href'] = rcmail_url(null, null, $attrib['command']); } + else if ($attrib['task'] && in_array($attrib['task'], rcmail::$main_tasks)) { + $attrib['href'] = rcmail_url($attrib['command'], null, $attrib['task']); + } else if (in_array($attrib['command'], $a_static_commands)) { $attrib['href'] = rcmail_url($attrib['command']); } @@ -861,7 +852,11 @@ if (!$attrib['href']) { $attrib['href'] = '#'; } - if ($command && !$attrib['onclick']) { + if ($attrib['task']) { + if ($attrib['classact']) + $attrib['class'] = $attrib['classact']; + } + else if ($command && !$attrib['onclick']) { $attrib['onclick'] = sprintf( "return %s.command('%s','%s',this)", JS_OBJECT_NAME, @@ -1024,7 +1019,7 @@ $input_url = new html_hiddenfield(array('name' => '_url', 'id' => 'rcmloginurl', 'value' => $url)); $input_host = null; - if (is_array($default_host)) { + if (is_array($default_host) && count($default_host) > 1) { $input_host = new html_select(array('name' => '_host', 'id' => 'rcmloginhost')); foreach ($default_host as $key => $value) { @@ -1036,6 +1031,11 @@ break; } } + } + else if (is_array($default_host) && ($host = array_pop($default_host))) { + $hide_host = true; + $input_host = new html_hiddenfield(array( + 'name' => '_host', 'id' => 'rcmloginhost', 'value' => $host) + $attrib); } else if (empty($default_host)) { $input_host = new html_inputfield(array('name' => '_host', 'id' => 'rcmloginhost') + $attrib); @@ -1054,7 +1054,7 @@ $table->add(null, $input_pass->show()); // add host selection row - if (is_object($input_host)) { + if (is_object($input_host) && !$hide_host) { $table->add('title', html::label('rcmloginhost', Q(rcube_label('server')))); $table->add(null, $input_host->show(get_input_value('_host', RCUBE_INPUT_POST))); } @@ -1063,10 +1063,14 @@ $out .= $input_tzone->show(); $out .= $input_url->show(); $out .= $table->show(); + + if ($hide_host) { + $out .= $input_host->show(); + } // surround html output with a form tag if (empty($attrib['form'])) { - $out = $this->form_tag(array('name' => $form_name, 'method' => "post"), $out); + $out = $this->form_tag(array('name' => $form_name, 'method' => 'post'), $out); } return $out; @@ -1115,7 +1119,7 @@ $attrib['id'] = 'rcmqsearchbox'; } if ($attrib['type'] == 'search' && !$this->browser->khtml) { - unset($attrib['type'], $attrib['results']); + unset($attrib['type'], $attrib['results']); } $input_q = new html_inputfield($attrib); @@ -1129,7 +1133,7 @@ 'name' => "rcmqsearchform", 'onsubmit' => JS_OBJECT_NAME . ".command('search');return false;", 'style' => "display:inline"), - $out); + $out); } return $out; @@ -1206,15 +1210,15 @@ ); if (!empty($_POST['_charset'])) - $set = $_POST['_charset']; - else if (!empty($attrib['selected'])) - $set = $attrib['selected']; - else - $set = $this->get_charset(); + $set = $_POST['_charset']; + else if (!empty($attrib['selected'])) + $set = $attrib['selected']; + else + $set = $this->get_charset(); - $set = strtoupper($set); - if (!isset($charsets[$set])) - $charsets[$set] = $set; + $set = strtoupper($set); + if (!isset($charsets[$set])) + $charsets[$set] = $set; $select = new html_select($field_attrib); $select->add(array_values($charsets), array_keys($charsets)); -- Gitblit v1.9.1