From e3e597e3b6c9ae10e5c7c1e5592726c71793cfe7 Mon Sep 17 00:00:00 2001
From: thomascube <thomas@roundcube.net>
Date: Mon, 14 Jul 2008 13:56:22 -0400
Subject: [PATCH] Re-enable autocomplete attribute for login form (#1485211)

---
 CHANGELOG                          |    4 ++++
 program/include/html.php           |    9 +++++----
 skins/default/templates/login.html |    2 +-
 program/include/rcube_template.php |   10 +++++-----
 4 files changed, 15 insertions(+), 10 deletions(-)

diff --git a/CHANGELOG b/CHANGELOG
index 3e08284..eccc4ec 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,6 +1,10 @@
 CHANGELOG RoundCube Webmail
 ---------------------------
 
+2008/07/14 (thomasb)
+----------
+- Re-enable autocomplete attribute for login form (#1485211)
+
 2008/06/30 (alec)
 ----------
 - Added flag column on messages list (#1484623)
diff --git a/program/include/html.php b/program/include/html.php
index aa9d758..6a88925 100644
--- a/program/include/html.php
+++ b/program/include/html.php
@@ -29,7 +29,7 @@
 {
     protected $tagname;
     protected $attrib = array();
-    protected $allowed;
+    protected $allowed = array();
     protected $content;
 
     public static $common_attrib = array('id','class','style','title','align');
@@ -55,7 +55,7 @@
      */
     public function show()
     {
-        return self::tag($this->tagname, $this->attrib, $this->content, $this->allowed);
+        return self::tag($this->tagname, $this->attrib, $this->content, array_merge(self::$common_attrib, $this->allowed));
     }
 
     /****** STATIC METHODS *******/
@@ -248,6 +248,7 @@
 {
     protected $tagname = 'input';
     protected $type = 'text';
+    protected $allowed = array('type','name','value','size','tabindex','autocomplete','checked');
 
     public function __construct($attrib = array())
     {
@@ -415,7 +416,7 @@
 class html_textarea extends html
 {
     protected $tagname = 'textarea';
-    protected $allowed_attrib = array('name','rows','cols','wrap','tabindex');
+    protected $allowed = array('name','rows','cols','wrap','tabindex');
 
     /**
      * Get HTML code for this object
@@ -445,7 +446,7 @@
             $value = Q($value, 'strict', false);
         }
 
-        return self::tag($this->tagname, $this->attrib, $value, array_merge(self::$common_attrib, $this->allowed_attrib));
+        return self::tag($this->tagname, $this->attrib, $value, array_merge(self::$common_attrib, $this->allowed));
     }
 }
 
diff --git a/program/include/rcube_template.php b/program/include/rcube_template.php
index 75a9a60..6f146e0 100755
--- a/program/include/rcube_template.php
+++ b/program/include/rcube_template.php
@@ -908,8 +908,8 @@
 
         $_SESSION['temp'] = true;
 
-        $input_user   = new html_inputfield(array('name' => '_user', 'id' => 'rcmloginuser', 'size' => 30, 'autocomplete' => 'off'));
-        $input_pass   = new html_passwordfield(array('name' => '_pass', 'id' => 'rcmloginpwd', 'size' => 30));
+        $input_user   = new html_inputfield(array('name' => '_user', 'id' => 'rcmloginuser', 'size' => 30) + $attrib);
+        $input_pass   = new html_passwordfield(array('name' => '_pass', 'id' => 'rcmloginpwd', 'size' => 30) + $attrib);
         $input_action = new html_hiddenfield(array('name' => '_action', 'value' => 'login'));
         $input_host   = null;
 
@@ -926,7 +926,7 @@
                 }
             }
         }
-        else if (!strlen($default_host)) {
+        else if (empty($default_host)) {
             $input_host = new html_inputfield(array('name' => '_host', 'id' => 'rcmloginhost', 'size' => 30));
         }
 
@@ -937,7 +937,7 @@
         $table = new html_table(array('cols' => 2));
 
         $table->add('title', html::label('rcmloginuser', Q(rcube_label('username'))));
-        $table->add(null, $input_user->show(get_input_value('_user', RCUVE_INPUT_POST)));
+        $table->add(null, $input_user->show(get_input_value('_user', RCUBE_INPUT_POST)));
 
         $table->add('title', html::label('rcmloginpwd', Q(rcube_label('password'))));
         $table->add(null, $input_pass->show());
@@ -945,7 +945,7 @@
         // add host selection row
         if (is_object($input_host)) {
             $table->add('title', html::label('rcmloginhost', Q(rcube_label('server'))));
-            $table->add(null, $input_host->show(get_input_value('_host', RCUVE_INPUT_POST)));
+            $table->add(null, $input_host->show(get_input_value('_host', RCUBE_INPUT_POST)));
         }
 
         $out = $input_action->show();
diff --git a/skins/default/templates/login.html b/skins/default/templates/login.html
index 2a48f48..a3089d7 100644
--- a/skins/default/templates/login.html
+++ b/skins/default/templates/login.html
@@ -37,7 +37,7 @@
 <div class="boxcontent">
 
 <form name="form" action="./" method="post">
-<roundcube:object name="loginform" form="form" />
+<roundcube:object name="loginform" form="form" autocomplete="off" />
 
 <p style="text-align:center;"><input type="submit" class="button" value="<roundcube:label name='login' />" /></p>
 

--
Gitblit v1.9.1