You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by ma...@apache.org on 2018/11/15 16:13:20 UTC
[airavata-django-portal] 07/10: AIRAVATA-2711 Change role of group
members
This is an automated email from the ASF dual-hosted git repository.
machristie pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/airavata-django-portal.git
commit b6f870f1b1bf9ec8898b09393b2b2e76a5028ad2
Author: Marcus Christie <ma...@iu.edu>
AuthorDate: Thu Nov 15 09:00:19 2018 -0500
AIRAVATA-2711 Change role of group members
---
.../js/group_components/GroupEditor.vue | 17 +++++++++++---
.../js/group_components/GroupMembersEditor.vue | 27 ++++++++++++++++++++--
2 files changed, 39 insertions(+), 5 deletions(-)
diff --git a/django_airavata/apps/groups/static/django_airavata_groups/js/group_components/GroupEditor.vue b/django_airavata/apps/groups/static/django_airavata_groups/js/group_components/GroupEditor.vue
index cb08f20..9305101 100644
--- a/django_airavata/apps/groups/static/django_airavata_groups/js/group_components/GroupEditor.vue
+++ b/django_airavata/apps/groups/static/django_airavata_groups/js/group_components/GroupEditor.vue
@@ -16,8 +16,8 @@
</b-form-textarea>
</b-form-group>
- <group-members-editor :members="localGroup.members" :admins="localGroup.admins"
- @add-member="addGroupMember" @remove-member="removeGroupMember" />
+ <group-members-editor :members="localGroup.members" :admins="localGroup.admins" @add-member="addGroupMember"
+ @remove-member="removeGroupMember" @change-role-to-member="changeRoleToMember" @change-role-to-admin="changeRoleToAdmin" />
<b-button @click="submitForm" variant="primary">Submit</b-button>
</b-form>
@@ -28,7 +28,6 @@
import { models, services } from "django-airavata-api";
import GroupMembersEditor from "./GroupMembersEditor.vue";
-
export default {
props: {
group: {
@@ -74,10 +73,22 @@ export default {
removeGroupMember(airavataInternalUserId) {
const index = this.localGroup.members.indexOf(airavataInternalUserId);
this.localGroup.members.splice(index, 1);
+ this.removeAdminMember(airavataInternalUserId);
+ },
+ removeAdminMember(airavataInternalUserId) {
const adminIndex = this.localGroup.admins.indexOf(airavataInternalUserId);
if (adminIndex >= 0) {
this.localGroup.admins.splice(adminIndex, 1);
}
+ },
+ changeRoleToMember(airavataInternalUserId) {
+ this.removeAdminMember(airavataInternalUserId);
+ },
+ changeRoleToAdmin(airavataInternalUserId) {
+ const adminIndex = this.localGroup.admins.indexOf(airavataInternalUserId);
+ if (adminIndex < 0) {
+ this.localGroup.admins.push(airavataInternalUserId);
+ }
}
}
};
diff --git a/django_airavata/apps/groups/static/django_airavata_groups/js/group_components/GroupMembersEditor.vue b/django_airavata/apps/groups/static/django_airavata_groups/js/group_components/GroupMembersEditor.vue
index 6582645..d20c6d4 100644
--- a/django_airavata/apps/groups/static/django_airavata_groups/js/group_components/GroupMembersEditor.vue
+++ b/django_airavata/apps/groups/static/django_airavata_groups/js/group_components/GroupMembersEditor.vue
@@ -4,6 +4,10 @@
<autocomplete-text-input id="user-autocomplete" :suggestions="suggestions" @selected="suggestionSelected" />
</b-form-group>
<b-table v-if="membersCount > 0" hover :items="currentMembers" :fields="fields">
+ <template slot="role" slot-scope="data">
+ <b-form-select :value="data.item.role" @input="changeRole(data.item, $event)" :options="groupRoleOptions">
+ </b-form-select>
+ </template>
<template slot="remove" slot-scope="data">
<b-link @click="removeMember(data.item)">
<span class="fa fa-trash"></span>
@@ -93,6 +97,18 @@ export default {
},
membersCount() {
return this.members.length;
+ },
+ groupRoleOptions() {
+ return [
+ {
+ value: "MEMBER",
+ text: "MEMBER"
+ },
+ {
+ value: "ADMIN",
+ text: "ADMIN"
+ }
+ ];
}
},
created() {
@@ -102,10 +118,17 @@ export default {
},
methods: {
suggestionSelected(suggestion) {
- this.$emit('add-member', suggestion.id);
+ this.$emit("add-member", suggestion.id);
},
removeMember(item) {
- this.$emit('remove-member', item.id);
+ this.$emit("remove-member", item.id);
+ },
+ changeRole(item, role) {
+ if (role === "ADMIN") {
+ this.$emit("change-role-to-admin", item.id);
+ } else {
+ this.$emit("change-role-to-member", item.id);
+ }
}
}
};