From 7762ca40d7371cdf95c13881579e9150d0e11d04 Mon Sep 17 00:00:00 2001 From: hunterlong Date: Wed, 19 Feb 2020 21:28:39 -0800 Subject: [PATCH] updates --- core/checker.go | 1 - core/notifier/events.go | 4 +- frontend/config/webpack.config.dev.js | 6 +- frontend/package.json | 11 +- frontend/public/base.gohtml | 9 + frontend/src/API.js | 226 +++ frontend/src/App.vue | 2 +- frontend/src/components/API.js | 226 --- frontend/src/components/Dashboard/Cache.vue | 56 + .../components/Dashboard/DashboardIndex.vue | 35 +- .../Dashboard/DashboardMessages.vue | 2 +- .../Dashboard/DashboardServices.vue | 162 +-- .../components/Dashboard/DashboardUsers.vue | 2 +- .../src/components/Dashboard/EditService.vue | 12 +- .../src/components/Dashboard/ThemeEditor.vue | 3 +- frontend/src/components/Dashboard/TopNav.vue | 2 +- .../src/components/Service/ServiceBlock.vue | 44 +- .../src/components/Service/ServiceChart.vue | 186 +-- .../components/Service/ServiceFailures.vue | 2 +- .../src/components/Service/ServiceHeatmap.vue | 84 ++ .../{Dashboard => Service}/ServiceInfo.vue | 27 +- .../ServiceSparkLine.vue | 0 .../components/Service/ServiceTopStats.vue | 32 + frontend/src/components/Time.js | 14 - frontend/src/forms/Checkin.vue | 61 +- frontend/src/forms/CoreSettings.vue | 84 +- frontend/src/forms/Group.vue | 110 +- frontend/src/forms/Integration.vue | 75 +- frontend/src/forms/Login.vue | 60 +- frontend/src/forms/Message.vue | 12 +- frontend/src/forms/Notifier.vue | 118 +- frontend/src/forms/Service.vue | 38 +- frontend/src/forms/Setup.vue | 4 +- frontend/src/forms/ToggleSwitch.vue | 62 +- frontend/src/forms/User.vue | 2 +- frontend/src/main.js | 1 - frontend/src/mixin.js | 74 +- frontend/src/pages/Dashboard.vue | 2 +- frontend/src/pages/Index.vue | 58 +- frontend/src/pages/Login.vue | 2 +- frontend/src/pages/Logs.vue | 84 +- frontend/src/pages/Service.vue | 313 ++-- frontend/src/pages/Settings.vue | 95 +- frontend/src/routes.js | 2 +- frontend/src/store.js | 6 +- frontend/test/API.spec.js | 16 + frontend/test/Store.spec.js | 24 + frontend/test/forms/Login.spec.js | 32 + frontend/test/pages/Index.spec.js | 17 + frontend/test/setup.js | 5 + frontend/yarn.lock | 1295 ++++++++++++++++- handlers/api.go | 1 - handlers/function.go | 3 + notifiers/discord.go | 3 - notifiers/email.go | 3 - notifiers/line_notify.go | 3 - notifiers/mobile.go | 3 - notifiers/telegram.go | 3 - notifiers/twilio.go | 3 - types/core.go | 1 - types/service.go | 10 +- 61 files changed, 2608 insertions(+), 1225 deletions(-) create mode 100644 frontend/src/API.js delete mode 100644 frontend/src/components/API.js create mode 100644 frontend/src/components/Dashboard/Cache.vue create mode 100644 frontend/src/components/Service/ServiceHeatmap.vue rename frontend/src/components/{Dashboard => Service}/ServiceInfo.vue (82%) rename frontend/src/components/{Dashboard => Service}/ServiceSparkLine.vue (100%) create mode 100644 frontend/src/components/Service/ServiceTopStats.vue delete mode 100644 frontend/src/components/Time.js create mode 100644 frontend/test/API.spec.js create mode 100644 frontend/test/Store.spec.js create mode 100644 frontend/test/forms/Login.spec.js create mode 100644 frontend/test/pages/Index.spec.js create mode 100644 frontend/test/setup.js diff --git a/core/checker.go b/core/checker.go index fd27554c..604be8b7 100644 --- a/core/checker.go +++ b/core/checker.go @@ -280,7 +280,6 @@ func recordFailure(s *Service, issue string) { s.CreateFailure(fail) s.Online = false s.SuccessNotified = false - s.UpdateNotify = CoreApp.UpdateNotify.Bool s.DownText = s.DowntimeText() notifier.OnFailure(s.Service, fail) } diff --git a/core/notifier/events.go b/core/notifier/events.go index 445ccbb2..4e70c573 100644 --- a/core/notifier/events.go +++ b/core/notifier/events.go @@ -40,7 +40,7 @@ func OnFailure(s *types.Service, f *types.Failure) { } // check if User wants to receive every Status Change - if s.UpdateNotify { + if s.UpdateNotify.Bool { // send only if User hasn't been already notified about the Downtime if !s.UserNotified { s.UserNotified = true @@ -69,7 +69,7 @@ func OnSuccess(s *types.Service) { } // check if User wants to receive every Status Change - if s.UpdateNotify && s.UserNotified { + if s.UpdateNotify.Bool && s.UserNotified { s.UserNotified = false } diff --git a/frontend/config/webpack.config.dev.js b/frontend/config/webpack.config.dev.js index 27277e6d..532cbf45 100644 --- a/frontend/config/webpack.config.dev.js +++ b/frontend/config/webpack.config.dev.js @@ -10,12 +10,14 @@ const environment = require('./dev.env'); const webpackConfig = merge(commonConfig, { mode: 'development', - devtool: 'cheap-module-eval-source-map', + devtool: 'inline-cheap-module-source-map', output: { path: helpers.root('dist'), publicPath: '/', filename: 'js/[name].bundle.js', - chunkFilename: 'js/[name].chunk.js' + chunkFilename: 'js/[name].chunk.js', + devtoolModuleFilenameTemplate: '[absolute-resource-path]', + devtoolFallbackModuleFilenameTemplate: '[absolute-resource-path]?[hash]' }, optimization: { runtimeChunk: 'single', diff --git a/frontend/package.json b/frontend/package.json index b144ddc7..be8e7af4 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -6,7 +6,8 @@ "serve": "vue-cli-service serve", "build": "rm -rf dist && cross-env NODE_ENV=production webpack --mode production", "dev": "cross-env NODE_ENV=development webpack-dev-server --host 0.0.0.0 --port 8888 --progress", - "lint": "vue-cli-service lint" + "lint": "vue-cli-service lint", + "test": "cross-env NODE_ENV=development mochapack --webpack-config webpack.config.js --require test/setup.js test/**/*.spec.js" }, "dependencies": { "@fortawesome/fontawesome-free-solid": "^5.1.0-3", @@ -18,7 +19,7 @@ "axios": "^0.19.1", "codemirror-colorpicker": "^1.9.66", "core-js": "^3.4.4", - "moment": "^2.24.0", + "date-fns": "^2.9.0", "querystring": "^0.2.0", "vue": "^2.6.10", "vue-apexcharts": "^1.5.2", @@ -40,6 +41,7 @@ "@babel/preset-env": "~7.8.3", "@vue/babel-preset-app": "^4.1.2", "@vue/cli-plugin-babel": "^4.1.0", + "@vue/test-utils": "^1.0.0-beta.31", "babel-eslint": "~10.0", "babel-loader": "~8.0", "compression-webpack-plugin": "~2.0", @@ -55,10 +57,15 @@ "eslint-plugin-promise": "~3.5", "eslint-plugin-standard": "~3.0", "eslint-plugin-vue": "~5.1", + "expect": "^25.1.0", "file-loader": "^5.0.2", "friendly-errors-webpack-plugin": "~1.7", "html-webpack-plugin": "^4.0.0-beta.11", + "jsdom": "^16.2.0", + "jsdom-global": "^3.0.2", "mini-css-extract-plugin": "~0.5", + "mocha": "^7.0.1", + "mochapack": "^1.1.13", "node-sass": "^4.13.1", "optimize-css-assets-webpack-plugin": "~5.0", "sass-loader": "^8.0.2", diff --git a/frontend/public/base.gohtml b/frontend/public/base.gohtml index 27d408ca..b3bd1848 100644 --- a/frontend/public/base.gohtml +++ b/frontend/public/base.gohtml @@ -10,11 +10,20 @@ {{if USE_CDN}} + + + {{else}} + {{if USING_ASSETS}} + + + + {{else}} <% _.each(htmlWebpackPlugin.tags.headTags, function(headTag) { %> <%= headTag %> <% }) %> {{end}} + {{end}}