@@ -6,7 +6,7 @@ let initialized = false;
6
6
7
7
function callCallbacks ( data ) {
8
8
callbacks . map ( ( callback ) => {
9
- if ( callback && window . chayns . utils . isFunction ( callback ) ) {
9
+ if ( callback && window . chayns . utils . isFunction ( callback ) ) {
10
10
callback ( data ) ;
11
11
}
12
12
} ) ;
@@ -33,11 +33,11 @@ function setDefaultGroup(mode = 0) {
33
33
function getUacIds ( group ) {
34
34
let retval = [ ] ;
35
35
36
- if ( group . uacId && window . chayns . utils . isNumber ( group . uacId ) ) {
36
+ if ( group . uacId && window . chayns . utils . isNumber ( group . uacId ) ) {
37
37
retval . push ( group . uacId ) ;
38
38
}
39
39
40
- if ( group . uacIds && window . chayns . utils . isArray ( group . uacIds ) ) {
40
+ if ( group . uacIds && window . chayns . utils . isArray ( group . uacIds ) ) {
41
41
retval = retval . concat ( group . uacIds ) ;
42
42
}
43
43
@@ -50,7 +50,7 @@ function getAllowedUacIdsFromArray(uacArray) {
50
50
const allowedUacIds = [ ] ;
51
51
52
52
for ( let i = 0 , x = userGroups . length ; i < x ; i += 1 ) {
53
- if ( uacArray . indexOf ( userGroups [ i ] . id ) !== - 1 ) {
53
+ if ( uacArray . indexOf ( userGroups [ i ] . id ) !== - 1 ) {
54
54
allowedUacIds . push ( userGroups [ i ] . id ) ;
55
55
}
56
56
}
@@ -82,12 +82,12 @@ function getDefaultMode() {
82
82
83
83
export default class ModeSwitchHelper {
84
84
static init ( options ) {
85
- if ( options . groups ) {
86
- if ( window . chayns . utils . isFunction ( options . onChange ) ) {
85
+ if ( options . groups ) {
86
+ if ( window . chayns . utils . isFunction ( options . onChange ) ) {
87
87
callbacks . push ( options . onChange ) ;
88
88
}
89
89
90
- if ( options . save ) {
90
+ if ( options . save ) {
91
91
callbacks . push ( setSavedMode ) ;
92
92
}
93
93
@@ -115,7 +115,7 @@ export default class ModeSwitchHelper {
115
115
116
116
const managerGroup = ModeSwitchHelper . findManagerGroup ( groups ) ;
117
117
118
- if ( managerGroup && data && data . AppUser . AdminMode && ! chayns . env . isApp ) {
118
+ if ( managerGroup && data && data . AppUser . AdminMode && ! chayns . env . isApp ) {
119
119
groupObject = getGroupObject ( managerGroup . id , managerGroup . name , managerGroup . uacIds ) ;
120
120
isChaynsIdAdmin = true ;
121
121
} else {
@@ -128,11 +128,11 @@ export default class ModeSwitchHelper {
128
128
129
129
let savedModeId = null ;
130
130
let changeGroupIndex = 0 ;
131
- if ( options . save ) {
131
+ if ( options . save ) {
132
132
savedModeId = getSavedMode ( ) ;
133
133
}
134
134
135
- if ( savedModeId === null && options . defaultMode ) {
135
+ if ( savedModeId === null && options . defaultMode ) {
136
136
savedModeId = options . defaultMode ;
137
137
}
138
138
@@ -185,6 +185,12 @@ export default class ModeSwitchHelper {
185
185
// if (changeGroup) { window.setTimeout(() => { window.chayns.ui.modeSwitch.changeMode(changeGroupIndex); }, 0); }
186
186
} else {
187
187
setDefaultGroup ( isChaynsIdAdmin && managerGroup ? managerGroup . id : 0 ) ;
188
+
189
+ // ToDo: Implement adminSwitchCallback for allowedGroups.length > 1 too
190
+ const changeListener = getChangeListener ( ) ;
191
+ chayns . setAdminSwitchCallback ( ( { mode } ) => changeListener ( {
192
+ id : mode ,
193
+ } ) ) ;
188
194
}
189
195
} else {
190
196
setDefaultGroup ( ) ;
@@ -196,13 +202,13 @@ export default class ModeSwitchHelper {
196
202
}
197
203
198
204
static getCurrentMode ( ) {
199
- if ( currentMode ) return currentMode ;
205
+ if ( currentMode ) return currentMode ;
200
206
201
207
return getDefaultMode ( ) ;
202
208
}
203
209
204
210
static onChange ( callback ) {
205
- if ( window . chayns . utils . isFunction ( callback ) ) {
211
+ if ( window . chayns . utils . isFunction ( callback ) ) {
206
212
callbacks . push ( callback ) ;
207
213
208
214
return true ;
@@ -232,15 +238,15 @@ export default class ModeSwitchHelper {
232
238
}
233
239
234
240
static isUserInGroup ( uacId ) {
235
- if ( ! window . chayns . env . user . isAuthenticated ) return false ;
241
+ if ( ! window . chayns . env . user . isAuthenticated ) return false ;
236
242
237
243
return ! ! window . chayns . env . user . groups . find ( ( element ) => {
238
244
return element . id === uacId ;
239
245
} ) ;
240
246
}
241
247
242
248
static findManagerGroup ( groups ) {
243
- if ( ! window . chayns . env . user . isAuthenticated ) return false ;
249
+ if ( ! window . chayns . env . user . isAuthenticated ) return false ;
244
250
245
251
return groups . find ( ( uac ) => {
246
252
return uac . uacIds && uac . uacIds . length === 1 && uac . uacIds [ 0 ] === 1 ;
0 commit comments