aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/client/views/Main.tsx48
-rw-r--r--src/server/authentication/controllers/WorkspacesMenu.tsx42
-rw-r--r--src/server/authentication/controllers/user_controller.ts3
-rw-r--r--src/server/index.ts1
4 files changed, 55 insertions, 39 deletions
diff --git a/src/client/views/Main.tsx b/src/client/views/Main.tsx
index 2c2149a1e..febf7489b 100644
--- a/src/client/views/Main.tsx
+++ b/src/client/views/Main.tsx
@@ -37,33 +37,27 @@ document.addEventListener("pointerdown", action(function (e: PointerEvent) {
}
}), true)
-let mainDocId: string;
+// Load the user's active workspace, or create a new one if initial session after signup
request.get(window.location.origin + "/getActiveWorkspaceId", (error, response, body) => {
- const here = window.location.origin;
- let workspaceId: string;
- if (body) {
- workspaceId = body;
- } else {
- workspaceId = Utils.GenerateGuid();
- request.post(here + "/addWorkspaceId", {
- body: {
- target: mainDocId
- },
- json: true
- })
- request.post(here + "/setActiveWorkspaceId", {
- body: {
- target: mainDocId
- },
- json: true
- })
- }
- load(workspaceId);
-})
+ init(body ? body : getNewWorkspace());
+});
-function load(workspaceId: string) {
- mainDocId = workspaceId;
- init();
+function getNewWorkspace(): string {
+ let newId = Utils.GenerateGuid();
+ const here = window.location.origin;
+ request.post(here + "/addWorkspaceId", {
+ body: {
+ target: newId
+ },
+ json: true
+ })
+ request.post(here + "/setActiveWorkspaceId", {
+ body: {
+ target: newId
+ },
+ json: true
+ })
+ return newId;
}
//runInAction(() =>
@@ -82,7 +76,7 @@ function load(workspaceId: string) {
// schemaDocs[4].SetData(KS.Author, "Bob", TextField);
// schemaDocs.push(doc2);
// const doc7 = Documents.SchemaDocument(schemaDocs)
-function init() {
+function init(mainDocId: string) {
Documents.initProtos(() => {
Utils.EmitCallback(Server.Socket, MessageStore.GetField, mainDocId, (res: any) => {
console.log("HELLO WORLD")
@@ -197,7 +191,7 @@ function init() {
left: '4px',
width: '150px'
}} onClick={() => WorkspacesMenu.Instance.toggle()}>Workspaces</button>
- <WorkspacesMenu load={load} />
+ <WorkspacesMenu load={init} new={getNewWorkspace} />
</div>),
document.getElementById('root'));
})
diff --git a/src/server/authentication/controllers/WorkspacesMenu.tsx b/src/server/authentication/controllers/WorkspacesMenu.tsx
index 8edd63fba..d9d884c14 100644
--- a/src/server/authentication/controllers/WorkspacesMenu.tsx
+++ b/src/server/authentication/controllers/WorkspacesMenu.tsx
@@ -1,12 +1,13 @@
import * as React from 'react';
import * as ReactDOM from 'react-dom';
-import { observable, action, configure, reaction, computed } from 'mobx';
+import { observable, action, configure, reaction, computed, ObservableMap } from 'mobx';
import { observer } from "mobx-react";
import * as request from 'request'
import './WorkspacesMenu.css'
export interface WorkspaceMenuProps {
load: (workspaceId: string) => void;
+ new: () => string;
}
@observer
@@ -14,10 +15,28 @@ export class WorkspacesMenu extends React.Component<WorkspaceMenuProps> {
static Instance: WorkspacesMenu;
@observable private workspacesExposed: boolean = false;
@observable private workspaceIds: Array<string> = [];
+ @observable private selectedWorkspaceId: string = "";
constructor(props: WorkspaceMenuProps) {
super(props);
WorkspacesMenu.Instance = this;
+ this.loadExistingWorkspace = this.loadExistingWorkspace.bind(this);
+ this.addNewWorkspace = this.addNewWorkspace.bind(this);
+ }
+
+ @action
+ addNewWorkspace() {
+ let newId = this.props.new();
+ this.selectedWorkspaceId = newId;
+ this.props.load(newId);
+ this.toggle();
+ }
+
+ @action
+ loadExistingWorkspace = (e: React.MouseEvent<HTMLLIElement, MouseEvent>) => {
+ let id = e.currentTarget.innerHTML;
+ this.props.load(id);
+ this.selectedWorkspaceId = id;
}
@action
@@ -42,11 +61,8 @@ export class WorkspacesMenu extends React.Component<WorkspaceMenuProps> {
}
}
- setWorkspaceId = (e: React.MouseEvent) => {
- this.props.load(e.currentTarget.innerHTML);
- }
-
render() {
+ let p = this.props;
return (
<div
style={{
@@ -63,15 +79,25 @@ export class WorkspacesMenu extends React.Component<WorkspaceMenuProps> {
padding: 10,
}}
>
+ <img
+ src="https://bit.ly/2IBBkxk"
+ style={{
+ width: 20,
+ height: 20,
+ marginBottom: 10,
+ cursor: "grab"
+ }}
+ onClick={this.addNewWorkspace}
+ />
{this.workspaceIds.map(s =>
<li className={"ids"}
key={s}
style={{
listStyleType: "none",
- paddingTop: 3,
- paddingBottom: 3
+ color: s === this.selectedWorkspaceId ? "darkblue" : "black",
+ cursor: "grab"
}}
- onClick={this.setWorkspaceId}
+ onClick={this.loadExistingWorkspace}
>{s}</li>
)}
</div>
diff --git a/src/server/authentication/controllers/user_controller.ts b/src/server/authentication/controllers/user_controller.ts
index 899912ab7..1f1f43684 100644
--- a/src/server/authentication/controllers/user_controller.ts
+++ b/src/server/authentication/controllers/user_controller.ts
@@ -149,9 +149,6 @@ export let getLogout = (req: Request, res: Response) => {
const dashUser: DashUserModel | undefined = req.user;
if (dashUser) {
dashUser.update({ $set: { didSelectSessionWorkspace: false } }, () => { })
- console.log("UPDATED :)");
- } else {
- console.log("NO USER BY LOGOUT");
}
req.logout();
const sess = req.session;
diff --git a/src/server/index.ts b/src/server/index.ts
index 1d16f65ed..c707f12a0 100644
--- a/src/server/index.ts
+++ b/src/server/index.ts
@@ -118,7 +118,6 @@ app.post("/setActiveWorkspaceId", (req, res) => {
if (!dashUser) {
return;
}
- console.log(`Updating active workspace ID to ${req.body.target}`);
dashUser.update({ $set: { activeWorkspaceId: req.body.target } }, () => { });
})