From 8bdef5c07d3ba7e6c6a8940bb6786805893812c7 Mon Sep 17 00:00:00 2001 From: Sam Wilkins Date: Wed, 27 Feb 2019 10:29:53 -0500 Subject: workspaces menu initialized --- .../authentication/controllers/WorkspacesMenu.tsx | 48 ++++++++++++++++++++++ src/server/authentication/models/user_model.ts | 5 --- src/server/index.ts | 23 +++++++---- 3 files changed, 62 insertions(+), 14 deletions(-) create mode 100644 src/server/authentication/controllers/WorkspacesMenu.tsx (limited to 'src/server') diff --git a/src/server/authentication/controllers/WorkspacesMenu.tsx b/src/server/authentication/controllers/WorkspacesMenu.tsx new file mode 100644 index 000000000..77e3a9778 --- /dev/null +++ b/src/server/authentication/controllers/WorkspacesMenu.tsx @@ -0,0 +1,48 @@ +import * as React from 'react'; +import * as ReactDOM from 'react-dom'; +import { observable, action, configure, reaction, computed } from 'mobx'; +import { observer } from "mobx-react"; +import * as request from 'request' + +@observer +export class WorkspacesMenu extends React.Component { + static Instance: WorkspacesMenu; + @observable private workspacesExposed: boolean = false; + @observable private workspaceIds: Array = []; + + constructor(props: Readonly<{}>) { + super(props); + WorkspacesMenu.Instance = this; + } + + toggle() { + action(() => { + if (!this.workspacesExposed) { + request.get(window.location.origin + "/getAllWorkspaceIds", (error, response, body) => { + this.workspaceIds = body; + console.log(this.workspaceIds); + }) + } + this.workspacesExposed = !this.workspacesExposed; + }); + } + + render() { + return ( +
+ {this.workspaceIds.map(s =>
  • ${s}
  • )} +
    + ); + } +} \ No newline at end of file diff --git a/src/server/authentication/models/user_model.ts b/src/server/authentication/models/user_model.ts index dfd104ef8..29076ba19 100644 --- a/src/server/authentication/models/user_model.ts +++ b/src/server/authentication/models/user_model.ts @@ -23,7 +23,6 @@ export type DashUserModel = mongoose.Document & { allWorkspaceIds: Array, activeWorkspaceId: String, - didSelectSessionWorkspace: Boolean, profile: { name: string, @@ -54,10 +53,6 @@ const userSchema = new mongoose.Schema({ default: [] }, activeWorkspaceId: String, - didSelectSessionWorkspace: { - type: Boolean, - default: false - }, facebook: String, twitter: String, diff --git a/src/server/index.ts b/src/server/index.ts index 6136b8d94..8f740b1d7 100644 --- a/src/server/index.ts +++ b/src/server/index.ts @@ -87,18 +87,15 @@ app.get("/home", (req, res) => { } // otherwise, connect them to Dash // TODO: store and manage users' workspaces - if (dashUser.allWorkspaceIds.length > 0) { - if (!dashUser.didSelectSessionWorkspace) { - return res.redirect("/workspaces"); - } - } else { - console.log("OK, UPDATED TO TRUE"); - dashUser.update({ $set: { didSelectSessionWorkspace: true } }, () => { }) - } + // if (dashUser.allWorkspaceIds.length > 0) { + // if (!dashUser.didSelectSessionWorkspace) { + // return res.redirect("/workspaces"); + // } + // } res.sendFile(path.join(__dirname, '../../deploy/index.html')); }); -app.get("/workspaces", getWorkspaces); +// app.get("/workspaces", getWorkspaces); app.get("/getActiveWorkspaceId", (req, res) => { const dashUser: DashUserModel = req.user; @@ -108,6 +105,14 @@ app.get("/getActiveWorkspaceId", (req, res) => { res.send(dashUser.activeWorkspaceId || ""); }); +app.get("/getAllWorkspaceIds", (req, res) => { + const dashUser: DashUserModel = req.user; + if (!dashUser) { + return; + } + res.send(dashUser.allWorkspaceIds); +}) + app.post("/setActiveWorkspaceId", (req, res) => { const dashUser: DashUserModel = req.user; if (!dashUser) { -- cgit v1.2.3-70-g09d2