aboutsummaryrefslogtreecommitdiff
path: root/src/client/views/DashboardView.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'src/client/views/DashboardView.tsx')
-rw-r--r--src/client/views/DashboardView.tsx52
1 files changed, 26 insertions, 26 deletions
diff --git a/src/client/views/DashboardView.tsx b/src/client/views/DashboardView.tsx
index 7f0118ed3..3ceb23ffd 100644
--- a/src/client/views/DashboardView.tsx
+++ b/src/client/views/DashboardView.tsx
@@ -6,7 +6,7 @@ import * as React from 'react';
import { FaPlus } from 'react-icons/fa';
import { ClientUtils } from '../../ClientUtils';
import { Doc, DocListCast } from '../../fields/Doc';
-import { AclPrivate, DocAcl, DocData } from '../../fields/DocSymbols';
+import { AclPrivate, DocAcl } from '../../fields/DocSymbols';
import { Id } from '../../fields/FieldSymbols';
import { List } from '../../fields/List';
import { PrefetchProxy } from '../../fields/Proxy';
@@ -113,12 +113,12 @@ export class DashboardView extends ObservableReactComponent<object> {
getDashboards = (whichGroup: DashboardGroup) => {
if (whichGroup === DashboardGroup.MyDashboards) {
- return DocListCast(Doc.MyDashboards.data).filter(dashboard => dashboard[DocData].author === ClientUtils.CurrentUserEmail());
+ return DocListCast(Doc.MyDashboards?.data).filter(dashboard => dashboard.$author === ClientUtils.CurrentUserEmail());
}
- return DocListCast(Doc.MySharedDocs.data_dashboards).filter(doc => doc.dockingConfig);
+ return DocListCast(Doc.MySharedDocs?.data_dashboards).filter(doc => doc.dockingConfig);
};
- isUnviewedSharedDashboard = (dashboard: Doc) => !DocListCast(Doc.MySharedDocs.viewed).includes(dashboard);
+ isUnviewedSharedDashboard = (dashboard: Doc) => !DocListCast(Doc.MySharedDocs?.viewed).includes(dashboard);
@undoBatch
createNewDashboard = (name: string, background?: string) => {
@@ -155,7 +155,7 @@ export class DashboardView extends ObservableReactComponent<object> {
@action
openNewDashboardModal = () => {
this.openModal = true;
- this.setNewDashboardName(`Dashboard ${DocListCast(Doc.MyDashboards.data).length + 1}`);
+ this.setNewDashboardName(`Dashboard ${DocListCast(Doc.MyDashboards?.data).length + 1}`);
};
_downX: number = 0;
@@ -191,7 +191,7 @@ export class DashboardView extends ObservableReactComponent<object> {
<Button
text={'Shared Dashboards (' + this.getDashboards(DashboardGroup.SharedDashboards).length + ')'}
active={this.selectedDashboardGroup === DashboardGroup.SharedDashboards}
- color={this.getDashboards(DashboardGroup.SharedDashboards).some(dash => !DocListCast(Doc.MySharedDocs.viewed).includes(dash)) ? 'green' : color}
+ color={this.getDashboards(DashboardGroup.SharedDashboards).some(dash => !DocListCast(Doc.MySharedDocs?.viewed).includes(dash)) ? 'green' : color}
align="flex-start"
onClick={() => this.selectDashboardGroup(DashboardGroup.SharedDashboards)}
fillWidth
@@ -226,7 +226,7 @@ export class DashboardView extends ObservableReactComponent<object> {
color={color}
val={StrCast(dashboard.title)}
setVal={val => {
- dashboard[DocData].title = val;
+ dashboard.$title = val;
}}
/>
{this.selectedDashboardGroup === DashboardGroup.SharedDashboards && this.isUnviewedSharedDashboard(dashboard) ? <div>unviewed</div> : <div />}
@@ -275,7 +275,7 @@ export class DashboardView extends ObservableReactComponent<object> {
}
public static openSharedDashboard = (dashboard: Doc) => {
- Doc.AddDocToList(Doc.MySharedDocs, 'viewed', dashboard);
+ Doc.MySharedDocs && Doc.AddDocToList(Doc.MySharedDocs, 'viewed', dashboard);
DashboardView.openDashboard(Doc.BestEmbedding(dashboard));
};
@@ -283,8 +283,8 @@ export class DashboardView extends ObservableReactComponent<object> {
/// this also sets the readonly state of the dashboard based on the current mode of dash (from its url)
public static openDashboard = (doc: Doc | undefined, fromHistory = false) => {
if (!doc) return false;
- Doc.AddDocToList(Doc.MyDashboards, 'data', doc);
- Doc.RemoveDocFromList(Doc.MyRecentlyClosed, 'data', doc);
+ Doc.MyDashboards && Doc.AddDocToList(Doc.MyDashboards, 'data', doc);
+ Doc.MyRecentlyClosed && Doc.RemoveDocFromList(Doc.MyRecentlyClosed, 'data', doc);
// this has the side-effect of setting the main container since we're assigning the active/guest dashboard
Doc.UserDoc() ? (Doc.ActiveDashboard = doc) : (Doc.GuestDashboard = doc);
@@ -316,11 +316,11 @@ export class DashboardView extends ObservableReactComponent<object> {
};
public static removeDashboard = (dashboard: Doc) => {
- const dashboards = DocListCast(Doc.MyDashboards.data).filter(dash => dash !== dashboard);
+ const dashboards = DocListCast(Doc.MyDashboards?.data).filter(dash => dash !== dashboard);
undoable(() => {
if (dashboard === Doc.ActiveDashboard) DashboardView.openDashboard(dashboards.lastElement());
- Doc.RemoveDocFromList(Doc.MyDashboards, 'data', dashboard);
- Doc.AddDocToList(Doc.MyRecentlyClosed, 'data', dashboard, undefined, true, true);
+ Doc.MyDashboards && Doc.RemoveDocFromList(Doc.MyDashboards, 'data', dashboard);
+ Doc.MyRecentlyClosed && Doc.AddDocToList(Doc.MyRecentlyClosed, 'data', dashboard, undefined, true, true);
if (!dashboards.length) Doc.ActivePage = 'home';
}, 'remove dashboard')();
};
@@ -403,13 +403,13 @@ export class DashboardView extends ObservableReactComponent<object> {
},
],
};
- if (dashboard.dockingConfig && dashboard.dockingConfig !== dashboard[DocData].dockingConfig) dashboard.dockingConfig = JSON.stringify(reset);
- else Doc.SetInPlace(dashboard, 'dockingConfig', JSON.stringify(reset), true);
+ const dockingOnLayout = dashboard._dockingConfig && dashboard._dockingConfig !== dashboard.$dockingConfig;
+ dashboard[`${dockingOnLayout ? '_' : '$'}dockingConfig`] = JSON.stringify(reset);
return reset;
};
public static createNewDashboard = (id?: string, name?: string, background?: string) => {
- const dashboardCount = DocListCast(Doc.MyDashboards.data).length + 1;
+ const dashboardCount = DocListCast(Doc.MyDashboards?.data).length + 1;
const freeformOptions: DocumentOptions = {
x: 0,
y: 400,
@@ -425,16 +425,16 @@ export class DashboardView extends ObservableReactComponent<object> {
const freeformDoc = Doc.GuestTarget || Docs.Create.FreeformDocument([], freeformOptions);
const dashboardDoc = DashboardView.StandardCollectionDockingDocument([{ doc: freeformDoc, initialWidth: 600 }], { title: title }, id, 'row');
- Doc.AddDocToList(Doc.MyHeaderBar, 'data', freeformDoc, undefined, undefined, true);
- Doc.AddDocToList(Doc.MyDashboards, 'data', dashboardDoc);
- dashboardDoc.pane_count = 1;
- freeformDoc.embedContainer = dashboardDoc;
- dashboardDoc.myOverlayDocs = new List<Doc>();
- dashboardDoc[DocData].myPublishedDocs = new List<Doc>();
- dashboardDoc[DocData].myTagCollections = new List<Doc>();
- dashboardDoc[DocData].myUniqueFaces = new List<Doc>();
- dashboardDoc[DocData].myTrails = DashboardView.SetupDashboardTrails();
- dashboardDoc[DocData].myCalendars = DashboardView.SetupDashboardCalendars();
+ Doc.MyHeaderBar && Doc.AddDocToList(Doc.MyHeaderBar, 'data', freeformDoc, undefined, undefined, true);
+ Doc.MyDashboards && Doc.AddDocToList(Doc.MyDashboards, 'data', dashboardDoc);
+ freeformDoc._embedContainer = dashboardDoc;
+ dashboardDoc.$myPaneCount = 1;
+ dashboardDoc.$myOverlayDocs = new List<Doc>();
+ dashboardDoc.$myPublishedDocs = new List<Doc>();
+ dashboardDoc.$myTagCollections = new List<Doc>();
+ dashboardDoc.$myUniqueFaces = new List<Doc>();
+ dashboardDoc.$myTrails = DashboardView.SetupDashboardTrails();
+ dashboardDoc.$myCalendars = DashboardView.SetupDashboardCalendars();
// open this new dashboard
Doc.ActiveDashboard = dashboardDoc;
Doc.ActivePage = 'dashboard';