diff --git a/public/mix-manifest.json b/public/mix-manifest.json index ab22749..2019e3c 100644 --- a/public/mix-manifest.json +++ b/public/mix-manifest.json @@ -1,6 +1,6 @@ { - "/js/vue/Authentication/app.js": "/js/vue/Authentication/app.js?id=e11c94b631fa8e23411d", - "/js/vue/Home/app.js": "/js/vue/Home/app.js?id=8a41fb4476589b3a6cff", - "/js/vue/Modules/CRM/app.js": "/js/vue/Modules/CRM/app.js?id=311655cd117deb0ab373", - "/js/vue/User/app.js": "/js/vue/User/app.js?id=4d34a4ac917830fbaa36" + "/js/vue/Authentication/app.js": "/js/vue/Authentication/app.js?id=ada36e14123738cce4a1", + "/js/vue/Home/app.js": "/js/vue/Home/app.js?id=4389447314d810908e49", + "/js/vue/Modules/CRM/app.js": "/js/vue/Modules/CRM/app.js?id=69a949dff23fe14cc621", + "/js/vue/User/app.js": "/js/vue/User/app.js?id=32e40e7920eba25a4bb2" } diff --git a/resources/js/Global/store/actions.js b/resources/js/Global/store/actions.js new file mode 100644 index 0000000..ca08005 --- /dev/null +++ b/resources/js/Global/store/actions.js @@ -0,0 +1,3 @@ +export default { + // +} \ No newline at end of file diff --git a/resources/js/Global/store/getters.js b/resources/js/Global/store/getters.js new file mode 100644 index 0000000..ca08005 --- /dev/null +++ b/resources/js/Global/store/getters.js @@ -0,0 +1,3 @@ +export default { + // +} \ No newline at end of file diff --git a/resources/js/Global/store/index.js b/resources/js/Global/store/index.js new file mode 100644 index 0000000..2fd93cf --- /dev/null +++ b/resources/js/Global/store/index.js @@ -0,0 +1,31 @@ +/** + * Vuex + * + * @library + * + * https://vuex.vuejs.org/en/ + */ + +// Lib imports +import Vue from 'vue' +import Vuex from 'vuex' + +// Store functionality +import actions from './actions' +import getters from './getters' +import modules from './modules' +import mutations from './mutations' +import state from './state' + +Vue.use(Vuex) + +// Create a new store +const store = new Vuex.Store({ + actions, + getters, + modules, + mutations, + state +}) + +export default store \ No newline at end of file diff --git a/resources/js/Global/store/modules/index.js b/resources/js/Global/store/modules/index.js new file mode 100644 index 0000000..000e03d --- /dev/null +++ b/resources/js/Global/store/modules/index.js @@ -0,0 +1,21 @@ +// https://vuex.vuejs.org/en/modules.html + +const requireModule = require.context('.', true, /\.js$/) +const modules = {} + +requireModule.keys().forEach(fileName => { + if (fileName === './index.js') return + + // Replace ./ and .js + const path = fileName.replace(/(\.\/|\.js)/g, '') + const [moduleName, imported] = path.split('/') + if (!modules[moduleName]) { + modules[moduleName] = { + namespaced: true + } + } + + modules[moduleName][imported] = requireModule(fileName).default +}) + +export default modules \ No newline at end of file diff --git a/resources/js/Global/store/modules/modal/getters.js b/resources/js/Global/store/modules/modal/getters.js new file mode 100644 index 0000000..01ec2b8 --- /dev/null +++ b/resources/js/Global/store/modules/modal/getters.js @@ -0,0 +1,12 @@ +export default { + getCurrentModal: (state) => { + return state.currentModal.slice(-1)[0].name + }, + getCurrentModalProperties: (state) => { + return state.currentModal.slice(-1)[0].properties; + }, + getModalResult: (state) => { + return state.currentModal.slice(-1)[0].result; + } + +} diff --git a/resources/js/Global/store/modules/modal/mutations.js b/resources/js/Global/store/modules/modal/mutations.js new file mode 100644 index 0000000..6a15bcd --- /dev/null +++ b/resources/js/Global/store/modules/modal/mutations.js @@ -0,0 +1,38 @@ +export default { + changeCurrentModal: (state, data) => { + state.currentModal.slice(-1)[0].result = ''; + state.currentModal.slice(-1)[0].name = data.modal; + if (data.properties) { + state.currentModal.slice(-1)[0].properties = data.properties; + } + }, + + addModal: (state, data) => { + let modal = { + name : data.modal, + result : '', + }; + if (data.properties) { + modal['properties'] = data.properties; + } + state.currentModal.push(modal); + }, + + setResultCurrentModal: (state, data) => { + state.currentModal.slice(-1)[0].result = data; + }, + + closeModal: state => { + state.currentModal.pop(); + }, + + closeAllModals : state => { + state.currentModal = [ + { + name: '', + properties: {}, + result: {} + }, + ]; + } +}; diff --git a/resources/js/Global/store/modules/modal/state.js b/resources/js/Global/store/modules/modal/state.js new file mode 100644 index 0000000..78fb716 --- /dev/null +++ b/resources/js/Global/store/modules/modal/state.js @@ -0,0 +1,9 @@ +export default { + currentModal: [ + { + name: '', + properties: {}, + result: {} + }, + ], +} diff --git a/resources/js/Global/store/mutations.js b/resources/js/Global/store/mutations.js new file mode 100644 index 0000000..ca08005 --- /dev/null +++ b/resources/js/Global/store/mutations.js @@ -0,0 +1,3 @@ +export default { + // +} \ No newline at end of file diff --git a/resources/js/Global/store/state.js b/resources/js/Global/store/state.js new file mode 100644 index 0000000..ca08005 --- /dev/null +++ b/resources/js/Global/store/state.js @@ -0,0 +1,3 @@ +export default { + // +} \ No newline at end of file diff --git a/webpack.mix.js b/webpack.mix.js index 879a9c0..f61062c 100644 --- a/webpack.mix.js +++ b/webpack.mix.js @@ -35,6 +35,7 @@ mix.js('resources/js/Authentication/app.js', 'public/js/vue/Authentication') .js('resources/js/User/app.js', 'public/js/vue/User'); +require('./modules/wm-core/webpack.mix'); require('./modules/wm-common/webpack.mix'); require('./modules/wm-crm/webpack.mix');