aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormkanat%bugzilla.org <>2009-02-12 06:29:08 +0000
committermkanat%bugzilla.org <>2009-02-12 06:29:08 +0000
commitc09a9a46b4c20a99a046b8ad67dbae76910e1256 (patch)
treeb6853c23f36ec2bc6a2442cbd19d13f0aada68d2
parent47cf0ef790fc4848ea728ca4e7dc3748459436f8 (diff)
downloadbugs-c09a9a46b4c20a99a046b8ad67dbae76910e1256.tar
bugs-c09a9a46b4c20a99a046b8ad67dbae76910e1256.tar.gz
bugs-c09a9a46b4c20a99a046b8ad67dbae76910e1256.tar.bz2
bugs-c09a9a46b4c20a99a046b8ad67dbae76910e1256.tar.xz
bugs-c09a9a46b4c20a99a046b8ad67dbae76910e1256.zip
Bug 476090: Allow users to log-in from toolbar
Patch By Guy Pyrzak <guy.pyrzak@gmail.com> r=mkanat, a=mkanat
-rw-r--r--js/global.js58
-rw-r--r--skins/standard/global.css16
-rw-r--r--template/en/default/account/auth/login-small.html.tmpl105
-rw-r--r--template/en/default/global/common-links.html.tmpl34
-rw-r--r--template/en/default/global/header.html.tmpl2
5 files changed, 122 insertions, 93 deletions
diff --git a/js/global.js b/js/global.js
new file mode 100644
index 000000000..2efa698b6
--- /dev/null
+++ b/js/global.js
@@ -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;
+}
diff --git a/skins/standard/global.css b/skins/standard/global.css
index cbdfdef1f..8bfa75f16 100644
--- a/skins/standard/global.css
+++ b/skins/standard/global.css
@@ -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;
+}
diff --git a/template/en/default/account/auth/login-small.html.tmpl b/template/en/default/account/auth/login-small.html.tmpl
index 19aaca11d..56f281b24 100644
--- a/template/en/default/account/auth/login-small.html.tmpl
+++ b/template/en/default/account/auth/login-small.html.tmpl
@@ -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/
@@ -23,68 +23,45 @@
[%# 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>
diff --git a/template/en/default/global/common-links.html.tmpl b/template/en/default/global/common-links.html.tmpl
index 3fce543d1..6f2c46f46 100644
--- a/template/en/default/global/common-links.html.tmpl
+++ b/template/en/default/global/common-links.html.tmpl
@@ -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>
@@ -82,41 +81,20 @@
[% 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') %]
diff --git a/template/en/default/global/header.html.tmpl b/template/en/default/global/header.html.tmpl
index b687da6af..5f3ed44d8 100644
--- a/template/en/default/global/header.html.tmpl
+++ b/template/en/default/global/header.html.tmpl
@@ -189,6 +189,7 @@
<![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');
@@ -205,7 +206,6 @@
cookiepath: '[% Param('cookiepath') FILTER js %]'
}
};
-
[% IF javascript %]
[% javascript %]
[% END %]