From 0aa3c29a871758770ac29c2542f6016ce7f7f316 Mon Sep 17 00:00:00 2001 From: John Cardinal Date: Wed, 6 Mar 2019 19:28:57 +0000 Subject: [PATCH] --- ayanova/src/api/errorhandler.js | 30 +++++++++++++++---- .../src/components/gzdateandtimepicker.vue | 6 +++- ayanova/src/main.js | 15 +++++++++- 3 files changed, 43 insertions(+), 8 deletions(-) diff --git a/ayanova/src/api/errorhandler.js b/ayanova/src/api/errorhandler.js index ce3cbba9..b6513514 100644 --- a/ayanova/src/api/errorhandler.js +++ b/ayanova/src/api/errorhandler.js @@ -1,12 +1,20 @@ -/* xeslint-disable */ +/* eslint-disable */ import store from "../store"; +var devModeShowErrors = false; + function dealWithError(msg) { store.commit("logItem", msg); + if (devModeShowErrors) { + alert("Error: " + msg); + } } export default { + developmentModeShowErrorsImmediately(showErrorsImmediately) { + devModeShowErrors = showErrorsImmediately; + }, handleGeneralError(message, source, lineno, colno, error) { - var msg = "GeneralError: \n" + message; + var msg = "General error: \n" + message; if (source) { msg += "\nsource: " + source; } @@ -22,12 +30,22 @@ export default { dealWithError(msg); }, handleVueError(err, vm, info) { - var msg = "VueError: \n" + err; - if (vm) { - msg += "\nvm present "; - } + var msg = "Vue error: \n" + err; + // if (vm) { + // msg += "\nvm present "; + // } if (info) { msg += "\ninfo: " + info; + } + dealWithError(msg); + }, + handleVueWarning(wmsg, vm, trace) { + var msg = "Vue warning: \n" + wmsg; + // if (vm) { + // msg += "\nvm present "; + // } + if (trace) { + msg += "\ntrace: " + trace; } dealWithError(msg); } diff --git a/ayanova/src/components/gzdateandtimepicker.vue b/ayanova/src/components/gzdateandtimepicker.vue index 071bfa3e..3f723b0b 100644 --- a/ayanova/src/components/gzdateandtimepicker.vue +++ b/ayanova/src/components/gzdateandtimepicker.vue @@ -43,7 +43,11 @@ /* eslint-disable */ export default { beforeCreate() { - console.log("Nothing gets called before me!"); + //created() { + //check pre-requisites exist just in case + if (!this.$xdayjs) { + throw "GzDateAndTimePicker: the DayJS library is required and missing"; + } }, data: () => ({ date: null, modal: false, modal2: false }), props: { diff --git a/ayanova/src/main.js b/ayanova/src/main.js index 02f9ebe3..9997f83e 100644 --- a/ayanova/src/main.js +++ b/ayanova/src/main.js @@ -14,7 +14,7 @@ import dayjs from "dayjs"; import gzdateandtimepicker from "./components/gzdateandtimepicker.vue"; ///////////////////////////////////////////////////////////////// -// LIBS +// LIBS AND GLOBAL STUFF // (https://medium.com/js-dojo/use-any-javascript-library-with-vue-js-3f7e2a4974a8) // Object.defineProperty(Vue.prototype, "$dayjs", { value: dayjs }); @@ -29,8 +29,21 @@ Vue.config.productionTip = false; ///////////////////////////////////////////////////////////////// // ERROR HANDLING // + +//************************************************************** +//************************************************************** +//************************************************************** +//DEVELOPMENT MODE HANDLER +//THIS SHOULD BE FALSE IN RELEASE +errorHandler.developmentModeShowErrorsImmediately(true); +//************************************************************** +//************************************************************** +//************************************************************** + Vue.config.errorHandler = errorHandler.handleVueError; window.onerror = errorHandler.handleGeneralError; +//warnings, only occur by default in debug mode not production +Vue.config.warnHandler = errorHandler.handleVueWarning; ///////////////////////////////////////////////////////////////// // AJAX LOADER INDICATOR