Skip to content
This repository was archived by the owner on Jan 16, 2022. It is now read-only.

Commit bd8fceb

Browse files
committed
Add Dashboard Mode Dropdown
1 parent d3070d1 commit bd8fceb

File tree

5 files changed

+86
-41
lines changed

5 files changed

+86
-41
lines changed

src/App.vue

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ textarea {
104104
<v-main id="content">
105105
<v-scroll-y-transition>
106106
<v-container v-show="!hideGlobalContainer || $vuetify.breakpoint.mdAndUp" id="global-container" fluid class="py-0">
107-
<fff-container-panel v-if="isFFForUnset()"></fff-container-panel>
107+
<fff-container-panel v-if="isFFForUnset"></fff-container-panel>
108108
<cnc-container-panel v-else></cnc-container-panel>
109109
</v-container>
110110
</v-scroll-y-transition>
@@ -136,7 +136,7 @@ import { mapState, mapGetters, mapActions } from 'vuex'
136136
137137
import { Menu, Routes } from './routes'
138138
import { isPrinting } from './store/machine/modelEnums.js'
139-
import { MachineMode } from './store/machine/modelEnums.js';
139+
import { MachineMode, DashboardMode } from './store/machine/modelEnums.js';
140140
141141
export default {
142142
computed: {
@@ -154,6 +154,7 @@ export default {
154154
machineMode: state => state.machine.model.state.machineMode,
155155
injectedComponents: state => state.uiInjection.injectedComponents
156156
}),
157+
...mapState('settings',['dashboardMode']),
157158
...mapGetters('machine', ['hasTemperaturesToDisplay']),
158159
...mapGetters('machine/model', ['jobProgress']),
159160
categories() {
@@ -179,7 +180,13 @@ export default {
179180
return this.darkTheme ? 'red darken-5' : 'red lighten-4';
180181
}
181182
return this.darkTheme ? 'green darken-5' : 'green lighten-4';
182-
}
183+
},
184+
isFFForUnset() {
185+
if (this.dashboardMode === DashboardMode.default) {
186+
return !this.machineMode || this.machineMode === MachineMode.fff;
187+
}
188+
return this.dashboardMode === DashboardMode.fff;
189+
},
183190
},
184191
data() {
185192
return {
@@ -209,9 +216,6 @@ export default {
209216
document.title = title;
210217
}
211218
},
212-
isFFForUnset() {
213-
return !this.machineMode || this.machineMode === MachineMode.fff;
214-
},
215219
},
216220
mounted() {
217221
// Attempt to disconnect from every machine when the page is being unloaded
Lines changed: 50 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,60 +1,89 @@
11
<template>
22
<v-card outlined>
3-
<v-card-title>
4-
{{ $t('panel.settingsAppearance.caption') }}
5-
</v-card-title>
3+
<v-card-title>{{ $t('panel.settingsAppearance.caption') }}</v-card-title>
64

75
<v-card-text class="d-flex flex-column">
8-
<v-switch v-model="darkTheme" :label="$t('panel.settingsAppearance.darkTheme')" hide-details class="mt-0 mb-3"></v-switch>
9-
<v-select v-model="language" :items="languages" item-text="language" item-value="code" :return-object="false" :label="$t('panel.settingsAppearance.language')" hide-details></v-select>
6+
<v-switch :label="$t('panel.settingsAppearance.darkTheme')" class="mt-0 mb-3" hide-details v-model="darkTheme"></v-switch>
7+
<v-select :items="languages" :label="$t('panel.settingsAppearance.language')" :return-object="false" hide-details item-text="language" item-value="code" v-model="language"></v-select>
108
<v-tooltip bottom>
119
<template #activator="{ on }">
12-
<v-switch v-model="useBinaryPrefix" v-on="on" :label="$t('panel.settingsAppearance.binaryFileSizes')" hide-details></v-switch>
10+
<v-switch :label="$t('panel.settingsAppearance.binaryFileSizes')" hide-details v-model="useBinaryPrefix" v-on="on"></v-switch>
1311
</template>
1412
{{ $t('panel.settingsAppearance.binaryFileSizesTitle') }}
1513
</v-tooltip>
1614
<v-tooltip bottom>
1715
<template #activator="{ on }">
18-
<v-switch v-model="disableAutoComplete" v-on="on" :label="$t('panel.settingsAppearance.disableAutoComplete')" hide-details></v-switch>
16+
<v-switch :label="$t('panel.settingsAppearance.disableAutoComplete')" hide-details v-model="disableAutoComplete" v-on="on"></v-switch>
1917
</template>
2018
{{ $t('panel.settingsAppearance.disableAutoCompleteTitle') }}
2119
</v-tooltip>
20+
<v-select class="mt-3" :items="dashboardModes" item-text="value" item-value="value" label="Dashboard Mode" v-model="dashboardMode"></v-select>
2221
</v-card-text>
2322
</v-card>
2423
</template>
2524

2625
<script>
27-
'use strict'
26+
'use strict';
2827
29-
import { mapState, mapMutations } from 'vuex'
28+
import {mapState, mapMutations} from 'vuex';
29+
import {DashboardMode} from '../../store/machine/modelEnums.js';
3030
3131
export default {
3232
computed: {
3333
...mapState(['settings']),
3434
darkTheme: {
35-
get() { return this.settings.darkTheme; },
36-
set(value) { this.update({ darkTheme: value }); }
35+
get() {
36+
return this.settings.darkTheme;
37+
},
38+
set(value) {
39+
this.update({darkTheme: value});
40+
},
3741
},
3842
language: {
39-
get() { return this.settings.language; },
40-
set(value) { this.update({ language: value }); }
43+
get() {
44+
return this.settings.language;
45+
},
46+
set(value) {
47+
this.update({language: value});
48+
},
4149
},
4250
languages() {
4351
const result = [];
4452
for (let key in this.$i18n.messages) {
45-
result.push({ code: key, language: this.$i18n.messages[key].language });
53+
result.push({code: key, language: this.$i18n.messages[key].language});
4654
}
4755
return result;
4856
},
4957
useBinaryPrefix: {
50-
get() { return this.settings.useBinaryPrefix; },
51-
set(value) { this.update({ useBinaryPrefix: value }); }
58+
get() {
59+
return this.settings.useBinaryPrefix;
60+
},
61+
set(value) {
62+
this.update({useBinaryPrefix: value});
63+
},
5264
},
5365
disableAutoComplete: {
54-
get() { return this.settings.disableAutoComplete; },
55-
set(value) { this.update({ disableAutoComplete: value }); }
56-
}
66+
get() {
67+
return this.settings.disableAutoComplete;
68+
},
69+
set(value) {
70+
this.update({disableAutoComplete: value});
71+
},
72+
},
73+
dashboardMode: {
74+
get() {
75+
return this.settings.dashboardMode;
76+
},
77+
set(value) {
78+
this.update({dashboardMode: value});
79+
},
80+
},
81+
dashboardModes() {
82+
return Object.keys(DashboardMode).map((key) => {
83+
return {key: key, value: DashboardMode[key]};
84+
});
85+
},
5786
},
58-
methods: mapMutations('settings', ['update'])
59-
}
87+
methods: mapMutations('settings', ['update']),
88+
};
6089
</script>

src/routes/Control/Dashboard.vue

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -10,22 +10,26 @@
1010
</template>
1111

1212
<script>
13-
'use strict'
13+
'use strict';
1414
15-
import { mapState } from 'vuex'
15+
import {mapState} from 'vuex';
1616
17-
import { registerRoute } from '..'
18-
import { MachineMode } from '../../store/machine/modelEnums.js'
17+
import {registerRoute} from '..';
18+
import {MachineMode, DashboardMode} from '../../store/machine/modelEnums.js';
1919
2020
export default {
2121
computed: {
2222
...mapState('machine/model', {
23-
atxPower: state => state.state.atxPower,
24-
machineMode: state => state.state.machineMode
23+
atxPower: (state) => state.state.atxPower,
24+
machineMode: (state) => state.state.machineMode,
2525
}),
26+
...mapState('settings', ['dashboardMode']),
2627
isFFForUnset() {
27-
return !this.machineMode || (this.machineMode === MachineMode.fff);
28-
}
28+
if (this.dashboardMode === DashboardMode.default) {
29+
return !this.machineMode || this.machineMode === MachineMode.fff;
30+
}
31+
return this.dashboardMode === DashboardMode.fff;
32+
},
2933
},
3034
install() {
3135
// Register a route via Control -> Dashboard
@@ -34,10 +38,10 @@ export default {
3438
Dashboard: {
3539
icon: 'mdi-view-dashboard',
3640
caption: 'menu.control.dashboard',
37-
path: '/'
38-
}
39-
}
41+
path: '/',
42+
},
43+
},
4044
});
41-
}
42-
}
45+
},
46+
};
4347
</script>

src/store/machine/modelEnums.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -240,3 +240,9 @@ export function isPrinting(status) {
240240
status === StatusType.processing ||
241241
status === StatusType.simulating);
242242
}
243+
244+
export const DashboardMode = {
245+
default : 'Default',
246+
fff : 'FFF',
247+
cnc : 'CNC'
248+
}

src/store/settings.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,9 @@ export default {
3737
},
3838

3939
enabledPlugins: ['Height Map'],
40-
plugins: {} // Third-party values
40+
plugins: {}, // Third-party values
41+
dashboardMode : 'default',
42+
4143
},
4244
actions: {
4345
async applyDefaults({ state, dispatch }) {

0 commit comments

Comments
 (0)