From eb9792d18480736630f4811caf56add31b78c3c2 Mon Sep 17 00:00:00 2001 From: hunterlong Date: Wed, 2 Sep 2020 00:47:55 -0700 Subject: [PATCH] modal for UI confirmations --- frontend/config/webpack.config.prod.js | 2 +- frontend/src/assets/scss/layout.scss | 28 +++++++++++ .../Dashboard/DashboardMessages.vue | 18 +++++-- .../Dashboard/DashboardServices.vue | 26 +++++++--- .../components/Dashboard/DashboardUsers.vue | 18 +++++-- .../src/components/Dashboard/Failures.vue | 20 +++++--- .../src/components/Dashboard/Incidents.vue | 24 ++++++--- .../src/components/Dashboard/ServicesList.vue | 27 +++++++--- .../src/components/Dashboard/ThemeEditor.vue | 22 +++++--- frontend/src/components/Elements/Modal.vue | 50 +++++++++++++++++++ frontend/src/forms/Notifier.vue | 4 +- frontend/src/pages/Dashboard.vue | 7 +++ frontend/src/pages/Settings.vue | 22 +++++--- frontend/src/store.js | 14 +++++- 14 files changed, 227 insertions(+), 55 deletions(-) create mode 100644 frontend/src/components/Elements/Modal.vue diff --git a/frontend/config/webpack.config.prod.js b/frontend/config/webpack.config.prod.js index d877196f..0e10e4a4 100644 --- a/frontend/config/webpack.config.prod.js +++ b/frontend/config/webpack.config.prod.js @@ -74,7 +74,7 @@ const webpackConfig = merge(commonConfig, { threshold: 10240, minRatio: 0.8 }), - new webpack.HashedModuleIdsPlugin(), + // new webpack.HashedModuleIdsPlugin(), new HtmlPlugin({ template: 'public/base.gohtml', filename: 'base.gohtml', diff --git a/frontend/src/assets/scss/layout.scss b/frontend/src/assets/scss/layout.scss index 2bd6e5ec..e0e573af 100644 --- a/frontend/src/assets/scss/layout.scss +++ b/frontend/src/assets/scss/layout.scss @@ -14,6 +14,34 @@ A:HOVER { color: lighten($text-color, 12%) !important; } +.modal-backdrop { + top: 0; + left: 0; + position: absolute; + display: block; + z-index: 10000; + width: 100%; + height: 100%; + background-color: #00000073; +} + +.modal { + z-index: 999999 !important; + display: block; +} + +.modal-dialog { + top: 20%; +} + +.modal-header { + padding: 0.5rem 1rem; +} + +.modal-footer { + padding: 0.5rem 1rem; +} + .text-muted { color: lighten($text-color, 30%) !important; } diff --git a/frontend/src/components/Dashboard/DashboardMessages.vue b/frontend/src/components/Dashboard/DashboardMessages.vue index c17bf54a..c5cc3a5e 100644 --- a/frontend/src/components/Dashboard/DashboardMessages.vue +++ b/frontend/src/components/Dashboard/DashboardMessages.vue @@ -81,13 +81,21 @@ serviceName (service) { return service.name || "Global Message" }, + async delete(m) { + await Api.message_delete(m.id) + const messages = await Api.messages() + this.$store.commit('setMessages', messages) + }, async deleteMessage(m) { - let c = confirm(`Are you sure you want to delete message '${m.title}'?`) - if (c) { - await Api.message_delete(m.id) - const messages = await Api.messages() - this.$store.commit('setMessages', messages) + const modal = { + visible: true, + title: "Delete Announcement", + body: `Are you sure you want to delete Announcement ${m.title}?`, + btnColor: "btn-danger", + btnText: "Delete Announcement", + func: () => this.delete(m), } + this.$store.commit("setModal", modal) } } } diff --git a/frontend/src/components/Dashboard/DashboardServices.vue b/frontend/src/components/Dashboard/DashboardServices.vue index d8c40247..42228a0a 100644 --- a/frontend/src/components/Dashboard/DashboardServices.vue +++ b/frontend/src/components/Dashboard/DashboardServices.vue @@ -1,5 +1,6 @@ + + diff --git a/frontend/src/forms/Notifier.vue b/frontend/src/forms/Notifier.vue index eb06d1d9..73866ac3 100644 --- a/frontend/src/forms/Notifier.vue +++ b/frontend/src/forms/Notifier.vue @@ -149,11 +149,11 @@
- Service '{{$store.getters.serviceById(log.service).name}}' + Service {{log.service}} {{log.success ? "Success Triggered" : "Failure Triggered"}} -
+
{{log.message}}
diff --git a/frontend/src/pages/Dashboard.vue b/frontend/src/pages/Dashboard.vue index 17f20d2f..d1b08cfa 100644 --- a/frontend/src/pages/Dashboard.vue +++ b/frontend/src/pages/Dashboard.vue @@ -1,16 +1,20 @@