From d830493accc49e2a2b28cab5c1739d093c690f87 Mon Sep 17 00:00:00 2001 From: Stefan Dej Date: Sun, 10 Apr 2022 23:20:19 +0200 Subject: [PATCH] feat: notifications (#738) Co-authored-by: th33xitus --- src/App.vue | 2 +- src/components/TheThrottledStates.vue | 96 ------ src/components/TheTopbar.vue | 6 +- src/components/mixins/base.ts | 3 +- .../notifications/NotificationMenuEntry.vue | 156 +++++++++ .../notifications/TheNotificationMenu.vue | 112 +++++++ src/components/panels/DependenciesPanel.vue | 44 --- .../panels/KlipperWarningsPanel.vue | 81 ----- src/components/panels/MinSettingsPanel.vue | 2 +- src/components/panels/MoonrakerStatePanel.vue | 58 ---- src/components/panels/StatusPanel.vue | 9 - src/locales/da.json | 20 +- src/locales/de.json | 41 +-- src/locales/en.json | 41 +-- src/locales/es.json | 12 +- src/locales/fr.json | 12 +- src/locales/hu.json | 12 +- src/locales/it.json | 12 +- src/locales/nl.json | 12 +- src/locales/pl.json | 12 +- src/locales/ru.json | 12 +- src/locales/zh-tw.json | 12 +- src/locales/zh.json | 12 +- src/main.ts | 2 +- src/pages/Dashboard.vue | 2 - src/store/gui/actions.ts | 4 + src/store/gui/index.ts | 2 + src/store/gui/notifications/actions.ts | 89 ++++++ src/store/gui/notifications/getters.ts | 299 ++++++++++++++++++ src/store/gui/notifications/index.ts | 22 ++ src/store/gui/notifications/mutations.ts | 28 ++ src/store/gui/notifications/types.ts | 20 ++ src/store/gui/types.ts | 2 + src/store/printer/getters.ts | 7 +- src/store/printer/types.ts | 8 + src/store/server/actions.ts | 4 + src/store/server/announcements/actions.ts | 45 +++ src/store/server/announcements/getters.ts | 9 + src/store/server/announcements/index.ts | 24 ++ src/store/server/announcements/mutations.ts | 32 ++ src/store/server/announcements/types.ts | 18 ++ src/store/server/getters.ts | 21 ++ src/store/server/index.ts | 3 + src/store/server/mutations.ts | 4 + src/store/server/types.ts | 2 + src/store/socket/actions.ts | 12 + src/store/variables.ts | 4 +- 47 files changed, 1037 insertions(+), 405 deletions(-) delete mode 100644 src/components/TheThrottledStates.vue create mode 100644 src/components/notifications/NotificationMenuEntry.vue create mode 100644 src/components/notifications/TheNotificationMenu.vue delete mode 100644 src/components/panels/DependenciesPanel.vue delete mode 100644 src/components/panels/KlipperWarningsPanel.vue delete mode 100644 src/components/panels/MoonrakerStatePanel.vue create mode 100644 src/store/gui/notifications/actions.ts create mode 100644 src/store/gui/notifications/getters.ts create mode 100644 src/store/gui/notifications/index.ts create mode 100644 src/store/gui/notifications/mutations.ts create mode 100644 src/store/gui/notifications/types.ts create mode 100644 src/store/server/announcements/actions.ts create mode 100644 src/store/server/announcements/getters.ts create mode 100644 src/store/server/announcements/index.ts create mode 100644 src/store/server/announcements/mutations.ts create mode 100644 src/store/server/announcements/types.ts diff --git a/src/App.vue b/src/App.vue index cdde2035..352c6207 100644 --- a/src/App.vue +++ b/src/App.vue @@ -41,7 +41,7 @@ - - + diff --git a/src/components/TheThrottledStates.vue b/src/components/TheThrottledStates.vue deleted file mode 100644 index ee12a791..00000000 --- a/src/components/TheThrottledStates.vue +++ /dev/null @@ -1,96 +0,0 @@ - - - - - diff --git a/src/components/TheTopbar.vue b/src/components/TheTopbar.vue index 427dbda9..edd62c8e 100644 --- a/src/components/TheTopbar.vue +++ b/src/components/TheTopbar.vue @@ -47,7 +47,6 @@ {{ printerName }} - {{ mdiAlertCircleOutline }} {{ $t('App.TopBar.EmergencyStop') }} + @@ -142,10 +142,10 @@ import axios from 'axios' import { formatFilesize } from '@/plugins/helpers' import TheTopCornerMenu from '@/components/TheTopCornerMenu.vue' import TheSettingsMenu from '@/components/TheSettingsMenu.vue' -import TheThrottledStates from '@/components/TheThrottledStates.vue' import Panel from '@/components/ui/Panel.vue' import PrinterSelector from '@/components/ui/PrinterSelector.vue' import MainsailLogo from '@/components/ui/MainsailLogo.vue' +import TheNotificationMenu from '@/components/notifications/TheNotificationMenu.vue' import { topbarHeight } from '@/store/variables' import { mdiAlertCircleOutline, mdiContentSave, mdiFileUpload, mdiClose, mdiCloseThick } from '@mdi/js' @@ -165,11 +165,11 @@ type uploadSnackbar = { @Component({ components: { Panel, - TheThrottledStates, TheSettingsMenu, TheTopCornerMenu, PrinterSelector, MainsailLogo, + TheNotificationMenu, }, }) export default class TheTopbar extends Mixins(BaseMixin) { diff --git a/src/components/mixins/base.ts b/src/components/mixins/base.ts index 9de25dc1..269fd007 100644 --- a/src/components/mixins/base.ts +++ b/src/components/mixins/base.ts @@ -40,7 +40,8 @@ export default class BaseMixin extends Vue { } get printer_state(): string { - const printer_state = this.$store.state.printer.print_stats?.state ?? '' + const printer_state = + this.$store.state.printer.print_stats?.state ?? this.$store.state.printer.idle_timeout?.state ?? '' const timelapse_pause = this.$store.state.printer['gcode_macro TIMELAPSE_TAKE_FRAME']?.is_paused ?? false return printer_state === 'paused' && timelapse_pause ? 'printing' : printer_state } diff --git a/src/components/notifications/NotificationMenuEntry.vue b/src/components/notifications/NotificationMenuEntry.vue new file mode 100644 index 00000000..a8439715 --- /dev/null +++ b/src/components/notifications/NotificationMenuEntry.vue @@ -0,0 +1,156 @@ + + + + + diff --git a/src/components/notifications/TheNotificationMenu.vue b/src/components/notifications/TheNotificationMenu.vue new file mode 100644 index 00000000..7db315d7 --- /dev/null +++ b/src/components/notifications/TheNotificationMenu.vue @@ -0,0 +1,112 @@ + + + + + diff --git a/src/components/panels/DependenciesPanel.vue b/src/components/panels/DependenciesPanel.vue deleted file mode 100644 index 3b91dddf..00000000 --- a/src/components/panels/DependenciesPanel.vue +++ /dev/null @@ -1,44 +0,0 @@ - - - diff --git a/src/components/panels/KlipperWarningsPanel.vue b/src/components/panels/KlipperWarningsPanel.vue deleted file mode 100644 index a281c1e8..00000000 --- a/src/components/panels/KlipperWarningsPanel.vue +++ /dev/null @@ -1,81 +0,0 @@ - - - diff --git a/src/components/panels/MinSettingsPanel.vue b/src/components/panels/MinSettingsPanel.vue index 4bd1e672..e17ab9c4 100644 --- a/src/components/panels/MinSettingsPanel.vue +++ b/src/components/panels/MinSettingsPanel.vue @@ -30,7 +30,7 @@ - + {{ mdiInformation }} {{ $t('Panels.MinSettingsPanel.MoreInformation') }} diff --git a/src/components/panels/MoonrakerStatePanel.vue b/src/components/panels/MoonrakerStatePanel.vue deleted file mode 100644 index bd460954..00000000 --- a/src/components/panels/MoonrakerStatePanel.vue +++ /dev/null @@ -1,58 +0,0 @@ - - - diff --git a/src/components/panels/StatusPanel.vue b/src/components/panels/StatusPanel.vue index 6005168b..e6177468 100644 --- a/src/components/panels/StatusPanel.vue +++ b/src/components/panels/StatusPanel.vue @@ -6,11 +6,8 @@