This commit is contained in:
@@ -1,204 +1,206 @@
|
||||
/* eslint-disable */
|
||||
import "@babel/polyfill";
|
||||
import "@fortawesome/fontawesome-free/css/all.css";
|
||||
import "typeface-roboto/index.css";
|
||||
import Vue from "vue";
|
||||
//import "./plugins/vuetify";
|
||||
import Vuetify from "./plugins/vuetify";
|
||||
import App from "./App.vue";
|
||||
import router from "./router";
|
||||
import store from "./store";
|
||||
import "./registerServiceWorker";
|
||||
import errorHandler from "./api/errorhandler";
|
||||
import NProgress from "nprogress";
|
||||
import "nprogress/nprogress.css";
|
||||
import dayjs from "dayjs";
|
||||
import UTC from "dayjs/plugin/utc"; // load on demand
|
||||
dayjs.extend(UTC); // use plugin
|
||||
import lodash from "./libs/lodash.min.js";
|
||||
import VuetifyDialog from "vuetify-dialog";
|
||||
|
||||
//my libs
|
||||
import gzeventbus from "./api/eventbus";
|
||||
import gzmenu from "./api/gzmenu";
|
||||
import gzdialog from "./api/gzdialog";
|
||||
import gzutil from "./api/gzutil";
|
||||
import locale from "./api/locale";
|
||||
import gzapi from "./api/gzapi";
|
||||
import gzreport from "./api/gzreport";
|
||||
import gzform from "./api/gzform";
|
||||
import gzformcustomtemplate from "./api/form-custom-template";
|
||||
import authorizationroles from "./api/authorizationroles";
|
||||
import gztype from "./api/ayatype";
|
||||
import "@/assets/css/main.css";
|
||||
|
||||
//controls
|
||||
import dateTimeControl from "./components/date-time-control.vue";
|
||||
import tagPicker from "./components/tag-picker.vue";
|
||||
import customFieldsControl from "./components/custom-fields-control.vue";
|
||||
import errorhandler from "./api/errorhandler";
|
||||
|
||||
/////////////////////////////////////////////////////////////////
|
||||
// LIBS AND GLOBAL ITEMS
|
||||
// NOTE: I'm putting them on Window deliberately to be globally available
|
||||
// some say this is bad only due to if you want to server render the page
|
||||
// however when I researched that I found it's easily worked around
|
||||
// as all you need is a "window" global var defined and then it's all good in the hood
|
||||
// so for convenience and far less fuckery this is the way
|
||||
//
|
||||
|
||||
window.$gz = {
|
||||
locale: locale,
|
||||
formCustomTemplate: gzformcustomtemplate,
|
||||
type: gztype,
|
||||
role: authorizationroles,
|
||||
eventBus: gzeventbus,
|
||||
menu: gzmenu,
|
||||
dialog: gzdialog,
|
||||
util: gzutil,
|
||||
dayjs: dayjs,
|
||||
_: lodash,
|
||||
api: gzapi,
|
||||
form: gzform,
|
||||
report: gzreport,
|
||||
errorHandler: errorhandler,
|
||||
store: store
|
||||
};
|
||||
|
||||
/////////////////////////////////////////////////////////////////
|
||||
// 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;
|
||||
|
||||
//added for vuetify 2.x to disable annoying prodution mode tip warning
|
||||
//but commented out for now just to see what it looks like
|
||||
//Vue.config.productionTip = false;
|
||||
|
||||
/////////////////////////////////////////////////////////////////
|
||||
// AJAX LOADER INDICATOR
|
||||
//
|
||||
// Store a copy of the fetch function
|
||||
var _oldFetch = fetch;
|
||||
|
||||
// Create our new version of the fetch function
|
||||
window.fetch = function() {
|
||||
// Create hooks
|
||||
var fetchStart = new Event("fetchStart", {
|
||||
view: document,
|
||||
bubbles: true,
|
||||
cancelable: false
|
||||
});
|
||||
var fetchEnd = new Event("fetchEnd", {
|
||||
view: document,
|
||||
bubbles: true,
|
||||
cancelable: false
|
||||
});
|
||||
|
||||
// Pass the supplied arguments to the real fetch function
|
||||
var fetchCall = _oldFetch.apply(this, arguments);
|
||||
|
||||
// Trigger the fetchStart event
|
||||
document.dispatchEvent(fetchStart);
|
||||
|
||||
fetchCall
|
||||
.then(function() {
|
||||
// Trigger the fetchEnd event
|
||||
document.dispatchEvent(fetchEnd);
|
||||
})
|
||||
.catch(function() {
|
||||
// Trigger the fetchEnd event
|
||||
document.dispatchEvent(fetchEnd);
|
||||
});
|
||||
|
||||
return fetchCall;
|
||||
};
|
||||
|
||||
document.addEventListener("fetchStart", function() {
|
||||
NProgress.start();
|
||||
});
|
||||
|
||||
document.addEventListener("fetchEnd", function() {
|
||||
NProgress.done();
|
||||
});
|
||||
|
||||
/////////////////////////////////////////////////////////////////
|
||||
// FILTERS
|
||||
//
|
||||
Vue.filter("capitalize", function vueFilterCapitalize(value) {
|
||||
if (!value) return "";
|
||||
value = value.toString();
|
||||
return value.charAt(0).toUpperCase() + value.slice(1);
|
||||
});
|
||||
|
||||
Vue.filter("shortdate", function vueFilterShortDate(value) {
|
||||
if (!value) return "";
|
||||
var dj = dayjs(value);
|
||||
return dj.format("YYYY-MM-DD hh:mm:ss A");
|
||||
});
|
||||
|
||||
Vue.filter("currency", function vueFilterCurrency(value) {
|
||||
if (!value) return "";
|
||||
return "$" + value;
|
||||
});
|
||||
|
||||
Vue.filter("boolastext", function vueFilterBoolAsText(value) {
|
||||
if (!value) return "";
|
||||
return value ? "Yes" : "Nope";
|
||||
});
|
||||
|
||||
/////////////////////////////////////////////////////////////
|
||||
//GZ COMPONENTS
|
||||
//
|
||||
Vue.component("gz-date-time-picker", dateTimeControl);
|
||||
Vue.component("gz-tag-picker", tagPicker);
|
||||
Vue.component("gz-custom-fields", customFieldsControl);
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////
|
||||
//3rd party ui components
|
||||
//
|
||||
Vue.use(VuetifyDialog, {
|
||||
context: {
|
||||
Vuetify
|
||||
}
|
||||
});
|
||||
|
||||
/////////////////////////////////////////////////////////////
|
||||
//DIRECTIVES
|
||||
//
|
||||
//Auto focus on forms
|
||||
Vue.directive("focus", {
|
||||
// When the bound element is inserted into the DOM...
|
||||
inserted: function(el) {
|
||||
// Focus the element
|
||||
el.focus();
|
||||
}
|
||||
});
|
||||
|
||||
// console.log(Vue);
|
||||
// console.log(Vuetify.lang);
|
||||
// debugger;
|
||||
|
||||
/////////////////////////////////////////////////////////////////
|
||||
// INSTANTIATE
|
||||
//
|
||||
new Vue({
|
||||
vuetify: Vuetify,
|
||||
router,
|
||||
store,
|
||||
render: h => h(App)
|
||||
}).$mount("#app");
|
||||
/* eslint-disable */
|
||||
import "@babel/polyfill";
|
||||
import "@fortawesome/fontawesome-free/css/all.css";
|
||||
import "typeface-roboto/index.css";
|
||||
import Vue from "vue";
|
||||
//import "./plugins/vuetify";
|
||||
import Vuetify from "./plugins/vuetify";
|
||||
import App from "./App.vue";
|
||||
import router from "./router";
|
||||
import store from "./store";
|
||||
import "./registerServiceWorker";
|
||||
import errorHandler from "./api/errorhandler";
|
||||
import NProgress from "nprogress";
|
||||
import "nprogress/nprogress.css";
|
||||
import dayjs from "dayjs";
|
||||
import UTC from "dayjs/plugin/utc"; // load on demand
|
||||
dayjs.extend(UTC); // use plugin
|
||||
import lodash from "./libs/lodash.min.js";
|
||||
import VuetifyDialog from "vuetify-dialog";
|
||||
|
||||
//my libs
|
||||
import gzeventbus from "./api/eventbus";
|
||||
import gzmenu from "./api/gzmenu";
|
||||
import gzdialog from "./api/gzdialog";
|
||||
import gzutil from "./api/gzutil";
|
||||
import locale from "./api/locale";
|
||||
import gzapi from "./api/gzapi";
|
||||
import gzreport from "./api/gzreport";
|
||||
import gzform from "./api/gzform";
|
||||
import gzformcustomtemplate from "./api/form-custom-template";
|
||||
import authorizationroles from "./api/authorizationroles";
|
||||
import gztype from "./api/ayatype";
|
||||
import "@/assets/css/main.css";
|
||||
|
||||
//controls
|
||||
import dateTimeControl from "./components/date-time-control.vue";
|
||||
import tagPicker from "./components/tag-picker.vue";
|
||||
import customFieldsControl from "./components/custom-fields-control.vue";
|
||||
import errorhandler from "./api/errorhandler";
|
||||
import vuetify from './plugins/vuetify';
|
||||
|
||||
/////////////////////////////////////////////////////////////////
|
||||
// LIBS AND GLOBAL ITEMS
|
||||
// NOTE: I'm putting them on Window deliberately to be globally available
|
||||
// some say this is bad only due to if you want to server render the page
|
||||
// however when I researched that I found it's easily worked around
|
||||
// as all you need is a "window" global var defined and then it's all good in the hood
|
||||
// so for convenience and far less fuckery this is the way
|
||||
//
|
||||
|
||||
window.$gz = {
|
||||
locale: locale,
|
||||
formCustomTemplate: gzformcustomtemplate,
|
||||
type: gztype,
|
||||
role: authorizationroles,
|
||||
eventBus: gzeventbus,
|
||||
menu: gzmenu,
|
||||
dialog: gzdialog,
|
||||
util: gzutil,
|
||||
dayjs: dayjs,
|
||||
_: lodash,
|
||||
api: gzapi,
|
||||
form: gzform,
|
||||
report: gzreport,
|
||||
errorHandler: errorhandler,
|
||||
store: store
|
||||
};
|
||||
|
||||
/////////////////////////////////////////////////////////////////
|
||||
// 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;
|
||||
|
||||
//added for vuetify 2.x to disable annoying prodution mode tip warning
|
||||
//but commented out for now just to see what it looks like
|
||||
//Vue.config.productionTip = false;
|
||||
|
||||
/////////////////////////////////////////////////////////////////
|
||||
// AJAX LOADER INDICATOR
|
||||
//
|
||||
// Store a copy of the fetch function
|
||||
var _oldFetch = fetch;
|
||||
|
||||
// Create our new version of the fetch function
|
||||
window.fetch = function() {
|
||||
// Create hooks
|
||||
var fetchStart = new Event("fetchStart", {
|
||||
view: document,
|
||||
bubbles: true,
|
||||
cancelable: false
|
||||
});
|
||||
var fetchEnd = new Event("fetchEnd", {
|
||||
view: document,
|
||||
bubbles: true,
|
||||
cancelable: false
|
||||
});
|
||||
|
||||
// Pass the supplied arguments to the real fetch function
|
||||
var fetchCall = _oldFetch.apply(this, arguments);
|
||||
|
||||
// Trigger the fetchStart event
|
||||
document.dispatchEvent(fetchStart);
|
||||
|
||||
fetchCall
|
||||
.then(function() {
|
||||
// Trigger the fetchEnd event
|
||||
document.dispatchEvent(fetchEnd);
|
||||
})
|
||||
.catch(function() {
|
||||
// Trigger the fetchEnd event
|
||||
document.dispatchEvent(fetchEnd);
|
||||
});
|
||||
|
||||
return fetchCall;
|
||||
};
|
||||
|
||||
document.addEventListener("fetchStart", function() {
|
||||
NProgress.start();
|
||||
});
|
||||
|
||||
document.addEventListener("fetchEnd", function() {
|
||||
NProgress.done();
|
||||
});
|
||||
|
||||
/////////////////////////////////////////////////////////////////
|
||||
// FILTERS
|
||||
//
|
||||
Vue.filter("capitalize", function vueFilterCapitalize(value) {
|
||||
if (!value) return "";
|
||||
value = value.toString();
|
||||
return value.charAt(0).toUpperCase() + value.slice(1);
|
||||
});
|
||||
|
||||
Vue.filter("shortdate", function vueFilterShortDate(value) {
|
||||
if (!value) return "";
|
||||
var dj = dayjs(value);
|
||||
return dj.format("YYYY-MM-DD hh:mm:ss A");
|
||||
});
|
||||
|
||||
Vue.filter("currency", function vueFilterCurrency(value) {
|
||||
if (!value) return "";
|
||||
return "$" + value;
|
||||
});
|
||||
|
||||
Vue.filter("boolastext", function vueFilterBoolAsText(value) {
|
||||
if (!value) return "";
|
||||
return value ? "Yes" : "Nope";
|
||||
});
|
||||
|
||||
/////////////////////////////////////////////////////////////
|
||||
//GZ COMPONENTS
|
||||
//
|
||||
Vue.component("gz-date-time-picker", dateTimeControl);
|
||||
Vue.component("gz-tag-picker", tagPicker);
|
||||
Vue.component("gz-custom-fields", customFieldsControl);
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////
|
||||
//3rd party ui components
|
||||
//
|
||||
Vue.use(VuetifyDialog, {
|
||||
context: {
|
||||
Vuetify
|
||||
}
|
||||
});
|
||||
|
||||
/////////////////////////////////////////////////////////////
|
||||
//DIRECTIVES
|
||||
//
|
||||
//Auto focus on forms
|
||||
Vue.directive("focus", {
|
||||
// When the bound element is inserted into the DOM...
|
||||
inserted: function(el) {
|
||||
// Focus the element
|
||||
el.focus();
|
||||
}
|
||||
});
|
||||
|
||||
// console.log(Vue);
|
||||
// console.log(Vuetify.lang);
|
||||
// debugger;
|
||||
|
||||
/////////////////////////////////////////////////////////////////
|
||||
// INSTANTIATE
|
||||
//
|
||||
new Vue({
|
||||
vuetify: Vuetify,
|
||||
router,
|
||||
store,
|
||||
vuetify,
|
||||
render: h => h(App)
|
||||
}).$mount("#app");
|
||||
|
||||
Reference in New Issue
Block a user