diff --git a/app/Console/Commands/VuexBuild.php b/app/Console/Commands/VuexBuild.php new file mode 100644 index 0000000..4663428 --- /dev/null +++ b/app/Console/Commands/VuexBuild.php @@ -0,0 +1,88 @@ +option('category'); + $module = $this->argument('module'); + $storeModule = $this->argument('store-module'); + $moduleFiles = ['actions.js', 'mutations.js', 'state.js', 'getters.js']; + + $baseRepositoryPath = 'modules/wm-' . $module . '/resources/js/abstraction/repositories/' . $storeModule; + $baseResourcePath = 'modules/wm-' . $module . '/resources/js/abstraction/resources/' . $storeModule; + + $baseActionPath = 'modules/wm-' . $module . '/resources/js/store/modules/' . $storeModule . '/'; + $baseDefaultActionPath = 'resources/js/Default/store/store/'; + + + + +// $name = $this->choice( +// 'file exist, Do yo really Replace File?', +// ['Taylor', 'Dayle'], +// 'Dayle' +// ); + + if ($storeModule && $module) { + foreach ($moduleFiles as $moduleFile) { + if (Storage::disk('local')->exists($baseActionPath . $moduleFile)) { + if ($this->confirm('file exist, Do yo really Replace File?', true)) { + $data = Storage::disk('local')->get($baseDefaultActionPath . $moduleFile); + $data = str_replace('|-module-|', Str::snake($storeModule), $data); + $data = str_replace('|-Module-|', Str::title($storeModule), $data); + $data = str_replace('|-MODULE-|', Str::upper($storeModule), $data); + $data = str_replace('|-BaseModule-|', Str::title($module), $data); + $data = str_replace('|-baseModule-|', Str::camel($module), $data); + Storage::disk('local')->put($baseActionPath . $moduleFile, $data); + } + } + } + } + + + $this->info('modules Store Created'); + } +} diff --git a/resources/js/Default/store/category/actions.js b/resources/js/Default/store/category/actions.js new file mode 100644 index 0000000..2708df2 --- /dev/null +++ b/resources/js/Default/store/category/actions.js @@ -0,0 +1,65 @@ +import |-Module-|Repository from "@|-BaseModule-|/abstraction/repositories/|-module-|Repository"; + +let repository = new |-Module-|Repository(); + +export default { + async load|-Module-|({ commit, state }) { + try { + commit("SET_LOADING", true); + const |-module-| = await repository.index({pagination: state.pagination, filters: state.filters}); + commit("SET_|-MODULE-|", |-module-|.data); + commit("SET_|-MODULE-|_PAGINATION", |-module-|.pagination); + return |-module-|; + } catch (e) { + return e; + } finally { + commit("SET_LOADING", false); + } + }, + async show|-Module-|({}, |-module-|Id) { + try { + return await repository.show(|-module-|Id); + } catch (e) { + return e; + } + }, + async store|-Module-|({ commit }, data) { + try { + const |-module-| = await repository.store(data); + commit('ADD_|-MODULE-|', |-module-|); + return |-module-|; + } catch (e) { + return e; + } + }, + async update|-Module-|({ commit }, data) { + try { + const |-module-| = await repository.update(data); + commit('UPDATE_|-MODULE-|', |-module-|); + return |-module-|; + } catch (e) { + return e; + } + }, + async remove|-Module-|({state,commit }, |-module-|Id) { + try { + const response = await repository.destroy(|-module-|Id); + commit("REMOVE_|-MODULE-|", |-module-|Id); + return response; + } catch (e) { + return e; + } + }, + async removeMulti|-Module-|({state, commit }, |-module-|Ids) { + try { + const response = await repository.multipleDestroy(|-module-|Ids); + for (const |-module-|Id of |-module-|Ids) { + commit("REMOVE_|-MODULE-|", |-module-|Id); + } + return response; + } catch (e) { + return e; + } + }, + +}; diff --git a/resources/js/Default/store/category/getters.js b/resources/js/Default/store/category/getters.js new file mode 100644 index 0000000..cb2c597 --- /dev/null +++ b/resources/js/Default/store/category/getters.js @@ -0,0 +1,7 @@ +export default { + get|-Module-|: state => state.|-module-|, + get|-Module-|Loading: state => state.loading, + get|-Module-|Pagination: state => state.pagination, + get|-Module-|Selected: state => state.selected, + +}; diff --git a/resources/js/Default/store/category/mutations.js b/resources/js/Default/store/category/mutations.js new file mode 100644 index 0000000..9bdb8c0 --- /dev/null +++ b/resources/js/Default/store/category/mutations.js @@ -0,0 +1,48 @@ +import Vue from 'vue'; +//import { |-module-|Paginate } from "@|-BaseModule-|/services/localStorage/|-module-|.storage" + +export default { + SET_|-MODULE-|(state, |-module-|) { + Vue.set(state, '|-module-|', |-module-|); + }, + + UPDATE_|-MODULE-|(state, |-module-|) { + const index = state.|-module-|.findIndex(x => x.id === |-module-|.id); + |-module-| = {...state.|-module-|[index], ...|-module-|}; + Vue.set(state.|-module-|, index, |-module-|); + }, + + SET_|-MODULE-|_PAGINATION(state, pagination) { + Vue.set(state, "pagination", pagination); + //|-module-|Paginate.save(pagination); + }, + + REMOVE_|-MODULE-|(state, id) { + const Index = state.|-module-|.findIndex(x => x.id === id); + const selectedIndex = state.|-module-|_selected.findIndex(x => x.id === id); + Vue.delete(state.|-module-|, Index); + Vue.delete(state.|-module-|_selected, selectedIndex); + Vue.set(state.pagination, 'itemsLength', state.pagination.itemsLength - 1); + Vue.set(state.pagination, 'pageStop', state.pagination.pageStop - 1); + }, + + ADD_|-MODULE-|(state, |-module-|) { + state.|-module-|.unshift(|-module-|); + Vue.set(state, '|-module-|', state.|-module-|); + Vue.set(state.pagination, 'itemsLength', state.pagination.itemsLength + 1); + Vue.set(state.pagination, 'pageStop', state.pagination.pageStop + 1); + }, + + ADD_|-MODULE-|_SELECTED(state, |-module-|Id) { + const |-module-| = state.|-module-|.find(x => x.id === |-module-|Id); + Vue.set(state.|-module-|_selected, state.|-module-|_selected.length, |-module-|); + }, + + SET_FILTER_|-MODULE-|(state, value) { + state.filters = value; + }, + + SET_LOADING(state, value) { + state.loading = value; + } +}; diff --git a/resources/js/Default/store/category/state.js b/resources/js/Default/store/category/state.js new file mode 100644 index 0000000..9b4b885 --- /dev/null +++ b/resources/js/Default/store/category/state.js @@ -0,0 +1,14 @@ +//import { |-module-|Paginate } from "@|-BaseModule-|/services/localStorage/|-module-|.storage"; + +export default { + module_info:{ + name: '|-module-|', + module: '|-baseModule-|', + }, + |-module-|: [], + |-module-|_selected: [], + //pagination: newsPaginate.getWithDefault(), + loading: false, + filters:{}, +}; + diff --git a/resources/js/Default/store/store/actions.js b/resources/js/Default/store/store/actions.js new file mode 100644 index 0000000..2708df2 --- /dev/null +++ b/resources/js/Default/store/store/actions.js @@ -0,0 +1,65 @@ +import |-Module-|Repository from "@|-BaseModule-|/abstraction/repositories/|-module-|Repository"; + +let repository = new |-Module-|Repository(); + +export default { + async load|-Module-|({ commit, state }) { + try { + commit("SET_LOADING", true); + const |-module-| = await repository.index({pagination: state.pagination, filters: state.filters}); + commit("SET_|-MODULE-|", |-module-|.data); + commit("SET_|-MODULE-|_PAGINATION", |-module-|.pagination); + return |-module-|; + } catch (e) { + return e; + } finally { + commit("SET_LOADING", false); + } + }, + async show|-Module-|({}, |-module-|Id) { + try { + return await repository.show(|-module-|Id); + } catch (e) { + return e; + } + }, + async store|-Module-|({ commit }, data) { + try { + const |-module-| = await repository.store(data); + commit('ADD_|-MODULE-|', |-module-|); + return |-module-|; + } catch (e) { + return e; + } + }, + async update|-Module-|({ commit }, data) { + try { + const |-module-| = await repository.update(data); + commit('UPDATE_|-MODULE-|', |-module-|); + return |-module-|; + } catch (e) { + return e; + } + }, + async remove|-Module-|({state,commit }, |-module-|Id) { + try { + const response = await repository.destroy(|-module-|Id); + commit("REMOVE_|-MODULE-|", |-module-|Id); + return response; + } catch (e) { + return e; + } + }, + async removeMulti|-Module-|({state, commit }, |-module-|Ids) { + try { + const response = await repository.multipleDestroy(|-module-|Ids); + for (const |-module-|Id of |-module-|Ids) { + commit("REMOVE_|-MODULE-|", |-module-|Id); + } + return response; + } catch (e) { + return e; + } + }, + +}; diff --git a/resources/js/Default/store/store/getters.js b/resources/js/Default/store/store/getters.js new file mode 100644 index 0000000..cb2c597 --- /dev/null +++ b/resources/js/Default/store/store/getters.js @@ -0,0 +1,7 @@ +export default { + get|-Module-|: state => state.|-module-|, + get|-Module-|Loading: state => state.loading, + get|-Module-|Pagination: state => state.pagination, + get|-Module-|Selected: state => state.selected, + +}; diff --git a/resources/js/Default/store/store/mutations.js b/resources/js/Default/store/store/mutations.js new file mode 100644 index 0000000..9bdb8c0 --- /dev/null +++ b/resources/js/Default/store/store/mutations.js @@ -0,0 +1,48 @@ +import Vue from 'vue'; +//import { |-module-|Paginate } from "@|-BaseModule-|/services/localStorage/|-module-|.storage" + +export default { + SET_|-MODULE-|(state, |-module-|) { + Vue.set(state, '|-module-|', |-module-|); + }, + + UPDATE_|-MODULE-|(state, |-module-|) { + const index = state.|-module-|.findIndex(x => x.id === |-module-|.id); + |-module-| = {...state.|-module-|[index], ...|-module-|}; + Vue.set(state.|-module-|, index, |-module-|); + }, + + SET_|-MODULE-|_PAGINATION(state, pagination) { + Vue.set(state, "pagination", pagination); + //|-module-|Paginate.save(pagination); + }, + + REMOVE_|-MODULE-|(state, id) { + const Index = state.|-module-|.findIndex(x => x.id === id); + const selectedIndex = state.|-module-|_selected.findIndex(x => x.id === id); + Vue.delete(state.|-module-|, Index); + Vue.delete(state.|-module-|_selected, selectedIndex); + Vue.set(state.pagination, 'itemsLength', state.pagination.itemsLength - 1); + Vue.set(state.pagination, 'pageStop', state.pagination.pageStop - 1); + }, + + ADD_|-MODULE-|(state, |-module-|) { + state.|-module-|.unshift(|-module-|); + Vue.set(state, '|-module-|', state.|-module-|); + Vue.set(state.pagination, 'itemsLength', state.pagination.itemsLength + 1); + Vue.set(state.pagination, 'pageStop', state.pagination.pageStop + 1); + }, + + ADD_|-MODULE-|_SELECTED(state, |-module-|Id) { + const |-module-| = state.|-module-|.find(x => x.id === |-module-|Id); + Vue.set(state.|-module-|_selected, state.|-module-|_selected.length, |-module-|); + }, + + SET_FILTER_|-MODULE-|(state, value) { + state.filters = value; + }, + + SET_LOADING(state, value) { + state.loading = value; + } +}; diff --git a/resources/js/Default/store/store/state.js b/resources/js/Default/store/store/state.js new file mode 100644 index 0000000..9b4b885 --- /dev/null +++ b/resources/js/Default/store/store/state.js @@ -0,0 +1,14 @@ +//import { |-module-|Paginate } from "@|-BaseModule-|/services/localStorage/|-module-|.storage"; + +export default { + module_info:{ + name: '|-module-|', + module: '|-baseModule-|', + }, + |-module-|: [], + |-module-|_selected: [], + //pagination: newsPaginate.getWithDefault(), + loading: false, + filters:{}, +}; +