Files
raven-client/ayanova/src/api/open-object-handler.js
2020-06-20 23:26:57 +00:00

63 lines
1.7 KiB
JavaScript

/* xxxeslint-disable */
import ayatype from "./ayatype";
export default {
///////////////////////////////
// APP (GLOBAL) openobject CLICK HANDLER
//
// Deal with a request to open an object (from main datatables mainly)
// called from App.vue
handleOpenObjectClick(vm, tid) {
//expects extra data (tid) to be one of { type: [AYATYPE], id: [RECORDID] }
//or null which is what is called when asking to check if there is a direct openObject in store and open it
if (tid == null) {
let op = vm.$store.state.openObject;
if (op && op.type) {
tid = op;
window.$gz.store.commit("clearOpenObject");
} else return; //bail out, nothing to open here
}
//NOTE: for new objects all edit pages assume record ID 0 means create rather than open
if (tid.type && tid.id != null) {
switch (tid.type) {
case ayatype.Widget:
vm.$router.push({
name: "widget-edit",
params: { recordid: tid.id }
});
break;
case ayatype.User:
vm.$router.push({
name: "adm-user",
params: { recordid: tid.id }
});
break;
default:
window.$gz.eventBus.$emit(
"notify-warning",
"open-object-handler: unrecognized type [" + tid.type + "]"
);
}
}
},
///////////////////////////////////
// WIRE UP MENU EVENTS
//
// called once from app.vue only
//
wireUpEventHandlers(vm) {
let self = this;
//expects extra data (tid) to be { type: [AYATYPE], id: [RECORDID] }
window.$gz.eventBus.$on("openobject", function handleOpenObjectClickHandler(
tid
) {
self.handleOpenObjectClick(vm, tid);
});
}
//new functions above here
};