diff --git a/js/src/components/Editor.vue b/js/src/components/Editor.vue index e1c7b39d2..62ae45490 100644 --- a/js/src/components/Editor.vue +++ b/js/src/components/Editor.vue @@ -384,7 +384,7 @@ export default class EditorComponent extends Vue { searchText: query, }, }); - // TODO: TipTap doesn't handle async for onFilter, hence the following line. + // TipTap doesn't handle async for onFilter, hence the following line. this.filteredActors = result.data.searchPersons.elements; return this.filteredActors; }, diff --git a/js/src/components/Event/ShareEventModal.vue b/js/src/components/Event/ShareEventModal.vue index 9d599f2df..f4055f2da 100644 --- a/js/src/components/Event/ShareEventModal.vue +++ b/js/src/components/Event/ShareEventModal.vue @@ -72,7 +72,6 @@ - diff --git a/js/src/graphql/event.ts b/js/src/graphql/event.ts index 1c547802c..4b0085837 100644 --- a/js/src/graphql/event.ts +++ b/js/src/graphql/event.ts @@ -1,4 +1,5 @@ import gql from "graphql-tag"; +import { GROUP_FIELDS_FRAGMENTS } from "./group"; const participantQuery = ` role, @@ -622,3 +623,54 @@ export const GROUP_MEMBERSHIP_SUBSCRIPTION_CHANGED = gql` } } `; + +export const FETCH_GROUP_EVENTS = gql` + query( + $name: String! + $afterDateTime: DateTime + $beforeDateTime: DateTime + $organisedEventsPage: Int + $organisedEventslimit: Int + ) { + group(preferredUsername: $name) { + id + preferredUsername + domain + name + organizedEvents( + afterDatetime: $afterDateTime + beforeDatetime: $beforeDateTime + page: $organisedEventsPage + limit: $organisedEventslimit + ) { + elements { + id + uuid + title + beginsOn + draft + options { + maximumAttendeeCapacity + } + participantStats { + participant + notApproved + } + attributedTo { + id + preferredUsername + name + domain + } + organizerActor { + id + preferredUsername + name + domain + } + } + total + } + } + } +`; diff --git a/js/src/i18n/en_US.json b/js/src/i18n/en_US.json index d98ee3686..0db363aeb 100644 --- a/js/src/i18n/en_US.json +++ b/js/src/i18n/en_US.json @@ -442,7 +442,6 @@ "Actor": "Actor", "Text": "Text", "Upcoming events": "Upcoming events", - "View all upcoming events": "View all upcoming events", "Resources": "Resources", "Public page": "Public page", "Discussions": "Discussions", @@ -810,5 +809,6 @@ "Your participation will be validated once you click the confirmation link into the email.": "Your participation will be validated once you click the confirmation link into the email.", "Unable to load event for participation. The error details are provided below:": "Unable to load event for participation. The error details are provided below:", "Unable to save your participation in this browser.": "Unable to save your participation in this browser.", - "return to the event's page": "return to the event's page" + "return to the event's page": "return to the event's page", + "View all events": "View all events" } diff --git a/js/src/i18n/fr_FR.json b/js/src/i18n/fr_FR.json index 1da661f47..f84e45794 100644 --- a/js/src/i18n/fr_FR.json +++ b/js/src/i18n/fr_FR.json @@ -903,5 +903,6 @@ "Unable to load event for participation. The error details are provided below:": "Impossible de charger l'événement pour la participation. Les détails de l'erreur sont disponibles ci-dessous :", "Unable to save your participation in this browser.": "Échec de la sauvegarde de votre participation dans ce navigateur.", "return to the event's page": "retourner sur la page de l'événement", - "You may now close this window, or {return_to_event}.": "Vous pouvez maintenant fermer cette fenêtre, ou bien {return_to_event}." + "You may now close this window, or {return_to_event}.": "Vous pouvez maintenant fermer cette fenêtre, ou bien {return_to_event}.", + "View all events": "Voir tous les événements" } diff --git a/js/src/mixins/group.ts b/js/src/mixins/group.ts index 0abd0bcd9..43d0d3f1d 100644 --- a/js/src/mixins/group.ts +++ b/js/src/mixins/group.ts @@ -14,6 +14,8 @@ import { Component, Vue } from "vue-property-decorator"; variables() { return { name: this.$route.params.preferredUsername, + beforeDateTime: null, + afterDateTime: new Date(), }; }, skip() { diff --git a/js/src/views/Event/GroupEvents.vue b/js/src/views/Event/GroupEvents.vue index 7f37e7a3b..ed1f20892 100644 --- a/js/src/views/Event/GroupEvents.vue +++ b/js/src/views/Event/GroupEvents.vue @@ -51,7 +51,7 @@ {{ showPassedEvents ? $t("Past events") : $t("Upcoming events") }} {{ $t("Past events") }} - + {{ $t("No events found") }} + + @@ -75,15 +85,17 @@ diff --git a/js/src/views/Group/Group.vue b/js/src/views/Group/Group.vue index 616a494dd..b3a7631fd 100644 --- a/js/src/views/Group/Group.vue +++ b/js/src/views/Group/Group.vue @@ -362,18 +362,26 @@ :key="event.uuid" class="organized-event" /> - {{ $t("View all upcoming events") }} + +
+

{{ $t("No public upcoming events") }}

{{ $t("No public upcoming events") }}

- + + {{ $t("View all events") }}
{{ $t("Latest posts") }} @@ -383,18 +391,19 @@ :key="post.id" :post="post" /> - {{ $t("View all posts") }}

{{ $t("No posts yet") }}

- + + {{ $t("View all posts") }}