This commit is contained in:
2020-03-03 23:40:08 +00:00
parent ba95762de5
commit b7115335e7
7 changed files with 61 additions and 39 deletions

View File

@@ -44,14 +44,13 @@ CURRENT TODOs
@@@@@@@@@@@ ROADMAP STAGE 1 and 2: @@@@@@@@@@@ ROADMAP STAGE 1 and 2:
todo: grid relative date tokens need to be substituted before query sent to server
todo: Make functional user settings form with all overrides so can test shit out todo: Make functional user settings form with all overrides so can test shit out
todo: SEARCH UI todo: SEARCH UI
todo: Make sure scroll position is respected and saved when editing a widget and coming back to the list
PICKLISTS: PICKLISTS:

View File

@@ -1,5 +1,15 @@
<template> <template>
<div> <div>
<v-alert
ref="errorbox"
v-show="formState.errorBoxMessage"
color="error"
icon="fa-exclamation-circle "
transition="scale-transition"
class="multi-line"
outlined
>{{ formState.errorBoxMessage }}</v-alert
>
<v-card> <v-card>
<v-card-title> <v-card-title>
<v-select <v-select
@@ -326,7 +336,17 @@ export default {
totalRecords: 0, totalRecords: 0,
records: [], records: [],
rowsPerPageItems: [5, 10, 25, 50, 100], rowsPerPageItems: [5, 10, 25, 50, 100],
selected: [] selected: [],
formState: {
ready: false,
dirty: false,
valid: true,
readOnly: false,
loading: true,
errorBoxMessage: undefined,
appError: undefined,
serverError: {}
}
}; };
}, },
props: { props: {
@@ -502,27 +522,35 @@ export default {
listView: vm.listView listView: vm.listView
}) })
.then(res => { .then(res => {
//NOTE: This is how to call an async function and await it from sync code if (res.error != undefined) {
(async function() { throw res.error;
//Save a copy of the server columns data for handling button clicks etc later } else {
vm.serverColumns = res.columns; //NOTE: This is how to call an async function and await it from sync code
//Make sure the locale keys are fetched (async function() {
await fetchLocalizedHeaderNames(res.columns); //Note can use await here because it's wrapped inside an async function call, it will wait then resume next stuff below //Save a copy of the server columns data for handling button clicks etc later
await fetchEnums(res.columns); vm.serverColumns = res.columns;
//Make sure the locale keys are fetched
await fetchLocalizedHeaderNames(res.columns); //Note can use await here because it's wrapped inside an async function call, it will wait then resume next stuff below
await fetchEnums(res.columns);
//build vm.headers here //build vm.headers here
vm.headers = buildHeaders(res.columns); vm.headers = buildHeaders(res.columns);
//Post process data here and then set vm.records //Post process data here and then set vm.records
vm.records = buildRecords(res.data, res.columns); vm.records = buildRecords(res.data, res.columns);
vm.loading = false; vm.loading = false;
vm.totalRecords = res.totalRecordCount; vm.totalRecords = res.totalRecordCount;
//Put back selected items //Put back selected items
vm.selected = [...preSelected]; vm.selected = [...preSelected];
//persist the paging options and listview stuff so user sees same page and list on refresh or leave and return scenario //persist the paging options and listview stuff so user sees same page and list on refresh or leave and return scenario
saveFormSettings(vm); saveFormSettings(vm);
////////// //////////
})(); })();
}
})
.catch(err => {
vm.formState.ready = true;
window.$gz.errorHandler.handleFormError(err, vm);
}); });
} }
}, },
@@ -696,15 +724,9 @@ async function fetchLocalizedHeaderNames(columnData) {
headerKeys.push(cm.cm); headerKeys.push(cm.cm);
} }
//Now fetch all the keys and await the response before returning //Now fetch all the keys and await the response before returning
await window.$gz.locale await window.$gz.locale.fetch(headerKeys).then(() => {
.fetch(headerKeys) return;
.then(() => { });
return;
})
.catch(err => {
vm.formState.ready = true; //show the form anyway so we know what's what
window.$gz.errorHandler.handleFormError(err);
});
} }
////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////

View File

@@ -141,7 +141,7 @@ export default {
}) })
.catch(err => { .catch(err => {
vm.formState.ready = true; vm.formState.ready = true;
window.$gz.errorHandler.handleFormError(err); window.$gz.errorHandler.handleFormError(err, vm);
}); });
}, },
beforeDestroy() { beforeDestroy() {

View File

@@ -130,7 +130,7 @@ export default {
}) })
.catch(err => { .catch(err => {
vm.formState.ready = true; vm.formState.ready = true;
window.$gz.errorHandler.handleFormError(err); window.$gz.errorHandler.handleFormError(err, vm);
}); });
}, },
data() { data() {

View File

@@ -474,7 +474,7 @@ export default {
}) })
.catch(err => { .catch(err => {
vm.formState.ready = true; vm.formState.ready = true;
window.$gz.errorHandler.handleFormError(err); window.$gz.errorHandler.handleFormError(err, vm);
}); });
}, },
data() { data() {

View File

@@ -22,6 +22,7 @@
/* Xeslint-disable */ /* Xeslint-disable */
export default { export default {
created() { created() {
var vm = this;
window.$gz.eventBus.$emit("menu-change", { window.$gz.eventBus.$emit("menu-change", {
isMain: false, isMain: false,
icon: "fa-info-circle", icon: "fa-info-circle",
@@ -40,7 +41,7 @@ export default {
}); });
var outText = ""; var outText = "";
window.$gz._.forEach(this.$store.state.logArray, function appendLogItem( window.$gz._.forEach(vm.$store.state.logArray, function appendLogItem(
value value
) { ) {
outText += value + "\n"; outText += value + "\n";
@@ -48,10 +49,10 @@ export default {
this.logText = outText; this.logText = outText;
window.$gz.locale window.$gz.locale
.fetch(["Log"]) .fetch(["Log"])
.then(() => (this.formState.ready = true)) .then(() => (vm.formState.ready = true))
.catch(err => { .catch(err => {
this.formState.ready = true; vm.formState.ready = true;
window.$gz.errorHandler.handleFormError(err); window.$gz.errorHandler.handleFormError(err, vm);
}); });
}, },
data() { data() {

View File

@@ -236,7 +236,7 @@ export default {
}) })
.catch(err => { .catch(err => {
vm.formState.ready = true; vm.formState.ready = true;
window.$gz.errorHandler.handleFormError(err); window.$gz.errorHandler.handleFormError(err, vm);
}); });
}, },
beforeRouteUpdate(to, from, next) { beforeRouteUpdate(to, from, next) {