From ebe3026d3b8dea23be3f7e0ca7c8fb9064010171 Mon Sep 17 00:00:00 2001 From: Luis Fernando Molina Date: Fri, 10 Aug 2018 13:19:11 +0200 Subject: [PATCH] Login Button at Top Space --- Images/aa-logo-vert.png | Bin 0 -> 4527 bytes Project.njsproj | 3 ++ Scripts/AppLoader.js | 1 + Spaces/TopSpace.js | 8 +++ TopSpace/CurrentBot.js | 2 +- TopSpace/CurrentProcess.js | 2 +- TopSpace/CurrentStartMode.js | 2 +- TopSpace/DevTeam.js | 2 +- TopSpace/EndUser.js | 2 +- TopSpace/Login.js | 95 +++++++++++++++++++++++++++++++++++ 10 files changed, 112 insertions(+), 5 deletions(-) create mode 100644 Images/aa-logo-vert.png create mode 100644 TopSpace/Login.js diff --git a/Images/aa-logo-vert.png b/Images/aa-logo-vert.png new file mode 100644 index 0000000000000000000000000000000000000000..c866edb8f7709fb435b4600be1bee5e7a68b0838 GIT binary patch literal 4527 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 N002ovPDHLkV1jlV$Cv;B literal 0 HcmV?d00001 diff --git a/Project.njsproj b/Project.njsproj index 588a30f5a..f6457a78a 100644 --- a/Project.njsproj +++ b/Project.njsproj @@ -60,6 +60,9 @@ Code + + Code + Code diff --git a/Scripts/AppLoader.js b/Scripts/AppLoader.js index adeea9ce7..1bcecfb26 100644 --- a/Scripts/AppLoader.js +++ b/Scripts/AppLoader.js @@ -39,6 +39,7 @@ "TopSpace/CurrentBot.js", "TopSpace/DevTeam.js", "TopSpace/EndUser.js", + "TopSpace/Login.js", "Panels/TimeControlPanel.js", "Panels/ProductsPanel.js", diff --git a/Spaces/TopSpace.js b/Spaces/TopSpace.js index a41066c97..f259a5f99 100644 --- a/Spaces/TopSpace.js +++ b/Spaces/TopSpace.js @@ -11,6 +11,7 @@ function newTopSpace() { currentBot: undefined, currentProcess: undefined, currentStartMode: undefined, + login: undefined, playStopButton: undefined, initialize: initialize }; @@ -57,6 +58,9 @@ function newTopSpace() { thisObject.currentStartMode = newCurrentStartMode(); thisObject.currentStartMode.initialize(sharedStatus); + thisObject.login = newLogin(); + thisObject.login.initialize(); + thisObject.playStopButton = newPlayStopButton(); thisObject.playStopButton.initialize(); @@ -84,6 +88,9 @@ function newTopSpace() { container = thisObject.currentStartMode.getContainer(point); if (container !== undefined) { return container; } + container = thisObject.login.getContainer(point); + if (container !== undefined) { return container; } + container = thisObject.playStopButton.getContainer(point); if (container !== undefined) { return container; } @@ -104,6 +111,7 @@ function newTopSpace() { thisObject.currentBot.draw(); thisObject.currentProcess.draw(); thisObject.currentStartMode.draw(); + thisObject.login.draw(); thisObject.playStopButton.draw(); } diff --git a/TopSpace/CurrentBot.js b/TopSpace/CurrentBot.js index d43661848..3bfece3a2 100644 --- a/TopSpace/CurrentBot.js +++ b/TopSpace/CurrentBot.js @@ -15,7 +15,7 @@ function newCurrentBot() { thisObject.container.frame.width = 200; thisObject.container.frame.height = TOP_SPACE_HEIGHT; - container.frame.position.x = viewPort.visibleArea.topRight.x - thisObject.container.frame.width * 3; + container.frame.position.x = viewPort.visibleArea.topRight.x - thisObject.container.frame.width * 4; container.frame.position.y = 0; container.isDraggeable = false; diff --git a/TopSpace/CurrentProcess.js b/TopSpace/CurrentProcess.js index 735cf43e5..bbbe4ff33 100644 --- a/TopSpace/CurrentProcess.js +++ b/TopSpace/CurrentProcess.js @@ -15,7 +15,7 @@ function newCurrentProcess() { thisObject.container.frame.width = 200; thisObject.container.frame.height = TOP_SPACE_HEIGHT; - container.frame.position.x = viewPort.visibleArea.topRight.x - thisObject.container.frame.width * 2; + container.frame.position.x = viewPort.visibleArea.topRight.x - thisObject.container.frame.width * 3; container.frame.position.y = 0; container.isDraggeable = false; diff --git a/TopSpace/CurrentStartMode.js b/TopSpace/CurrentStartMode.js index 5fe469d03..0f452bf86 100644 --- a/TopSpace/CurrentStartMode.js +++ b/TopSpace/CurrentStartMode.js @@ -15,7 +15,7 @@ function newCurrentStartMode() { thisObject.container.frame.width = 200; thisObject.container.frame.height = TOP_SPACE_HEIGHT; - container.frame.position.x = viewPort.visibleArea.topRight.x - thisObject.container.frame.width * 1; + container.frame.position.x = viewPort.visibleArea.topRight.x - thisObject.container.frame.width * 2; container.frame.position.y = 0; container.isDraggeable = false; diff --git a/TopSpace/DevTeam.js b/TopSpace/DevTeam.js index 70a7d090a..a8c0c5caa 100644 --- a/TopSpace/DevTeam.js +++ b/TopSpace/DevTeam.js @@ -15,7 +15,7 @@ function newDevTeam() { thisObject.container.frame.width = 200; thisObject.container.frame.height = TOP_SPACE_HEIGHT; - container.frame.position.x = viewPort.visibleArea.topRight.x - thisObject.container.frame.width * 4; + container.frame.position.x = viewPort.visibleArea.topRight.x - thisObject.container.frame.width * 5; container.frame.position.y = 0; container.isDraggeable = false; diff --git a/TopSpace/EndUser.js b/TopSpace/EndUser.js index 602c3cf42..a89ea6acb 100644 --- a/TopSpace/EndUser.js +++ b/TopSpace/EndUser.js @@ -15,7 +15,7 @@ function newEndUser() { thisObject.container.frame.width = 200; thisObject.container.frame.height = TOP_SPACE_HEIGHT; - container.frame.position.x = viewPort.visibleArea.topRight.x - thisObject.container.frame.width * 5; + container.frame.position.x = viewPort.visibleArea.topRight.x - thisObject.container.frame.width * 6; container.frame.position.y = 0; container.isDraggeable = false; diff --git a/TopSpace/Login.js b/TopSpace/Login.js new file mode 100644 index 000000000..c31548c65 --- /dev/null +++ b/TopSpace/Login.js @@ -0,0 +1,95 @@ + +function newLogin() { + + let thisObject = { + container: undefined, + draw: draw, + getContainer: getContainer, + initialize: initialize + }; + + let container = newContainer(); + container.initialize(); + thisObject.container = container; + + thisObject.container.frame.width = 200; + thisObject.container.frame.height = TOP_SPACE_HEIGHT; + + container.frame.position.x = viewPort.visibleArea.topRight.x - thisObject.container.frame.width * 1; + container.frame.position.y = 0; + + container.isDraggeable = false; + container.isClickeable = true; + + const LOGIN_URL = "https://advancedalgos1.eu.auth0.com/login?state=HQmR_JEnoSYS9Zz0nkCzW_zALsRJXjoQ&client=GReymhOiUQuLhDEwxlLu6PMDIa6mjVQQ&protocol=oauth2&response_type=token%20id_token&redirect_uri=https%3A%2F%2F" + window.location.host + "%2F%23&scope=openid&audience=https%3A%2F%2Fadvancedalgos1.eu.auth0.com%2Fuserinfo&nonce=7LZ5hOd6D3jFdNdtDvEqNOyOR3nZXw5A&auth0Client=eyJuYW1lIjoiYXV0aDAuanMiLCJ2ZXJzaW9uIjoiOS41LjEifQ%3D%3D" + const LOGOUT_URL = "/"; + + let currentURL; + let currentLabel; + + let sharedStatus; + + return thisObject; + + function initialize() { + + + if (window.USER_LOGGED_IN === "") { + + currentLabel = "Login"; + currentURL = LOGIN_URL; + + } else { + + currentLabel = "Logout"; + currentURL = LOGOUT_URL; + + } + + thisObject.container.eventHandler.listenToEvent("onMouseClick", onClick); + } + + function onClick() { + + window.location.href = currentURL; + + } + + function getContainer(point) { + + let container; + + /* First we check if this point is inside this object UI. */ + + if (thisObject.container.frame.isThisPointHere(point, true) === true) { + + return this.container; + + } else { + + /* This point does not belong to this space. */ + + return undefined; + } + + } + + function draw() { + + thisObject.container.frame.draw(false, false); + + let fontSize = 12; + let label = currentLabel; + + let point = { + x: thisObject.container.frame.width * 1 / 3, + y: (thisObject.container.frame.height / 2) + 4 + }; + + point = thisObject.container.frame.frameThisPoint(point); + + browserCanvasContext.font = fontSize + 'px ' + UI_FONT.PRIMARY; + browserCanvasContext.fillStyle = 'rgba(' + UI_COLOR.WHITE + ', 1)'; + browserCanvasContext.fillText(label, point.x, point.y); + } +} \ No newline at end of file