@@ -144,6 +144,28 @@ import { Multiselect } from 'nextcloud-vue'
144144import  InfiniteLoading  from  ' vue-infinite-loading' 
145145import  Vue  from  ' vue' 
146146
147+ const  unlimitedQuota  =  {
148+ 	id:  ' none'  
149+ 	label:  t (' settings' ' Unlimited'  
150+ } 
151+ const  defaultQuota  =  {
152+ 	id:  ' default'  
153+ 	label:  t (' settings' ' Default quota'  
154+ } 
155+ const  newUser  =  {
156+ 	id:  ' '  
157+ 	displayName:  ' '  
158+ 	password:  ' '  
159+ 	mailAddress:  ' '  
160+ 	groups:  [], 
161+ 	subAdminsGroups:  [], 
162+ 	quota:  defaultQuota, 
163+ 	language:  { 
164+ 		code:  ' en'  
165+ 		name:  t (' settings' ' Default language'  
166+ 	} 
167+ } 
168+ 
147169export  default  {
148170	name:  ' userList'  
149171	props:  [' users' ' showConfig' ' selectedGroup' ' externalActions'  
@@ -153,46 +175,27 @@ export default {
153175		InfiniteLoading 
154176	}, 
155177	data () { 
156- 		let  unlimitedQuota =  {id: ' none' : t (' settings' ' Unlimited'  
157- 			defaultQuota =  {id: ' default' : t (' settings' ' Default quota'  
158178		return  { 
159- 			unlimitedQuota:  unlimitedQuota , 
160- 			defaultQuota:  defaultQuota , 
179+ 			unlimitedQuota, 
180+ 			defaultQuota, 
161181			loading:  { 
162182				all:  false , 
163183				groups:  false  
164184			}, 
165185			scrolled:  false , 
166186			searchQuery:  ' '  
167- 			newUser:  { 
168- 				id: ' '  
169- 				displayName: ' '  
170- 				password: ' '  
171- 				mailAddress: ' '  
172- 				groups:  [], 
173- 				subAdminsGroups:  [], 
174- 				quota:  defaultQuota, 
175- 				language:  {code:  ' en' :  t (' settings' ' Default language'  
176- 			} 
187+ 			newUser:  Object .assign ({}, newUser) 
177188		}; 
178189	}, 
179190	mounted () { 
180191		if  (! this .settings .canChangePassword ) { 
181192			OC .Notification .showTemporary (t (' settings' ' Password change is disabled because the master key is disabled'  
182193		} 
183194
184- 		/**   
185- 		 * Init default language from server data. The use of this.settings 
186- 		 * requires a computed variable, which break the v-model binding of the form, 
187- 		 * this is a much easier solution than getter and setter on a computed var 
188- 		 */  
189- 		Vue .set (this .newUser .language , ' code' this .settings .defaultLanguage ); 
190- 
191195		/**  
192- 		 * In case the user directly loaded the user list within a group 
193- 		 * the watch won't be triggered. We need to initialize it. 
196+ 		 * Reset and init new user form 
194197		 */  
195- 		this .setNewUserDefaultGroup ( this . selectedGroup );  
198+ 		this .resetForm ()  
196199
197200		/**   
198201		 * Register search 
@@ -206,9 +209,9 @@ export default {
206209		filteredUsers () { 
207210			if  (this .selectedGroup  ===  ' disabled'  
208211				let  disabledUsers =  this .users .filter (user  =>  user .enabled  ===  false ); 
209- 				if  (disabledUsers .length === 0  &&  this .$refs .infiniteLoading  &&  this .$refs .infiniteLoading .isComplete ) { 
212+ 				if  (disabledUsers .length   ===   0  &&  this .$refs .infiniteLoading  &&  this .$refs .infiniteLoading .isComplete ) { 
210213					//  disabled group is empty, redirection to all users 
211- 					this .$router .push ({name:  ' users'  
214+ 					this .$router .push ({  name:  ' users'   }); 
212215					this .$refs .infiniteLoading .stateChanger .reset () 
213216				} 
214217				return  disabledUsers; 
@@ -341,9 +344,23 @@ export default {
341344
342345		resetForm () { 
343346			//  revert form to original state 
344- 			Object .assign (this .newUser , this .$options .data .call (this ).newUser ); 
345- 			//  reset group 
347+ 			this .newUser  =  Object .assign ({}, newUser); 
348+ 
349+ 			/**   
350+ 			 * Init default language from server data. The use of this.settings 
351+ 			 * requires a computed variable, which break the v-model binding of the form, 
352+ 			 * this is a much easier solution than getter and setter on a computed var 
353+ 			 */  
354+ 			if  (this .settings .defaultLanguage ) { 
355+ 				Vue .set (this .newUser .language , ' code' this .settings .defaultLanguage ); 
356+ 			} 
357+ 
358+ 			/**  
359+ 			 * In case the user directly loaded the user list within a group 
360+ 			 * the watch won't be triggered. We need to initialize it. 
361+ 			 */  
346362			this .setNewUserDefaultGroup (this .selectedGroup ); 
363+ 
347364			this .loading .all  =  false ; 
348365		}, 
349366		createUser () { 
0 commit comments