From 458fd7d76f4dd58be0589480f5cf4d3c52493e92 Mon Sep 17 00:00:00 2001 From: cramakri <cramakri> Date: Fri, 6 Jul 2012 10:25:40 +0000 Subject: [PATCH] BIS-111 SP-187 : Refactor login page to avoid code duplication SVN: 26030 --- .../javascript/simpleapp/openbis-login.js | 69 +++++++++++++++++++ .../simpleapp/openbis-simple-app.html | 34 +-------- 2 files changed, 71 insertions(+), 32 deletions(-) create mode 100644 openbis/sourceTest/javascript/simpleapp/openbis-login.js diff --git a/openbis/sourceTest/javascript/simpleapp/openbis-login.js b/openbis/sourceTest/javascript/simpleapp/openbis-login.js new file mode 100644 index 00000000000..4dc871477a7 --- /dev/null +++ b/openbis/sourceTest/javascript/simpleapp/openbis-login.js @@ -0,0 +1,69 @@ +/** + * A module for configuring the login page to openBIS. It hides and shows + * the login form and main content as necessary. It invokes a specified + * function on successful login. + * + * This module assumes that the page follows the structure of our standard + * login page. This means that the Following elements are defined : + * + * div#login-form-div + * form#login-form + * input#username + * input#password + * button#login-button + * div#main + * button#logout-button + * + * Assuming these elements are defined, this module configures their appeareance + * and behavior.The div#main element is initially hidden until the user logs in. + * Once logged in, the div#login-form-div element is hidden and the div#main + * element is made visible. + * + * @module openbis-login + * @requires jquery + */ + + +/** + * Configure the login page to hide and show the login form and main content + * as appropriate + * + * @param openbis The openbis facade object + * @param onLogin The function to be called when login succeeds. + * @function + */ +function configureLoginPage(openbis, onLogin) +{ + $('#main').hide(); + + var username = $("#username").value; + if(username == null || username.length==0) { + $("#username").focus(); + } else { + $("#login-button").focus(); + } + + $('#logout-button').click(function() { + openbis.logout(function(data) { + $("#login-form-div").show(); + $("#main").hide(); + $("#username").focus(); + }); + }); + + $('#login-form').submit(function() { + openbis.login( $.trim($('#username').val()), $.trim($('#password').val()), function(data) { onLogin(data) }) + }); + + openbis.ifRestoredSessionActive(function(data) { onLogin(data) }); + + // Make the ENTER key the default button + $("login-form input").keypress(function (e) { + if ((e.which && e.which == 13) || (e.keyCode && e.keyCode == 13)) { + $('button[type=submit].default').click(); + return false; + } else { + return true; + } + }); +} \ No newline at end of file diff --git a/openbis/sourceTest/javascript/simpleapp/openbis-simple-app.html b/openbis/sourceTest/javascript/simpleapp/openbis-simple-app.html index a7ccc393b86..388206db25a 100644 --- a/openbis/sourceTest/javascript/simpleapp/openbis-simple-app.html +++ b/openbis/sourceTest/javascript/simpleapp/openbis-simple-app.html @@ -12,6 +12,7 @@ <script type="text/javascript" src="d3.time.js"></script> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="openbis.js"></script> + <script type="text/javascript" src="openbis-login.js"></script> <!-- To speed development, cache the requests --> <!-- <script type="text/javascript" src="openbis-request-cache.js"></script> --> <script> @@ -153,38 +154,7 @@ function enterApp(data) $(document).ready(function() { - $('#main').hide(); - - var username = $("#username").value; - if(username == null || username.length==0) { - $("#username").focus(); - } else { - $("#login-button").focus(); - } - - $('#logout-button').click(function() { - openbisServer.logout(function(data) { - $("#login-form-div").show(); - $("#main").hide(); - $("#username").focus(); - }); - }); - - $('#login-form').submit(function() { - openbisServer.login( $.trim($('#username').val()), $.trim($('#password').val()), function(data) { enterApp(data) }) - }); - - openbisServer.ifRestoredSessionActive(function(data) { enterApp(data) }); - - // Make the ENTER key the default button - $("login-form input").keypress(function (e) { - if ((e.which && e.which == 13) || (e.keyCode && e.keyCode == 13)) { - $('button[type=submit].default').click(); - return false; - } else { - return true; - } - }); + configureLoginPage(openbisServer, enterApp); }); </script> -- GitLab