aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/client/views/Main.tsx4
-rw-r--r--src/server/authentication/controllers/WorkspacesMenu.css3
-rw-r--r--src/server/authentication/controllers/WorkspacesMenu.tsx55
-rw-r--r--src/server/index.ts2
4 files changed, 48 insertions, 16 deletions
diff --git a/src/client/views/Main.tsx b/src/client/views/Main.tsx
index e55bc693e..90ce8be1a 100644
--- a/src/client/views/Main.tsx
+++ b/src/client/views/Main.tsx
@@ -187,8 +187,8 @@ function init() {
}} onClick={() => window.location.pathname = "/logout"}>Logout</button>
<button style={{
position: 'absolute',
- top: '50px',
- right: '0px',
+ top: '24px',
+ left: '4px',
width: '150px'
}} onClick={() => WorkspacesMenu.Instance.toggle()}>Workspaces</button>
<WorkspacesMenu />
diff --git a/src/server/authentication/controllers/WorkspacesMenu.css b/src/server/authentication/controllers/WorkspacesMenu.css
new file mode 100644
index 000000000..b89039965
--- /dev/null
+++ b/src/server/authentication/controllers/WorkspacesMenu.css
@@ -0,0 +1,3 @@
+.ids:hover {
+ color: darkblue;
+} \ No newline at end of file
diff --git a/src/server/authentication/controllers/WorkspacesMenu.tsx b/src/server/authentication/controllers/WorkspacesMenu.tsx
index 77e3a9778..23a3d35da 100644
--- a/src/server/authentication/controllers/WorkspacesMenu.tsx
+++ b/src/server/authentication/controllers/WorkspacesMenu.tsx
@@ -3,6 +3,7 @@ import * as ReactDOM from 'react-dom';
import { observable, action, configure, reaction, computed } from 'mobx';
import { observer } from "mobx-react";
import * as request from 'request'
+import './WorkspacesMenu.css'
@observer
export class WorkspacesMenu extends React.Component {
@@ -15,33 +16,61 @@ export class WorkspacesMenu extends React.Component {
WorkspacesMenu.Instance = this;
}
+ @action
toggle() {
- action(() => {
- if (!this.workspacesExposed) {
- request.get(window.location.origin + "/getAllWorkspaceIds", (error, response, body) => {
- this.workspaceIds = body;
- console.log(this.workspaceIds);
- })
+ if (this.workspacesExposed) {
+ this.workspacesExposed = !this.workspacesExposed;
+ } else {
+ request.get(window.location.origin + "/getAllWorkspaceIds", this.idCallback)
+ }
+ }
+
+ @action.bound
+ idCallback: request.RequestCallback = (error, response, body) => {
+ this.workspaceIds = [];
+ let ids: Array<string> = JSON.parse(body) as Array<string>;
+ if (ids) {
+ for (let i = 0; i < ids.length; i++) {
+ this.workspaceIds.push(ids[i]);
}
+ console.log(this.workspaceIds);
this.workspacesExposed = !this.workspacesExposed;
- });
+ }
+ }
+
+ setWorkspaceId = (e: React.MouseEvent) => {
+
}
render() {
return (
<div
style={{
- width: "150px",
- height: "150px",
+ width: "auto",
+ height: "auto",
+ borderRadius: 5,
position: "absolute",
- top: 75,
- right: 0,
- background: "grey",
+ top: 50,
+ left: 8,
+ background: "white",
+ border: "black solid 2px",
+ transition: "all 0.3s ease",
zIndex: 15,
+ padding: 10,
visibility: this.workspacesExposed ? "visible" : "hidden"
}}
>
- {this.workspaceIds.map(s => <li key={s} >${s}</li>)}
+ {this.workspaceIds.map(s =>
+ <li className={"ids"}
+ key={s}
+ style={{
+ listStyleType: "none",
+ paddingTop: 3,
+ paddingBottom: 3
+ }}
+ onClick={this.setWorkspaceId}
+ >{s}</li>
+ )}
</div>
);
}
diff --git a/src/server/index.ts b/src/server/index.ts
index 8f740b1d7..1d16f65ed 100644
--- a/src/server/index.ts
+++ b/src/server/index.ts
@@ -110,7 +110,7 @@ app.get("/getAllWorkspaceIds", (req, res) => {
if (!dashUser) {
return;
}
- res.send(dashUser.allWorkspaceIds);
+ res.send(JSON.stringify(dashUser.allWorkspaceIds as Array<String>));
})
app.post("/setActiveWorkspaceId", (req, res) => {