@@ -3,6 +3,21 @@ import { getField, updateField } from 'vuex-map-fields';
3
3
import remove from 'lodash/remove' ;
4
4
import SubmissionError from '../../error/SubmissionError' ;
5
5
6
+ const initialState = {
7
+ allIds : [ ] ,
8
+ byId : { } ,
9
+ created : null ,
10
+ deleted : null ,
11
+ error : '' ,
12
+ isLoading : false ,
13
+ resetList : false ,
14
+ selectItems : null ,
15
+ totalItems : 0 ,
16
+ updated : null ,
17
+ view : null ,
18
+ violations : null
19
+ } ;
20
+
6
21
const handleError = ( commit , e ) => {
7
22
commit ( ACTIONS . TOGGLE_LOADING ) ;
8
23
@@ -18,12 +33,13 @@ const handleError = (commit, e) => {
18
33
commit ( ACTIONS . SET_ERROR , e . message ) ;
19
34
} ;
20
35
21
- const ACTIONS = {
36
+ export const ACTIONS = {
22
37
ADD : 'ADD' ,
23
- MERCURE_DELETED : 'MERCURE_DELETED' ,
24
- MERCURE_MESSAGE : 'MERCURE_MESSAGE' ,
25
- MERCURE_OPEN : 'MERCURE_OPEN' ,
38
+ RESET_CREATE : 'RESET_CREATE' ,
39
+ RESET_DELETE : 'RESET_DELETE' ,
26
40
RESET_LIST : 'RESET_LIST' ,
41
+ RESET_SHOW : 'RESET_SHOW' ,
42
+ RESET_UPDATE : 'RESET_UPDATE' ,
27
43
SET_CREATED : 'SET_CREATED' ,
28
44
SET_DELETED : 'SET_DELETED' ,
29
45
SET_ERROR : 'SET_ERROR' ,
@@ -71,6 +87,8 @@ export default function makeCrudModule({
71
87
fetchAll : ( { commit, state } , params ) => {
72
88
if ( ! service ) throw new Error ( 'No service specified!' ) ;
73
89
90
+ commit ( ACTIONS . TOGGLE_LOADING ) ;
91
+
74
92
service
75
93
. findAll ( { params } )
76
94
. then ( response => response . json ( ) )
@@ -123,6 +141,18 @@ export default function makeCrudModule({
123
141
} )
124
142
. catch ( e => handleError ( commit , e ) ) ;
125
143
} ,
144
+ resetCreate : ( { commit } ) => {
145
+ commit ( ACTIONS . RESET_CREATE ) ;
146
+ } ,
147
+ resetDelete : ( { commit } ) => {
148
+ commit ( ACTIONS . RESET_DELETE ) ;
149
+ } ,
150
+ resetShow : ( { commit } ) => {
151
+ commit ( ACTIONS . RESET_SHOW ) ;
152
+ } ,
153
+ resetUpdate : ( { commit } ) => {
154
+ commit ( ACTIONS . RESET_UPDATE ) ;
155
+ } ,
126
156
update : ( { commit } , item ) => {
127
157
commit ( ACTIONS . SET_ERROR , '' ) ;
128
158
commit ( ACTIONS . TOGGLE_LOADING ) ;
@@ -150,16 +180,48 @@ export default function makeCrudModule({
150
180
updateField,
151
181
[ ACTIONS . ADD ] : ( state , item ) => {
152
182
Vue . set ( state . byId , item [ '@id' ] , item ) ;
183
+ Vue . set ( state , 'isLoading' , false ) ;
153
184
if ( state . allIds . includes ( item [ '@id' ] ) ) return ;
154
185
state . allIds . push ( item [ '@id' ] ) ;
155
186
} ,
187
+ [ ACTIONS . RESET_CREATE ] : state => {
188
+ Object . assign ( state , {
189
+ isLoading : false ,
190
+ error : '' ,
191
+ created : null ,
192
+ violations : null
193
+ } ) ;
194
+ } ,
195
+ [ ACTIONS . RESET_DELETE ] : state => {
196
+ Object . assign ( state , {
197
+ isLoading : false ,
198
+ error : '' ,
199
+ deleted : null
200
+ } ) ;
201
+ } ,
156
202
[ ACTIONS . RESET_LIST ] : state => {
157
203
Object . assign ( state , {
158
204
allIds : [ ] ,
159
205
byId : { } ,
206
+ error : '' ,
207
+ isLoading : false ,
160
208
resetList : false
161
209
} ) ;
162
210
} ,
211
+ [ ACTIONS . RESET_SHOW ] : state => {
212
+ Object . assign ( state , {
213
+ error : '' ,
214
+ isLoading : false
215
+ } ) ;
216
+ } ,
217
+ [ ACTIONS . RESET_UPDATE ] : state => {
218
+ Object . assign ( state , {
219
+ error : '' ,
220
+ isLoading : false ,
221
+ updated : null ,
222
+ violations : null
223
+ } ) ;
224
+ } ,
163
225
[ ACTIONS . SET_CREATED ] : ( state , created ) => {
164
226
Object . assign ( state , { created } ) ;
165
227
} ,
@@ -203,19 +265,6 @@ export default function makeCrudModule({
203
265
}
204
266
} ,
205
267
namespaced : true ,
206
- state : {
207
- allIds : [ ] ,
208
- byId : { } ,
209
- created : null ,
210
- deleted : null ,
211
- error : '' ,
212
- isLoading : false ,
213
- resetList : false ,
214
- selectItems : null ,
215
- totalItems : 0 ,
216
- updated : null ,
217
- view : null ,
218
- violations : null
219
- }
268
+ state : initialState
220
269
} ;
221
270
}
0 commit comments