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

User data moved to Info tab

parent 9c31a5a4
No related branches found
No related tags found
1 merge request!31Resolve "Login"
...@@ -16,6 +16,16 @@ function ProjectInfoPanel(params) { ...@@ -16,6 +16,16 @@ function ProjectInfoPanel(params) {
var self = this; var self = this;
self._createInfoPanelGui(); self._createInfoPanelGui();
self._createInfoPanelLogic(); self._createInfoPanelLogic();
self._createUserDataTab();
var logoutButton = self.getControlElement(PanelControlElementType.USER_TAB_LOGOUT_BUTTON);
logoutButton.onclick = function() {
return ServerConnector.logout().then(function() {
window.location.reload(false);
}).then(null, GuiConnector.alert);
};
} }
ProjectInfoPanel.prototype = Object.create(Panel.prototype); ProjectInfoPanel.prototype = Object.create(Panel.prototype);
...@@ -217,8 +227,135 @@ ProjectInfoPanel.prototype.refresh = function() { ...@@ -217,8 +227,135 @@ ProjectInfoPanel.prototype.refresh = function() {
projectVersionText.innerHTML = project.getVersion(); projectVersionText.innerHTML = project.getVersion();
projectDescriptionText.innerHTML = project.getDescription(); projectDescriptionText.innerHTML = project.getDescription();
projectPublicationsText.innerHTML = project.getPublicationCount(); projectPublicationsText.innerHTML = project.getPublicationCount();
return null; return ServerConnector.getLoggedUser();
}).then(function(user) {
self.showUserProfilePage(user);
});
};
ProjectInfoPanel.prototype._createUserDataTab = function() {
var self = this;
var userDataDiv = Functions.createElement({
type : "div",
name : "userDataTab",
className : "searchPanel",
style : "display:none"
});
this.getElement().appendChild(userDataDiv);
this.setControlElement(PanelControlElementType.USER_TAB_USER_DIV, userDataDiv);
var userDataTitle = Functions.createElement({
type : "h3",
content : '<img src="./resources/images/profile.png" border="0" align="left"/><br/>User data<br/>'
});
userDataDiv.appendChild(userDataTitle);
var userDataFormTab = Functions.createElement({
type : "div",
style : "width:100%;display: table;border-spacing: 10px;"
});
userDataDiv.appendChild(userDataFormTab);
var loginLabel = Functions.createElement({
type : "span",
content : "LOGIN:",
style : "color:#999999"
}); });
var loginText = Functions.createElement({
type : "span",
name : "loginValue"
});
this.setControlElement(PanelControlElementType.USER_TAB_LOGIN_TEXT, loginText);
userDataDiv.appendChild(self.createTableRow([ loginLabel, loginText ]));
var nameLabel = Functions.createElement({
type : "span",
content : "NAME:",
style : "color:#999999"
});
var nameText = Functions.createElement({
type : "span",
name : "nameValue"
});
this.setControlElement(PanelControlElementType.USER_TAB_NAME_TEXT, nameText);
userDataDiv.appendChild(self.createTableRow([ nameLabel, nameText ]));
var surnameLabel = Functions.createElement({
type : "span",
content : "SURNAME:",
style : "color:#999999"
});
var surnameText = Functions.createElement({
type : "span",
name : "surnameValue"
});
this.setControlElement(PanelControlElementType.USER_TAB_SURNAME_TEXT, surnameText);
userDataDiv.appendChild(self.createTableRow([ surnameLabel, surnameText ]));
var emailLabel = Functions.createElement({
type : "span",
content : "EMAIL:",
style : "color:#999999"
});
var emailText = Functions.createElement({
type : "span",
name : "emailValue"
});
this.setControlElement(PanelControlElementType.USER_TAB_EMAIL_TEXT, emailText);
userDataDiv.appendChild(self.createTableRow([ emailLabel, emailText ]));
var centerTag = Functions.createElement({
type : "center"
});
userDataDiv.appendChild(centerTag);
var logoutButton = Functions.createElement({
type : "button",
name : "logoutButton",
content : "LOGOUT"
});
centerTag.appendChild(logoutButton);
this.setControlElement(PanelControlElementType.USER_TAB_LOGOUT_BUTTON, logoutButton);
this.setControlElement(PanelControlElementType.USER_TAB_USER_DIV, userDataDiv);
var loginTabDiv = Functions.createElement({
type : "div",
name : "userLoginTab",
className : "searchPanel",
style : "display:none",
content : '<h3><img src="./resources/images/profile.png" border="0" align="left"/>'
+ '<br/>User data</h3><br/>YOU ARE NOT LOGGED IN.'
});
this.getElement().appendChild(loginTabDiv);
this.setControlElement(PanelControlElementType.USER_TAB_LOGIN_DIV, loginTabDiv);
};
ProjectInfoPanel.prototype.showUserProfilePage = function(user) {
var self = this;
var userDataTabDiv = self.getControlElement(PanelControlElementType.USER_TAB_USER_DIV);
var userLoginTabDiv = self.getControlElement(PanelControlElementType.USER_TAB_LOGIN_DIV);
if (user.getLogin() !== "anonymous") {
var userLoginTabDiv = self.getControlElement(PanelControlElementType.USER_TAB_LOGIN_DIV);
var userDataTabDiv = self.getControlElement(PanelControlElementType.USER_TAB_USER_DIV);
var loginText = self.getControlElement(PanelControlElementType.USER_TAB_LOGIN_TEXT);
var nameText = self.getControlElement(PanelControlElementType.USER_TAB_NAME_TEXT);
var surnameText = self.getControlElement(PanelControlElementType.USER_TAB_SURNAME_TEXT);
var emailText = self.getControlElement(PanelControlElementType.USER_TAB_EMAIL_TEXT);
userLoginTabDiv.style.display = "none";
userDataTabDiv.style.display = "block";
loginText.innerHTML = user.getLogin();
nameText.innerHTML = user.getName();
surnameText.innerHTML = user.getSurname();
emailText.innerHTML = user.getEmail();
} else {
userLoginTabDiv.style.display = "block";
userDataTabDiv.style.display = "none";
}
}; };
ProjectInfoPanel.prototype.init = function() { ProjectInfoPanel.prototype.init = function() {
......
...@@ -16,30 +16,19 @@ function UserPanel(params) { ...@@ -16,30 +16,19 @@ function UserPanel(params) {
Panel.call(this, params); Panel.call(this, params);
var self = this; var self = this;
self._createLoginTab(); self._createLoginTab();
self._createUserDataTab();
var loginButton = self.getControlElement(PanelControlElementType.USER_TAB_LOGIN_BUTTON); var loginButton = self.getControlElement(PanelControlElementType.USER_TAB_LOGIN_BUTTON);
var logoutButton = self.getControlElement(PanelControlElementType.USER_TAB_LOGOUT_BUTTON); loginButton.onclick = function() {
loginButton.onclick = function(){
var login = self.getControlElement(PanelControlElementType.USER_TAB_LOGIN_INPUT_TEXT).value; var login = self.getControlElement(PanelControlElementType.USER_TAB_LOGIN_INPUT_TEXT).value;
var password = self.getControlElement(PanelControlElementType.USER_TAB_PASSOWRD_INPUT_TEXT).value; var password = self.getControlElement(PanelControlElementType.USER_TAB_PASSOWRD_INPUT_TEXT).value;
return ServerConnector.login(login, password).then(function(){ return ServerConnector.login(login, password).then(function() {
window.location.reload(false);
}).catch(function(problem){
GuiConnector.alert(problem);
});
};
logoutButton.onclick = function(){
return ServerConnector.logout().then(function(){
window.location.reload(false); window.location.reload(false);
}).catch(function(problem){ }).then(null, GuiConnector.alert);
GuiConnector.alert(problem);
});
}; };
} }
UserPanel.prototype = Object.create(Panel.prototype); UserPanel.prototype = Object.create(Panel.prototype);
...@@ -47,115 +36,78 @@ UserPanel.prototype.constructor = UserPanel; ...@@ -47,115 +36,78 @@ UserPanel.prototype.constructor = UserPanel;
UserPanel.prototype._createLoginTab = function() { UserPanel.prototype._createLoginTab = function() {
var self = this; var self = this;
var loginTabDiv = Functions.createElement({type:"div", name:"userLoginTab", className:"searchPanel" }); var loginTabDiv = Functions.createElement({
type : "div",
name : "userLoginTab",
className : "searchPanel"
});
this.getElement().appendChild(loginTabDiv); this.getElement().appendChild(loginTabDiv);
this.setControlElement(PanelControlElementType.USER_TAB_LOGIN_DIV, loginTabDiv); this.setControlElement(PanelControlElementType.USER_TAB_LOGIN_DIV, loginTabDiv);
var authirizationTitle = Functions.createElement({type:"h5", content:"AUTHORIZATION FORM:"} ); var authirizationTitle = Functions.createElement({
type : "h5",
content : "AUTHORIZATION FORM:"
});
loginTabDiv.appendChild(authirizationTitle); loginTabDiv.appendChild(authirizationTitle);
var authorizationFormTab = Functions.createElement({type:"div", style:"width:100%;display: table;border-spacing: 10px;"} ); var authorizationFormTab = Functions.createElement({
type : "div",
style : "width:100%;display: table;border-spacing: 10px;"
});
loginTabDiv.appendChild(authorizationFormTab); loginTabDiv.appendChild(authorizationFormTab);
var loginLabel = Functions.createElement({type:"div", content:"LOGIN:"} ); var loginLabel = Functions.createElement({
var loginInput = Functions.createElement({type:"input", inputType:"text", style:"width:100%", name:"loginText"} ); type : "div",
content : "LOGIN:"
});
var loginInput = Functions.createElement({
type : "input",
inputType : "text",
style : "width:100%",
name : "loginText"
});
this.setControlElement(PanelControlElementType.USER_TAB_LOGIN_INPUT_TEXT, loginInput); this.setControlElement(PanelControlElementType.USER_TAB_LOGIN_INPUT_TEXT, loginInput);
authorizationFormTab.appendChild(self.createTableRow([loginLabel, loginInput])); authorizationFormTab.appendChild(self.createTableRow([ loginLabel, loginInput ]));
var passwordLabel = Functions.createElement({type:"div", content:"LOGIN:"} ); var passwordLabel = Functions.createElement({
var passwordInput = Functions.createElement({type:"input", inputType:"password", style:"width:100%", name:"passwordText"} ); type : "div",
content : "LOGIN:"
});
var passwordInput = Functions.createElement({
type : "input",
inputType : "password",
style : "width:100%",
name : "passwordText"
});
this.setControlElement(PanelControlElementType.USER_TAB_PASSOWRD_INPUT_TEXT, passwordInput); this.setControlElement(PanelControlElementType.USER_TAB_PASSOWRD_INPUT_TEXT, passwordInput);
authorizationFormTab.appendChild(self.createTableRow([passwordLabel, passwordInput])); authorizationFormTab.appendChild(self.createTableRow([ passwordLabel, passwordInput ]));
var centerTag = Functions.createElement({type:"center"} ); var centerTag = Functions.createElement({
type : "center"
});
loginTabDiv.appendChild(centerTag); loginTabDiv.appendChild(centerTag);
var loginButton = Functions.createElement({type:"button", name:"loginButton", content:"LOGIN"} ); var loginButton = Functions.createElement({
type : "button",
name : "loginButton",
content : "LOGIN"
});
centerTag.appendChild(loginButton); centerTag.appendChild(loginButton);
this.setControlElement(PanelControlElementType.USER_TAB_LOGIN_BUTTON, loginButton); this.setControlElement(PanelControlElementType.USER_TAB_LOGIN_BUTTON, loginButton);
}; };
UserPanel.prototype._createUserDataTab = function() {
var self = this;
var userDataDiv = Functions.createElement({type:"div", name:"userDataTab", className:"searchPanel", style:"display:none"});
this.getElement().appendChild(userDataDiv);
this.setControlElement(PanelControlElementType.USER_TAB_USER_DIV, userDataDiv);
var userDataTitle = Functions.createElement({type:"h3", content:'<img src="./resources/images/profile.png" border="0" align="left"/><br/>WELCOME<br/>'} );
userDataDiv.appendChild(userDataTitle);
var userDataFormTab = Functions.createElement({type:"div", style:"width:100%;display: table;border-spacing: 10px;"} );
userDataDiv.appendChild(userDataFormTab);
var loginLabel = Functions.createElement({type:"span", content:"LOGIN:", style:"color:#999999"} );
var loginText = Functions.createElement({type:"span", name:"loginValue"} );
this.setControlElement(PanelControlElementType.USER_TAB_LOGIN_TEXT, loginText);
userDataDiv.appendChild(self.createTableRow([loginLabel, loginText]));
var nameLabel = Functions.createElement({type:"span", content:"NAME:", style:"color:#999999"} );
var nameText = Functions.createElement({type:"span", name:"nameValue"} );
this.setControlElement(PanelControlElementType.USER_TAB_NAME_TEXT, nameText);
userDataDiv.appendChild(self.createTableRow([nameLabel, nameText]));
var surnameLabel = Functions.createElement({type:"span", content:"SURNAME:", style:"color:#999999"} );
var surnameText = Functions.createElement({type:"span", name:"surnameValue"} );
this.setControlElement(PanelControlElementType.USER_TAB_SURNAME_TEXT, surnameText);
userDataDiv.appendChild(self.createTableRow([surnameLabel, surnameText]));
var emailLabel = Functions.createElement({type:"span", content:"EMAIL:", style:"color:#999999"} );
var emailText = Functions.createElement({type:"span", name:"emailValue"} );
this.setControlElement(PanelControlElementType.USER_TAB_EMAIL_TEXT, emailText);
userDataDiv.appendChild(self.createTableRow([emailLabel, emailText]));
var centerTag = Functions.createElement({type:"center"} );
userDataDiv.appendChild(centerTag);
var logoutButton = Functions.createElement({type:"button", name:"logoutButton", content:"LOGOUT"} );
centerTag.appendChild(logoutButton);
this.setControlElement(PanelControlElementType.USER_TAB_LOGOUT_BUTTON, logoutButton);
};
UserPanel.prototype.showLoginPage = function() { UserPanel.prototype.showLoginPage = function() {
var self = this; var self = this;
var userLoginTabDiv = self.getControlElement(PanelControlElementType.USER_TAB_LOGIN_DIV);
var userDataTabDiv = self.getControlElement(PanelControlElementType.USER_TAB_USER_DIV);
userLoginTabDiv.style.display = "block";
userDataTabDiv.style.display = "none";
};
UserPanel.prototype.showUserProfilePage = function(user) {
var self = this;
var userLoginTabDiv = self.getControlElement(PanelControlElementType.USER_TAB_LOGIN_DIV);
var userDataTabDiv = self.getControlElement(PanelControlElementType.USER_TAB_USER_DIV);
var loginText = self.getControlElement(PanelControlElementType.USER_TAB_LOGIN_TEXT);
var nameText = self.getControlElement(PanelControlElementType.USER_TAB_NAME_TEXT);
var surnameText = self.getControlElement(PanelControlElementType.USER_TAB_SURNAME_TEXT);
var emailText = self.getControlElement(PanelControlElementType.USER_TAB_EMAIL_TEXT);
userLoginTabDiv.style.display = "none";
userDataTabDiv.style.display = "block";
loginText.innerHTML = user.getLogin();
nameText.innerHTML = user.getName();
surnameText.innerHTML = user.getSurname();
emailText.innerHTML = user.getEmail();
}; };
UserPanel.prototype.init = function() { UserPanel.prototype.init = function() {
var self = this; var self = this;
return ServerConnector.getLoggedUser().then(function(user) { return ServerConnector.getLoggedUser().then(function(user) {
if (user.getLogin() === "anonymous") { self.showLoginPage();
self.showLoginPage();
} else {
self.showUserProfilePage(user);
}
return Promise.resolve();
}); });
}; };
......
...@@ -69,4 +69,16 @@ describe('ProjectInfoPanel', function() { ...@@ -69,4 +69,16 @@ describe('ProjectInfoPanel', function() {
}); });
}); });
it('show profile', function() {
var map = helper.createCustomMap();
var panel = new ProjectInfoPanel({
element : testDiv,
customMap : map
});
var user = helper.createUser();
panel.showUserProfilePage(user);
});
}); });
...@@ -28,17 +28,6 @@ describe('UserPanel', function() { ...@@ -28,17 +28,6 @@ describe('UserPanel', function() {
assert.equal(logger.getWarnings().length, 0); assert.equal(logger.getWarnings().length, 0);
}); });
it('show profile', function() {
var map = helper.createCustomMap();
var panel = new UserPanel({
element : testDiv,
customMap : map
});
var user = helper.createUser();
panel.showUserProfilePage(user);
});
it('show login page', function() { it('show login page', function() {
var map = helper.createCustomMap(); var map = helper.createCustomMap();
......
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