Skip to content
Snippets Groups Projects
Commit 7c43f1bc authored by Piotr Gawron's avatar Piotr Gawron
Browse files

login page is created using javascript

parent e082e745
No related branches found
No related tags found
1 merge request!207Resolve "remove unused JSF code"
......@@ -5,6 +5,7 @@ var ConfigurationType = {
GOOGLE_ANALYTICS_IDENTIFIER: "GOOGLE_ANALYTICS_IDENTIFIER",
LOGO_IMG: "LOGO_IMG",
LOGO_LINK: "LOGO_LINK",
LOGO_TEXT: "LOGO_TEXT",
LEGEND_FILES: "LEGEND_FILES",
MIN_COLOR_VAL: "MIN_COLOR_VAL",
MAX_COLOR_VAL: "MAX_COLOR_VAL",
......
......@@ -9,6 +9,7 @@ var ConfigurationType = require('./ConfigurationType');
var CustomMap = require('./map/CustomMap');
var CustomMapOptions = require('./map/CustomMapOptions');
var Export = require('./Export');
var GuiUtils = require('./gui/leftPanel/GuiUtils');
var PluginManager = require('./plugin/PluginManager');
var SearchDbOverlay = require('./map/overlay/SearchDbOverlay');
......@@ -367,8 +368,153 @@ function create(params) {
}
function createLogin(params) {
function createFooter(params) {
var logoLink, logoText, logoImg;
return ServerConnector.getConfigurationParam(ConfigurationType.LOGO_LINK).then(function (result) {
logoLink = result;
return ServerConnector.getConfigurationParam(ConfigurationType.LOGO_TEXT);
}).then(function (result) {
logoText = result;
return ServerConnector.getConfigurationParam(ConfigurationType.LOGO_IMG);
}).then(function (result) {
logoImg = result;
return ServerConnector.getConfiguration();
}).then(function (configuration) {
var div = functions.createElement({
type: "div", id: "footerTable",
content: '<table width="100%" border="0" cellspacing="0" cellpadding="0">' +
'<tr>' +
'<td align="left"><a href="' + logoLink + '" title="' + logoText + '" target="_blank">' +
'<h:graphicImage library="images" name="' + logoImg + '" width="80" height="80" border="0" alt="' + logoText + '"/>' +
'</a></td>' +
'<td align="center" class="footerText">MiNERVA version ' + configuration.getVersion() + ';<br/>' +
'build ' + configuration.getBuildDate() + ';<br/>' +
'git: ' + configuration.getGitHash() + '</td>' +
'<td align="right"><a href="http://wwwen.uni.lu/lcsb/" title="LCSB - Luxembourg Centre for Systems Biomedicine" target="_blank">' +
'<h:graphicImage library="images" name="lcsb.png" width="80" height="80" border="0" alt="LCSB - Luxembourg Centre for Systems Biomedicine"/>' +
'</a></td>' +
'</tr>\n' +
'</table>', xss: false
});
return div;
})
}
function createLoginDiv(params) {
var loggedIn = false;
var result = functions.createElement({type: "center"});
var resultDiv = functions.createElement({type: "div", className: "loginPanel", style: "text-align:left"});
result.appendChild(resultDiv);
resultDiv.appendChild(functions.createElement({
type: "div",
className: "headerFormTitle",
content: "AUTHORIZATION FORM"
}));
var guiUtils = new GuiUtils();
var table = functions.createElement({
type: "div",
className: "loginDataPanelGrid",
style: "display: table;border-spacing:5px"
});
table.appendChild(guiUtils.createTableRow([
functions.createElement({type: "label", className: "labelText", content: "LOGIN:"}),
functions.createElement({type: "input", className: "minerva-input-text", id: "username"})]
));
table.appendChild(guiUtils.createTableRow([
functions.createElement({type: "label", className: "labelText", content: "PASSWORD:"}),
functions.createElement({
type: "input",
inputType: "password",
className: "minerva-input-password",
id: "password"
})]
));
table.appendChild(guiUtils.createTableRow([
functions.createElement({type: "label", className: "labelText"}),
functions.createElement({type: "button", className: "labelText", id: "login", content: "LOGIN"})]
));
resultDiv.appendChild(table);
resultDiv.appendChild(functions.createElement({type: "br"}));
resultDiv.appendChild(functions.createElement({type: "br"}));
resultDiv.appendChild(functions.createElement({
type: "a",
href: "javascript:;",
id: "go_to_map_button",
className: "adminLink",
content: '<i class="fa fa-chevron-right"></i> BACK TO MAP',
xss: false
}));
resultDiv.appendChild(functions.createElement({type: "br"}));
resultDiv.appendChild(functions.createElement({
type: "a",
href: "javascript:;",
id: "register_button",
className: "adminLink",
content: '<i class="fa fa-chevron-right"></i> REQUEST AN ACCOUNT</a>',
xss: false
}));
var fromPage = GuiConnector.getParams["from"];
$("#login", result).on("click", function login() {
var loginString = document.getElementById('username').value;
var passwordString = document.getElementById('password').value;
return ServerConnector.login(loginString, passwordString).then(function () {
loggedIn = true;
if (fromPage !== undefined) {
window.location.href = fromPage;
} else {
window.location.href = ServerConnector.getServerBaseUrl();
}
}, function (error) {
if (error.constructor.name === "InvalidCredentialsError") {
GuiConnector.alert("invalid credentials");
} else {
GuiConnector.alert(error);
}
});
});
$('#go_to_map_button', result).click(function () {
return ServerConnector.getProjectId().then(function (projectId) {
window.location.href = ServerConnector.getServerBaseUrl() + '?id=' + projectId;
});
});
$('#register_button', result).click(function () {
return ServerConnector.getProjectId().then(function (projectId) {
var email, content;
return ServerConnector.getConfigurationParam("REQUEST_ACCOUNT_EMAIL").then(function (result) {
email = result;
return ServerConnector.getConfigurationParam("REQUEST_ACCOUNT_DEFAULT_CONTENT");
}).then(function (result) {
content = encodeURIComponent(result);
document.location.href = 'mailto:' + email + '?subject=MINERVA account request&body=' + content;
});
});
});
return result;
}
function createLogin(params) {
params = modifyParamsForTouchInterface(params);
if (!(params instanceof CustomMapOptions)) {
params = new CustomMapOptions(params);
}
initGlobals(params);
return ServerConnector.getToken().then(function () {
return ServerConnector.getConfiguration();
}).then(function (footer) {
var loginDiv = createLoginDiv(params);
params.getElement().appendChild(loginDiv);
return createFooter(params);
}).then(function (footer) {
params.getElement().appendChild(footer);
return insertGoogleAnalyticsCode();
})
}
function createExport(params) {
......
......@@ -265,7 +265,7 @@ describe('minerva global', function () {
});
});
describe('create Admin', function () {
describe('createAdmin', function () {
it('as admin', function () {
helper.loginAsAdmin();
var options = null;
......@@ -292,6 +292,13 @@ describe('minerva global', function () {
});
});
});
describe('createLogin', function () {
it('default', function () {
return minerva.createLogin({element: testDiv}).then(function () {
assert.ok(testDiv.innerHTML.indexOf("MiNERVA") >= 0);
});
});
});
it('getProject', function () {
return ServerConnectorMock.getProject().then(function (project) {
var options = helper.createCustomMapOptions(project);
......
......@@ -2,135 +2,51 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
>
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets">
<h:head>
<title>minerva - Authorization form</title>
<link rel="shortcut icon" href="./resources/images/favicon.png" type="image/png"/>
<title>minerva - Authorization form</title>
<link rel="shortcut icon" href="./resources/images/favicon.png"
type="image/png" />
<script src="https://maps.google.com/maps/api/js?libraries=drawing&amp;v=3.26" type="text/javascript"/>
<script
src="https://maps.google.com/maps/api/js?libraries=drawing&amp;v=3.26"
type="text/javascript" />
<script src="https://code.jquery.com/jquery-1.12.1.min.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<script src="https://cdn.datatables.net/1.10.13/js/jquery.dataTables.min.js"></script>
<script src="https://code.jquery.com/jquery-1.12.1.min.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<script
src="https://cdn.datatables.net/1.10.13/js/jquery.dataTables.min.js"></script>
<h:outputScript library="js" name="minerva.js"/>
<h:outputScript library="js" name="minerva.js" />
<h:outputStylesheet library="css" name="style.css"/>
<h:outputStylesheet library="css" name="minerva.css"/>
<h:outputStylesheet library="css" name="admin.css"/>
<h:outputStylesheet library="css" name="style.css" />
<h:outputStylesheet library="css" name="minerva.css" />
<h:outputStylesheet library="css" name="admin.css" />
<script type="text/javascript">
//<![CDATA[
var loggedIn = false;
minerva.GuiConnector.init();
minerva.ServerConnector.getSessionData(null);
minerva.ServerConnector.login().then(function () {
return minerva.ServerConnector.getProject()
});
function login() {
var loginString = document.getElementById('username').value;
var passwordString = document.getElementById('password').value;
minerva.GuiConnector.init();
minerva.ServerConnector.getSessionData(null);
return minerva.ServerConnector.login(loginString, passwordString);
}
function init() {
var fromPage = minerva.GuiConnector.getParams["from"];
if (fromPage !== undefined && fromPage !== null && fromPage !== "") {
$("#from")[0].value = minerva.GuiConnector.getParams["from"];
}
$('#login').click(function (e) {
if (!loggedIn) {
e.preventDefault();
return login().then(function () {
loggedIn = true;
if (fromPage!==undefined) {
window.location.href = fromPage;
} else {
window.location.href = minerva.ServerConnector.getServerBaseUrl();
}
}, function (error) {
if (error.constructor.name === "InvalidCredentialsError") {
minerva.GuiConnector.alert("invalid credentials");
} else {
minerva.GuiConnector.alert(error);
}
});
}
});
$('#go_to_map_button').click(function (e) {
return minerva.ServerConnector.getProjectId().then(function(projectId){
window.location.href='#{request.contextPath}/?id='+projectId;
});
});
}
function requestAccount() {
var email, content;
return minerva.ServerConnector.getConfigurationParam("REQUEST_ACCOUNT_EMAIL").then(function(result){
email = result;
return minerva.ServerConnector.getConfigurationParam("REQUEST_ACCOUNT_DEFAULT_CONTENT");
}).then(function(result){
content = encodeURIComponent(result);
url = 'mailto:'+email+'?subject=MINERVA account request&body='+content;
window.location.href=url;
})
return false;
}
//]]>
</script>
<script type="text/javascript">
//<![CDATA[
function init() {
var element = document.getElementById('minervaAppDiv');
return minerva.createLogin({
element : element,
}).catch(function(rejectReason){
minerva.GuiConnector.alert(rejectReason, true);
});
}
//]]>
</script>
</h:head>
<h:body onload="init();">
<center>
<h:form name="loginForm" prependId="false" class="loginPanel" style="text-align:left">
<div class="headerFormTitle">AUTHORIZATION FORM</div>
<h:panelGrid columns="2" styleClass="loginDataPanelGrid">
<label for="username" class="labelText">LOGIN: </label>
<h:inputText id="username" name="username" class="minerva-input-text"/>
<label for="password" class="labelText">PASSWORD: </label>
<h:inputSecret id="password" name="password" type="password"
class="minerva-input-password"/>
<label class="labelText"> </label>
<h:commandButton type="submit" id="login" ajax="false"
value="LOGIN" styleClass="labelText" update="loginMessages"/>
</h:panelGrid>
<input type="hidden" name="from" id="from" value=""/>
<br/>
<br/>
<a href="javascript:;" id="go_to_map_button"
class="adminLink"><i
class="fa fa-chevron-right"></i> BACK TO MAP</a>
<br/>
<a href="javascript:;" id="register_button"
onClick="requestAccount(); return false"
class="adminLink"><i class="fa fa-chevron-right"></i> REQUEST AN ACCOUNT</a>
</h:form>
</center>
<ui:include src="/WEB-INF/components/admin/footer.xhtml"/>
<div id="minervaAppDiv" />
</h:body>
</html>
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment