@things-factory/dashboard 9.0.0-beta.27 → 9.0.0-beta.29
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist-client/actions/board-settings.d.ts +3 -0
- package/dist-client/actions/board-settings.js +29 -0
- package/dist-client/actions/board-settings.js.map +1 -0
- package/dist-client/actions/index.d.ts +1 -0
- package/dist-client/actions/index.js +2 -0
- package/dist-client/actions/index.js.map +1 -0
- package/dist-client/bootstrap.d.ts +2 -0
- package/dist-client/bootstrap.js +31 -0
- package/dist-client/bootstrap.js.map +1 -0
- package/dist-client/const.d.ts +5 -0
- package/dist-client/const.js +6 -0
- package/dist-client/const.js.map +1 -0
- package/dist-client/index.d.ts +1 -0
- package/dist-client/index.js +2 -0
- package/dist-client/index.js.map +1 -0
- package/dist-client/pages/dashboard.d.ts +19 -0
- package/dist-client/pages/dashboard.js +99 -0
- package/dist-client/pages/dashboard.js.map +1 -0
- package/dist-client/reducers/board-settings.d.ts +2 -0
- package/dist-client/reducers/board-settings.js +14 -0
- package/dist-client/reducers/board-settings.js.map +1 -0
- package/dist-client/route.d.ts +1 -0
- package/dist-client/route.js +10 -0
- package/dist-client/route.js.map +1 -0
- package/dist-client/tsconfig.tsbuildinfo +1 -0
- package/dist-client/viewparts/dashboard-setting-let.d.ts +26 -0
- package/dist-client/viewparts/dashboard-setting-let.js +222 -0
- package/dist-client/viewparts/dashboard-setting-let.js.map +1 -0
- package/dist-server/index.d.ts +1 -0
- package/dist-server/index.js +5 -0
- package/dist-server/index.js.map +1 -0
- package/dist-server/service/board-settings/board-setting.d.ts +7 -0
- package/dist-server/service/board-settings/board-setting.js +29 -0
- package/dist-server/service/board-settings/board-setting.js.map +1 -0
- package/dist-server/service/board-settings/board-settings-query.d.ts +4 -0
- package/dist-server/service/board-settings/board-settings-query.js +62 -0
- package/dist-server/service/board-settings/board-settings-query.js.map +1 -0
- package/dist-server/service/board-settings/index.d.ts +3 -0
- package/dist-server/service/board-settings/index.js +7 -0
- package/dist-server/service/board-settings/index.js.map +1 -0
- package/dist-server/service/index.d.ts +5 -0
- package/dist-server/service/index.js +19 -0
- package/dist-server/service/index.js.map +1 -0
- package/dist-server/tsconfig.tsbuildinfo +1 -0
- package/package.json +6 -6
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import gql from 'graphql-tag';
|
|
2
|
+
import { client } from '@operato/graphql';
|
|
3
|
+
export const UPDATE_BOARD_SETTINGS = 'UPDATE_BOARD_SETTINGS';
|
|
4
|
+
export const CLEAR_BOARD_SETTINGS = 'CLEAR_BOARD_SETTINGS';
|
|
5
|
+
export async function fetchBoardSettings(names) {
|
|
6
|
+
var response = await client.query({
|
|
7
|
+
query: gql `
|
|
8
|
+
query ($names: [String!]) {
|
|
9
|
+
boardSettings(names: $names) {
|
|
10
|
+
name
|
|
11
|
+
value
|
|
12
|
+
board {
|
|
13
|
+
id
|
|
14
|
+
name
|
|
15
|
+
description
|
|
16
|
+
thumbnail
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
`,
|
|
21
|
+
variables: {
|
|
22
|
+
names
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
if (!response || !response.data)
|
|
26
|
+
return;
|
|
27
|
+
return response.data.boardSettings;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=board-settings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"board-settings.js","sourceRoot":"","sources":["../../client/actions/board-settings.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,aAAa,CAAA;AAE7B,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAEzC,MAAM,CAAC,MAAM,qBAAqB,GAAG,uBAAuB,CAAA;AAC5D,MAAM,CAAC,MAAM,oBAAoB,GAAG,sBAAsB,CAAA;AAE1D,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,KAAK;IAC5C,IAAI,QAAQ,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC;QAChC,KAAK,EAAE,GAAG,CAAA;;;;;;;;;;;;;KAaT;QACD,SAAS,EAAE;YACT,KAAK;SACN;KACF,CAAC,CAAA;IAEF,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,IAAI;QAAE,OAAM;IACvC,OAAO,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAA;AACpC,CAAC","sourcesContent":["import gql from 'graphql-tag'\n\nimport { client } from '@operato/graphql'\n\nexport const UPDATE_BOARD_SETTINGS = 'UPDATE_BOARD_SETTINGS'\nexport const CLEAR_BOARD_SETTINGS = 'CLEAR_BOARD_SETTINGS'\n\nexport async function fetchBoardSettings(names) {\n var response = await client.query({\n query: gql`\n query ($names: [String!]) {\n boardSettings(names: $names) {\n name\n value\n board {\n id\n name\n description\n thumbnail\n }\n }\n }\n `,\n variables: {\n names\n }\n })\n\n if (!response || !response.data) return\n return response.data.boardSettings\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './board-settings';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../client/actions/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAA","sourcesContent":["export * from './board-settings'\n"]}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { html } from 'lit';
|
|
2
|
+
import { store } from '@operato/shell';
|
|
3
|
+
import { auth, hasPrivilege } from '@things-factory/auth-base/dist-client';
|
|
4
|
+
import { ADD_SETTING } from '@things-factory/setting-base/dist-client';
|
|
5
|
+
import { UPDATE_BOARD_SETTINGS, fetchBoardSettings } from './actions/board-settings';
|
|
6
|
+
import boardSetting from './reducers/board-settings';
|
|
7
|
+
import './viewparts/dashboard-setting-let';
|
|
8
|
+
import { FALLBACK_HOME_BOARD, DASHBOARD, DASHBOARD_MOBILE } from './const';
|
|
9
|
+
export default function bootstrap() {
|
|
10
|
+
store.addReducers({ boardSetting });
|
|
11
|
+
auth.on('profile', async () => {
|
|
12
|
+
var settings = await fetchBoardSettings([FALLBACK_HOME_BOARD, DASHBOARD, DASHBOARD_MOBILE]);
|
|
13
|
+
store.dispatch({
|
|
14
|
+
type: UPDATE_BOARD_SETTINGS,
|
|
15
|
+
settings: settings.reduce((settings, setting) => {
|
|
16
|
+
settings[setting.name] = setting;
|
|
17
|
+
return settings;
|
|
18
|
+
}, {})
|
|
19
|
+
});
|
|
20
|
+
if (await hasPrivilege({ privilege: 'mutation', category: 'setting' })) {
|
|
21
|
+
store.dispatch({
|
|
22
|
+
type: ADD_SETTING,
|
|
23
|
+
setting: {
|
|
24
|
+
seq: 20,
|
|
25
|
+
template: html ` <dashboard-setting-let></dashboard-setting-let> `
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=bootstrap.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../client/bootstrap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAA;AAC1B,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAA;AACtC,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAA;AAC1E,OAAO,EAAE,WAAW,EAAE,MAAM,0CAA0C,CAAA;AAEtE,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AACpF,OAAO,YAAY,MAAM,2BAA2B,CAAA;AAEpD,OAAO,mCAAmC,CAAA;AAE1C,OAAO,EAAE,mBAAmB,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAE1E,MAAM,CAAC,OAAO,UAAU,SAAS;IAC/B,KAAK,CAAC,WAAW,CAAC,EAAE,YAAY,EAAE,CAAC,CAAA;IAEnC,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE;QAC5B,IAAI,QAAQ,GAAG,MAAM,kBAAkB,CAAC,CAAC,mBAAmB,EAAE,SAAS,EAAE,gBAAgB,CAAC,CAAC,CAAA;QAE3F,KAAK,CAAC,QAAQ,CAAC;YACb,IAAI,EAAE,qBAAqB;YAC3B,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE;gBAC9C,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAA;gBAChC,OAAO,QAAQ,CAAA;YACjB,CAAC,EAAE,EAAE,CAAC;SACP,CAAC,CAAA;QAEF,IAAI,MAAM,YAAY,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;YACvE,KAAK,CAAC,QAAQ,CAAC;gBACb,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE;oBACP,GAAG,EAAE,EAAE;oBACP,QAAQ,EAAE,IAAI,CAAA,mDAAmD;iBAClE;aACF,CAAC,CAAA;QACJ,CAAC;IACH,CAAC,CAAC,CAAA;AACJ,CAAC","sourcesContent":["import { html } from 'lit'\nimport { store } from '@operato/shell'\nimport { auth, hasPrivilege } from '@things-factory/auth-base/dist-client'\nimport { ADD_SETTING } from '@things-factory/setting-base/dist-client'\n\nimport { UPDATE_BOARD_SETTINGS, fetchBoardSettings } from './actions/board-settings'\nimport boardSetting from './reducers/board-settings'\n\nimport './viewparts/dashboard-setting-let'\n\nimport { FALLBACK_HOME_BOARD, DASHBOARD, DASHBOARD_MOBILE } from './const'\n\nexport default function bootstrap() {\n store.addReducers({ boardSetting })\n\n auth.on('profile', async () => {\n var settings = await fetchBoardSettings([FALLBACK_HOME_BOARD, DASHBOARD, DASHBOARD_MOBILE])\n\n store.dispatch({\n type: UPDATE_BOARD_SETTINGS,\n settings: settings.reduce((settings, setting) => {\n settings[setting.name] = setting\n return settings\n }, {})\n })\n\n if (await hasPrivilege({ privilege: 'mutation', category: 'setting' })) {\n store.dispatch({\n type: ADD_SETTING,\n setting: {\n seq: 20,\n template: html` <dashboard-setting-let></dashboard-setting-let> `\n }\n })\n }\n })\n}\n"]}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export declare const FALLBACK_HOME_BOARD = "home";
|
|
2
|
+
export declare const DASHBOARD = "dashboard";
|
|
3
|
+
export declare const DASHBOARD_MOBILE = "dashboard-mobile";
|
|
4
|
+
export declare const DASHBOARD_DESCRIPTION = "dashboard";
|
|
5
|
+
export declare const DASHBOARD_MOBILE_DESCRIPTION = "dashboard mobile";
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export const FALLBACK_HOME_BOARD = 'home'; /* for backward compatibility */
|
|
2
|
+
export const DASHBOARD = 'dashboard';
|
|
3
|
+
export const DASHBOARD_MOBILE = 'dashboard-mobile';
|
|
4
|
+
export const DASHBOARD_DESCRIPTION = 'dashboard';
|
|
5
|
+
export const DASHBOARD_MOBILE_DESCRIPTION = 'dashboard mobile';
|
|
6
|
+
//# sourceMappingURL=const.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"const.js","sourceRoot":"","sources":["../client/const.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAA,CAAC,gCAAgC;AAC1E,MAAM,CAAC,MAAM,SAAS,GAAG,WAAW,CAAA;AACpC,MAAM,CAAC,MAAM,gBAAgB,GAAG,kBAAkB,CAAA;AAClD,MAAM,CAAC,MAAM,qBAAqB,GAAG,WAAW,CAAA;AAChD,MAAM,CAAC,MAAM,4BAA4B,GAAG,kBAAkB,CAAA","sourcesContent":["export const FALLBACK_HOME_BOARD = 'home' /* for backward compatibility */\nexport const DASHBOARD = 'dashboard'\nexport const DASHBOARD_MOBILE = 'dashboard-mobile'\nexport const DASHBOARD_DESCRIPTION = 'dashboard'\nexport const DASHBOARD_MOBILE_DESCRIPTION = 'dashboard mobile'\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './actions';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../client/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA","sourcesContent":["export * from './actions'\n"]}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import '@operato/board/ox-board-selector.js';
|
|
2
|
+
import { BoardViewerPage } from '@things-factory/board-ui/dist-client';
|
|
3
|
+
export declare class DashboardHome extends BoardViewerPage {
|
|
4
|
+
stateChanged(state: any): void;
|
|
5
|
+
get oopsNote(): {
|
|
6
|
+
icon: string;
|
|
7
|
+
title: string;
|
|
8
|
+
description: string;
|
|
9
|
+
click: (e: any) => void;
|
|
10
|
+
};
|
|
11
|
+
get context(): any;
|
|
12
|
+
onClickDashboardSetting(name: any, description: any): void;
|
|
13
|
+
saveSettings({ name, value, category, description }: {
|
|
14
|
+
name: any;
|
|
15
|
+
value: any;
|
|
16
|
+
category: any;
|
|
17
|
+
description: any;
|
|
18
|
+
}): Promise<void>;
|
|
19
|
+
}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import '@operato/board/ox-board-selector.js';
|
|
3
|
+
import gql from 'graphql-tag';
|
|
4
|
+
import { html } from 'lit';
|
|
5
|
+
import { customElement } from 'lit/decorators.js';
|
|
6
|
+
import { store } from '@operato/shell';
|
|
7
|
+
import { client } from '@operato/graphql';
|
|
8
|
+
import { i18next } from '@operato/i18n';
|
|
9
|
+
import { openPopup } from '@operato/layout';
|
|
10
|
+
import { isMobileDevice } from '@operato/utils';
|
|
11
|
+
import { BoardViewerPage } from '@things-factory/board-ui/dist-client';
|
|
12
|
+
import { fetchBoardSettings, UPDATE_BOARD_SETTINGS } from '../actions/board-settings';
|
|
13
|
+
import { DASHBOARD, DASHBOARD_MOBILE, FALLBACK_HOME_BOARD } from '../const';
|
|
14
|
+
const HOME_DESCRIPTION = 'home dashboard';
|
|
15
|
+
const FALLBACK_ORDER = isMobileDevice()
|
|
16
|
+
? [DASHBOARD_MOBILE, DASHBOARD, FALLBACK_HOME_BOARD]
|
|
17
|
+
: [DASHBOARD, FALLBACK_HOME_BOARD];
|
|
18
|
+
const HOME_BOARD = isMobileDevice() ? DASHBOARD_MOBILE : DASHBOARD;
|
|
19
|
+
let DashboardHome = class DashboardHome extends BoardViewerPage {
|
|
20
|
+
stateChanged(state) {
|
|
21
|
+
super.stateChanged(state);
|
|
22
|
+
const dashboard = state === null || state === void 0 ? void 0 : state.boardSetting;
|
|
23
|
+
const homeBoard = dashboard && dashboard[FALLBACK_ORDER.find(name => dashboard[name]) || 'maybe notfound'];
|
|
24
|
+
this._boardId = homeBoard === null || homeBoard === void 0 ? void 0 : homeBoard.value;
|
|
25
|
+
}
|
|
26
|
+
get oopsNote() {
|
|
27
|
+
return {
|
|
28
|
+
icon: 'insert_chart',
|
|
29
|
+
title: 'HOME DASHBOARD',
|
|
30
|
+
description: 'There are no home dashboard setting. Pls, click to setting home dashboard.',
|
|
31
|
+
click: e => this.onClickDashboardSetting(HOME_BOARD, HOME_DESCRIPTION)
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
get context() {
|
|
35
|
+
return {
|
|
36
|
+
title: HOME_DESCRIPTION
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
onClickDashboardSetting(name, description) {
|
|
40
|
+
var popup = openPopup(html `
|
|
41
|
+
<ox-board-selector
|
|
42
|
+
.creatable=${true}
|
|
43
|
+
.value=${this._boardId}
|
|
44
|
+
@board-selected=${async (e) => {
|
|
45
|
+
var board = e.detail.board;
|
|
46
|
+
await this.saveSettings({
|
|
47
|
+
name,
|
|
48
|
+
value: board.id,
|
|
49
|
+
category: 'board',
|
|
50
|
+
description
|
|
51
|
+
});
|
|
52
|
+
var settings = await fetchBoardSettings([FALLBACK_HOME_BOARD, DASHBOARD, DASHBOARD_MOBILE]);
|
|
53
|
+
store.dispatch({
|
|
54
|
+
type: UPDATE_BOARD_SETTINGS,
|
|
55
|
+
settings: settings.reduce((settings, setting) => {
|
|
56
|
+
settings[setting.name] = setting;
|
|
57
|
+
return settings;
|
|
58
|
+
}, {})
|
|
59
|
+
});
|
|
60
|
+
popup.close();
|
|
61
|
+
this.requestUpdate();
|
|
62
|
+
}}
|
|
63
|
+
></ox-board-selector>
|
|
64
|
+
`, {
|
|
65
|
+
backdrop: true,
|
|
66
|
+
size: 'large',
|
|
67
|
+
title: i18next.t('title.dashboard setting')
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
async saveSettings({ name, value, category, description }) {
|
|
71
|
+
if (!(name && value)) {
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
await client.query({
|
|
75
|
+
query: gql `
|
|
76
|
+
mutation UpdateSetting($patch: SettingPatch!, $name: String!) {
|
|
77
|
+
updateSetting(patch: $patch, name: $name) {
|
|
78
|
+
name
|
|
79
|
+
value
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
`,
|
|
83
|
+
variables: {
|
|
84
|
+
name,
|
|
85
|
+
patch: {
|
|
86
|
+
name,
|
|
87
|
+
description,
|
|
88
|
+
category,
|
|
89
|
+
value
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
};
|
|
95
|
+
DashboardHome = __decorate([
|
|
96
|
+
customElement('dashboard-home')
|
|
97
|
+
], DashboardHome);
|
|
98
|
+
export { DashboardHome };
|
|
99
|
+
//# sourceMappingURL=dashboard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dashboard.js","sourceRoot":"","sources":["../../client/pages/dashboard.ts"],"names":[],"mappings":"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","sourcesContent":["import '@operato/board/ox-board-selector.js'\n\nimport gql from 'graphql-tag'\nimport { html } from 'lit'\nimport { customElement } from 'lit/decorators.js'\n\nimport { store } from '@operato/shell'\nimport { client } from '@operato/graphql'\nimport { i18next } from '@operato/i18n'\nimport { openPopup } from '@operato/layout'\nimport { isMobileDevice } from '@operato/utils'\nimport { BoardViewerPage } from '@things-factory/board-ui/dist-client'\n\nimport { fetchBoardSettings, UPDATE_BOARD_SETTINGS } from '../actions/board-settings'\nimport { DASHBOARD, DASHBOARD_MOBILE, FALLBACK_HOME_BOARD } from '../const'\n\nconst HOME_DESCRIPTION = 'home dashboard'\n\nconst FALLBACK_ORDER = isMobileDevice()\n ? [DASHBOARD_MOBILE, DASHBOARD, FALLBACK_HOME_BOARD]\n : [DASHBOARD, FALLBACK_HOME_BOARD]\nconst HOME_BOARD = isMobileDevice() ? DASHBOARD_MOBILE : DASHBOARD\n\n@customElement('dashboard-home')\nexport class DashboardHome extends BoardViewerPage {\n stateChanged(state) {\n super.stateChanged(state)\n\n const dashboard = state?.boardSetting\n const homeBoard = dashboard && dashboard[FALLBACK_ORDER.find(name => dashboard[name]) || 'maybe notfound']\n this._boardId = homeBoard?.value\n }\n\n get oopsNote() {\n return {\n icon: 'insert_chart',\n title: 'HOME DASHBOARD',\n description: 'There are no home dashboard setting. Pls, click to setting home dashboard.',\n click: e => this.onClickDashboardSetting(HOME_BOARD, HOME_DESCRIPTION)\n }\n }\n\n get context() {\n return {\n title: HOME_DESCRIPTION\n } as any\n }\n\n onClickDashboardSetting(name, description) {\n var popup = openPopup(\n html`\n <ox-board-selector\n .creatable=${true}\n .value=${this._boardId}\n @board-selected=${async e => {\n var board = e.detail.board\n\n await this.saveSettings({\n name,\n value: board.id,\n category: 'board',\n description\n })\n\n var settings = await fetchBoardSettings([FALLBACK_HOME_BOARD, DASHBOARD, DASHBOARD_MOBILE])\n store.dispatch({\n type: UPDATE_BOARD_SETTINGS,\n settings: settings.reduce((settings, setting) => {\n settings[setting.name] = setting\n return settings\n }, {})\n })\n\n popup.close()\n this.requestUpdate()\n }}\n ></ox-board-selector>\n `,\n {\n backdrop: true,\n size: 'large',\n title: i18next.t('title.dashboard setting')\n }\n )\n }\n\n async saveSettings({ name, value, category, description }) {\n if (!(name && value)) {\n return\n }\n\n await client.query({\n query: gql`\n mutation UpdateSetting($patch: SettingPatch!, $name: String!) {\n updateSetting(patch: $patch, name: $name) {\n name\n value\n }\n }\n `,\n variables: {\n name,\n patch: {\n name,\n description,\n category,\n value\n }\n }\n })\n }\n}\n"]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { UPDATE_BOARD_SETTINGS, CLEAR_BOARD_SETTINGS } from '../actions/board-settings';
|
|
2
|
+
const INITIAL_STATE = {};
|
|
3
|
+
const boardSetting = (state = INITIAL_STATE, action) => {
|
|
4
|
+
switch (action.type) {
|
|
5
|
+
case UPDATE_BOARD_SETTINGS:
|
|
6
|
+
return Object.assign(Object.assign({}, state), action.settings);
|
|
7
|
+
case CLEAR_BOARD_SETTINGS:
|
|
8
|
+
return {};
|
|
9
|
+
default:
|
|
10
|
+
return state;
|
|
11
|
+
}
|
|
12
|
+
};
|
|
13
|
+
export default boardSetting;
|
|
14
|
+
//# sourceMappingURL=board-settings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"board-settings.js","sourceRoot":"","sources":["../../client/reducers/board-settings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AAEvF,MAAM,aAAa,GAAG,EAAE,CAAA;AAExB,MAAM,YAAY,GAAG,CAAC,KAAK,GAAG,aAAa,EAAE,MAAM,EAAE,EAAE;IACrD,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,qBAAqB;YACxB,uCACK,KAAK,GACL,MAAM,CAAC,QAAQ,EACnB;QAEH,KAAK,oBAAoB;YACvB,OAAO,EAAE,CAAA;QAEX;YACE,OAAO,KAAK,CAAA;IAChB,CAAC;AACH,CAAC,CAAA;AAED,eAAe,YAAY,CAAA","sourcesContent":["import { UPDATE_BOARD_SETTINGS, CLEAR_BOARD_SETTINGS } from '../actions/board-settings'\n\nconst INITIAL_STATE = {}\n\nconst boardSetting = (state = INITIAL_STATE, action) => {\n switch (action.type) {\n case UPDATE_BOARD_SETTINGS:\n return {\n ...state,\n ...action.settings\n }\n\n case CLEAR_BOARD_SETTINGS:\n return {}\n\n default:\n return state\n }\n}\n\nexport default boardSetting\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function route(page: any): any;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"route.js","sourceRoot":"","sources":["../client/route.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,UAAU,KAAK,CAAC,IAAI;IAChC,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,EAAE;YACL,OAAO,YAAY,CAAA;QAErB,KAAK,WAAW;YACd,MAAM,CAAC,mBAAmB,CAAC,CAAA;YAC3B,OAAO,IAAI,CAAA;IACf,CAAC;AACH,CAAC","sourcesContent":["export default function route(page) {\n switch (page) {\n case '':\n return '/dashboard'\n\n case 'dashboard':\n import('./pages/dashboard')\n return page\n }\n}\n"]}
|