This commit is contained in:
2020-06-19 23:58:52 +00:00
parent f02888fae7
commit 5e1efbab24
18 changed files with 431 additions and 479 deletions

View File

@@ -284,7 +284,7 @@ export default {
window.$gz.errorHandler.handleFormError(error, vm); window.$gz.errorHandler.handleFormError(error, vm);
} }
}, },
submit() { async submit() {
let vm = this; let vm = this;
let url = API_BASE_URL; let url = API_BASE_URL;
//clear any errors vm might be around from previous submit //clear any errors vm might be around from previous submit
@@ -306,64 +306,64 @@ export default {
}); });
} }
} }
//now set the template as a json string try {
newObj.template = JSON.stringify(temp); //now set the template as a json string
window.$gz.api newObj.template = JSON.stringify(temp);
.upsert(url, newObj) let res = await window.$gz.api.upsert(url, newObj);
.then(res => {
vm.formState.loading = false; vm.formState.loading = false;
if (res.error) {
vm.formState.serverError = res.error;
window.$gz.form.setErrorBoxErrors(vm);
} else {
//It's a 204 no data response so no error means it's ok
//form is now clean
window.$gz.form.setFormState({
vm: vm,
dirty: false
});
}
} catch (error) {
vm.formState.loading = false;
window.$gz.errorHandler.handleFormError(error, vm);
}
},
async remove() {
let vm = this;
if (
(await window.$gz.dialog.confirmGeneric(
"ResetToDefault",
"warning"
)) !== true
) {
return;
}
try {
//do the delete
vm.formState.loading = true;
//No need to delete a new record, just abandon it...
if (vm.templateId && vm.templateId != 0) {
let url = API_BASE_URL + vm.templateId;
window.$gz.form.deleteAllErrorBoxErrors(vm);
let res = await window.$gz.api.remove(url);
if (res.error) { if (res.error) {
vm.formState.serverError = res.error; vm.formState.serverError = res.error;
window.$gz.form.setErrorBoxErrors(vm); window.$gz.form.setErrorBoxErrors(vm);
} else { } else {
//It's a 204 no data response so no error means it's ok //trigger reload of form
//form is now clean this.getDataFromApi();
window.$gz.form.setFormState({
vm: vm,
dirty: false
});
}
})
.catch(function handleSubmitError(error) {
vm.formState.loading = false;
window.$gz.errorHandler.handleFormError(error, vm);
});
},
remove() {
let vm = this;
window.$gz.dialog
.confirmGeneric("ResetToDefault", "warning")
.then(dialogResult => {
if (dialogResult == true) {
//do the delete
vm.formState.loading = true;
//No need to delete a new record, just abandon it...
if (vm.templateId && vm.templateId != 0) {
let url = API_BASE_URL + vm.templateId;
window.$gz.form.deleteAllErrorBoxErrors(vm);
window.$gz.api
.remove(url)
.then(res => {
if (res.error) {
vm.formState.serverError = res.error;
window.$gz.form.setErrorBoxErrors(vm);
} else {
//trigger reload of form
this.getDataFromApi();
}
})
.catch(function handleGetDataFromAPIError(error) {
//Update the form status
window.$gz.form.setFormState({
vm: vm,
loading: false
});
window.$gz.errorHandler.handleFormError(error, vm);
});
}
} }
}
} catch (error) {
//Update the form status
window.$gz.form.setFormState({
vm: vm,
loading: false
}); });
window.$gz.errorHandler.handleFormError(error, vm);
}
} }
} }
}; };
@@ -453,24 +453,21 @@ function initForm(vm) {
// //
// Ensures UI translated text is available // Ensures UI translated text is available
// //
function fetchTranslatedText(vm) { async function fetchTranslatedText(vm) {
let tKeysRequired = ["Include", "ResetToDefault"]; await window.$gz.translation.cacheTranslations(["Include", "ResetToDefault"]);
return window.$gz.translation.cacheTranslations(tKeysRequired);
} }
////////////////////// //////////////////////
// //
// //
function populateSelectionLists(vm) { async function populateSelectionLists(vm) {
return window.$gz.api.get(API_BASE_URL + "List").then(res => { let res = await window.$gz.api.get(API_BASE_URL + "List");
if (res.error) { if (res.error) {
window.$gz.errorHandler.handleFormError(res.error, vm); window.$gz.errorHandler.handleFormError(res.error, vm);
} else { } else {
vm.selectLists.pickListTemplates = res.data; vm.selectLists.pickListTemplates = res.data;
window.$gz.form.addNoSelectionItem(vm.selectLists.pickListTemplates); window.$gz.form.addNoSelectionItem(vm.selectLists.pickListTemplates);
} }
});
} }
//////////////////// ////////////////////

View File

@@ -28,26 +28,26 @@ export default {
} }
}); });
}, },
created() { async created() {
let vm = this; let vm = this;
initForm(vm) try {
.then(() => { initForm(vm);
vm.rights = window.$gz.role.getRights(window.$gz.type.UserOptions);
vm.formState.ready = true;
// window.$gz.eventBus.$on("menu-click", clickHandler);
// //UserOptions never creates a new one so this code is a little different than other forms
// //NOTE: FOR NOW GOING TO ASSUME THIS FORM WILL ONLY EVER BE USED TO EDIT *CURRENT* USER'S USEROPTIONS
// //SO NOT FOR EDITING OTHER USERS, WILL ASSUME THE USER EDITOR FORM FOR MANAGEMENT WILL HAVE A COMPACT VERSION
// //OF THESE SAME FIELDS FOR THAT PURPOSE
// //SO ALWAYS USER CURRENT LOGGED IN USER ID FOR THIS
// //id 0 means create a new record don't load one but thats not applicable here
// vm.getDataFromApi(); vm.rights = window.$gz.role.getRights(window.$gz.type.UserOptions);
}) vm.formState.ready = true;
.catch(err => { // window.$gz.eventBus.$on("menu-click", clickHandler);
vm.formState.ready = true; // //UserOptions never creates a new one so this code is a little different than other forms
window.$gz.errorHandler.handleFormError(err, vm); // //NOTE: FOR NOW GOING TO ASSUME THIS FORM WILL ONLY EVER BE USED TO EDIT *CURRENT* USER'S USEROPTIONS
}); // //SO NOT FOR EDITING OTHER USERS, WILL ASSUME THE USER EDITOR FORM FOR MANAGEMENT WILL HAVE A COMPACT VERSION
// //OF THESE SAME FIELDS FOR THAT PURPOSE
// //SO ALWAYS USER CURRENT LOGGED IN USER ID FOR THIS
// //id 0 means create a new record don't load one but thats not applicable here
// vm.getDataFromApi();
} catch (err) {
vm.formState.ready = true;
window.$gz.errorHandler.handleFormError(err, vm);
}
}, },
data() { data() {
return { return {
@@ -86,8 +86,8 @@ function initForm(vm) {
// //
// Ensures UI translated text is available // Ensures UI translated text is available
// //
function fetchTranslatedText(vm) { async function fetchTranslatedText(vm) {
return window.$gz.translation.cacheTranslations([ await window.$gz.translation.cacheTranslations([
"UserInterfaceSettings", "UserInterfaceSettings",
"PickListTemplates" "PickListTemplates"
]); ]);

View File

@@ -203,20 +203,19 @@ const API_BASE_URL = null;
const FORM_CUSTOM_TEMPLATE_KEY = null; const FORM_CUSTOM_TEMPLATE_KEY = null;
export default { export default {
created() { async created() {
let vm = this; let vm = this;
initForm(vm) try {
.then(() => { initForm(vm);
vm.rights = window.$gz.role.getRights(window.$gz.type.License); vm.rights = window.$gz.role.getRights(window.$gz.type.License);
generateMenu(vm); generateMenu(vm);
vm.formState.loading = false; vm.formState.loading = false;
vm.formState.ready = true; vm.formState.ready = true;
window.$gz.eventBus.$on("menu-click", clickHandler); window.$gz.eventBus.$on("menu-click", clickHandler);
}) } catch (err) {
.catch(err => { vm.formState.ready = true;
vm.formState.ready = true; window.$gz.errorHandler.handleFormError(err, vm);
window.$gz.errorHandler.handleFormError(err, vm); }
});
}, },
beforeDestroy() { beforeDestroy() {
window.$gz.eventBus.$off("menu-click", clickHandler); window.$gz.eventBus.$off("menu-click", clickHandler);
@@ -586,8 +585,8 @@ function initForm(vm) {
// //
// Ensures UI translated text is available // Ensures UI translated text is available
// //
function fetchTranslatedText(vm) { async function fetchTranslatedText(vm) {
return window.$gz.translation.cacheTranslations([ await window.$gz.translation.cacheTranslations([
"RegisteredUser", "RegisteredUser",
"DatabaseID", "DatabaseID",
"LicenseSerial", "LicenseSerial",

View File

@@ -127,19 +127,18 @@
import ayaNovaVersion from "../api/ayanova-version"; import ayaNovaVersion from "../api/ayanova-version";
export default { export default {
created() { async created() {
let vm = this; let vm = this;
initForm(vm) try {
.then(() => { initForm(vm);
vm.formState.ready = true; vm.formState.ready = true;
window.$gz.eventBus.$on("menu-click", clickHandler); window.$gz.eventBus.$on("menu-click", clickHandler);
generateMenu(vm); generateMenu(vm);
vm.formState.loading = false; vm.formState.loading = false;
}) } catch (err) {
.catch(err => { vm.formState.ready = true;
vm.formState.ready = true; window.$gz.errorHandler.handleFormError(err, vm);
window.$gz.errorHandler.handleFormError(err, vm); }
});
}, },
beforeDestroy() { beforeDestroy() {
window.$gz.eventBus.$off("menu-click", clickHandler); window.$gz.eventBus.$off("menu-click", clickHandler);
@@ -270,8 +269,8 @@ function initForm(vm) {
// //
// Ensures UI translated text is available // Ensures UI translated text is available
// //
function fetchTranslatedText(vm) { async function fetchTranslatedText(vm) {
let tKeysRequired = [ await window.$gz.translation.cacheTranslations([
"HelpAboutAyaNova", "HelpAboutAyaNova",
"CopySupportInfo", "CopySupportInfo",
"Server", "Server",
@@ -293,22 +292,19 @@ function fetchTranslatedText(vm) {
"LanguageCode", "LanguageCode",
"TimeZone", "TimeZone",
"CurrencyCode" "CurrencyCode"
]; ]);
return window.$gz.translation.cacheTranslations(tKeysRequired);
} }
//////////////////// ////////////////////
// //
function getServerInfo(vm) { async function getServerInfo(vm) {
return window.$gz.api.get("server-info").then(res => { let res = await window.$gz.api.get("server-info");
//We never expect there to be no data here //We never expect there to be no data here
if (!res.data) { if (!res.data) {
throw res; throw res;
} else { } else {
vm.serverInfo = res.data; vm.serverInfo = res.data;
} }
});
} }
//////////////////// ////////////////////

View File

@@ -63,43 +63,38 @@
const FORM_KEY = "customize"; const FORM_KEY = "customize";
const API_BASE_URL = "form-custom/"; const API_BASE_URL = "form-custom/";
export default { export default {
beforeRouteLeave(to, from, next) { async beforeRouteLeave(to, from, next) {
//let vm = this; if (!this.formState.dirty) {
if (this.formState.dirty) {
window.$gz.dialog.confirmLeaveUnsaved().then(dialogResult => {
if (dialogResult == true) {
next();
} else {
next(false);
}
});
} else {
next(); next();
return;
}
if ((await window.$gz.dialog.confirmLeaveUnsaved()) === true) {
next();
} else {
next(false);
} }
}, },
beforeDestroy() { beforeDestroy() {
window.$gz.eventBus.$off("menu-click", clickHandler); window.$gz.eventBus.$off("menu-click", clickHandler);
}, },
created() { async created() {
let vm = this; let vm = this;
try {
initForm(vm);
initForm(vm) vm.formState.readOnly = !vm.rights.change;
.then(() => { window.$gz.eventBus.$on("menu-click", clickHandler);
vm.formState.readOnly = !vm.rights.change; //NOTE: this would normally be in getDataFromAPI but this form doesn't really need that function so doing it here
window.$gz.eventBus.$on("menu-click", clickHandler); //modify the menu as necessary
//NOTE: this would normally be in getDataFromAPI but this form doesn't really need that function so doing it here generateMenu(vm, false); //default is never read only and passing in this vm
//modify the menu as necessary //init disable save button so it can be enabled only on edit to show dirty form
generateMenu(vm, false); //default is never read only and passing in this vm window.$gz.eventBus.$emit("menu-disable-item", FORM_KEY + ":save");
//init disable save button so it can be enabled only on edit to show dirty form } catch (err) {
window.$gz.eventBus.$emit("menu-disable-item", FORM_KEY + ":save"); window.$gz.errorHandler.handleFormError(err, vm);
}) } finally {
.catch(err => { vm.formState.ready = true;
window.$gz.errorHandler.handleFormError(err, vm); vm.formState.loading = false;
}) }
.finally(function() {
vm.formState.ready = true;
vm.formState.loading = false;
});
}, },
data() { data() {
return { return {
@@ -170,7 +165,7 @@ export default {
//nothing to scan here just set form dirty //nothing to scan here just set form dirty
this.formState.dirty = true; this.formState.dirty = true;
}, },
submit() { async submit() {
let vm = this; let vm = this;
vm.formState.loading = true; vm.formState.loading = true;
@@ -217,42 +212,37 @@ export default {
} }
} }
} }
try {
//now set the template as a json string
newObj.template = JSON.stringify(temp);
let res = await window.$gz.api.upsert(url, newObj);
if (res.error) {
vm.formState.serverError = res.error;
window.$gz.form.setErrorBoxErrors(vm);
} else {
//Handle "put" of an existing record (UPDATE) (there is no POST of a new record for this particular object)
//now set the template as a json string //Set store values for template and token
newObj.template = JSON.stringify(temp); //(update our local cached copy of the form customizations)
window.$gz.formCustomTemplate.set(
vm.formCustomTemplateKey,
res.data.concurrency,
newObj.template
);
//set our local concurrency token value
vm.concurrency = res.data.concurrency;
window.$gz.api //form is now clean
.upsert(url, newObj) window.$gz.form.setFormState({
.then(res => { vm: vm,
if (res.error) { dirty: false
vm.formState.serverError = res.error; });
window.$gz.form.setErrorBoxErrors(vm); }
} else { } catch (error) {
//Handle "put" of an existing record (UPDATE) (there is no POST of a new record for this particular object) window.$gz.errorHandler.handleFormError(error, vm);
} finally {
//Set store values for template and token vm.formState.loading = false;
//(update our local cached copy of the form customizations) }
window.$gz.formCustomTemplate.set(
vm.formCustomTemplateKey,
res.data.concurrency,
newObj.template
);
//set our local concurrency token value
vm.concurrency = res.data.concurrency;
//form is now clean
window.$gz.form.setFormState({
vm: vm,
dirty: false
});
}
})
.catch(function handleSubmitError(error) {
window.$gz.errorHandler.handleFormError(error, vm);
})
.finally(function() {
vm.formState.loading = false;
});
} }
} }
}; };
@@ -341,11 +331,11 @@ function initForm(vm) {
// //
// Ensures UI translated text is available // Ensures UI translated text is available
// //
function fetchTranslatedText(vm) { async function fetchTranslatedText(vm) {
//NOTE: This form expects to arrive here from the form being customized //NOTE: This form expects to arrive here from the form being customized
//so it does *not* attempt to fetch the translations for the field names of the form in question //so it does *not* attempt to fetch the translations for the field names of the form in question
//since they should already be set by that form. //since they should already be set by that form.
let tKeysRequired = [ await window.$gz.translation.cacheTranslations([
"FormFieldEntryRequired", "FormFieldEntryRequired",
"FormFieldVisible", "FormFieldVisible",
"UiFieldDataType", "UiFieldDataType",
@@ -357,9 +347,7 @@ function fetchTranslatedText(vm) {
"UiFieldDataTypesText", "UiFieldDataTypesText",
"UiFieldDataTypesTimeOnly", "UiFieldDataTypesTimeOnly",
"UiFieldDataTypesTrueFalse" "UiFieldDataTypesTrueFalse"
]; ]);
return window.$gz.translation.cacheTranslations(tKeysRequired);
} }
///////////////////////////////// /////////////////////////////////
@@ -392,54 +380,52 @@ function ensureTemplateIsInStore(vm) {
//////////////////// ////////////////////
// //
function initDataObject(vm) { async function initDataObject(vm) {
//Get all the fields *available* to this form (all the fields for the object defined in AyaFormFieldDefinitions.cs as SERVER) //Get all the fields *available* to this form (all the fields for the object defined in AyaFormFieldDefinitions.cs as SERVER)
//Note: this is not the actual customization data, just the list of fields that could be customized (or not if required mandatory) //Note: this is not the actual customization data, just the list of fields that could be customized (or not if required mandatory)
let url = "form-field-definition/" + vm.$route.params.formCustomTemplateKey; let url = "form-field-definition/" + vm.$route.params.formCustomTemplateKey;
return window.$gz.api.get(url).then(res => { let res = await window.$gz.api.get(url);
if (res.error) { if (res.error) {
throw res.error; throw res.error;
} }
//set vm.obj to the combined synthesized snapshot array of template and availble fields for working data for this form
// - {key, ltdisplay, hideable, custom, required, hide, type}
//Iterate ObjectFields
//create a new object based on the f.a.f. item and any existing template values for that item
//set vm.obj to the combined synthesized snapshot array of template and availble fields for working data for this form for (let i = 0; i < res.data.length; i++) {
// - {key, ltdisplay, hideable, custom, required, hide, type} //get the formAvailableField record into an object to save typing
//Iterate ObjectFields let faf = res.data[i];
//create a new object based on the f.a.f. item and any existing template values for that item //get the customTemplate record for this field if it exists
for (let i = 0; i < res.data.length; i++) { let templateItem = window.$gz.formCustomTemplate.getFieldTemplateValue(
//get the formAvailableField record into an object to save typing vm.formCustomTemplateKey,
let faf = res.data[i]; faf.fieldKey
//get the customTemplate record for this field if it exists );
let templateItem = window.$gz.formCustomTemplate.getFieldTemplateValue( //handle non-existent template item (expected)
vm.formCustomTemplateKey, if (templateItem == null) {
faf.fieldKey templateItem = {
); required: false,
hide: faf.isCustomField ? true : false, //hide if custom because it's not set to display if it's not present, all others are stock fields
//handle non-existent template item (expected) type: 4 //text
if (templateItem == null) {
templateItem = {
required: false,
hide: faf.isCustomField ? true : false, //hide if custom because it's not set to display if it's not present, all others are stock fields
type: 4 //text
};
}
let objItem = {
key: faf.fieldKey,
title: vm.$ay.t(faf.tKey),
stockRequired: !faf.hideable,
custom: faf.isCustomField,
required: faf.hideable === false || templateItem.required === true,
visible: templateItem.hide !== true,
type: templateItem.type
}; };
vm.obj.push(objItem);
vm.concurrency = window.$gz.formCustomTemplate.getTemplateConcurrencyToken(
vm.formCustomTemplateKey
);
} }
});
let objItem = {
key: faf.fieldKey,
title: vm.$ay.t(faf.tKey),
stockRequired: !faf.hideable,
custom: faf.isCustomField,
required: faf.hideable === false || templateItem.required === true,
visible: templateItem.hide !== true,
type: templateItem.type
};
vm.obj.push(objItem);
vm.concurrency = window.$gz.formCustomTemplate.getTemplateConcurrencyToken(
vm.formCustomTemplateKey
);
}
} }
</script> </script>

View File

@@ -428,30 +428,26 @@ export default {
beforeDestroy() { beforeDestroy() {
window.$gz.eventBus.$off("menu-click", clickHandler); window.$gz.eventBus.$off("menu-click", clickHandler);
}, },
created() { async created() {
let vm = this; let vm = this;
try {
//set route values in data object so init form can handle //set route values in data object so init form can handle
vm.dataListKey = this.$route.params.dataListKey; vm.dataListKey = this.$route.params.dataListKey;
vm.listViewId = this.$route.params.listViewId; vm.listViewId = this.$route.params.listViewId;
vm.formKey = this.$route.params.formKey; vm.formKey = this.$route.params.formKey;
await initForm(vm);
initForm(vm) vm.formState.ready = true;
.then(() => { window.$gz.eventBus.$on("menu-click", clickHandler);
vm.formState.ready = true; //NOTE: this would normally be in getDataFromAPI but this form doesn't really need that function so doing it here
//modify the menu as necessary
window.$gz.eventBus.$on("menu-click", clickHandler); generateMenu(vm, false); //default is never read only and passing in this vm
//NOTE: this would normally be in getDataFromAPI but this form doesn't really need that function so doing it here //init disable save button so it can be enabled only on edit to show dirty form
//modify the menu as necessary window.$gz.eventBus.$emit("menu-disable-item", FORM_KEY + ":save");
generateMenu(vm, false); //default is never read only and passing in this vm vm.formState.loading = false;
//init disable save button so it can be enabled only on edit to show dirty form } catch (err) {
window.$gz.eventBus.$emit("menu-disable-item", FORM_KEY + ":save"); vm.formState.ready = true;
vm.formState.loading = false; window.$gz.errorHandler.handleFormError(err, vm);
}) }
.catch(err => {
vm.formState.ready = true;
window.$gz.errorHandler.handleFormError(err, vm);
});
}, },
data() { data() {
return { return {
@@ -678,7 +674,7 @@ export default {
window.$gz.form.fieldValueChanged(this, ref); window.$gz.form.fieldValueChanged(this, ref);
} }
}, },
submit() { async submit() {
if (this.canSave) { if (this.canSave) {
let vm = this; let vm = this;
//check that "unsaved filter" is not the name //check that "unsaved filter" is not the name
@@ -709,109 +705,103 @@ export default {
//clear any errors vm might be around from previous submit //clear any errors vm might be around from previous submit
window.$gz.form.deleteAllErrorBoxErrors(this); window.$gz.form.deleteAllErrorBoxErrors(this);
window.$gz.api try {
.upsert(url, lvSave) let res = await window.$gz.api.upsert(url, lvSave);
.then(res => {
vm.formState.loading = false; vm.formState.loading = false;
if (res.error) { if (res.error) {
vm.formState.serverError = res.error; vm.formState.serverError = res.error;
window.$gz.form.setErrorBoxErrors(vm); window.$gz.form.setErrorBoxErrors(vm);
} else {
//successfully updated regardless if POST or PUT so update the local cache
//Update the formSettings now that it's saved
let formSettings = window.$gz.form.getFormSettings(vm.formKey);
formSettings.temp.cachedListView = lvSave.listView;
formSettings.saved.dataTable.unsavedListView = null;
formSettings.saved.dataTable.listViewId =
res.data.id || vm.listViewId; //if res.data.id then a post, if null then a put and vm.listviewId has the id
window.$gz.form.setFormSettings(vm.formKey, formSettings);
//Logic for detecting if a post or put: if id then it was a post, if no id then it was a put
if (res.data.id) {
//Handle "post" of new record (CREATE)
//No longer dirty
window.$gz.form.setFormState({
vm: vm,
dirty: false
});
//change url to new record
vm.$router.replace(
window.$gz.api.replaceAfterLastSlash(
vm.$route.fullPath,
res.data.id
)
);
} else { } else {
//successfully updated regardless if POST or PUT so update the local cache //Handle "put" of an existing record (UPDATE)
//Update the formSettings now that it's saved vm.obj.concurrency = res.data.concurrency;
let formSettings = window.$gz.form.getFormSettings(vm.formKey); window.$gz.form.setFormState({
formSettings.temp.cachedListView = lvSave.listView; vm: vm,
formSettings.saved.dataTable.unsavedListView = null; dirty: false
formSettings.saved.dataTable.listViewId = });
res.data.id || vm.listViewId; //if res.data.id then a post, if null then a put and vm.listviewId has the id
window.$gz.form.setFormSettings(vm.formKey, formSettings);
//Logic for detecting if a post or put: if id then it was a post, if no id then it was a put
if (res.data.id) {
//Handle "post" of new record (CREATE)
//No longer dirty
window.$gz.form.setFormState({
vm: vm,
dirty: false
});
//change url to new record
vm.$router.replace(
window.$gz.api.replaceAfterLastSlash(
vm.$route.fullPath,
res.data.id
)
);
} else {
//Handle "put" of an existing record (UPDATE)
vm.obj.concurrency = res.data.concurrency;
window.$gz.form.setFormState({
vm: vm,
dirty: false
});
}
} }
}) }
.catch(function handleSubmitError(error) { } catch (error) {
vm.formState.loading = false; vm.formState.loading = false;
window.$gz.errorHandler.handleFormError(error, vm); window.$gz.errorHandler.handleFormError(error, vm);
}); }
} }
}, },
remove() { async remove() {
let vm = this; let vm = this;
window.$gz.dialog.confirmDelete().then(dialogResult => { try {
if (dialogResult == true) { if ((await window.$gz.dialog.confirmDelete()) !== true) {
//do the delete return;
vm.formState.loading = true; }
//No need to delete a non saved record, just abandon it... //do the delete
if (vm.listViewId < 1) { vm.formState.loading = true;
//this should not get offered for delete but to be safe and clear just in case: //No need to delete a non saved record, just abandon it...
if (vm.listViewId < 1) {
//this should not get offered for delete but to be safe and clear just in case:
JUST_DELETED = true;
// navigate backwards
vm.$router.go(-1);
} else {
let url = API_BASE_URL + vm.listViewId;
window.$gz.form.deleteAllErrorBoxErrors(vm);
let res = await window.$gz.api.remove(url);
if (res.error) {
vm.formState.serverError = res.error;
window.$gz.form.setErrorBoxErrors(vm);
} else {
//workaround to prevent warning about leaving dirty record
//For some reason I couldn't just reset isdirty in formstate
JUST_DELETED = true; JUST_DELETED = true;
//set it to the default list view so the caller doesn't try to load the non-existant deleted view it was just working with
let formSettings = window.$gz.form.getFormSettings(vm.formKey);
formSettings.temp.cachedListView = null;
formSettings.saved.dataTable.unsavedListView = null;
formSettings.saved.dataTable.listViewId = 0;
window.$gz.form.setFormSettings(vm.formKey, formSettings);
// navigate backwards // navigate backwards
vm.$router.go(-1); vm.$router.go(-1);
} else {
let url = API_BASE_URL + vm.listViewId;
window.$gz.form.deleteAllErrorBoxErrors(vm);
window.$gz.api
.remove(url)
.then(res => {
if (res.error) {
vm.formState.serverError = res.error;
window.$gz.form.setErrorBoxErrors(vm);
} else {
//workaround to prevent warning about leaving dirty record
//For some reason I couldn't just reset isdirty in formstate
JUST_DELETED = true;
//set it to the default list view so the caller doesn't try to load the non-existant deleted view it was just working with
let formSettings = window.$gz.form.getFormSettings(
vm.formKey
);
formSettings.temp.cachedListView = null;
formSettings.saved.dataTable.unsavedListView = null;
formSettings.saved.dataTable.listViewId = 0;
window.$gz.form.setFormSettings(vm.formKey, formSettings);
// navigate backwards
vm.$router.go(-1);
}
})
.catch(function handleGetDataFromAPIError(error) {
//Update the form status
window.$gz.form.setFormState({
vm: vm,
loading: false
});
window.$gz.errorHandler.handleFormError(error, vm);
});
} }
} }
}); } catch (error) {
//Update the form status
window.$gz.form.setFormState({
vm: vm,
loading: false
});
window.$gz.errorHandler.handleFormError(error, vm);
}
}, },
duplicate() { async duplicate() {
let vm = this; let vm = this;
if (this.canDuplicate && vm.listViewId > 0) { if (this.canDuplicate && vm.listViewId > 0) {
this.formState.loading = true; this.formState.loading = true;
@@ -820,40 +810,39 @@ export default {
//clear any errors vm might be around from previous submit //clear any errors vm might be around from previous submit
window.$gz.form.deleteAllErrorBoxErrors(this); window.$gz.form.deleteAllErrorBoxErrors(this);
window.$gz.api try {
.duplicate(url) let res = await window.$gz.api.duplicate(url);
.then(res => {
vm.formState.loading = false;
if (res.error) {
vm.formState.serverError = res.error;
window.$gz.form.setErrorBoxErrors(vm);
} else {
//switch to the new record in the formsettings
let formSettings = window.$gz.form.getFormSettings(vm.formKey);
formSettings.temp.cachedListView = null;
formSettings.saved.dataTable.unsavedListView = null;
formSettings.saved.dataTable.listViewId = res.data.id;
window.$gz.form.setFormSettings(vm.formKey, formSettings);
//Set some values that otherwise don't get updated because we're not really navigating fresh vm.formState.loading = false;
vm.obj.name = res.data.name; if (res.error) {
vm.obj.concurrency = res.data.concurrency; vm.formState.serverError = res.error;
vm.listViewId = res.data.id; window.$gz.form.setErrorBoxErrors(vm);
//Navigate to new record } else {
//NOTE: this doesn't really update the form at all so need to set some th9ings //switch to the new record in the formsettings
vm.$router.push( let formSettings = window.$gz.form.getFormSettings(vm.formKey);
vm.$route.fullPath.slice(0, -1) + res.data.id formSettings.temp.cachedListView = null;
// window.$gz.api.replaceAfterLastSlash( formSettings.saved.dataTable.unsavedListView = null;
// vm.$route.fullPath, formSettings.saved.dataTable.listViewId = res.data.id;
// res.data.id window.$gz.form.setFormSettings(vm.formKey, formSettings);
// )
); //Set some values that otherwise don't get updated because we're not really navigating fresh
} vm.obj.name = res.data.name;
}) vm.obj.concurrency = res.data.concurrency;
.catch(function handleDuplicateError(error) { vm.listViewId = res.data.id;
vm.formState.loading = false; //Navigate to new record
window.$gz.errorHandler.handleFormError(error, vm); //NOTE: this doesn't really update the form at all so need to set some th9ings
}); vm.$router.push(
vm.$route.fullPath.slice(0, -1) + res.data.id
// window.$gz.api.replaceAfterLastSlash(
// vm.$route.fullPath,
// res.data.id
// )
);
}
} catch (error) {
vm.formState.loading = false;
window.$gz.errorHandler.handleFormError(error, vm);
}
} }
} }
} }
@@ -958,8 +947,8 @@ function initForm(vm) {
// //
// Ensures UI translated text is available // Ensures UI translated text is available
// //
function fetchTranslatedText(vm) { async function fetchTranslatedText(vm) {
let tKeysRequired = [ await window.$gz.translation.cacheTranslations([
"DataListView", "DataListView",
"GridFilterName", "GridFilterName",
"Include", "Include",
@@ -1004,9 +993,7 @@ function fetchTranslatedText(vm) {
"True", "True",
"False", "False",
"Name" "Name"
]; ]);
return window.$gz.translation.cacheTranslations(tKeysRequired);
} }
///////////////////////////////// /////////////////////////////////
@@ -1158,39 +1145,35 @@ function populateSelectionLists(vm) {
//////////////////// ////////////////////
// //
function populateFieldDefinitions(vm) { async function populateFieldDefinitions(vm) {
//http://localhost:7575/api/v8/data-list/listfields?DataListKey=TestWidgetDataList //http://localhost:7575/api/v8/data-list/listfields?DataListKey=TestWidgetDataList
return window.$gz.api let res = await window.$gz.api.get(
.get("data-list/listfields?DataListKey=" + vm.dataListKey) "data-list/listfields?DataListKey=" + vm.dataListKey
.then(res => { );
if (res.error) { if (res.error) {
throw res.error; throw res.error;
} else { } else {
vm.fieldDefinitions = res.data; vm.fieldDefinitions = res.data;
} }
});
} }
////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////
// //
// Ensures column names are present in translation table // Ensures column names are present in translation table
// //
function fetchTranslatedFieldNames(vm) { async function fetchTranslatedFieldNames(vm) {
let columnKeys = []; let columnKeys = [];
for (let i = 1; i < vm.fieldDefinitions.length; i++) { for (let i = 1; i < vm.fieldDefinitions.length; i++) {
let cm = vm.fieldDefinitions[i]; let cm = vm.fieldDefinitions[i];
columnKeys.push(cm.tKey); columnKeys.push(cm.tKey);
} }
//Now fetch all the keys and await the response before returning await window.$gz.translation.cacheTranslations(columnKeys);
return window.$gz.translation.cacheTranslations(columnKeys).then(() => {
return;
});
} }
///////////////////////////////// /////////////////////////////////
// //
// //
function setEffectiveListView(vm) { async function setEffectiveListView(vm) {
/* /*
effectiveListView effectiveListView
- Second get the ListView that is currently in use so can setup the page view - Second get the ListView that is currently in use so can setup the page view
@@ -1217,29 +1200,28 @@ function setEffectiveListView(vm) {
} else if (vm.listViewId == 0) { } else if (vm.listViewId == 0) {
//get default list view //get default list view
//http://localhost:7575/api/v8/DataListView/default/TestWidgetDataList //http://localhost:7575/api/v8/DataListView/default/TestWidgetDataList
return window.$gz.api let res = await window.$gz.api.get(
.get("data-list-view/default/" + vm.dataListKey) "data-list-view/default/" + vm.dataListKey
.then(res => { );
if (res.error) {
throw res.error; if (res.error) {
} else { throw res.error;
vm.effectiveListView = JSON.parse(res.data); } else {
vm.obj.name = vm.$ay.t("FilterUnsaved"); vm.effectiveListView = JSON.parse(res.data);
} vm.obj.name = vm.$ay.t("FilterUnsaved");
}); }
} else { } else {
//listview has an id value //listview has an id value
return window.$gz.api.get("data-list-view/" + vm.listViewId).then(res => { let res = await window.$gz.api.get("data-list-view/" + vm.listViewId);
if (res.error) { if (res.error) {
throw res.error; throw res.error;
} else { } else {
vm.effectiveListView = JSON.parse(res.data.listView); vm.effectiveListView = JSON.parse(res.data.listView);
vm.obj.public = res.data.public; vm.obj.public = res.data.public;
vm.obj.name = res.data.name; vm.obj.name = res.data.name;
vm.obj.concurrency = res.data.concurrency; vm.obj.concurrency = res.data.concurrency;
vm.obj.userId = res.data.userId; vm.obj.userId = res.data.userId;
} }
});
} }
} }

View File

@@ -79,25 +79,25 @@
const FORM_KEY = "ay-evaluate"; const FORM_KEY = "ay-evaluate";
export default { export default {
created() { async created() {
let vm = this; let vm = this;
initForm(vm) try {
.then(() => { await initForm(vm);
vm.obj.timeZoneOffset =
Math.floor(new Date().getTimezoneOffset() / 60) * -1; vm.obj.timeZoneOffset =
//get rights to generate sample data and erase db I guess Math.floor(new Date().getTimezoneOffset() / 60) * -1;
vm.rights = window.$gz.role.getRights(window.$gz.type.TrialSeeder); //get rights to generate sample data and erase db I guess
//set form readonly if it's so vm.rights = window.$gz.role.getRights(window.$gz.type.TrialSeeder);
vm.formState.readOnly = !vm.rights.change; //set form readonly if it's so
generateMenu(vm); vm.formState.readOnly = !vm.rights.change;
vm.formState.ready = true; generateMenu(vm);
vm.formState.loading = false; vm.formState.ready = true;
window.$gz.eventBus.$on("menu-click", clickHandler); vm.formState.loading = false;
}) window.$gz.eventBus.$on("menu-click", clickHandler);
.catch(err => { } catch (err) {
vm.formState.ready = true; vm.formState.ready = true;
window.$gz.errorHandler.handleFormError(err, vm); window.$gz.errorHandler.handleFormError(err, vm);
}); }
}, },
beforeDestroy() { beforeDestroy() {
@@ -300,8 +300,8 @@ function initForm(vm) {
// //
// Ensures UI translated text is available // Ensures UI translated text is available
// //
function fetchTranslatedText(vm) { async function fetchTranslatedText(vm) {
return window.$gz.translation.cacheTranslations([ await window.$gz.translation.cacheTranslations([
"Welcome", "Welcome",
"GenerateSampleData", "GenerateSampleData",
"EvaluationGuide", "EvaluationGuide",

View File

@@ -465,8 +465,8 @@ function populateEventTypeList(vm) {
// //
// Ensures UI translated text is available // Ensures UI translated text is available
// //
function fetchTranslatedText(vm) { async function fetchTranslatedText(vm) {
return window.$gz.translation.cacheTranslations([ await window.$gz.translation.cacheTranslations([
"EventDeleted", "EventDeleted",
"EventCreated", "EventCreated",
"EventRetrieved", "EventRetrieved",

View File

@@ -310,8 +310,8 @@ function initForm(vm) {
// //
// Ensures UI translated text is available // Ensures UI translated text is available
// //
function fetchTranslatedText(vm) { async function fetchTranslatedText(vm) {
return window.$gz.translation.cacheTranslations([ await window.$gz.translation.cacheTranslations([
"UserLogin", "UserLogin",
"OldPassword", "OldPassword",
"NewPassword", "NewPassword",

View File

@@ -375,8 +375,8 @@ function initForm(vm) {
// //
// Ensures UI translated text is available // Ensures UI translated text is available
// //
function fetchTranslatedText(vm) { async function fetchTranslatedText(vm) {
return window.$gz.translation.cacheTranslations([ await window.$gz.translation.cacheTranslations([
"TooManyResults", "TooManyResults",
"NoResults", "NoResults",
"Object" "Object"

View File

@@ -430,8 +430,8 @@ function initForm(vm) {
// //
// Ensures UI translated text is available // Ensures UI translated text is available
// //
function fetchTranslatedText(vm) { async function fetchTranslatedText(vm) {
return window.$gz.translation.cacheTranslations([ await window.$gz.translation.cacheTranslations([
"CurrencyCode", "CurrencyCode",
"LanguageCode", "LanguageCode",
"TimeZone", "TimeZone",

View File

@@ -427,8 +427,8 @@ function initForm(vm) {
////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////
// //
// //
function fetchTranslatedText(vm) { async function fetchTranslatedText(vm) {
return window.$gz.translation.cacheTranslations([ await window.$gz.translation.cacheTranslations([
"BackupSettings", "BackupSettings",
"BackupTime", "BackupTime",
"BackupLast", "BackupLast",

View File

@@ -257,9 +257,7 @@ function initForm(vm) {
// //
// Ensures UI translated text is available // Ensures UI translated text is available
// //
function fetchTranslatedText(vm) { async function fetchTranslatedText(vm) {
let tKeysRequired = ["OpsTestJob"]; await window.$gz.translation.cacheTranslations(["OpsTestJob"]);
return window.$gz.translation.cacheTranslations(tKeysRequired);
} }
</script> </script>

View File

@@ -213,10 +213,8 @@ function initForm(vm) {
// //
// Ensures UI translated text is available // Ensures UI translated text is available
// //
function fetchTranslatedText(vm) { async function fetchTranslatedText(vm) {
let tKeysRequired = ["OpsTestJob", "Log"]; await window.$gz.translation.cacheTranslations(["OpsTestJob", "Log"]);
return window.$gz.translation.cacheTranslations(tKeysRequired);
} }
////////////////////// //////////////////////

View File

@@ -543,8 +543,8 @@ function populateSelectionLists(vm) {
// //
// Ensures UI translated text is available // Ensures UI translated text is available
// //
function fetchTranslatedText(vm) { async function fetchTranslatedText(vm) {
let tKeysRequired = [ await window.$gz.translation.cacheTranslations([
"DateRangePast6Hours", "DateRangePast6Hours",
"DateRangePast24Hours", "DateRangePast24Hours",
"DateRangePast7Days", "DateRangePast7Days",
@@ -563,8 +563,6 @@ function fetchTranslatedText(vm) {
"MetricAllocatedMemory", "MetricAllocatedMemory",
"MetricWorkingSet", "MetricWorkingSet",
"MetricPrivateBytes" "MetricPrivateBytes"
]; ]);
return window.$gz.translation.cacheTranslations(tKeysRequired);
} }
</script> </script>

View File

@@ -149,9 +149,7 @@ function initForm(vm) {
// //
// Ensures UI translated text is available // Ensures UI translated text is available
// //
function fetchTranslatedText(vm) { async function fetchTranslatedText(vm) {
let tKeysRequired = ["ServerProfiler"]; await window.$gz.translation.cacheTranslations(["ServerProfiler"]);
return window.$gz.translation.cacheTranslations(tKeysRequired);
} }
</script> </script>

View File

@@ -299,8 +299,8 @@ function initForm(vm) {
// //
// Ensures UI translated text is available // Ensures UI translated text is available
// //
function fetchTranslatedText(vm) { async function fetchTranslatedText(vm) {
return window.$gz.translation.cacheTranslations([ await window.$gz.translation.cacheTranslations([
"ServerStateOpen", "ServerStateOpen",
"ServerStateOps", "ServerStateOps",
"ServerStateReason" "ServerStateReason"

View File

@@ -738,8 +738,8 @@ function initForm(vm) {
// //
// Ensures UI translated text is available // Ensures UI translated text is available
// //
function fetchTranslatedText(vm) { async function fetchTranslatedText(vm) {
return window.$gz.translation.cacheTranslations([ await window.$gz.translation.cacheTranslations([
"Widget", "Widget",
"WidgetName", "WidgetName",
"WidgetSerial", "WidgetSerial",