You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
willaengine/resources/js/Global/store/modules/modal/actions.js

60 lines
2.2 KiB

5 years ago
export default {
5 years ago
$_openModal: ({ rootState }, modal) => {
let modalArray = modal.split("/");
if (modalArray.length == 2) {
rootState[modalArray[0]]['modal'][modalArray[1]] = true;
5 years ago
} else {
rootState.modal[modalArray[0]] = true;
5 years ago
}
},
5 years ago
$_closeModal: ({ state, rootState }, modal) => {
let modalArray = modal.split("/");
if (modalArray.length == 2) {
rootState[modalArray[0]]['modal'][modalArray[1]] = false;
5 years ago
} else {
rootState.modal[modalArray[0]] = false;
5 years ago
}
state.properties = null;
},
5 years ago
$_openModalCallback ({ dispatch }, data) {
dispatch(data.module + '/openModal' + data.type.charAt(0).toUpperCase() + data.type.slice(1), data, { root: true });
},
$_closeModalCallback: ({ dispatch }, data) => {
dispatch(data.module + '/closeModal' + data.type.charAt(0).toUpperCase() + data.type.slice(1) , data, { root: true });
},
$_openModalStack({ state, rootState }, data) { // data: {name, rel, model, form_data, data, modal_pop_data, type}
data.name = 'modal_' + data.name;
if (state.modals.findIndex(x => x.name == data.name) == -1) {
state.modals.push(data);
let module = data.name.split("_");
rootState[module[1]].relation = data.rel ? data.rel : {};
5 years ago
rootState[module[1]].current_model = data.model ? data.model : {};
rootState[module[1]].page_type = data.page_type ? data.page_type : 'modal';
}
},
$_closeModalStack({ state, rootState }) {
if (state.modals.length) {
let last_data = [...state.modals].pop();
if (state.modals.length > 1) {
state.modals[state.modals.length - 2]['last_modal_data'] = last_data;
}
let module = last_data.name.split("_");
rootState[module[1]].relation = {};
5 years ago
rootState[module[1]].current_model = {};
rootState[module[1]].page_type = '';
state.modals.pop();
}
},
5 years ago
$_dialog:({state, commit}, properties) => {
state.modal.dialog = true;
commit('SET_DIALOG_TYPE', properties.type);
commit('SET_DIALOG_PROPERTIES', properties);
},
5 years ago
};