1
0
mirror of https://github.com/OpenNebula/one.git synced 2025-03-16 22:50:10 +03:00

feature #3748: Refactor login.js

This commit is contained in:
Daniel Molina 2015-06-23 13:33:44 +02:00
parent 298af5d3f6
commit 98dec11877
4 changed files with 123 additions and 19 deletions

View File

@ -0,0 +1,99 @@
require.config({
paths: {
/* jQuery */
'jquery': '../bower_components/jquery/dist/jquery.min'
}
});
define(function(require) {
require('jquery');
var OpenNebulaAuth = require('opennebula/auth');
function auth_success(req, response) {
window.location.href = ".";
}
function auth_error(req, error) {
var status = error.error.http_status;
switch (status){
case 401:
$("#error_message").text("Invalid username or password");
break;
case 500:
$("#error_message").text("OpenNebula is not running or there was a server exception. Please check the server logs.");
break;
case 0:
$("#error_message").text("No answer from server. Is it running?");
break;
default:
$("#error_message").text("Unexpected error. Status " + status + ". Check the server logs.");
};
$("#error_box").fadeIn("slow");
$("#login_spinner").hide();
}
function authenticate() {
var username = $("#username").val();
var password = $("#password").val();
var remember = $("#check_remember").is(":checked");
$("#error_box").fadeOut("slow");
$("#login_spinner").show();
OpenNebulaAuth.login({
data: {
username: username,
password: password
},
remember: remember,
success: auth_success,
error: auth_error
});
}
function getInternetExplorerVersion() {
// Returns the version of Internet Explorer or a -1
// (indicating the use of another browser).
var rv = -1; // Return value assumes failure.
if (navigator.appName == 'Microsoft Internet Explorer') {
var ua = navigator.userAgent;
var re = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
if (re.exec(ua) != null)
rv = parseFloat(RegExp.$1);
}
return rv;
}
function checkVersion() {
var ver = getInternetExplorerVersion();
if (ver > -1) {
msg = ver <= 7.0 ? "You are using an old version of IE. \
Please upgrade or use Firefox or Chrome for full compatibility." :
"OpenNebula Sunstone is best seen with Chrome or Firefox";
$("#error_box").text(msg);
$("#error_box").fadeIn('slow');
}
}
$(document).ready(function() {
$("#login_form").submit(function () {
authenticate();
return false;
});
//compact login elements according to screen height
if (screen.height <= 600) {
$('div#logo_sunstone').css("top", "15px");
$('div#login').css("top", "10px");
$('.error_message').css("top", "10px");
};
$("input#username.box").focus();
$("#login_spinner").hide();
checkVersion();
});
});

5
src/sunstone/public/dist/login.js vendored Normal file

File diff suppressed because one or more lines are too long

1
src/sunstone/public/dist/login.js.map vendored Normal file

File diff suppressed because one or more lines are too long

View File

@ -1,32 +1,31 @@
<!DOCTYPE html>
<head>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="shortcut icon" href="images/favicon.ico" />
<title>OpenNebula Sunstone Login</title>
<link rel="stylesheet" type="text/css" href="css/login.css" />
<script type="text/javascript" src="bower_components/jquery/dist/jquery.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="vendor/crypto-js/core-min.js"></script>
<script type="text/javascript" src="vendor/crypto-js/enc-base64-min.js"></script>
<![endif]-->
<script type="text/javascript" src="js/opennebula.js"></script>
<script type="text/javascript" src="js/login.js"></script>
<script src="bower_components/requirejs/require.js" data-main="dist/login"></script>
</head>
</head>
<body>
<% if settings.config[:auth] == "x509" %>
<%= erb :_login_x509 %>
<% else %>
<%= erb :_login_standard %>
<% end %>
<body>
<% if settings.config[:auth] == "x509" %>
<%= erb :_login_x509 %>
<% else %>
<%= erb :_login_standard %>
<% end %>
<div id="footer" style="overflow:visible;">
<a href="http://opennebula.org" target="_blank">OpenNebula 4.12.0</a> by <a href="http://opennebula.systems" target="_blank">OpenNebula Systems</a>.
</div>
</body>
</html>
<div id="footer" style="overflow:visible;">
<a href="http://opennebula.org" target="_blank">OpenNebula 4.12.0</a>
by
<a href="http://opennebula.systems" target="_blank">OpenNebula Systems</a>
.
</div>
</body>
</html>