This commit is contained in:
2020-10-29 23:12:47 +00:00
parent 57194d4300
commit c586142f10

View File

@@ -1,25 +1,28 @@
<template>
<v-row>
<v-col
v-for="(item, i) in availableItems"
:key="i"
class="d-flex child-flex"
cols="12"
sm="6"
lg="4"
xl="3"
>
<gz-dash
:title="item.title"
:id="item.id"
v-on:dash-remove="dashRemove"
v-on:dash-move-start="dashMoveStart"
v-on:dash-move-back="dashMoveBack"
v-on:dash-move-forward="dashMoveForward"
v-on:dash-move-end="dashMoveEnd"
v-on:dash-refresh="dashRefresh"
/>
</v-col>
<gz-error :errorBoxMessage="formState.errorBoxMessage"></gz-error>
<div v-if="formState.ready">
<v-col
v-for="(item, i) in availableItems"
:key="i"
class="d-flex child-flex"
cols="12"
sm="6"
lg="4"
xl="3"
>
<gz-dash
:title="item.title"
:id="item.id"
v-on:dash-remove="dashRemove"
v-on:dash-move-start="dashMoveStart"
v-on:dash-move-back="dashMoveBack"
v-on:dash-move-forward="dashMoveForward"
v-on:dash-move-end="dashMoveEnd"
v-on:dash-refresh="dashRefresh"
/>
</v-col>
</div>
</v-row>
</template>
@@ -49,17 +52,32 @@ export default {
helpUrl: "form-home-dashboard"
});
},
created() {
this.availableItems = DashRegistry.availableItems();
async created() {
let vm = this;
try {
vm.availableItems = DashRegistry.availableItems();
//keeping in case need later for some localized text or something
// await initForm(vm);
//users have full rights to their dashboard config
vm.rights = window.$gz.role.fullRightsObject();
vm.formState.readOnly = false;
window.$gz.eventBus.$on("menu-click", clickHandler);
await vm.getDataFromApi();
window.$gz.form.setFormState({
vm: vm,
dirty: false,
valid: true
});
generateMenu(vm);
} catch (error) {
window.$gz.errorHandler.handleFormError(error, vm);
} finally {
vm.formState.ready = true;
}
},
methods: {
dashItems: function() {
let ret = [];
for (var i = 0; i < 12; i++) {
ret.push({ id: i.toString(), title: `Dash ${i}` });
}
return ret;
},
dashMoveStart: function(item) {
console.log("home-dashboard:dashMoveStart", item);
},
@@ -80,12 +98,82 @@ export default {
"home-dashboard:refresh (normally handle @ typed dash control)",
item
);
},
async getDataFromApi(recordId) {
let vm = this;
window.$gz.form.setFormState({
vm: vm,
loading: true
});
if (!recordId) {
throw new Error(FORM_KEY + "::getDataFromApi -> Missing recordID!");
}
let url = API_BASE_URL + recordId;
try {
window.$gz.form.deleteAllErrorBoxErrors(vm);
let res = await window.$gz.api.get(url);
if (res.error) {
//Not found?
if (res.error.code == "2010") {
window.$gz.form.handleObjectNotFound(vm);
}
vm.formState.serverError = res.error;
window.$gz.form.setErrorBoxErrors(vm);
} else {
vm.obj = res.data;
//modify the menu as necessary
generateMenu(vm);
//Update the form status
window.$gz.form.setFormState({
vm: vm,
dirty: false,
valid: true,
loading: false
});
}
} catch (error) {
window.$gz.errorHandler.handleFormError(error, vm);
} finally {
window.$gz.form.setFormState({
vm: vm,
loading: false
});
}
}
},
data() {
return {
availableItems: []
availableItems: [],
formState: {
ready: false,
dirty: false,
valid: true,
readOnly: false,
loading: true,
errorBoxMessage: null,
appError: null,
serverError: {}
}
};
}
};
// /////////////////////////////////
// //
// //
// async function initForm(vm) {
// await fetchTranslatedText(vm);
// await window.$gz.formCustomTemplate.get(FORM_CUSTOM_TEMPLATE_KEY);
// await populateSelectionLists(vm);
// }
// //////////////////////////////////////////////////////////
// //
// // Ensures UI translated text is available
// //
// async function fetchTranslatedText(vm) {
// await window.$gz.translation.cacheTranslations(["Widget", "WidgetName"]);
// }
</script>