Allow to join an open group
Also: * Refactor interacting with a remote event so that you can interact with a remote group as well * Add a setting for group admins to pick between an open and invite-only group * Fix new groups without posts/todos/resources/events/conversations URL set * Repair local groups that haven't got their posts/todos/resources/events/conversations URL set * Add a scheduled job to refresh remote groups every hour * Add a user setting to pick when to receive notifications when there's new members to approve (will be used when this feature is available) * Fix pagination for members Signed-off-by: Thomas Citharel <tcit@tcit.fr>
This commit is contained in:
@@ -574,3 +574,35 @@ export const EVENT_PERSON_PARTICIPATION_SUBSCRIPTION_CHANGED = gql`
|
||||
}
|
||||
}
|
||||
`;
|
||||
|
||||
export const GROUP_MEMBERSHIP_SUBSCRIPTION_CHANGED = gql`
|
||||
subscription($actorId: ID!) {
|
||||
groupMembershipChanged(personId: $actorId) {
|
||||
id
|
||||
memberships {
|
||||
total
|
||||
elements {
|
||||
id
|
||||
role
|
||||
parent {
|
||||
id
|
||||
preferredUsername
|
||||
name
|
||||
domain
|
||||
avatar {
|
||||
id
|
||||
url
|
||||
}
|
||||
}
|
||||
invitedBy {
|
||||
id
|
||||
preferredUsername
|
||||
name
|
||||
}
|
||||
insertedAt
|
||||
updatedAt
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
`;
|
||||
|
||||
@@ -63,6 +63,7 @@ export const GROUP_FIELDS_FRAGMENTS = gql`
|
||||
preferredUsername
|
||||
suspended
|
||||
visibility
|
||||
openness
|
||||
physicalAddress {
|
||||
description
|
||||
street
|
||||
@@ -262,6 +263,7 @@ export const UPDATE_GROUP = gql`
|
||||
$avatar: PictureInput
|
||||
$banner: PictureInput
|
||||
$visibility: GroupVisibility
|
||||
$openness: Openness
|
||||
$physicalAddress: AddressInput
|
||||
) {
|
||||
updateGroup(
|
||||
@@ -271,12 +273,15 @@ export const UPDATE_GROUP = gql`
|
||||
banner: $banner
|
||||
avatar: $avatar
|
||||
visibility: $visibility
|
||||
openness: $openness
|
||||
physicalAddress: $physicalAddress
|
||||
) {
|
||||
id
|
||||
preferredUsername
|
||||
name
|
||||
summary
|
||||
visibility
|
||||
openness
|
||||
avatar {
|
||||
id
|
||||
url
|
||||
|
||||
@@ -100,3 +100,12 @@ export const REMOVE_MEMBER = gql`
|
||||
}
|
||||
}
|
||||
`;
|
||||
|
||||
export const JOIN_GROUP = gql`
|
||||
mutation JoinGroup($groupId: ID!) {
|
||||
joinGroup(groupId: $groupId) {
|
||||
...MemberFragment
|
||||
}
|
||||
}
|
||||
${MEMBER_FRAGMENT}
|
||||
`;
|
||||
|
||||
@@ -78,3 +78,36 @@ export const SEARCH_PERSONS = gql`
|
||||
}
|
||||
}
|
||||
`;
|
||||
|
||||
export const INTERACT = gql`
|
||||
query Interact($uri: String!) {
|
||||
interact(uri: $uri) {
|
||||
... on Event {
|
||||
id
|
||||
title
|
||||
uuid
|
||||
beginsOn
|
||||
picture {
|
||||
id
|
||||
url
|
||||
}
|
||||
tags {
|
||||
slug
|
||||
title
|
||||
}
|
||||
__typename
|
||||
}
|
||||
... on Group {
|
||||
id
|
||||
avatar {
|
||||
id
|
||||
url
|
||||
}
|
||||
domain
|
||||
preferredUsername
|
||||
name
|
||||
__typename
|
||||
}
|
||||
}
|
||||
}
|
||||
`;
|
||||
|
||||
@@ -119,6 +119,7 @@ export const USER_SETTINGS_FRAGMENT = gql`
|
||||
notificationEachWeek
|
||||
notificationBeforeEvent
|
||||
notificationPendingParticipation
|
||||
notificationPendingMembership
|
||||
}
|
||||
`;
|
||||
|
||||
@@ -141,7 +142,8 @@ export const SET_USER_SETTINGS = gql`
|
||||
$notificationOnDay: Boolean
|
||||
$notificationEachWeek: Boolean
|
||||
$notificationBeforeEvent: Boolean
|
||||
$notificationPendingParticipation: NotificationPendingParticipationEnum
|
||||
$notificationPendingParticipation: NotificationPendingEnum
|
||||
$notificationPendingMembership: NotificationPendingEnum
|
||||
) {
|
||||
setUserSettings(
|
||||
timezone: $timezone
|
||||
@@ -149,6 +151,7 @@ export const SET_USER_SETTINGS = gql`
|
||||
notificationEachWeek: $notificationEachWeek
|
||||
notificationBeforeEvent: $notificationBeforeEvent
|
||||
notificationPendingParticipation: $notificationPendingParticipation
|
||||
notificationPendingMembership: $notificationPendingMembership
|
||||
) {
|
||||
...UserSettingFragment
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user