From bc2cc77d4698c0495119d846e25e0d61f22f6652 Mon Sep 17 00:00:00 2001 From: allilengyi Date: Mon, 13 Jun 2022 23:39:48 +0200 Subject: [PATCH] modified event creation workflow to support usage of groups --- .../components/Event/CreateEventDialoge.vue | 153 ++++++++++++++++++ js/src/components/Event/OrganizerPicker.vue | 5 + .../Event/OrganizerPickerWrapper.vue | 3 + js/src/components/NavBar.vue | 26 ++- 4 files changed, 183 insertions(+), 4 deletions(-) create mode 100644 js/src/components/Event/CreateEventDialoge.vue diff --git a/js/src/components/Event/CreateEventDialoge.vue b/js/src/components/Event/CreateEventDialoge.vue new file mode 100644 index 000000000..b8d195178 --- /dev/null +++ b/js/src/components/Event/CreateEventDialoge.vue @@ -0,0 +1,153 @@ + + diff --git a/js/src/components/Event/OrganizerPicker.vue b/js/src/components/Event/OrganizerPicker.vue index 2aba5a8ec..975dbb78e 100644 --- a/js/src/components/Event/OrganizerPicker.vue +++ b/js/src/components/Event/OrganizerPicker.vue @@ -83,6 +83,8 @@ export default class OrganizerPicker extends Vue { @Prop({ required: false, default: false }) restrictModeratorLevel!: boolean; + @Prop({ required: false, default: false }) groupsOnly!: boolean; + groupMemberships: Paginate = { elements: [], total: 0 }; currentActor!: IPerson; @@ -123,6 +125,9 @@ export default class OrganizerPicker extends Vue { } get actualAvailableActors(): IActor[] { + if (this.groupsOnly) { + return this.actualMemberships.map((member) => member.parent); + } return [ this.currentActor, ...this.identities.filter( diff --git a/js/src/components/Event/OrganizerPickerWrapper.vue b/js/src/components/Event/OrganizerPickerWrapper.vue index 20f59c7ff..a7099c6cd 100644 --- a/js/src/components/Event/OrganizerPickerWrapper.vue +++ b/js/src/components/Event/OrganizerPickerWrapper.vue @@ -65,6 +65,7 @@ v-model="selectedActor" @input="relay" :restrict-moderator-level="true" + :groupsOnly="groupsOnly" />
@@ -204,6 +205,8 @@ export default class OrganizerPickerWrapper extends Vue { @Prop({ default: true, type: Boolean }) inline!: boolean; + @Prop({ required: false, default: false }) groupsOnly!: boolean; + @Prop({ type: Array, required: false, default: () => [] }) contacts!: IActor[]; diff --git a/js/src/components/NavBar.vue b/js/src/components/NavBar.vue index 0d8d6ed2c..1c2772471 100644 --- a/js/src/components/NavBar.vue +++ b/js/src/components/NavBar.vue @@ -45,13 +45,27 @@ " > {{ $t("Create") }} + {{ $t("Create") }} + + +