]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 476090: Allow users to log-in from toolbar
authormkanat%bugzilla.org <>
Thu, 12 Feb 2009 06:29:08 +0000 (06:29 +0000)
committermkanat%bugzilla.org <>
Thu, 12 Feb 2009 06:29:08 +0000 (06:29 +0000)
Patch By Guy Pyrzak <guy.pyrzak@gmail.com> r=mkanat, a=mkanat

js/global.js [new file with mode: 0644]
skins/standard/global.css
template/en/default/account/auth/login-small.html.tmpl
template/en/default/global/common-links.html.tmpl
template/en/default/global/header.html.tmpl

diff --git a/js/global.js b/js/global.js
new file mode 100644 (file)
index 0000000..2efa698
--- /dev/null
@@ -0,0 +1,58 @@
+/* The contents of this file are subject to the Mozilla Public
+* License Version 1.1 (the "License"); you may not use this file
+* except in compliance with the License. You may obtain a copy of
+* the License at http://www.mozilla.org/MPL/
+*
+* Software distributed under the License is distributed on an "AS
+* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+* implied. See the License for the specific language governing
+* rights and limitations under the License.
+*
+* The Original Code is the Bugzilla Bug Tracking System.
+*
+* Contributor(s): Guy Pyrzak <guy.pyrzak@gmail.com>
+*                 
+*/
+
+var mini_login_constants;
+
+function init_mini_login_form( suffix ) {
+    var mini_login = document.getElementById('Bugzilla_login' +  suffix );
+    var mini_password = document.getElementById('Bugzilla_password' +  suffix );
+    // check if the login and password are blank and if they are
+    //    put in the text login and password and make them slightly greyed out
+    if( mini_login.value == "" && mini_password.value == "" ) {
+        mini_login.value = mini_login_constants.login;
+        mini_password.value = mini_login_constants.password;
+        mini_password.type = "text";
+
+        YAHOO.util.Dom.addClass(mini_login, "bz_mini_login_help");
+        YAHOO.util.Dom.addClass(mini_password, "bz_mini_login_help");        
+    }
+}
+
+function mini_login_on_focus( el ) {
+    if( el.name == "Bugzilla_password" ){
+        if( el.type != "password" ) {
+            el.value = "";
+            el.type = "password";
+        }
+    } else if ( el.value == mini_login_constants.login ) {
+        if( el.value == mini_login_constants.login ) {
+            el.value = "";
+        }  
+    }
+    YAHOO.util.Dom.removeClass(el, "bz_mini_login_help");
+}
+
+function check_mini_login_fields( suffix ) {
+    var mini_login = document.getElementById('Bugzilla_login' +  suffix );
+    var mini_password = document.getElementById('Bugzilla_password' +  suffix );
+    if(( mini_login.value != "" && mini_password.value != "" ) && 
+       (  mini_login.value != mini_login_constants.login  && 
+          mini_password.value != mini_login_constants.password )) {
+      return true;
+    }
+    window.alert( mini_login_constants.warning );
+    return false;
+}
index cbdfdef1f45836455c9b0f45dee4be995b57f297..8bfa75f16c1a6c7e9db2b320538b6e72a6fee96e 100644 (file)
@@ -508,3 +508,19 @@ form#Create .comment {
 #down_button {
     background-image: url(global/down.png);
 }
+
+.mini_login, .mini_login input, .mini_login button {
+    font-size: small;
+}
+
+form.mini_login input.bz_password, form.mini_login input.bz_login  {
+    width: 10em;
+}
+
+form .bz_remember, form .bz_restrict {
+    margin: 0.4em 0;
+}
+
+.bz_mini_login_help {
+    color: #ccc;
+}
index 19aaca11d135dd292d32431d618933477d1e826e..56f281b24375b1003544b0174c2cdc71bdcb9dc3 100644 (file)
@@ -1,4 +1,4 @@
-[%# The contents of this file are subject to the Mozilla Public
+[%# The contents of this file are subject to the Mozilla Public
   # License Version 1.1 (the "License"); you may not use this file
   # except in compliance with the License. You may obtain a copy of
   # the License at http://www.mozilla.org/MPL/
 [%# Use the current script name. If an empty name is returned,
   # then we are accessing the home page. %]
 
-[% script_name = cgi.url(Relative => 1) %]
-[% IF !script_name %]
- [% script_name = "index.cgi" %]
+[% target = cgi.url("-relative" => 1, "-query" => 1) %]
+[% IF !target %]
+ [% target = "index.cgi" %]
 [% END %]
 
-[%# If SSL is in use, use 'sslbase', else use 'urlbase'. %]
-[% IF Param("sslbase") != "" && Param("ssl") != "never" %]
-  [% script_name = Param("sslbase") _ script_name %]
-[% ELSE %]
-  [% script_name = Param("urlbase") _ script_name %]
-[% END %]
-
-<form name="login" action="[% script_name FILTER html %]" method="POST">
-  <table id="login-small">
-    <tr>
-      <th align="right"><label for="Bugzilla_login">Login:</label></th>
-      <td><input size="20" id="Bugzilla_login" name="Bugzilla_login">
-          [% Param('emailsuffix') FILTER html %]</td>
-    </tr>
-    <tr>
-      <th align="right"><label for="Bugzilla_password">Password:</label></th>
-      <td>
-        <input type="password" size="20" id="Bugzilla_password" name="Bugzilla_password">
-      </td>
-    </tr>
-
-    [% IF Param('rememberlogin') == 'defaulton' || 
-          Param('rememberlogin') == 'defaultoff' %]
-      <tr>
-        <th>&nbsp;</th>
-        <td>
-          <input type="checkbox" id="Bugzilla_remember" name="Bugzilla_remember" value="on"
-                 [%+ "checked" IF Param('rememberlogin') == "defaulton" %]>
-          <label for="Bugzilla_remember">Remember my Login</label>
-        </td>
-      </tr>
-    [% END %]
-
-    [% IF Param('loginnetmask') < 32 %]
-      <tr>
-        <th>&nbsp;</th>
-        <td>
-          <input type="checkbox" id="Bugzilla_restrictlogin" name="Bugzilla_restrictlogin"
-                 checked="checked">
-          <label for="Bugzilla_restrictlogin">Restrict this session to this IP address
-          (using this option improves security)</label>
-        </td>
-      </tr>
-    [% END %]
-
-    <tr>
-      <td><input type="submit" name="GoAheadAndLogIn" value="Login"
-                 id="log_in"></td>
-
-      [%# For now, password change requests only apply to the DB
-        # verification method #%]
-
-      [% IF user.authorizer.can_change_password %]
-        <td>[ <a href="index.cgi?GoAheadAndLogIn=1#forgot">Forgot my Password</a> ]</td>
-      [% END %]
-    </tr>
-  </table>
-
-</form>
-
+[% target = urlbase _ target %]
+<li>
+  <form name="login" action="[% target FILTER html %]" 
+        class="mini_login"
+        method="POST" id="mini_login[% qs_suffix FILTER html %]"
+        onsubmit="return check_mini_login_fields( '[% qs_suffix FILTER html %]' );"
+  >
+    <span class="separator">| </span>
+    <input id="Bugzilla_login[% qs_suffix FILTER html %]" 
+           class="bz_login"
+           name="Bugzilla_login"
+           onfocus="mini_login_on_focus( this )"
+    >
+    <input class="bz_password" 
+           id="Bugzilla_password[% qs_suffix FILTER html %]" 
+           name="Bugzilla_password"
+           type="password"
+           onfocus="mini_login_on_focus( this )"
+    >
+    <input type="submit" name="GoAheadAndLogIn" value="Log in" id="log_in">
+    [<a href="[% target FILTER html %]?GoAheadAndLogIn=1">options</a>]
+    <div class="bz_default_hidden">
+      [% PROCESS "global/hidden-fields.html.tmpl"
+                exclude="^Bugzilla_(login|password|restrictlogin)$" %]
+    </div>
+    <script type="text/javascript">
+      mini_login_constants = {
+          "login" : "login",
+          "password" : "password",
+          "warning" : "You must set the login and password before logging in."
+      }
+      YAHOO.util.Event.onDOMReady(function() { 
+        init_mini_login_form('[% qs_suffix FILTER html %]');
+      } );      
+    </script>    
+  </form>
+</li>
index 3fce543d11e6128bd5396d081536f8605b934528..6f2c46f4685c84a51973ae6270a420acf7a0b310 100644 (file)
@@ -20,7 +20,6 @@
   #%]
 
 [% DEFAULT qs_suffix = "" %]
-
 <ul class="links">
   <li><a href="./">Home</a></li>
   <li><span class="separator">| </span><a href="enter_bug.cgi">New</a></li>
       [% END %]
     [%-# Work around FF bug: keep this on one line %]</li>
   [% ELSE %]
+  
+    [% PROCESS link_to_documentation %]
+    
     [% IF Param('createemailregexp')
           && user.authorizer.user_can_create_account %]
       <li><span class="separator">| </span><a href="createaccount.cgi">New&nbsp;Account</a></li>
     [% END %]
 
-    [% PROCESS link_to_documentation %]
-
-    [% IF user.authorizer.can_login %]
-      [%# Use the current script name. If an empty name is returned,
-        # then we are accessing the home page. %]
-
-      [% script_name = cgi.url(Relative => 1) %]
-
-      [% IF cgi.request_method == "POST" OR script_name.match("relogin") %]
-        [% script_name = "" %]
-      [% END %]
-
-      [%# If SSL is in use, use 'sslbase', else use 'urlbase'. %]
-      [% IF Param("sslbase") != "" && Param("ssl") != "never" %]
-        [% script_name = Param("sslbase") _ script_name %]
-      [% ELSE %]
-        [% script_name = Param("urlbase") _ script_name %]
-      [% END %]
-
-      [% IF cgi.request_method == "GET" AND cgi.query_string %]
-        [% script_name = script_name _ "?" _ cgi.query_string %]
-        [% script_name = script_name _ "&GoAheadAndLogIn=1" IF !cgi.query_string.match("GoAheadAndLogIn") %]
-      [% ELSE %]
-        [% script_name = script_name _ "?GoAheadAndLogIn=1" %]
-      [% END %]
-        
-      <li><span class="separator">| </span><a href="[% script_name FILTER html %]">Log&nbsp;In</a></li>
+    [% IF user.authorizer.can_login %]        
+      [% PROCESS "account/auth/login-small.html.tmpl" %]
     [% END %]
   [% END %]
 </ul>
+
 [% Hook.process("link-row") %]
 [% BLOCK link_to_documentation %]
     [% IF doc_section && Param('docs_urlbase') %]
index b687da6afe291ac9c4bc63746b1d0ba81dd64aeb..5f3ed44d82d232589d86907574013af2626473d6 100644 (file)
     <![endif]-->
 
     <script src="js/yui/yahoo-dom-event.js" type="text/javascript"></script>
+    <script src="js/global.js" type="text/javascript"></script>
     <script type="text/javascript">
     <!--
         YAHOO.namespace('bugzilla');
                 cookiepath: '[% Param('cookiepath') FILTER js %]'
             }
         };
-
         [% IF javascript %]
           [% javascript %]
         [% END %]