diff --git a/ayanova/src/api/enums.js b/ayanova/src/api/enums.js index e07d1043..835cf36f 100644 --- a/ayanova/src/api/enums.js +++ b/ayanova/src/api/enums.js @@ -5,6 +5,25 @@ export default { enumKey = enumKey.toLowerCase(); return window.$gz.store.state.enums[enumKey][enumValue]; }, + ////////////////////////////////// + // + // Used by forms to fetch picklist data + // + getPickList(enumKey) { + enumKey = enumKey.toLowerCase(); + var e = window.$gz.store.state.enums[enumKey]; + if (!e) { + throw "ERROR enums::getPickList -> enumKey " + + enumKey + + " is missing from store"; + } + var ret = []; + //turn it into an array suitable for picklists + window.$gz._.forOwn(e, function(value, key) { + ret.push({ id: Number(key), name: value }); + }); + return ret; + }, /////////////////////////////////// // // Fetches enum list from server diff --git a/ayanova/src/views/test-inventory-widget-edit.vue b/ayanova/src/views/test-inventory-widget-edit.vue index 1d15eafb..a4736081 100644 --- a/ayanova/src/views/test-inventory-widget-edit.vue +++ b/ayanova/src/views/test-inventory-widget-edit.vue @@ -155,7 +155,7 @@ xl="3" > { + vm.pickLists.usertypes = window.$gz.enums.getPickList("usertype"); vm.formState.ready = true; }) .catch(err => { @@ -352,7 +353,7 @@ export default { serial: 0, dollarAmount: null, active: null, - usertype: 0, + userType: 0, startDate: null, endDate: null, notes: null, @@ -729,12 +730,15 @@ function initForm(vm) { // // function populatePickLists(vm) { - return window.$gz.api.get("EnumPickList/list/usertypes").then(res => { - if (res.error) { - throw res.error; - } - vm.pickLists.usertypes = res.data; - }); + //ensure the pick lists required are pre-fetched + //this is called before form is fully opened + return window.$gz.enums.fetchEnumList("usertype"); + // return window.$gz.api.get("EnumPickList/list/usertype").then(res => { + // if (res.error) { + // throw res.error; + // } + // vm.pickLists.usertypes = res.data; + // }); } //////////////////////