Browse Source

Fixed error throw and disablign count group update

Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
tags/v14.0.0beta1
John Molakvoæ (skjnldsv) 6 years ago
parent
commit
cd73cd3a6e
No account linked to committer's email address

+ 2
- 2
settings/js/main.js
File diff suppressed because it is too large
View File


+ 1
- 1
settings/js/main.js.map
File diff suppressed because it is too large
View File


+ 13
- 6
settings/src/components/userList/userRow.vue View File

@@ -326,18 +326,22 @@ export default {
},

/**
* Create a new group
* Create a new group and add user to it
*
* @param {string} groups Group id
* @returns {Promise}
*/
createGroup(gid) {
this.loading = {groups:true, subadmins:true}
this.$store.dispatch('addGroup', gid).then(() => {
this.loading = {groups:false, subadmins:false};
let userid = this.user.id;
this.$store.dispatch('addUserGroup', {userid, gid});
});
this.$store.dispatch('addGroup', gid)
.then(() => {
this.loading = {groups:false, subadmins:false};
let userid = this.user.id;
this.$store.dispatch('addUserGroup', {userid, gid});
})
.catch(() => {
this.loading = {groups:false, subadmins:false};
});
return this.$store.getters.getGroups[this.groups.length];
},

@@ -372,6 +376,9 @@ export default {
if (this.$route.params.selectedGroup === gid) {
this.$store.commit('deleteUser', userid);
}
})
.catch(() => {
this.loading.groups = false
});
},


+ 2
- 2
settings/src/store/index.js View File

@@ -12,10 +12,10 @@ const mutations = {
API_FAILURE(state, error) {
try {
let message = error.error.response.data.ocs.meta.message;
OC.Notification.showHtml(t('settings','An error occured during the request. Unable to proceed.')+'<br>'+message, {timeout: 7});
} catch(e) {
let message = error;
OC.Notification.showTemporary(t('settings','An error occured during the request. Unable to proceed.'));
}
OC.Notification.showHtml(t('settings','An error occured during the request. Unable to proceed.')+'<br>'+message, {timeout: 7});
console.log(state, error);
}
};

+ 23
- 9
settings/src/store/users.js View File

@@ -6,7 +6,7 @@ const orderGroups = function(groups, orderBy) {
* https://github.com/nextcloud/server/blob/208e38e84e1a07a49699aa90dc5b7272d24489f0/lib/private/Group/MetaData.php#L34
*/
if (orderBy === 1) {
return groups.sort((a, b) => a.usercount < b.usercount);
return groups.sort((a, b) => a.usercount-a.disabled < b.usercount - b.disabled);
} else {
return groups.sort((a, b) => a.name.localeCompare(b.name));
}
@@ -69,19 +69,23 @@ const mutations = {
},
addUserGroup(state, { userid, gid }) {
let group = state.groups.find(groupSearch => groupSearch.id == gid);
if (group) {
group.usercount++; // increase count
let user = state.users.find(user => user.id == userid);
// increase count if user is enabled
if (group && user.enabled) {
group.usercount++;
}
let groups = state.users.find(user => user.id == userid).groups;
let groups = user.groups;
groups.push(gid);
state.groups = orderGroups(state.groups, state.orderBy);
},
removeUserGroup(state, { userid, gid }) {
let group = state.groups.find(groupSearch => groupSearch.id == gid);
if (group) {
group.usercount--; // lower count
let user = state.users.find(user => user.id == userid);
// lower count if user is enabled
if (group && user.enabled) {
group.usercount--;
}
let groups = state.users.find(user => user.id == userid).groups;
let groups = user.groups;
groups.splice(groups.indexOf(gid),1);
state.groups = orderGroups(state.groups, state.orderBy);
},
@@ -251,7 +255,12 @@ const actions = {
return api.post(OC.linkToOCS(`cloud/groups`, 2), {groupid: gid})
.then((response) => context.commit('addGroup', gid))
.catch((error) => {throw error;});
}).catch((error) => context.commit('API_FAILURE', { userid, error }));
}).catch((error) => {
context.commit('API_FAILURE', { gid, error });
// let's throw one more time to prevent the view
// from adding the user to a group that doesn't exists
throw error;
});
},

/**
@@ -300,7 +309,12 @@ const actions = {
return api.delete(OC.linkToOCS(`cloud/users/${userid}/groups`, 2), { groupid: gid })
.then((response) => context.commit('removeUserGroup', { userid, gid }))
.catch((error) => {throw error;});
}).catch((error) => context.commit('API_FAILURE', { userid, error }));
}).catch((error) => {
context.commit('API_FAILURE', { userid, error });
// let's throw one more time to prevent
// the view from removing the user row on failure
throw error;
});
},

/**

Loading…
Cancel
Save