diff --git a/app/javascript/vue/shared/access_modal/new.vue b/app/javascript/vue/shared/access_modal/assign_flyout.vue similarity index 56% rename from app/javascript/vue/shared/access_modal/new.vue rename to app/javascript/vue/shared/access_modal/assign_flyout.vue index f0bd6d64b..8650f0d4d 100644 --- a/app/javascript/vue/shared/access_modal/new.vue +++ b/app/javascript/vue/shared/access_modal/assign_flyout.vue @@ -1,27 +1,19 @@ diff --git a/app/javascript/vue/shared/access_modal/edit.vue b/app/javascript/vue/shared/access_modal/edit.vue index 04d4ed93f..6f33be73d 100644 --- a/app/javascript/vue/shared/access_modal/edit.vue +++ b/app/javascript/vue/shared/access_modal/edit.vue @@ -1,75 +1,56 @@ @@ -80,6 +61,7 @@ import MenuDropdown from '../menu_dropdown.vue'; import axios from '../../../packs/custom_axios.js'; export default { + emits: ['modified', 'usersReloaded', 'changeVisibility'], props: { params: { type: Object, @@ -90,13 +72,22 @@ export default { }, default_role: { type: Number + }, + reloadUsers: { + type: Boolean } }, - emits: ['changeMode', 'modified'], mounted() { this.getAssignedUsers(); this.getRoles(); }, + watch: { + reloadUsers() { + if (this.reloadUsers) { + this.getAssignedUsers(); + } + } + }, components: { MenuDropdown }, @@ -153,6 +144,7 @@ export default { axios.get(this.params.object.urls.show_access) .then((response) => { this.assignedUsers = response.data.data; + this.$emit('usersReloaded'); }); }, getRoles() { diff --git a/app/javascript/vue/shared/access_modal/modal.vue b/app/javascript/vue/shared/access_modal/modal.vue index 45a0c7c24..bc623cb19 100644 --- a/app/javascript/vue/shared/access_modal/modal.vue +++ b/app/javascript/vue/shared/access_modal/modal.vue @@ -2,15 +2,43 @@ @@ -21,21 +49,22 @@ import SelectDropdown from '../select_dropdown.vue'; import modalMixin from '../modal_mixin'; import editView from './edit.vue'; -import newView from './new.vue'; +import AssignFlyout from './assign_flyout.vue'; export default { + emits: ['modified', 'usersReloaded', 'changeVisibility'], name: 'AccessModal', props: { params: { type: Object, - required: true, - }, + required: true + } }, mixins: [modalMixin], components: { SelectDropdown, editView, - newView, + AssignFlyout }, data() { return { @@ -43,6 +72,9 @@ export default { modified: false, visible: false, default_role: null, + reloadUsers: false, + assigningNewUsers: false, + reloadUnAssignedUsers: false }; }, mounted() { @@ -61,7 +93,7 @@ export default { changeVisibility(status, role) { this.visible = status; this.default_role = role; - }, - }, + } + } }; diff --git a/app/javascript/vue/shared/general_dropdown.vue b/app/javascript/vue/shared/general_dropdown.vue index cc78d91fe..94ae02706 100644 --- a/app/javascript/vue/shared/general_dropdown.vue +++ b/app/javascript/vue/shared/general_dropdown.vue @@ -1,6 +1,6 @@