Skip to content

Commit

Permalink
Reset and init new user form language
Browse files Browse the repository at this point in the history
Signed-off-by: John Molakvoæ (skjnldsv) <[email protected]>
Signed-off-by: npmbuildbot[bot] <npmbuildbot[bot]@users.noreply.github.com>
  • Loading branch information
skjnldsv authored and npmbuildbot[bot] committed Aug 13, 2019
1 parent d682fef commit 06b766a
Show file tree
Hide file tree
Showing 5 changed files with 51 additions and 34 deletions.
4 changes: 2 additions & 2 deletions settings/js/vue-6.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion settings/js/vue-6.js.map

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions settings/js/vue-settings-apps-users-management.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion settings/js/vue-settings-apps-users-management.js.map

Large diffs are not rendered by default.

73 changes: 45 additions & 28 deletions settings/src/components/userList.vue
Original file line number Diff line number Diff line change
Expand Up @@ -144,6 +144,28 @@ import { Multiselect } from 'nextcloud-vue'
import InfiniteLoading from 'vue-infinite-loading';
import Vue from 'vue';

const unlimitedQuota = {
id: 'none',
label: t('settings', 'Unlimited')
}
const defaultQuota = {
id: 'default',
label: t('settings', 'Default quota')
}
const newUser = {
id: '',
displayName: '',
password: '',
mailAddress: '',
groups: [],
subAdminsGroups: [],
quota: defaultQuota,
language: {
code: 'en',
name: t('settings', 'Default language')
}
}

export default {
name: 'userList',
props: ['users', 'showConfig', 'selectedGroup', 'externalActions'],
Expand All @@ -153,46 +175,27 @@ export default {
InfiniteLoading
},
data() {
let unlimitedQuota = {id:'none', label:t('settings', 'Unlimited')},
defaultQuota = {id:'default', label:t('settings', 'Default quota')};
return {
unlimitedQuota: unlimitedQuota,
defaultQuota: defaultQuota,
unlimitedQuota,
defaultQuota,
loading: {
all: false,
groups: false
},
scrolled: false,
searchQuery: '',
newUser: {
id:'',
displayName:'',
password:'',
mailAddress:'',
groups: [],
subAdminsGroups: [],
quota: defaultQuota,
language: {code: 'en', name: t('settings', 'Default language')}
}
newUser: Object.assign({}, newUser)
};
},
mounted() {
if (!this.settings.canChangePassword) {
OC.Notification.showTemporary(t('settings', 'Password change is disabled because the master key is disabled'));
}

/**
* Init default language from server data. The use of this.settings
* requires a computed variable, which break the v-model binding of the form,
* this is a much easier solution than getter and setter on a computed var
*/
Vue.set(this.newUser.language, 'code', this.settings.defaultLanguage);

/**
* In case the user directly loaded the user list within a group
* the watch won't be triggered. We need to initialize it.
* Reset and init new user form
*/
this.setNewUserDefaultGroup(this.selectedGroup);
this.resetForm()

/**
* Register search
Expand All @@ -206,9 +209,9 @@ export default {
filteredUsers() {
if (this.selectedGroup === 'disabled') {
let disabledUsers = this.users.filter(user => user.enabled === false);
if (disabledUsers.length===0 && this.$refs.infiniteLoading && this.$refs.infiniteLoading.isComplete) {
if (disabledUsers.length === 0 && this.$refs.infiniteLoading && this.$refs.infiniteLoading.isComplete) {
// disabled group is empty, redirection to all users
this.$router.push({name: 'users'});
this.$router.push({ name: 'users' });
this.$refs.infiniteLoading.stateChanger.reset()
}
return disabledUsers;
Expand Down Expand Up @@ -341,9 +344,23 @@ export default {

resetForm() {
// revert form to original state
Object.assign(this.newUser, this.$options.data.call(this).newUser);
// reset group
this.newUser = Object.assign({}, newUser);

/**
* Init default language from server data. The use of this.settings
* requires a computed variable, which break the v-model binding of the form,
* this is a much easier solution than getter and setter on a computed var
*/
if (this.settings.defaultLanguage) {
Vue.set(this.newUser.language, 'code', this.settings.defaultLanguage);
}

/**
* In case the user directly loaded the user list within a group
* the watch won't be triggered. We need to initialize it.
*/
this.setNewUserDefaultGroup(this.selectedGroup);

this.loading.all = false;
},
createUser() {
Expand Down

0 comments on commit 06b766a

Please sign in to comment.