Skip to content

Commit 06b766a

Browse files
skjnldsvnpmbuildbot[bot]
authored andcommitted
Reset and init new user form language
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com> Signed-off-by: npmbuildbot[bot] <npmbuildbot[bot]@users.noreply.github.com>
1 parent d682fef commit 06b766a

File tree

5 files changed

+51
-34
lines changed

5 files changed

+51
-34
lines changed

settings/js/vue-6.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

settings/js/vue-6.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

settings/js/vue-settings-apps-users-management.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

settings/js/vue-settings-apps-users-management.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

settings/src/components/userList.vue

Lines changed: 45 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,28 @@ import { Multiselect } from 'nextcloud-vue'
144144
import InfiniteLoading from 'vue-infinite-loading';
145145
import 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+
147169
export 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', label:t('settings', 'Unlimited')},
157-
defaultQuota = {id:'default', label: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', name: 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

Comments
 (0)