This commit is contained in:
@@ -43,7 +43,6 @@ CURRENT TODOs
|
||||
=-=-=-=-=-=-=
|
||||
|
||||
|
||||
|
||||
TODO: FILTER AT CLIENT
|
||||
|
||||
PICKLIST
|
||||
|
||||
@@ -665,6 +665,7 @@ export default {
|
||||
// requires object with one or both keys {temp:{...tempformsettings...},saved:{...persistedformsettings...}}
|
||||
//
|
||||
setFormSettings(formKey, formSettings) {
|
||||
// console.log("gzform::setFormSettings for formkey:" + formKey);
|
||||
if (window.$gz.errorHandler.devMode()) {
|
||||
if (!formSettings.saved && !formSettings.temp) {
|
||||
throw "gzform:setFormSettings - saved AND temp keys are both missing from form data!";
|
||||
|
||||
@@ -378,7 +378,25 @@ export default {
|
||||
},
|
||||
|
||||
listViewChanged: function() {
|
||||
alert("STUB:ListView Changed: " + this.listViewId);
|
||||
console.log("listViewchanged: TOP");
|
||||
var vm = this;
|
||||
if (this.listViewId == 0) {
|
||||
//default view, no saved, no cached
|
||||
this.listView = undefined;
|
||||
console.log(
|
||||
"listViewchanged: Default NO LIST VIEW selected - Calling saveformsettings"
|
||||
);
|
||||
saveFormSettings(vm);
|
||||
} else if (this.listViewId > 0) {
|
||||
(async function() {
|
||||
console.log("listViewchanged: awaiting fetchListView...");
|
||||
await fetchListView(vm);
|
||||
console.log(
|
||||
"listViewchanged: back from fetchListView calling save form settings"
|
||||
);
|
||||
saveFormSettings(vm);
|
||||
})();
|
||||
}
|
||||
},
|
||||
gridCellButtonClick(key, i) {
|
||||
//translate key to actual object type from header data
|
||||
@@ -394,6 +412,7 @@ export default {
|
||||
},
|
||||
|
||||
getDataFromApi() {
|
||||
//console.log("getDataFromAPI::TOP");
|
||||
var vm = this;
|
||||
|
||||
//start with defaults
|
||||
@@ -459,11 +478,6 @@ export default {
|
||||
var vm = this;
|
||||
|
||||
initForm(vm).then(() => {
|
||||
// path: "/ay-data-list-view/:listViewId/:dataListKey",
|
||||
|
||||
// - formSettings.saved.dataTable.{listViewId:[0 if none or else the last saved view id selected], unsavedListView:[edited but unsaved listview json, only if listviewId=0]}
|
||||
// - formSettings.temp.dataTable.cachedListView - temporary cached version of listview vm was saved at server but only if saved listviewId is non-zero
|
||||
|
||||
//rehydrate last form settings
|
||||
loadFormSettings(vm);
|
||||
});
|
||||
@@ -659,15 +673,20 @@ function populatePickLists(vm) {
|
||||
//
|
||||
// Fetch and cache list view
|
||||
//
|
||||
async function fetchListView(vm, listViewId) {
|
||||
if (!listViewId) {
|
||||
async function fetchListView(vm) {
|
||||
console.log("fetchListView::TOP");
|
||||
if (!vm.listViewId) {
|
||||
return;
|
||||
}
|
||||
await window.$gz.api.get("DataListView/" + listViewId).then(res => {
|
||||
await window.$gz.api.get("DataListView/" + vm.listViewId).then(res => {
|
||||
if (res.error != undefined) {
|
||||
window.$gz.errorHandler.handleFormError(res.error, vm);
|
||||
} else {
|
||||
vm.listView = res.data.listView;
|
||||
console.log(
|
||||
"fetchListView::insideGet, data returned, set listview to new value " +
|
||||
vm.listView
|
||||
);
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -675,16 +694,27 @@ async function fetchListView(vm, listViewId) {
|
||||
////////////////////
|
||||
//
|
||||
function saveFormSettings(vm) {
|
||||
// console.log("saveFormSettings::TOP");
|
||||
//do we need to persist this listview (only if it's an unsaved one)
|
||||
var unsavedlv = vm.listView;
|
||||
var cachedlv = vm.listView;
|
||||
if (vm.listViewId != 0) {
|
||||
//we have a saved one in use so there is no unsaved lv to save
|
||||
|
||||
if (vm.listViewId == 0) {
|
||||
//we aren't using any listview
|
||||
unsavedlv = undefined;
|
||||
} else {
|
||||
//we have an unsaved on in use so there is no need for a cached one
|
||||
cachedlv = undefined;
|
||||
}
|
||||
|
||||
if (vm.listViewId == -1) {
|
||||
//we have an unsaved one in use so there is no need for a cached one
|
||||
cachedlv = undefined;
|
||||
}
|
||||
|
||||
if (vm.listViewId > 0) {
|
||||
//we are using a saved lv so save cached one and clear anything in unsaved one
|
||||
unsavedlv = undefined;
|
||||
}
|
||||
|
||||
window.$gz.form.setFormSettings(vm.formKey, {
|
||||
temp: { page: vm.dataTablePagingOptions.page, cachedListView: cachedlv },
|
||||
saved: {
|
||||
@@ -697,35 +727,49 @@ function saveFormSettings(vm) {
|
||||
////////////////////
|
||||
//
|
||||
function loadFormSettings(vm) {
|
||||
var formSettings = window.$gz.form.getFormSettings(this.formKey);
|
||||
// console.log("loadFormSettings::TOP");
|
||||
var formSettings = window.$gz.form.getFormSettings(vm.formKey);
|
||||
//process SAVED formsettings
|
||||
if (formSettings.saved) {
|
||||
if (formSettings.saved.itemsPerPage) {
|
||||
this.dataTablePagingOptions.itemsPerPage =
|
||||
formSettings.saved.itemsPerPage;
|
||||
vm.dataTablePagingOptions.itemsPerPage = formSettings.saved.itemsPerPage;
|
||||
}
|
||||
if (formSettings.saved.dataTable.listViewId != undefined) {
|
||||
vm.listViewId = formSettings.saved.dataTable.listViewId;
|
||||
}
|
||||
if (vm.listViewId == 0) {
|
||||
//default view, not unsaved and not saved
|
||||
vm.listView = undefined;
|
||||
}
|
||||
if (vm.listViewId == -1) {
|
||||
//-1 is code for unsaved list view
|
||||
//check if there is a local copy of a listview vm was edited but not saved
|
||||
if (formSettings.saved.dataTable.editedListView != undefined) {
|
||||
vm.listView = formSettings.saved.dataTable.editedListView;
|
||||
} else {
|
||||
//listviewid is for unsaved but we have no unsaved so fix that up
|
||||
vm.listView = undefined;
|
||||
vm.listViewId = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//process TEMP form settings
|
||||
if (formSettings.temp) {
|
||||
if (formSettings.temp.page) {
|
||||
this.dataTablePagingOptions.page = formSettings.temp.page;
|
||||
vm.dataTablePagingOptions.page = formSettings.temp.page;
|
||||
}
|
||||
|
||||
//check for cached local copy of saved list view in use
|
||||
if (vm.listViewId != 0) {
|
||||
if (vm.listViewId > 0) {
|
||||
//0=no list view, -1=unsaved list view so any number greater than zero means there sb a cached local copy of a saved list view
|
||||
if (formSettings.temp.dataTable.cachedListView != undefined) {
|
||||
vm.listView = formSettings.temp.dataTable.cachedListView;
|
||||
} else {
|
||||
//fetch it and cache it
|
||||
(async function() {})();
|
||||
(async function() {
|
||||
await fetchListView(vm, vm.listViewId);
|
||||
})();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user