From a2f8abd18e6b9f6e815aa987b761faa5861f5ed5 Mon Sep 17 00:00:00 2001 From: Piotr Gawron <piotr.gawron@uni.lu> Date: Tue, 29 Oct 2019 14:25:21 +0100 Subject: [PATCH] login link in eader separted from access admin panel link --- frontend-js/src/main/css/global.css | 13 +++--- frontend-js/src/main/js/gui/Header.js | 42 +++++++++++++++---- .../src/main/js/gui/leftPanel/LeftPanel.js | 3 +- 3 files changed, 43 insertions(+), 15 deletions(-) diff --git a/frontend-js/src/main/css/global.css b/frontend-js/src/main/css/global.css index 5111112d4c..e46f9f3a64 100644 --- a/frontend-js/src/main/css/global.css +++ b/frontend-js/src/main/css/global.css @@ -35,6 +35,8 @@ h5 { background-color: #333333; color: #ffffff; display: block; + padding-left: 8px; + padding-right: 8px; } .minerva-header a:link, .minerva-header a:visited { @@ -46,7 +48,8 @@ h5 { transition: background-color 0.4s ease-in-out 0s; font-size: 13px; font-weight: 900; - padding-left: 15px; + padding-left: 8px; + padding-right: 8px; } .minerva-header-right-menu { @@ -77,12 +80,8 @@ h5 { } .minerva-header .minerva-menu-link { - padding-right: 5px; - float: right; -} - -.minerva-header .minerva-admin-link { - padding-right: 15px; + padding-left: 8px; + padding-right: 8px; float: right; } diff --git a/frontend-js/src/main/js/gui/Header.js b/frontend-js/src/main/js/gui/Header.js index 7c41decc7e..544ffbe28f 100644 --- a/frontend-js/src/main/js/gui/Header.js +++ b/frontend-js/src/main/js/gui/Header.js @@ -21,6 +21,7 @@ var xss = require('xss'); * @param {boolean} [params.optionsMenu=false] * @param {Configuration} params.configuration * @param {Project} [params.project] + * @param {LeftPanel} params.parent * @param {ServerConnector} [params.serverConnector] * * @constructor @@ -35,7 +36,7 @@ function Header(params) { optionsMenu: params.optionsMenu }; - self._createHeaderGui(guiParams); + self._createHeaderGui(guiParams, params.parent); } Header.prototype = Object.create(AbstractGuiElement.prototype); @@ -45,9 +46,10 @@ Header.prototype.constructor = Header; * * @param {Object} guiParams * @param {boolean} guiParams.optionsMenu + * @param {LeftPanel} parent * @private */ -Header.prototype._createHeaderGui = function (guiParams) { +Header.prototype._createHeaderGui = function (guiParams, parent) { var self = this; self.getElement().className = "minerva-header"; @@ -66,14 +68,40 @@ Header.prototype._createHeaderGui = function (guiParams) { loadingDiv.appendChild(loadingImg); this.setControlElement(PanelControlElementType.FOOTER_LOADING_DIV, loadingDiv); - var link = Functions.createElement({ + self.getElement().appendChild(Functions.createElement({ type: "a", - className: "minerva-admin-link", - content: '<i class="fa fa-lock" style="font-size:17px"></i> ', + className: "minerva-menu-link", + content: '<i class="fa fa-user-cog" style="font-size:17px"></i> ', href: self.getServerConnector().getServerBaseUrl() + "admin.xhtml?id=" + projectId, + title: "Admin panel", xss: false - }); - self.getElement().appendChild(link); + })); + + if (self.getServerConnector().getSessionData().getLogin() === "anonymous") { + self.getElement().appendChild(Functions.createElement({ + type: "a", + className: "minerva-menu-link", + content: '<i class="fa fa-lock" style="font-size:17px"></i> ', + href: "#", + onclick: function() { + return parent.getLoginDialog().open(); + }, + title: "Login", + xss: false + })); + } else { + self.getElement().appendChild(Functions.createElement({ + type: "a", + className: "minerva-menu-link", + content: '<i class="fa fa-lock-open" style="font-size:17px"></i> ', + href: "#", + onclick: function() { + return self.getServerConnector().logout().catch(GuiConnector.alert); + }, + title: "Logout", + xss: false + })); + } if (guiParams.optionsMenu) { var optionsElement = Functions.createElement({type: "ul", className: "minerva-options-menu"}); diff --git a/frontend-js/src/main/js/gui/leftPanel/LeftPanel.js b/frontend-js/src/main/js/gui/leftPanel/LeftPanel.js index 6c943b62e6..783142ab5e 100644 --- a/frontend-js/src/main/js/gui/leftPanel/LeftPanel.js +++ b/frontend-js/src/main/js/gui/leftPanel/LeftPanel.js @@ -59,7 +59,8 @@ LeftPanel.prototype._createPanelGui = function () { element: headerDiv, customMap: self.getMap(), optionsMenu: true, - configuration: self.getConfiguration() + configuration: self.getConfiguration(), + parent: this }); self.getElement().appendChild(headerDiv); -- GitLab