Skip to content
ConfirmRemoveMemberModal.vue 1.41 KiB
Newer Older
<template>
  <b-modal id="confirm-remove-member-modal" title="Confirm action" ok-title="Remove" @ok="removeMember" ok-variant="danger">
    <p v-if="memberToRemove">Are you sure that you want to remove the user {{memberToRemove.displayName}} from this group?</p>
    <b-form inline v-if="model.permission === 'ADMIN' && memberPermission">
      <b-form-checkbox v-model="removeAlsoPermission">Remove also permission ({{memberPermission}})</b-form-checkbox>
    </b-form>
  </b-modal>
</template>

<script>
import client from 'api-client';
import { mapState, mapActions } from 'vuex';

export default {
  name: 'ConfirmRemoveGroupModal',
  data: function() {
    return {
      memberToRemove: null,
      memberPermission: null,
      removeAlsoPermission: true
    }
  },
  computed: mapState({
    model: state => state.model
  }),
  methods: {
    openRemoveMemberModal: function(member, memberPermission) {
      this.memberToRemove = member;
      this.memberPermission = memberPermission;
      this.$bvModal.show('confirm-remove-member-modal');
    },
    removeMember: function(event) {
      // Prevent modal from closing
      event.preventDefault();

      client.removeMember(this.memberToRemove.id, this.removeAlsoPermission, this.$store.state.input)
        .then(res => {
          this.$store.commit('updateMembersPanel', res);
          this.$bvModal.hide('confirm-remove-member-modal');
        });
    }
  }
}
</script>