@@ -5,7 +5,8 @@ const defaultOptions = {
55
66export default {
77 install ( components , installOptions ) {
8- const pluginOptions = { ...defaultOptions ,
8+ const pluginOptions = {
9+ ...defaultOptions ,
910 ...installOptions
1011 } ;
1112
@@ -47,10 +48,52 @@ export default {
4748 * This is the only automatic way which sets this flag
4849 * to true once it's in the store.
4950 */
51+ let _ignoreIsDirtyFlag = false ;
52+
5053 Query . on ( 'beforeUpdate' , function ( model ) {
51- model [ pluginOptions . isDirtyFlagName ] = true ;
54+ if ( ! _ignoreIsDirtyFlag )
55+ model [ pluginOptions . isDirtyFlagName ] = true ;
5256 } ) ;
5357
58+ /**
59+ * Providing the resetFlags actions
60+ */
61+ RootActions . resetAllDirtyFlags = function ( {
62+ rootGetters
63+ } ) {
64+ debugger
65+ const allDirty = rootGetters [ 'entities/allDirty' ] ( ) ;
66+ _ignoreIsDirtyFlag = true ;
67+ allDirty . forEach ( e =>
68+ e . $update ( {
69+ [ pluginOptions . isDirtyFlagName ] : false
70+ } )
71+ ) ;
72+ _ignoreIsDirtyFlag = false ;
73+ } ;
74+
75+ // Overwriting to add preventDirtyFlag option
76+ const _insertOrUpdate = RootMutations . insertOrUpdate ;
77+ RootMutations . insertOrUpdate = function ( state , payload ) {
78+ if ( payload . preventDirtyFlag === true ) {
79+ _ignoreIsDirtyFlag = true ;
80+ _insertOrUpdate . call ( this , state , payload ) ;
81+ _ignoreIsDirtyFlag = false ;
82+ } else
83+ _insertOrUpdate . call ( this , state , payload ) ;
84+ } ;
85+
86+ // Overwriting to add preventDirtyFlag option
87+ const _update = RootMutations . update ;
88+ RootMutations . update = function ( state , payload ) {
89+ if ( payload . preventDirtyFlag === true ) {
90+ _ignoreIsDirtyFlag = true ;
91+ _update . call ( this , state , payload ) ;
92+ _ignoreIsDirtyFlag = false ;
93+ } else
94+ _update . call ( this , state , payload ) ;
95+ } ;
96+
5497 /**
5598 * Providing the allDirty getter
5699 */
0 commit comments