This commit is contained in:
2020-02-24 22:48:55 +00:00
parent 1090ddce92
commit bc9804eb64
3 changed files with 50 additions and 40 deletions

View File

@@ -371,9 +371,9 @@ export default {
this.$router.push({
name: "ay-data-list-view",
params: {
listViewId: this.listViewId,
dataListKey: this.dataListKey,
formKey: this.formKey
formKey: this.formKey,
listViewId: this.listViewId
}
});
},

View File

@@ -401,7 +401,7 @@ export default new Router({
import(/* webpackChunkName: "ay" */ "./views/ay-customize.vue")
},
{
path: "/ay-data-list-view/:listViewId/:dataListKey/:formKey",
path: "/ay-data-list-view/:dataListKey/:formKey/:listViewId",
name: "ay-data-list-view",
component: () =>
import(/* webpackChunkName: "ay" */ "./views/ay-data-list-view.vue")

View File

@@ -426,6 +426,7 @@
const FORM_KEY = "ay-data-list-view";
const API_BASE_URL = "DataListView/";
var JUST_DELETED = false;
export default {
// beforeRouteEnter(to, from, next) {
// var ltKeysRequired = ["DataListView", "GridFilterName"];
@@ -435,7 +436,7 @@ export default {
//unsaved changes are actually valid for this form so no need to warn
beforeRouteLeave(to, from, next) {
var vm = this;
if (this.formState.dirty) {
if (this.formState.dirty && !JUST_DELETED) {
//Put in unsaved listview
//debugger;
var formSettings = window.$gz.form.getFormSettings(vm.formKey);
@@ -730,26 +731,6 @@ export default {
url = url + vm.listViewId;
}
/*
{
"id": 0,
"concurrencyToken": 0,
"userId": 0,
"name": "string",
"public": true,
"listKey": "string",
"listView": "string"
}
//Put in unsaved listview
//debugger;
var formSettings = window.$gz.form.getFormSettings(vm.formKey);
formSettings.saved.dataTable.unsavedListView = JSON.stringify(
generateListViewFromEdited(vm)
);
formSettings.saved.dataTable.listViewId = -1;
window.$gz.form.setFormSettings(vm.formKey, formSettings);
*/
//clear any errors vm might be around from previous submit
window.$gz.form.deleteAllErrorBoxErrors(this);
window.$gz.api
@@ -772,22 +753,9 @@ export default {
window.$gz.form.setFormSettings(vm.formKey, formSettings);
//change url to new record
//this is the format for listview:
//ay-data-list-view/-1/TestWidgetDataList/test-widgets
//or 0 if it's coming from the default listview
//or id number if it's got one which we don't care about here
//so mission is to replace the 0 or -1 with the real id in the url
var urlParts = vm.$route.split("/");
var newUrl =
urlParts[0] +
"/" +
res.data.id +
"/" +
urlParts[2] +
"/" +
urlParts[3];
vm.$router.replace(newUrl);
vm.$router.replace(
vm.$route.fullPath.slice(0, -1) + res.data.id
);
} else {
//Handle "put" of an existing record (UPDATE)
vm.obj.concurrencyToken = res.data.concurrencyToken;
@@ -803,6 +771,48 @@ export default {
window.$gz.errorHandler.handleFormError(error, vm);
});
}
},
remove() {
var 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:
JUST_DELETED = true;
// navigate backwards
vm.$router.go(-1);
} else {
var url = API_BASE_URL + vm.listViewId;
window.$gz.form.deleteAllErrorBoxErrors(vm);
window.$gz.api
.remove(url)
.then(res => {
if (res.error != undefined) {
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;
// 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);
});
}
}
});
}
}
};