This commit is contained in:
@@ -428,30 +428,26 @@ export default {
|
||||
beforeDestroy() {
|
||||
window.$gz.eventBus.$off("menu-click", clickHandler);
|
||||
},
|
||||
created() {
|
||||
async created() {
|
||||
let vm = this;
|
||||
|
||||
//set route values in data object so init form can handle
|
||||
vm.dataListKey = this.$route.params.dataListKey;
|
||||
vm.listViewId = this.$route.params.listViewId;
|
||||
vm.formKey = this.$route.params.formKey;
|
||||
|
||||
initForm(vm)
|
||||
.then(() => {
|
||||
vm.formState.ready = true;
|
||||
|
||||
window.$gz.eventBus.$on("menu-click", clickHandler);
|
||||
//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
|
||||
generateMenu(vm, false); //default is never read only and passing in this vm
|
||||
//init disable save button so it can be enabled only on edit to show dirty form
|
||||
window.$gz.eventBus.$emit("menu-disable-item", FORM_KEY + ":save");
|
||||
vm.formState.loading = false;
|
||||
})
|
||||
.catch(err => {
|
||||
vm.formState.ready = true;
|
||||
window.$gz.errorHandler.handleFormError(err, vm);
|
||||
});
|
||||
try {
|
||||
//set route values in data object so init form can handle
|
||||
vm.dataListKey = this.$route.params.dataListKey;
|
||||
vm.listViewId = this.$route.params.listViewId;
|
||||
vm.formKey = this.$route.params.formKey;
|
||||
await initForm(vm);
|
||||
vm.formState.ready = true;
|
||||
window.$gz.eventBus.$on("menu-click", clickHandler);
|
||||
//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
|
||||
generateMenu(vm, false); //default is never read only and passing in this vm
|
||||
//init disable save button so it can be enabled only on edit to show dirty form
|
||||
window.$gz.eventBus.$emit("menu-disable-item", FORM_KEY + ":save");
|
||||
vm.formState.loading = false;
|
||||
} catch (err) {
|
||||
vm.formState.ready = true;
|
||||
window.$gz.errorHandler.handleFormError(err, vm);
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
@@ -678,7 +674,7 @@ export default {
|
||||
window.$gz.form.fieldValueChanged(this, ref);
|
||||
}
|
||||
},
|
||||
submit() {
|
||||
async submit() {
|
||||
if (this.canSave) {
|
||||
let vm = this;
|
||||
//check that "unsaved filter" is not the name
|
||||
@@ -709,109 +705,103 @@ export default {
|
||||
|
||||
//clear any errors vm might be around from previous submit
|
||||
window.$gz.form.deleteAllErrorBoxErrors(this);
|
||||
window.$gz.api
|
||||
.upsert(url, lvSave)
|
||||
.then(res => {
|
||||
vm.formState.loading = false;
|
||||
if (res.error) {
|
||||
vm.formState.serverError = res.error;
|
||||
window.$gz.form.setErrorBoxErrors(vm);
|
||||
try {
|
||||
let res = await window.$gz.api.upsert(url, lvSave);
|
||||
|
||||
vm.formState.loading = false;
|
||||
if (res.error) {
|
||||
vm.formState.serverError = res.error;
|
||||
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 {
|
||||
//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 {
|
||||
//Handle "put" of an existing record (UPDATE)
|
||||
vm.obj.concurrency = res.data.concurrency;
|
||||
window.$gz.form.setFormState({
|
||||
vm: vm,
|
||||
dirty: false
|
||||
});
|
||||
}
|
||||
//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) {
|
||||
vm.formState.loading = false;
|
||||
window.$gz.errorHandler.handleFormError(error, vm);
|
||||
});
|
||||
}
|
||||
} catch (error) {
|
||||
vm.formState.loading = false;
|
||||
window.$gz.errorHandler.handleFormError(error, vm);
|
||||
}
|
||||
}
|
||||
},
|
||||
remove() {
|
||||
async remove() {
|
||||
let vm = this;
|
||||
window.$gz.dialog.confirmDelete().then(dialogResult => {
|
||||
if (dialogResult == true) {
|
||||
//do the delete
|
||||
vm.formState.loading = true;
|
||||
//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:
|
||||
try {
|
||||
if ((await window.$gz.dialog.confirmDelete()) !== true) {
|
||||
return;
|
||||
}
|
||||
//do the delete
|
||||
vm.formState.loading = true;
|
||||
//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;
|
||||
|
||||
//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);
|
||||
} 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;
|
||||
if (this.canDuplicate && vm.listViewId > 0) {
|
||||
this.formState.loading = true;
|
||||
@@ -820,40 +810,39 @@ export default {
|
||||
|
||||
//clear any errors vm might be around from previous submit
|
||||
window.$gz.form.deleteAllErrorBoxErrors(this);
|
||||
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);
|
||||
try {
|
||||
let res = await window.$gz.api.duplicate(url);
|
||||
|
||||
//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;
|
||||
vm.listViewId = res.data.id;
|
||||
//Navigate to new record
|
||||
//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(function handleDuplicateError(error) {
|
||||
vm.formState.loading = false;
|
||||
window.$gz.errorHandler.handleFormError(error, vm);
|
||||
});
|
||||
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.obj.name = res.data.name;
|
||||
vm.obj.concurrency = res.data.concurrency;
|
||||
vm.listViewId = res.data.id;
|
||||
//Navigate to new record
|
||||
//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
|
||||
//
|
||||
function fetchTranslatedText(vm) {
|
||||
let tKeysRequired = [
|
||||
async function fetchTranslatedText(vm) {
|
||||
await window.$gz.translation.cacheTranslations([
|
||||
"DataListView",
|
||||
"GridFilterName",
|
||||
"Include",
|
||||
@@ -1004,9 +993,7 @@ function fetchTranslatedText(vm) {
|
||||
"True",
|
||||
"False",
|
||||
"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
|
||||
return window.$gz.api
|
||||
.get("data-list/listfields?DataListKey=" + vm.dataListKey)
|
||||
.then(res => {
|
||||
if (res.error) {
|
||||
throw res.error;
|
||||
} else {
|
||||
vm.fieldDefinitions = res.data;
|
||||
}
|
||||
});
|
||||
let res = await window.$gz.api.get(
|
||||
"data-list/listfields?DataListKey=" + vm.dataListKey
|
||||
);
|
||||
if (res.error) {
|
||||
throw res.error;
|
||||
} else {
|
||||
vm.fieldDefinitions = res.data;
|
||||
}
|
||||
}
|
||||
|
||||
//////////////////////////////////////////////////////////
|
||||
//
|
||||
// Ensures column names are present in translation table
|
||||
//
|
||||
function fetchTranslatedFieldNames(vm) {
|
||||
async function fetchTranslatedFieldNames(vm) {
|
||||
let columnKeys = [];
|
||||
for (let i = 1; i < vm.fieldDefinitions.length; i++) {
|
||||
let cm = vm.fieldDefinitions[i];
|
||||
columnKeys.push(cm.tKey);
|
||||
}
|
||||
//Now fetch all the keys and await the response before returning
|
||||
return window.$gz.translation.cacheTranslations(columnKeys).then(() => {
|
||||
return;
|
||||
});
|
||||
await window.$gz.translation.cacheTranslations(columnKeys);
|
||||
}
|
||||
|
||||
/////////////////////////////////
|
||||
//
|
||||
//
|
||||
function setEffectiveListView(vm) {
|
||||
async function setEffectiveListView(vm) {
|
||||
/*
|
||||
effectiveListView
|
||||
- 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) {
|
||||
//get default list view
|
||||
//http://localhost:7575/api/v8/DataListView/default/TestWidgetDataList
|
||||
return window.$gz.api
|
||||
.get("data-list-view/default/" + vm.dataListKey)
|
||||
.then(res => {
|
||||
if (res.error) {
|
||||
throw res.error;
|
||||
} else {
|
||||
vm.effectiveListView = JSON.parse(res.data);
|
||||
vm.obj.name = vm.$ay.t("FilterUnsaved");
|
||||
}
|
||||
});
|
||||
let res = await window.$gz.api.get(
|
||||
"data-list-view/default/" + vm.dataListKey
|
||||
);
|
||||
|
||||
if (res.error) {
|
||||
throw res.error;
|
||||
} else {
|
||||
vm.effectiveListView = JSON.parse(res.data);
|
||||
vm.obj.name = vm.$ay.t("FilterUnsaved");
|
||||
}
|
||||
} else {
|
||||
//listview has an id value
|
||||
return window.$gz.api.get("data-list-view/" + vm.listViewId).then(res => {
|
||||
if (res.error) {
|
||||
throw res.error;
|
||||
} else {
|
||||
vm.effectiveListView = JSON.parse(res.data.listView);
|
||||
vm.obj.public = res.data.public;
|
||||
vm.obj.name = res.data.name;
|
||||
vm.obj.concurrency = res.data.concurrency;
|
||||
vm.obj.userId = res.data.userId;
|
||||
}
|
||||
});
|
||||
let res = await window.$gz.api.get("data-list-view/" + vm.listViewId);
|
||||
if (res.error) {
|
||||
throw res.error;
|
||||
} else {
|
||||
vm.effectiveListView = JSON.parse(res.data.listView);
|
||||
vm.obj.public = res.data.public;
|
||||
vm.obj.name = res.data.name;
|
||||
vm.obj.concurrency = res.data.concurrency;
|
||||
vm.obj.userId = res.data.userId;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user