Merge branch 'bugs' into 'main'
Various fixes Closes #941, #969, #981, #966 et #965 See merge request framasoft/mobilizon!1141
This commit is contained in:
commit
308f3a6d60
@ -253,7 +253,7 @@ package-app:
|
||||
only:
|
||||
- tags@framasoft/mobilizon
|
||||
artifacts:
|
||||
expire_in: 30 days
|
||||
expire_in: 2 days
|
||||
paths:
|
||||
- ${APP_ASSET}
|
||||
|
||||
@ -302,7 +302,7 @@ multi-arch-release:
|
||||
tags:
|
||||
- "privileged"
|
||||
artifacts:
|
||||
expire_in: 30 days
|
||||
expire_in: 2 days
|
||||
paths:
|
||||
- ${APP_ASSET}
|
||||
parallel:
|
||||
|
@ -52,7 +52,7 @@
|
||||
"intersection-observer": "^0.12.0",
|
||||
"jwt-decode": "^3.1.2",
|
||||
"leaflet": "^1.4.0",
|
||||
"leaflet.locatecontrol": "^0.74.0",
|
||||
"leaflet.locatecontrol": "^0.76.0",
|
||||
"lodash": "^4.17.11",
|
||||
"ngeohash": "^0.6.3",
|
||||
"p-debounce": "^4.0.0",
|
||||
@ -75,7 +75,7 @@
|
||||
"devDependencies": {
|
||||
"@types/jest": "^27.0.2",
|
||||
"@types/leaflet": "^1.5.2",
|
||||
"@types/leaflet.locatecontrol": "^0.60.7",
|
||||
"@types/leaflet.locatecontrol": "^0.74",
|
||||
"@types/lodash": "^4.14.141",
|
||||
"@types/ngeohash": "^0.6.2",
|
||||
"@types/phoenix": "^1.5.2",
|
||||
|
@ -45,6 +45,7 @@ div.eventMetadataBlock {
|
||||
.content-wrapper {
|
||||
overflow: hidden;
|
||||
width: 100%;
|
||||
max-width: calc(100vw - 32px - 20px);
|
||||
|
||||
&.padding-left {
|
||||
padding: 0 20px;
|
||||
|
@ -51,6 +51,13 @@ import { MemberRole } from "@/types/enums";
|
||||
groupMemberships: {
|
||||
query: LOGGED_USER_MEMBERSHIPS,
|
||||
update: (data) => data.loggedUser.memberships,
|
||||
variables() {
|
||||
return {
|
||||
page: 1,
|
||||
limit: 10,
|
||||
membershipName: this.actorFilter,
|
||||
};
|
||||
},
|
||||
},
|
||||
identities: IDENTITIES,
|
||||
currentActor: CURRENT_ACTOR_CLIENT,
|
||||
|
@ -65,42 +65,60 @@
|
||||
/>
|
||||
</div>
|
||||
<div class="column contact-picker">
|
||||
<div v-if="isSelectedActorAGroup && actorMembers.length > 0">
|
||||
<div v-if="isSelectedActorAGroup">
|
||||
<p>{{ $t("Add a contact") }}</p>
|
||||
<b-input
|
||||
:placeholder="$t('Filter by name')"
|
||||
v-model="contactFilter"
|
||||
dir="auto"
|
||||
/>
|
||||
<p
|
||||
class="field"
|
||||
v-for="actor in filteredActorMembers"
|
||||
:key="actor.id"
|
||||
>
|
||||
<b-checkbox v-model="actualContacts" :native-value="actor.id">
|
||||
<div class="media">
|
||||
<div class="media-left">
|
||||
<figure class="image is-48x48" v-if="actor.avatar">
|
||||
<img
|
||||
class="image is-rounded"
|
||||
:src="actor.avatar.url"
|
||||
:alt="actor.avatar.alt"
|
||||
<div v-if="actorMembers.length > 0">
|
||||
<p
|
||||
class="field"
|
||||
v-for="actor in filteredActorMembers"
|
||||
:key="actor.id"
|
||||
>
|
||||
<b-checkbox
|
||||
v-model="actualContacts"
|
||||
:native-value="actor.id"
|
||||
>
|
||||
<div class="media">
|
||||
<div class="media-left">
|
||||
<figure class="image is-48x48" v-if="actor.avatar">
|
||||
<img
|
||||
class="image is-rounded"
|
||||
:src="actor.avatar.url"
|
||||
:alt="actor.avatar.alt"
|
||||
/>
|
||||
</figure>
|
||||
<b-icon
|
||||
v-else
|
||||
size="is-large"
|
||||
icon="account-circle"
|
||||
/>
|
||||
</figure>
|
||||
<b-icon v-else size="is-large" icon="account-circle" />
|
||||
</div>
|
||||
<div class="media-content" v-if="actor.name">
|
||||
<p class="is-4">{{ actor.name }}</p>
|
||||
<p class="is-6 has-text-grey-dark">
|
||||
</div>
|
||||
<div class="media-content" v-if="actor.name">
|
||||
<p class="is-4">{{ actor.name }}</p>
|
||||
<p class="is-6 has-text-grey-dark">
|
||||
{{ `@${usernameWithDomain(actor)}` }}
|
||||
</p>
|
||||
</div>
|
||||
<div class="media-content" v-else>
|
||||
{{ `@${usernameWithDomain(actor)}` }}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="media-content" v-else>
|
||||
{{ `@${usernameWithDomain(actor)}` }}
|
||||
</div>
|
||||
</div>
|
||||
</b-checkbox>
|
||||
</p>
|
||||
</b-checkbox>
|
||||
</p>
|
||||
</div>
|
||||
<div
|
||||
v-else-if="
|
||||
actorMembers.length === 0 && contactFilter.length > 0
|
||||
"
|
||||
>
|
||||
<empty-content icon="account-multiple" :inline="true">
|
||||
{{ $t("No group member found") }}
|
||||
</empty-content>
|
||||
</div>
|
||||
</div>
|
||||
<div v-else class="content has-text-grey-dark has-text-centered">
|
||||
<p>{{ $t("Your profile will be shown as contact.") }}</p>
|
||||
@ -122,6 +140,7 @@ import { Component, Prop, Vue, Watch } from "vue-property-decorator";
|
||||
import { IMember } from "@/types/actor/member.model";
|
||||
import { IActor, IGroup, IPerson, usernameWithDomain } from "../../types/actor";
|
||||
import OrganizerPicker from "./OrganizerPicker.vue";
|
||||
import EmptyContent from "../Utils/EmptyContent.vue";
|
||||
import {
|
||||
CURRENT_ACTOR_CLIENT,
|
||||
IDENTITIES,
|
||||
@ -139,16 +158,17 @@ const MEMBER_ROLES = [
|
||||
];
|
||||
|
||||
@Component({
|
||||
components: { OrganizerPicker },
|
||||
components: { OrganizerPicker, EmptyContent },
|
||||
apollo: {
|
||||
members: {
|
||||
query: GROUP_MEMBERS,
|
||||
variables() {
|
||||
return {
|
||||
name: usernameWithDomain(this.selectedActor),
|
||||
groupName: usernameWithDomain(this.selectedActor),
|
||||
page: this.membersPage,
|
||||
limit: 10,
|
||||
roles: MEMBER_ROLES.join(","),
|
||||
name: this.contactFilter,
|
||||
};
|
||||
},
|
||||
update: (data) => data.group.members,
|
||||
@ -161,9 +181,11 @@ const MEMBER_ROLES = [
|
||||
currentActor: CURRENT_ACTOR_CLIENT,
|
||||
userMemberships: {
|
||||
query: LOGGED_USER_MEMBERSHIPS,
|
||||
variables: {
|
||||
page: 1,
|
||||
limit: 100,
|
||||
variables() {
|
||||
return {
|
||||
page: 1,
|
||||
limit: 10,
|
||||
};
|
||||
},
|
||||
update: (data) => data.loggedUser.memberships,
|
||||
},
|
||||
|
@ -11,7 +11,7 @@
|
||||
<actor-auto-complete v-model="assignedTo" />
|
||||
</b-field>
|
||||
<b-field :label="$t('Due on')">
|
||||
<b-datepicker v-model="dueDate" />
|
||||
<b-datepicker v-model="dueDate" :first-day-of-week="firstDayOfWeek" />
|
||||
</b-field>
|
||||
</div>
|
||||
</div>
|
||||
@ -99,5 +99,9 @@ export default class Todo extends Vue {
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
get firstDayOfWeek(): number {
|
||||
return this.$dateFnsLocale?.options?.weekStartsOn || 0;
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
@ -239,10 +239,14 @@ export const LOGGED_USER_DRAFTS = gql`
|
||||
`;
|
||||
|
||||
export const LOGGED_USER_MEMBERSHIPS = gql`
|
||||
query LoggedUserMemberships($page: Int, $limit: Int) {
|
||||
query LoggedUserMemberships(
|
||||
$membershipName: String
|
||||
$page: Int
|
||||
$limit: Int
|
||||
) {
|
||||
loggedUser {
|
||||
id
|
||||
memberships(page: $page, limit: $limit) {
|
||||
memberships(name: $membershipName, page: $page, limit: $limit) {
|
||||
total
|
||||
elements {
|
||||
id
|
||||
|
@ -44,10 +44,16 @@ export const REJECT_INVITATION = gql`
|
||||
`;
|
||||
|
||||
export const GROUP_MEMBERS = gql`
|
||||
query ($name: String!, $roles: String, $page: Int, $limit: Int) {
|
||||
group(preferredUsername: $name) {
|
||||
query (
|
||||
$groupName: String!
|
||||
$name: String
|
||||
$roles: String
|
||||
$page: Int
|
||||
$limit: Int
|
||||
) {
|
||||
group(preferredUsername: $groupName) {
|
||||
...ActorFragment
|
||||
members(page: $page, limit: $limit, roles: $roles) {
|
||||
members(name: $name, page: $page, limit: $limit, roles: $roles) {
|
||||
elements {
|
||||
id
|
||||
role
|
||||
|
@ -1253,5 +1253,12 @@
|
||||
"The membership request from {profile} was rejected": "The membership request from {profile} was rejected",
|
||||
"The member was approved": "The member was approved",
|
||||
"Emails usually don't contain capitals, make sure you haven't made a typo.": "Emails usually don't contain capitals, make sure you haven't made a typo.",
|
||||
"To follow groups and be informed of their latest events": "To follow groups and be informed of their latest events"
|
||||
"To follow groups and be informed of their latest events": "To follow groups and be informed of their latest events",
|
||||
"No group member found": "No group member found",
|
||||
"This group was not found": "This group was not found",
|
||||
"Back to group list": "Back to group list",
|
||||
"This profile was not found": "This profile was not found",
|
||||
"Back to profile list": "Back to profile list",
|
||||
"This user was not found": "This user was not found",
|
||||
"Back to user list": "Back to user list"
|
||||
}
|
||||
|
@ -1357,5 +1357,12 @@
|
||||
"The membership request from {profile} was rejected": "La demande d'adhésion de {profile} a été rejetée",
|
||||
"The member was approved": "Le ou la membre a été approuvée",
|
||||
"Emails usually don't contain capitals, make sure you haven't made a typo.": "Les emails ne contiennent d'ordinaire pas de capitales, assurez-vous de n'avoir pas fait de faute de frappe.",
|
||||
"To follow groups and be informed of their latest events": "Afin de suivre des groupes et être informé de leurs derniers événements"
|
||||
"To follow groups and be informed of their latest events": "Afin de suivre des groupes et être informé de leurs derniers événements",
|
||||
"No group member found": "Aucun membre du groupe trouvé",
|
||||
"This group was not found": "Ce groupe n'a pas été trouvé",
|
||||
"Back to group list": "Retour à la liste des groupes",
|
||||
"This profile was not found": "Ce profil n'a pas été trouvé",
|
||||
"Back to profile list": "Retour à la liste des profiles",
|
||||
"This user was not found": "Cet utilisateur⋅ice n'a pas été trouvé⋅e",
|
||||
"Back to user list": "Retour à la liste des utilisateur⋅ices"
|
||||
}
|
||||
|
@ -103,7 +103,7 @@
|
||||
:aria-page-label="$t('Page')"
|
||||
:aria-current-label="$t('Current page')"
|
||||
:total="group.members.total"
|
||||
:per-page="EVENTS_PER_PAGE"
|
||||
:per-page="MEMBERS_PER_PAGE"
|
||||
@page-change="onMembersPageChange"
|
||||
>
|
||||
<b-table-column
|
||||
@ -286,6 +286,17 @@
|
||||
</b-table>
|
||||
</section>
|
||||
</div>
|
||||
<empty-content v-else-if="!$apollo.loading" icon="account-multiple">
|
||||
{{ $t("This group was not found") }}
|
||||
<template #desc>
|
||||
<b-button
|
||||
type="is-text"
|
||||
tag="router-link"
|
||||
:to="{ name: RouteName.ADMIN_GROUPS }"
|
||||
>{{ $t("Back to group list") }}</b-button
|
||||
>
|
||||
</template>
|
||||
</empty-content>
|
||||
</template>
|
||||
<script lang="ts">
|
||||
import { Component, Vue, Prop } from "vue-property-decorator";
|
||||
@ -318,6 +329,8 @@ const MEMBERS_PER_PAGE = 10;
|
||||
organizedEventsLimit: EVENTS_PER_PAGE,
|
||||
postsPage: this.postsPage,
|
||||
postsLimit: POSTS_PER_PAGE,
|
||||
membersLimit: MEMBERS_PER_PAGE,
|
||||
membersPage: this.membersPage,
|
||||
};
|
||||
},
|
||||
skip() {
|
||||
|
@ -258,6 +258,17 @@
|
||||
</b-table>
|
||||
</section>
|
||||
</div>
|
||||
<empty-content v-else-if="!$apollo.loading" icon="account">
|
||||
{{ $t("This profile was not found") }}
|
||||
<template #desc>
|
||||
<b-button
|
||||
type="is-text"
|
||||
tag="router-link"
|
||||
:to="{ name: RouteName.PROFILES }"
|
||||
>{{ $t("Back to profile list") }}</b-button
|
||||
>
|
||||
</template>
|
||||
</empty-content>
|
||||
</template>
|
||||
<script lang="ts">
|
||||
import { Component, Vue, Prop } from "vue-property-decorator";
|
||||
|
@ -69,6 +69,17 @@
|
||||
>
|
||||
</div>
|
||||
</div>
|
||||
<empty-content v-else-if="!$apollo.loading" icon="account">
|
||||
{{ $t("This user was not found") }}
|
||||
<template #desc>
|
||||
<b-button
|
||||
type="is-text"
|
||||
tag="router-link"
|
||||
:to="{ name: RouteName.USERS }"
|
||||
>{{ $t("Back to user list") }}</b-button
|
||||
>
|
||||
</template>
|
||||
</empty-content>
|
||||
</template>
|
||||
<script lang="ts">
|
||||
import { Component, Vue, Prop } from "vue-property-decorator";
|
||||
@ -80,6 +91,7 @@ import { usernameWithDomain } from "../../types/actor/actor.model";
|
||||
import RouteName from "../../router/name";
|
||||
import { IUser } from "../../types/current-user.model";
|
||||
import { IPerson } from "../../types/actor";
|
||||
import EmptyContent from "../../components/Utils/EmptyContent.vue";
|
||||
|
||||
@Component({
|
||||
apollo: {
|
||||
@ -104,6 +116,9 @@ import { IPerson } from "../../types/actor";
|
||||
title: user?.email,
|
||||
};
|
||||
},
|
||||
components: {
|
||||
EmptyContent,
|
||||
},
|
||||
})
|
||||
export default class AdminUserProfile extends Vue {
|
||||
@Prop({ required: true }) id!: string;
|
||||
|
@ -53,6 +53,7 @@
|
||||
id: 'begins-on-field',
|
||||
'aria-next-label': $t('Next month'),
|
||||
'aria-previous-label': $t('Previous month'),
|
||||
'first-day-of-week': firstDayOfWeek,
|
||||
}"
|
||||
>
|
||||
</b-datetimepicker>
|
||||
@ -73,6 +74,7 @@
|
||||
id: 'ends-on-field',
|
||||
'aria-next-label': $t('Next month'),
|
||||
'aria-previous-label': $t('Previous month'),
|
||||
'first-day-of-week': firstDayOfWeek,
|
||||
}"
|
||||
>
|
||||
</b-datetimepicker>
|
||||
@ -1325,5 +1327,9 @@ export default class EditEvent extends Vue {
|
||||
isOnline,
|
||||
};
|
||||
}
|
||||
|
||||
get firstDayOfWeek(): number {
|
||||
return this.$dateFnsLocale?.options?.weekStartsOn || 0;
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
@ -59,7 +59,10 @@
|
||||
: $t('Showing events before')
|
||||
"
|
||||
>
|
||||
<b-datepicker v-model="dateFilter" />
|
||||
<b-datepicker
|
||||
v-model="dateFilter"
|
||||
:first-day-of-week="firstDayOfWeek"
|
||||
/>
|
||||
<b-button
|
||||
@click="dateFilter = new Date()"
|
||||
class="reset-area"
|
||||
@ -473,6 +476,10 @@ export default class MyEvents extends Vue {
|
||||
get hideCreateEventButton(): boolean {
|
||||
return !!this.config?.restrictions?.onlyGroupsCanCreateEvents;
|
||||
}
|
||||
|
||||
get firstDayOfWeek(): number {
|
||||
return this.$dateFnsLocale?.options?.weekStartsOn || 0;
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
|
@ -275,7 +275,7 @@ import EmptyContent from "@/components/Utils/EmptyContent.vue";
|
||||
query: GROUP_MEMBERS,
|
||||
variables() {
|
||||
return {
|
||||
name: this.$route.params.preferredUsername,
|
||||
groupName: this.$route.params.preferredUsername,
|
||||
page: this.page,
|
||||
limit: this.MEMBERS_PER_PAGE,
|
||||
roles: this.roles,
|
||||
@ -325,7 +325,7 @@ export default class GroupMembers extends mixins(GroupMixin) {
|
||||
this.inviteError = "";
|
||||
const { roles, MEMBERS_PER_PAGE, group, page } = this;
|
||||
const variables = {
|
||||
name: usernameWithDomain(group),
|
||||
groupName: usernameWithDomain(group),
|
||||
page,
|
||||
limit: MEMBERS_PER_PAGE,
|
||||
roles,
|
||||
@ -393,7 +393,7 @@ export default class GroupMembers extends mixins(GroupMixin) {
|
||||
async removeMember(oldMember: IMember): Promise<void> {
|
||||
const { roles, MEMBERS_PER_PAGE, group, page } = this;
|
||||
const variables = {
|
||||
name: usernameWithDomain(group),
|
||||
groupName: usernameWithDomain(group),
|
||||
page,
|
||||
limit: MEMBERS_PER_PAGE,
|
||||
roles,
|
||||
|
1633
js/yarn.lock
1633
js/yarn.lock
File diff suppressed because it is too large
Load Diff
@ -21,7 +21,7 @@ defmodule Mobilizon.GraphQL.Resolvers.Member do
|
||||
{:ok, Page.t(Member.t())}
|
||||
def find_members_for_group(
|
||||
%Actor{id: group_id} = group,
|
||||
%{page: page, limit: limit, roles: roles},
|
||||
%{page: page, limit: limit, roles: roles} = args,
|
||||
%{
|
||||
context: %{current_user: %User{role: user_role}, current_actor: %Actor{id: actor_id}}
|
||||
} = _resolution
|
||||
@ -39,7 +39,9 @@ defmodule Mobilizon.GraphQL.Resolvers.Member do
|
||||
|> Enum.map(&String.to_existing_atom/1)
|
||||
end
|
||||
|
||||
%Page{} = page = Actors.list_members_for_group(group, roles, page, limit)
|
||||
%Page{} =
|
||||
page = Actors.list_members_for_group(group, Map.get(args, :name), roles, page, limit)
|
||||
|
||||
{:ok, page}
|
||||
else
|
||||
# Actor is not member of group, fallback to public
|
||||
|
@ -376,13 +376,14 @@ defmodule Mobilizon.GraphQL.Resolvers.User do
|
||||
"""
|
||||
def user_memberships(
|
||||
%User{id: user_id},
|
||||
%{page: page, limit: limit} = _args,
|
||||
%{page: page, limit: limit} = args,
|
||||
%{context: %{current_user: %User{id: logged_user_id}}}
|
||||
) do
|
||||
with true <- user_id == logged_user_id,
|
||||
memberships <-
|
||||
Actors.list_memberships_for_user(
|
||||
user_id,
|
||||
Map.get(args, :name),
|
||||
page,
|
||||
limit
|
||||
) do
|
||||
|
@ -103,6 +103,7 @@ defmodule Mobilizon.GraphQL.Schema.Actors.GroupType do
|
||||
)
|
||||
|
||||
field :members, :paginated_member_list do
|
||||
arg(:name, :string, description: "A name to filter members by")
|
||||
arg(:page, :integer, default_value: 1, description: "The page in the paginated member list")
|
||||
arg(:limit, :integer, default_value: 10, description: "The limit of members per page")
|
||||
arg(:roles, :string, default_value: "", description: "Filter members by their role")
|
||||
|
@ -85,6 +85,8 @@ defmodule Mobilizon.GraphQL.Schema.UserType do
|
||||
field(:memberships, :paginated_member_list,
|
||||
description: "The list of memberships for this user"
|
||||
) do
|
||||
arg(:name, :string, description: "A name to filter members by")
|
||||
|
||||
arg(:page, :integer,
|
||||
default_value: 1,
|
||||
description: "The page in the paginated memberships list"
|
||||
|
@ -794,12 +794,14 @@ defmodule Mobilizon.Actors do
|
||||
"""
|
||||
@spec list_memberships_for_user(
|
||||
integer,
|
||||
String.t() | nil,
|
||||
integer | nil,
|
||||
integer | nil
|
||||
) :: Page.t()
|
||||
def list_memberships_for_user(user_id, page, limit) do
|
||||
) :: Page.t(Member.t())
|
||||
def list_memberships_for_user(user_id, name, page, limit) do
|
||||
user_id
|
||||
|> list_members_for_user_query()
|
||||
|> filter_members_by_group_name(name)
|
||||
|> Page.build_page(page, limit)
|
||||
end
|
||||
|
||||
@ -827,12 +829,15 @@ defmodule Mobilizon.Actors do
|
||||
Page.t(Member.t())
|
||||
def list_members_for_group(
|
||||
%Actor{id: group_id, type: :Group},
|
||||
name \\ nil,
|
||||
roles \\ [],
|
||||
page \\ nil,
|
||||
limit \\ nil
|
||||
) do
|
||||
group_id
|
||||
|> members_for_group_query()
|
||||
|> join_members_actor()
|
||||
|> filter_members_by_actor_name(name)
|
||||
|> filter_member_role(roles)
|
||||
|> Page.build_page(page, limit)
|
||||
end
|
||||
@ -1380,13 +1385,10 @@ defmodule Mobilizon.Actors do
|
||||
|
||||
@spec list_members_for_user_query(integer()) :: Ecto.Query.t()
|
||||
defp list_members_for_user_query(user_id) do
|
||||
from(
|
||||
m in Member,
|
||||
join: a in Actor,
|
||||
on: m.actor_id == a.id,
|
||||
where: a.user_id == ^user_id and m.role != ^:not_approved,
|
||||
preload: [:parent, :actor, :invited_by]
|
||||
)
|
||||
Member
|
||||
|> join_members_actor()
|
||||
|> where([m, a], a.user_id == ^user_id and m.role != ^:not_approved)
|
||||
|> preload([:parent, :actor, :invited_by])
|
||||
end
|
||||
|
||||
@spec members_for_actor_query(integer | String.t()) :: Ecto.Query.t()
|
||||
@ -1446,6 +1448,28 @@ defmodule Mobilizon.Actors do
|
||||
from(m in query, where: m.role == ^role)
|
||||
end
|
||||
|
||||
@spec filter_members_by_actor_name(Ecto.Query.t(), String.t() | nil) :: Ecto.Query.t()
|
||||
defp filter_members_by_actor_name(query, nil), do: query
|
||||
defp filter_members_by_actor_name(query, ""), do: query
|
||||
|
||||
defp filter_members_by_actor_name(query, name) when is_binary(name) do
|
||||
where(query, [_q, a], like(a.name, ^"%#{name}%") or like(a.preferred_username, ^"%#{name}%"))
|
||||
end
|
||||
|
||||
defp filter_members_by_group_name(query, nil), do: query
|
||||
defp filter_members_by_group_name(query, ""), do: query
|
||||
|
||||
defp filter_members_by_group_name(query, name) when is_binary(name) do
|
||||
query
|
||||
|> join(:inner, [q], a in Actor, on: q.parent_id == a.id)
|
||||
|> where([_q, ..., a], like(a.name, ^"%#{name}%") or like(a.preferred_username, ^"%#{name}%"))
|
||||
end
|
||||
|
||||
@spec join_members_actor(Ecto.Query.t()) :: Ecto.Query.t()
|
||||
defp join_members_actor(query) do
|
||||
join(query, :inner, [q], a in Actor, on: q.actor_id == a.id)
|
||||
end
|
||||
|
||||
@spec administrator_members_for_group_query(integer | String.t()) :: Ecto.Query.t()
|
||||
defp administrator_members_for_group_query(group_id) do
|
||||
from(
|
||||
|
@ -100,7 +100,7 @@ defmodule Mobilizon.Web.ActivityPub.ActorView do
|
||||
end
|
||||
|
||||
defp fetch_collection(:members, actor, page) do
|
||||
Actors.list_members_for_group(actor, @selected_member_roles, page)
|
||||
Actors.list_members_for_group(actor, nil, @selected_member_roles, page)
|
||||
end
|
||||
|
||||
defp fetch_collection(:resources, actor, page) do
|
||||
|
14
mix.lock
14
mix.lock
@ -24,8 +24,7 @@
|
||||
"decimal": {:hex, :decimal, "2.0.0", "a78296e617b0f5dd4c6caf57c714431347912ffb1d0842e998e9792b5642d697", [:mix], [], "hexpm", "34666e9c55dea81013e77d9d87370fe6cb6291d1ef32f46a1600230b1d44f577"},
|
||||
"dialyxir": {:hex, :dialyxir, "1.1.0", "c5aab0d6e71e5522e77beff7ba9e08f8e02bad90dfbeffae60eaf0cb47e29488", [:mix], [{:erlex, ">= 0.2.6", [hex: :erlex, repo: "hexpm", optional: false]}], "hexpm", "07ea8e49c45f15264ebe6d5b93799d4dd56a44036cf42d0ad9c960bc266c0b9a"},
|
||||
"doctor": {:hex, :doctor, "0.18.0", "114934c1740239953208a39db617699b7e2660770e81129d7f95cdf7837ab766", [:mix], [{:decimal, "~> 2.0", [hex: :decimal, repo: "hexpm", optional: false]}], "hexpm", "829c88c365f72c0666e443ea670ffb6f180de7b90c23d536edabdd8c722b88f4"},
|
||||
"earmark": {:hex, :earmark, "1.4.16", "2188754e590a3c379fdd2783bb44eedd8c54968fa0256b6f336f6d56b089d793", [:mix], [{:earmark_parser, ">= 1.4.16", [hex: :earmark_parser, repo: "hexpm", optional: false]}], "hexpm", "46f853f7ae10bee06923430dca522ba9dcbdc6b7a9729748e8dd5344d21b8418"},
|
||||
"earmark_parser": {:hex, :earmark_parser, "1.4.17", "6f3c7e94170377ba45241d394389e800fb15adc5de51d0a3cd52ae766aafd63f", [:mix], [], "hexpm", "f93ac89c9feca61c165b264b5837bf82344d13bebc634cd575cb711e2e342023"},
|
||||
"earmark_parser": {:hex, :earmark_parser, "1.4.18", "e1b2be73eb08a49fb032a0208bf647380682374a725dfb5b9e510def8397f6f2", [:mix], [], "hexpm", "114a0e85ec3cf9e04b811009e73c206394ffecfcc313e0b346de0d557774ee97"},
|
||||
"eblurhash": {:hex, :eblurhash, "1.2.2", "7da4255aaea984b31bb71155f673257353b0e0554d0d30dcf859547e74602582", [:rebar3], [], "hexpm", "8c20ca00904de023a835a9dcb7b7762fed32264c85a80c3cafa85288e405044c"},
|
||||
"ecto": {:hex, :ecto, "3.7.1", "a20598862351b29f80f285b21ec5297da1181c0442687f9b8329f0445d228892", [:mix], [{:decimal, "~> 1.6 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "d36e5b39fc479e654cffd4dbe1865d9716e4a9b6311faff799b6f90ab81b8638"},
|
||||
"ecto_autoslug_field": {:hex, :ecto_autoslug_field, "3.0.0", "37fbc2f07e6691136afff246f2cf5b159ad395b665a55d06db918975fd2397db", [:mix], [{:ecto, ">= 3.7.0", [hex: :ecto, repo: "hexpm", optional: false]}, {:slugger, ">= 0.3.0", [hex: :slugger, repo: "hexpm", optional: false]}], "hexpm", "8ec252c7cf85f13132062f56a484d6a0ef1f981f7be9ce4ad7e9546dd8c0cc0f"},
|
||||
@ -37,21 +36,19 @@
|
||||
"erlex": {:hex, :erlex, "0.2.6", "c7987d15e899c7a2f34f5420d2a2ea0d659682c06ac607572df55a43753aa12e", [:mix], [], "hexpm", "2ed2e25711feb44d52b17d2780eabf998452f6efda104877a3881c2f8c0c0c75"},
|
||||
"erlport": {:hex, :erlport, "0.10.1", "c96ffa51bbcab0298232fcdfe8c3e110f1598011de71ae6b9082b80c9e2e476a", [:rebar3], [], "hexpm", "34931e8cb62a131d1bc8a2bd04d4007c73c03e4f10e22ee4a218e7172227a918"},
|
||||
"eternal": {:hex, :eternal, "1.2.2", "d1641c86368de99375b98d183042dd6c2b234262b8d08dfd72b9eeaafc2a1abd", [:mix], [], "hexpm", "2c9fe32b9c3726703ba5e1d43a1d255a4f3f2d8f8f9bc19f094c7cb1a7a9e782"},
|
||||
"ex_cldr": {:hex, :ex_cldr, "2.24.1", "159b55b29b2f32897689c4edfcf699761c28d626455642514794a4848c7092d5", [:mix], [{:castore, "~> 0.1", [hex: :castore, repo: "hexpm", optional: true]}, {:certifi, "~> 2.5", [hex: :certifi, repo: "hexpm", optional: true]}, {:cldr_utils, "~> 2.17", [hex: :cldr_utils, repo: "hexpm", optional: false]}, {:decimal, "~> 1.6 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: false]}, {:gettext, "~> 0.13", [hex: :gettext, repo: "hexpm", optional: true]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:nimble_parsec, "~> 0.5 or ~> 1.0", [hex: :nimble_parsec, repo: "hexpm", optional: true]}, {:plug, "~> 1.9", [hex: :plug, repo: "hexpm", optional: true]}], "hexpm", "82a44fab6a09f6481e8dd869c27f0cad783dfe5ff83cb7eef42d556a5134275e"},
|
||||
"ex_cldr": {:hex, :ex_cldr, "2.24.2", "9ff995503074883993c373882a8b663e2680acd4aedb1b92838b36cb2a470bae", [:mix], [{:castore, "~> 0.1", [hex: :castore, repo: "hexpm", optional: true]}, {:certifi, "~> 2.5", [hex: :certifi, repo: "hexpm", optional: true]}, {:cldr_utils, "~> 2.17", [hex: :cldr_utils, repo: "hexpm", optional: false]}, {:decimal, "~> 1.6 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: false]}, {:gettext, "~> 0.13", [hex: :gettext, repo: "hexpm", optional: true]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:nimble_parsec, "~> 0.5 or ~> 1.0", [hex: :nimble_parsec, repo: "hexpm", optional: true]}, {:plug, "~> 1.9", [hex: :plug, repo: "hexpm", optional: true]}], "hexpm", "72e33b7bac19a24bf1918d519d0cb5ad33a56cd53faa89c65f5bf79b873d93bb"},
|
||||
"ex_cldr_calendars": {:hex, :ex_cldr_calendars, "1.17.1", "1371b2769ea892aa1c85f60c1358bf3558c021d4e3e824e27efc89c5d5f121cd", [:mix], [{:calendar_interval, "~> 0.2", [hex: :calendar_interval, repo: "hexpm", optional: true]}, {:ex_cldr, "~> 2.24", [hex: :ex_cldr, repo: "hexpm", optional: false]}, {:ex_cldr_lists, "~> 2.9", [hex: :ex_cldr_lists, repo: "hexpm", optional: true]}, {:ex_cldr_units, "~> 3.8", [hex: :ex_cldr_units, repo: "hexpm", optional: true]}, {:ex_doc, "~> 0.21", [hex: :ex_doc, repo: "hexpm", optional: true]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}], "hexpm", "0d57e476e8042f240ed4b8baeef0f12b7b8a4e22e4da97a33e2a85b11adc7bb4"},
|
||||
"ex_cldr_currencies": {:hex, :ex_cldr_currencies, "2.12.0", "933b188d3a529e4a1140aac44d1d563b5ed0028d76c66983d85134b5e8f15393", [:mix], [{:ex_cldr, "~> 2.24", [hex: :ex_cldr, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}], "hexpm", "245ee8fb459cdfaffbfbfe31f8924e8cc31f92a962640f14fc4c3ddaf1ab8f12"},
|
||||
"ex_cldr_dates_times": {:hex, :ex_cldr_dates_times, "2.10.0", "88ef1369839e5faaea163b663f22133a2e05ca9c7266b700d993140439507603", [:mix], [{:calendar_interval, "~> 0.2", [hex: :calendar_interval, repo: "hexpm", optional: true]}, {:ex_cldr_calendars, "~> 1.17", [hex: :ex_cldr_calendars, repo: "hexpm", optional: false]}, {:ex_cldr_numbers, "~> 2.23", [hex: :ex_cldr_numbers, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}], "hexpm", "1c2072dd2f798393c48bb61217b14af89b1833b7601dd29a73a9254125679695"},
|
||||
"ex_cldr_dates_times": {:hex, :ex_cldr_dates_times, "2.10.1", "a9670d9d9079bfa096e4b18fb3c10a2e2df3bc63d71a9cee19723d4c6b263fb5", [:mix], [{:calendar_interval, "~> 0.2", [hex: :calendar_interval, repo: "hexpm", optional: true]}, {:ex_cldr_calendars, "~> 1.17", [hex: :ex_cldr_calendars, repo: "hexpm", optional: false]}, {:ex_cldr_numbers, "~> 2.23", [hex: :ex_cldr_numbers, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}], "hexpm", "099084f7f5acc0c14435add29a0b57434537cc5727d9ceb28f299c459882cef2"},
|
||||
"ex_cldr_languages": {:hex, :ex_cldr_languages, "0.3.0", "91df38c2f5e89177e22dc70110ab3b131af381ad1063d3e6835ed30fddd42ed2", [:mix], [{:ex_cldr, "~> 2.24.0", [hex: :ex_cldr, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}], "hexpm", "6b473e4d91b37c6b7d09f8ea8127c3431f855b20c546c733a1c43a4ec914197e"},
|
||||
"ex_cldr_numbers": {:hex, :ex_cldr_numbers, "2.23.0", "f77f2bc7ba3a09c5491c8c0dec9485113beb03582578a7c6377f9519ab65fc76", [:mix], [{:decimal, "~> 1.6 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: false]}, {:ex_cldr, "~> 2.24", [hex: :ex_cldr, repo: "hexpm", optional: false]}, {:ex_cldr_currencies, "~> 2.12", [hex: :ex_cldr_currencies, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}], "hexpm", "163a5fb4ed374b8f0290ec1809db475f8f874aa456e7f9ea120fcdedc93b63f7"},
|
||||
"ex_cldr_numbers": {:hex, :ex_cldr_numbers, "2.23.2", "f42ac05286b32e5ea6f812882c453062f137ab062bc4e18506303863ec1c52d7", [:mix], [{:decimal, "~> 1.6 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: false]}, {:ex_cldr, "~> 2.24", [hex: :ex_cldr, repo: "hexpm", optional: false]}, {:ex_cldr_currencies, "~> 2.12", [hex: :ex_cldr_currencies, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}], "hexpm", "5edcaffa52f7b6fd6a7b9c5428d4aa3306e19e059a05988c53e6600c0b10463d"},
|
||||
"ex_doc": {:hex, :ex_doc, "0.26.0", "1922164bac0b18b02f84d6f69cab1b93bc3e870e2ad18d5dacb50a9e06b542a3", [:mix], [{:earmark_parser, "~> 1.4.0", [hex: :earmark_parser, repo: "hexpm", optional: false]}, {:makeup_elixir, "~> 0.14", [hex: :makeup_elixir, repo: "hexpm", optional: false]}, {:makeup_erlang, "~> 0.1", [hex: :makeup_erlang, repo: "hexpm", optional: false]}], "hexpm", "2775d66e494a9a48355db7867478ffd997864c61c65a47d31c4949459281c78d"},
|
||||
"ex_ical": {:hex, :ex_ical, "0.2.0", "4b928b554614704016cc0c9ee226eb854da9327a1cc460457621ceacb1ac29a6", [:mix], [{:timex, "~> 3.1", [hex: :timex, repo: "hexpm", optional: false]}], "hexpm", "db76473b2ae0259e6633c6c479a5a4d8603f09497f55c88f9ef4d53d2b75befb"},
|
||||
"ex_machina": {:hex, :ex_machina, "2.7.0", "b792cc3127fd0680fecdb6299235b4727a4944a09ff0fa904cc639272cd92dc7", [:mix], [{:ecto, "~> 2.2 or ~> 3.0", [hex: :ecto, repo: "hexpm", optional: true]}, {:ecto_sql, "~> 3.0", [hex: :ecto_sql, repo: "hexpm", optional: true]}], "hexpm", "419aa7a39bde11894c87a615c4ecaa52d8f107bbdd81d810465186f783245bf8"},
|
||||
"ex_optimizer": {:hex, :ex_optimizer, "0.1.1", "62da37e206fc2233ff7a4e54e40eae365c40f96c81992fcd15b782eb25169b80", [:mix], [{:file_info, "~> 0.0.4", [hex: :file_info, repo: "hexpm", optional: false]}], "hexpm", "e6f5c059bcd58b66be2f6f257fdc4f69b74b0fa5c9ddd669486af012e4b52286"},
|
||||
"ex_unit_notifier": {:hex, :ex_unit_notifier, "1.2.0", "73ced2ecee0f2da0705e372c21ce61e4e5d927ddb797f73928e52818b9cc1754", [:mix], [], "hexpm", "f38044c9d50de68ad7f0aec4d781a10d9f1c92c62b36bf0227ec0aaa96aee332"},
|
||||
"exactor": {:hex, :exactor, "2.2.4", "5efb4ddeb2c48d9a1d7c9b465a6fffdd82300eb9618ece5d34c3334d5d7245b1", [:mix], [], "hexpm", "1222419f706e01bfa1095aec9acf6421367dcfab798a6f67c54cf784733cd6b5"},
|
||||
"excoveralls": {:hex, :excoveralls, "0.14.4", "295498f1ae47bdc6dce59af9a585c381e1aefc63298d48172efaaa90c3d251db", [:mix], [{:hackney, "~> 1.16", [hex: :hackney, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}], "hexpm", "e3ab02f2df4c1c7a519728a6f0a747e71d7d6e846020aae338173619217931c1"},
|
||||
"exgravatar": {:hex, :exgravatar, "2.0.3", "2349709832ee535f826f48db98cddd294ae62b01acb44d539a16419bd8ebc3e5", [:mix], [], "hexpm", "aca18ff9bd8991d3be3e5446d3bdefc051be084c1ffc9ab2d43b3e65339300e1"},
|
||||
"exjsx": {:hex, :exjsx, "4.0.0", "60548841e0212df401e38e63c0078ec57b33e7ea49b032c796ccad8cde794b5c", [:mix], [{:jsx, "~> 2.8.0", [hex: :jsx, repo: "hexpm", optional: false]}], "hexpm", "32e95820a97cffea67830e91514a2ad53b888850442d6d395f53a1ac60c82e07"},
|
||||
"export": {:hex, :export, "0.1.1", "6dfd268b0692428f89b9285859a2dc02b6dcd2e8fdfbca34ac6e6a331351df91", [:mix], [{:erlport, "~> 0.9", [hex: :erlport, repo: "hexpm", optional: false]}], "hexpm", "3da7444ff4053f1824352f4bdb13fbd2c28c93c2011786fb686b649fdca1021f"},
|
||||
"fast_html": {:hex, :fast_html, "2.0.4", "4910ee49f2f6b19692e3bf30bf97f1b6b7dac489cd6b0f34cd0fe3042c56ba30", [:make, :mix], [{:elixir_make, "~> 0.4", [hex: :elixir_make, repo: "hexpm", optional: false]}, {:nimble_pool, "~> 0.1.0", [hex: :nimble_pool, repo: "hexpm", optional: false]}], "hexpm", "3bb49d541dfc02ad5e425904f53376d758c09f89e521afc7d2b174b3227761ea"},
|
||||
"fast_sanitize": {:hex, :fast_sanitize, "0.2.2", "3cbbaebaea6043865dfb5b4ecb0f1af066ad410a51470e353714b10c42007b81", [:mix], [{:fast_html, "~> 2.0", [hex: :fast_html, repo: "hexpm", optional: false]}, {:plug, "~> 1.8", [hex: :plug, repo: "hexpm", optional: false]}], "hexpm", "69f204db9250afa94a0d559d9110139850f57de2b081719fbafa1e9a89e94466"},
|
||||
@ -79,7 +76,6 @@
|
||||
"ip_reserved": {:hex, :ip_reserved, "0.1.1", "e5112d71f1abf05207f82fd9597d369a5fde1e0b6d1bbe77c02a99bb26ecdc33", [:mix], [{:inet_cidr, "~> 1.0.0", [hex: :inet_cidr, repo: "hexpm", optional: false]}], "hexpm", "55fcd2b6e211caef09ea3f54ef37d43030bec486325d12fe865ab5ed8140a4fe"},
|
||||
"jason": {:hex, :jason, "1.2.2", "ba43e3f2709fd1aa1dce90aaabfd039d000469c05c56f0b8e31978e03fa39052", [:mix], [{:decimal, "~> 1.0 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: true]}], "hexpm", "18a228f5f0058ee183f29f9eae0805c6e59d61c3b006760668d8d18ff0d12179"},
|
||||
"jose": {:hex, :jose, "1.11.2", "f4c018ccf4fdce22c71e44d471f15f723cb3efab5d909ab2ba202b5bf35557b3", [:mix, :rebar3], [], "hexpm", "98143fbc48d55f3a18daba82d34fe48959d44538e9697c08f34200fa5f0947d2"},
|
||||
"jsx": {:hex, :jsx, "2.8.3", "a05252d381885240744d955fbe3cf810504eb2567164824e19303ea59eef62cf", [:mix, :rebar3], [], "hexpm", "fc3499fed7a726995aa659143a248534adc754ebd16ccd437cd93b649a95091f"},
|
||||
"jumper": {:hex, :jumper, "1.0.1", "3c00542ef1a83532b72269fab9f0f0c82bf23a35e27d278bfd9ed0865cecabff", [:mix], [], "hexpm", "318c59078ac220e966d27af3646026db9b5a5e6703cb2aa3e26bcfaba65b7433"},
|
||||
"junit_formatter": {:hex, :junit_formatter, "3.3.0", "bd7914d92885f7cf949dbe1dc6bacf76badfb2c1f5f7b3f9433c20e5b6ec42c8", [:mix], [], "hexpm", "4d040410925324b155ae4c7d41e884a0cdebe53b917bee4f22adf152e987a666"},
|
||||
"linkify": {:hex, :linkify, "0.5.1", "6dc415cbc948b2f6ecec7cb226aab7ba9d3a1815bb501ae33e042334d707ecee", [:mix], [], "hexpm", "a3128c7e22fada4aa7214009501d8131e1fa3faf2f0a68b33dba379dc84ff944"},
|
||||
@ -104,7 +100,7 @@
|
||||
"oban": {:hex, :oban, "2.10.1", "202a90f2aed0130b7d750bdbfea8090c8321bce255bade10fd3699733565add0", [:mix], [{:ecto_sql, "~> 3.6", [hex: :ecto_sql, repo: "hexpm", optional: false]}, {:jason, "~> 1.1", [hex: :jason, repo: "hexpm", optional: false]}, {:postgrex, "~> 0.14", [hex: :postgrex, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "161cdd01194147cd6a3efdb1d6c3d9689309991412f799c1e242c18912e307c3"},
|
||||
"paasaa": {:hex, :paasaa, "0.5.1", "58d8bf61902adfd1d04815a115f0eb3b996845c0360f1831854e21073411e822", [:mix], [], "hexpm", "571f1a33b8e184396a93fc18ee5331f2655c96ba9a6fc383dc675e4bc8fc7596"},
|
||||
"parse_trans": {:hex, :parse_trans, "3.3.1", "16328ab840cc09919bd10dab29e431da3af9e9e7e7e6f0089dd5a2d2820011d8", [:rebar3], [], "hexpm", "07cd9577885f56362d414e8c4c4e6bdf10d43a8767abb92d24cbe8b24c54888b"},
|
||||
"phoenix": {:hex, :phoenix, "1.6.2", "6cbd5c8ed7a797f25a919a37fafbc2fb1634c9cdb12a4448d7a5d0b26926f005", [:mix], [{:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:phoenix_pubsub, "~> 2.0", [hex: :phoenix_pubsub, repo: "hexpm", optional: false]}, {:phoenix_view, "~> 1.0", [hex: :phoenix_view, repo: "hexpm", optional: false]}, {:plug, "~> 1.10", [hex: :plug, repo: "hexpm", optional: false]}, {:plug_cowboy, "~> 2.2", [hex: :plug_cowboy, repo: "hexpm", optional: true]}, {:plug_crypto, "~> 1.2", [hex: :plug_crypto, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "7bbee475acae0c3abc229b7f189e210ea788e63bd168e585f60c299a4b2f9133"},
|
||||
"phoenix": {:hex, :phoenix, "1.6.4", "bc9a757f0a4eac88e1e3501245a6259e74d30970df8c072836d755608dbc4c7d", [:mix], [{:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:phoenix_pubsub, "~> 2.0", [hex: :phoenix_pubsub, repo: "hexpm", optional: false]}, {:phoenix_view, "~> 1.0", [hex: :phoenix_view, repo: "hexpm", optional: false]}, {:plug, "~> 1.10", [hex: :plug, repo: "hexpm", optional: false]}, {:plug_cowboy, "~> 2.2", [hex: :plug_cowboy, repo: "hexpm", optional: true]}, {:plug_crypto, "~> 1.2", [hex: :plug_crypto, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "9b6cb3f31e3ea1049049852703eca794f7afdb0c1dc111d8f166ba032c103a80"},
|
||||
"phoenix_ecto": {:hex, :phoenix_ecto, "4.4.0", "0672ed4e4808b3fbed494dded89958e22fb882de47a97634c0b13e7b0b5f7720", [:mix], [{:ecto, "~> 3.3", [hex: :ecto, repo: "hexpm", optional: false]}, {:phoenix_html, "~> 2.14.2 or ~> 3.0", [hex: :phoenix_html, repo: "hexpm", optional: true]}, {:plug, "~> 1.9", [hex: :plug, repo: "hexpm", optional: false]}], "hexpm", "09864e558ed31ee00bd48fcc1d4fc58ae9678c9e81649075431e69dbabb43cc1"},
|
||||
"phoenix_html": {:hex, :phoenix_html, "3.1.0", "0b499df05aad27160d697a9362f0e89fa0e24d3c7a9065c2bd9d38b4d1416c09", [:mix], [{:plug, "~> 1.5", [hex: :plug, repo: "hexpm", optional: true]}], "hexpm", "0c0a98a2cefa63433657983a2a594c7dee5927e4391e0f1bfd3a151d1def33fc"},
|
||||
"phoenix_live_reload": {:hex, :phoenix_live_reload, "1.3.3", "3a53772a6118d5679bf50fc1670505a290e32a1d195df9e069d8c53ab040c054", [:mix], [{:file_system, "~> 0.2.1 or ~> 0.3", [hex: :file_system, repo: "hexpm", optional: false]}, {:phoenix, "~> 1.4", [hex: :phoenix, repo: "hexpm", optional: false]}], "hexpm", "766796676e5f558dbae5d1bdb066849673e956005e3730dfd5affd7a6da4abac"},
|
||||
|
@ -415,32 +415,32 @@ msgstr ""
|
||||
msgid "%{profile} created the resource %{resource} in group %{group}."
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format, fuzzy
|
||||
#, elixir-format
|
||||
#: lib/service/activity/renderer/discussion.ex:86
|
||||
msgid "%{profile} archived the discussion %{discussion} in group %{group}."
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format, fuzzy
|
||||
#, elixir-format
|
||||
#: lib/service/activity/renderer/discussion.ex:26
|
||||
msgid "%{profile} created the discussion %{discussion} in group %{group}."
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format, fuzzy
|
||||
#, elixir-format
|
||||
#: lib/service/activity/renderer/discussion.ex:101
|
||||
msgid "%{profile} deleted the discussion %{discussion} in group %{group}."
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format, fuzzy
|
||||
#, elixir-format
|
||||
#: lib/service/activity/renderer/discussion.ex:56
|
||||
msgid "%{profile} mentionned you in the discussion %{discussion} in group %{group}."
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format, fuzzy
|
||||
#, elixir-format
|
||||
#: lib/service/activity/renderer/discussion.ex:71
|
||||
msgid "%{profile} renamed the discussion %{discussion} in group %{group}."
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format, fuzzy
|
||||
#, elixir-format
|
||||
#: lib/service/activity/renderer/discussion.ex:41
|
||||
msgid "%{profile} replied to the discussion %{discussion} in group %{group}."
|
||||
msgstr ""
|
||||
|
@ -1427,8 +1427,8 @@ msgstr ""
|
||||
#. File name template for exported list of participants. Should NOT contain spaces. Make sure the output is going to be something standardized that is acceptable as a file name on most systems.
|
||||
#. File name template for exported list of participants. Should NOT contain spaces. Make sure the output is going to be something standardized that is acceptable as a file name on most systems.
|
||||
#, elixir-format
|
||||
#: lib/service/export/participants/csv.ex:73
|
||||
#: lib/service/export/participants/ods.ex:77 lib/service/export/participants/pdf.ex:91
|
||||
#: lib/service/export/participants/csv.ex:81
|
||||
#: lib/service/export/participants/ods.ex:86 lib/service/export/participants/pdf.ex:96
|
||||
msgid "%{event}_participants"
|
||||
msgstr ""
|
||||
|
||||
|
@ -125,24 +125,24 @@ msgid "Cannot refresh the token"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/group.ex:245
|
||||
#: lib/graphql/resolvers/group.ex:252
|
||||
msgid "Current profile is not a member of this group"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/group.ex:249
|
||||
#: lib/graphql/resolvers/group.ex:256
|
||||
msgid "Current profile is not an administrator of the selected group"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/user.ex:613
|
||||
#: lib/graphql/resolvers/user.ex:612
|
||||
msgid "Error while saving user settings"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/error.ex:99 lib/graphql/resolvers/group.ex:242
|
||||
#: lib/graphql/resolvers/group.ex:274 lib/graphql/resolvers/group.ex:311 lib/graphql/resolvers/group.ex:342
|
||||
#: lib/graphql/resolvers/group.ex:391 lib/graphql/resolvers/member.ex:79
|
||||
#: lib/graphql/error.ex:99 lib/graphql/resolvers/group.ex:249
|
||||
#: lib/graphql/resolvers/group.ex:281 lib/graphql/resolvers/group.ex:318 lib/graphql/resolvers/group.ex:349
|
||||
#: lib/graphql/resolvers/group.ex:398 lib/graphql/resolvers/member.ex:81
|
||||
msgid "Group not found"
|
||||
msgstr ""
|
||||
|
||||
@ -157,7 +157,7 @@ msgid "Impossible to authenticate, either your email or password are invalid."
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/group.ex:308
|
||||
#: lib/graphql/resolvers/group.ex:315
|
||||
msgid "Member not found"
|
||||
msgstr ""
|
||||
|
||||
@ -190,33 +190,33 @@ msgid "Registrations are not open"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/user.ex:428
|
||||
#: lib/graphql/resolvers/user.ex:429
|
||||
msgid "The current password is invalid"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/user.ex:471
|
||||
#: lib/graphql/resolvers/user.ex:472
|
||||
msgid "The new email doesn't seem to be valid"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/user.ex:474
|
||||
#: lib/graphql/resolvers/user.ex:475
|
||||
msgid "The new email must be different"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/user.ex:431
|
||||
#: lib/graphql/resolvers/user.ex:432
|
||||
msgid "The new password must be different"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/user.ex:478 lib/graphql/resolvers/user.ex:540
|
||||
#: lib/graphql/resolvers/user.ex:543
|
||||
#: lib/graphql/resolvers/user.ex:479 lib/graphql/resolvers/user.ex:541
|
||||
#: lib/graphql/resolvers/user.ex:544
|
||||
msgid "The password provided is invalid"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/user.ex:435
|
||||
#: lib/graphql/resolvers/user.ex:436
|
||||
msgid "The password you have chosen is too short. Please make sure your password contains at least 6 characters."
|
||||
msgstr ""
|
||||
|
||||
@ -236,27 +236,27 @@ msgid "Unable to validate user"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/user.ex:521
|
||||
#: lib/graphql/resolvers/user.ex:522
|
||||
msgid "User already disabled"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/user.ex:588
|
||||
#: lib/graphql/resolvers/user.ex:587
|
||||
msgid "User requested is not logged-in"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/group.ex:280
|
||||
#: lib/graphql/resolvers/group.ex:287
|
||||
msgid "You are already a member of this group"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/group.ex:315
|
||||
#: lib/graphql/resolvers/group.ex:322
|
||||
msgid "You can't leave this group because you are the only administrator"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/group.ex:277
|
||||
#: lib/graphql/resolvers/group.ex:284
|
||||
msgid "You cannot join this group"
|
||||
msgstr ""
|
||||
|
||||
@ -266,37 +266,37 @@ msgid "You may not list groups unless moderator."
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/user.ex:486
|
||||
#: lib/graphql/resolvers/user.ex:487
|
||||
msgid "You need to be logged-in to change your email"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/user.ex:443
|
||||
#: lib/graphql/resolvers/user.ex:444
|
||||
msgid "You need to be logged-in to change your password"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/group.ex:254
|
||||
#: lib/graphql/resolvers/group.ex:261
|
||||
msgid "You need to be logged-in to delete a group"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/user.ex:548
|
||||
#: lib/graphql/resolvers/user.ex:549
|
||||
msgid "You need to be logged-in to delete your account"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/group.ex:285
|
||||
#: lib/graphql/resolvers/group.ex:292
|
||||
msgid "You need to be logged-in to join a group"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/group.ex:320
|
||||
#: lib/graphql/resolvers/group.ex:327
|
||||
msgid "You need to be logged-in to leave a group"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/group.ex:218
|
||||
#: lib/graphql/resolvers/group.ex:225
|
||||
msgid "You need to be logged-in to update a group"
|
||||
msgstr ""
|
||||
|
||||
@ -462,12 +462,12 @@ msgid "Post doesn't exist"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/member.ex:82
|
||||
#: lib/graphql/resolvers/member.ex:84
|
||||
msgid "Profile invited doesn't exist"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/member.ex:91 lib/graphql/resolvers/member.ex:95
|
||||
#: lib/graphql/resolvers/member.ex:93 lib/graphql/resolvers/member.ex:97
|
||||
msgid "Profile is already a member of this group"
|
||||
msgstr ""
|
||||
|
||||
@ -542,13 +542,13 @@ msgid "You are already a participant of this event"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/member.ex:85
|
||||
#: lib/graphql/resolvers/member.ex:87
|
||||
msgid "You are not a member of this group"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/member.ex:155 lib/graphql/resolvers/member.ex:171
|
||||
#: lib/graphql/resolvers/member.ex:186
|
||||
#: lib/graphql/resolvers/member.ex:157 lib/graphql/resolvers/member.ex:173
|
||||
#: lib/graphql/resolvers/member.ex:188
|
||||
msgid "You are not a moderator or admin for this group"
|
||||
msgstr ""
|
||||
|
||||
@ -584,7 +584,7 @@ msgid "You can't leave event because you're the only event creator participant"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/member.ex:190
|
||||
#: lib/graphql/resolvers/member.ex:192
|
||||
msgid "You can't set yourself to a lower member role for this group because you are the only administrator"
|
||||
msgstr ""
|
||||
|
||||
@ -599,7 +599,7 @@ msgid "You cannot delete this event"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/member.ex:88
|
||||
#: lib/graphql/resolvers/member.ex:90
|
||||
msgid "You cannot invite to this group"
|
||||
msgstr ""
|
||||
|
||||
@ -784,12 +784,12 @@ msgid "You need to be logged in"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/member.ex:116
|
||||
#: lib/graphql/resolvers/member.ex:118
|
||||
msgid "You can't accept this invitation with this profile."
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/member.ex:137
|
||||
#: lib/graphql/resolvers/member.ex:139
|
||||
msgid "You can't reject this invitation with this profile."
|
||||
msgstr ""
|
||||
|
||||
@ -799,7 +799,7 @@ msgid "File doesn't have an allowed MIME type."
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/group.ex:213
|
||||
#: lib/graphql/resolvers/group.ex:220
|
||||
msgid "Profile is not administrator for the group"
|
||||
msgstr ""
|
||||
|
||||
@ -814,17 +814,17 @@ msgid "You can't attribute this event to this profile."
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/member.ex:140
|
||||
#: lib/graphql/resolvers/member.ex:142
|
||||
msgid "This invitation doesn't exist."
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/member.ex:215
|
||||
#: lib/graphql/resolvers/member.ex:217
|
||||
msgid "This member already has been rejected."
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/member.ex:239
|
||||
#: lib/graphql/resolvers/member.ex:241
|
||||
msgid "You don't have the right to remove this member."
|
||||
msgstr ""
|
||||
|
||||
@ -849,7 +849,7 @@ msgid "Profile ID provided is not the anonymous profile one"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/group.ex:159 lib/graphql/resolvers/group.ex:201
|
||||
#: lib/graphql/resolvers/group.ex:161 lib/graphql/resolvers/group.ex:203
|
||||
#: lib/graphql/resolvers/person.ex:148 lib/graphql/resolvers/person.ex:182 lib/graphql/resolvers/person.ex:304
|
||||
msgid "The provided picture is too heavy"
|
||||
msgstr ""
|
||||
@ -865,7 +865,7 @@ msgid "Error while creating resource"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/user.ex:504
|
||||
#: lib/graphql/resolvers/user.ex:505
|
||||
msgid "Invalid activation token"
|
||||
msgstr ""
|
||||
|
||||
@ -906,7 +906,7 @@ msgid "Error while creating a discussion"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/user.ex:627
|
||||
#: lib/graphql/resolvers/user.ex:626
|
||||
msgid "Error while updating locale"
|
||||
msgstr ""
|
||||
|
||||
@ -921,17 +921,17 @@ msgid "Failed to leave the event"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/group.ex:209
|
||||
#: lib/graphql/resolvers/group.ex:216
|
||||
msgid "Failed to update the group"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/user.ex:468
|
||||
#: lib/graphql/resolvers/user.ex:469
|
||||
msgid "Failed to update user email"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/user.ex:500
|
||||
#: lib/graphql/resolvers/user.ex:501
|
||||
msgid "Failed to validate user email"
|
||||
msgstr ""
|
||||
|
||||
@ -951,7 +951,7 @@ msgid "You are not the comment creator"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/user.ex:425
|
||||
#: lib/graphql/resolvers/user.ex:426
|
||||
msgid "You cannot change your password."
|
||||
msgstr ""
|
||||
|
||||
@ -976,7 +976,7 @@ msgid "Export to format %{format} is not enabled on this instance"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/group.ex:165
|
||||
#: lib/graphql/resolvers/group.ex:167
|
||||
msgid "Only admins can create groups"
|
||||
msgstr ""
|
||||
|
||||
@ -991,17 +991,17 @@ msgid "Unknown error while creating event"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/user.ex:481
|
||||
#: lib/graphql/resolvers/user.ex:482
|
||||
msgid "User cannot change email"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/group.ex:364
|
||||
#: lib/graphql/resolvers/group.ex:371
|
||||
msgid "Follow does not match your account"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/group.ex:368
|
||||
#: lib/graphql/resolvers/group.ex:375
|
||||
msgid "Follow not found"
|
||||
msgstr ""
|
||||
|
||||
@ -1016,37 +1016,37 @@ msgid "This profile does not belong to you"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/group.ex:338
|
||||
#: lib/graphql/resolvers/group.ex:345
|
||||
msgid "You are already following this group"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/group.ex:347
|
||||
#: lib/graphql/resolvers/group.ex:354
|
||||
msgid "You need to be logged-in to follow a group"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/group.ex:396
|
||||
#: lib/graphql/resolvers/group.ex:403
|
||||
msgid "You need to be logged-in to unfollow a group"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/group.ex:373
|
||||
#: lib/graphql/resolvers/group.ex:380
|
||||
msgid "You need to be logged-in to update a group follow"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/member.ex:208
|
||||
#: lib/graphql/resolvers/member.ex:210
|
||||
msgid "This member does not exist"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/member.ex:232
|
||||
#: lib/graphql/resolvers/member.ex:234
|
||||
msgid "You don't have the role needed to remove this member."
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/member.ex:250
|
||||
#: lib/graphql/resolvers/member.ex:252
|
||||
msgid "You must be logged-in to remove a member"
|
||||
msgstr ""
|
||||
|
||||
|
@ -409,32 +409,32 @@ msgstr ""
|
||||
msgid "%{profile} created the resource %{resource} in group %{group}."
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format, fuzzy
|
||||
#, elixir-format
|
||||
#: lib/service/activity/renderer/discussion.ex:86
|
||||
msgid "%{profile} archived the discussion %{discussion} in group %{group}."
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format, fuzzy
|
||||
#, elixir-format
|
||||
#: lib/service/activity/renderer/discussion.ex:26
|
||||
msgid "%{profile} created the discussion %{discussion} in group %{group}."
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format, fuzzy
|
||||
#, elixir-format
|
||||
#: lib/service/activity/renderer/discussion.ex:101
|
||||
msgid "%{profile} deleted the discussion %{discussion} in group %{group}."
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format, fuzzy
|
||||
#, elixir-format
|
||||
#: lib/service/activity/renderer/discussion.ex:56
|
||||
msgid "%{profile} mentionned you in the discussion %{discussion} in group %{group}."
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format, fuzzy
|
||||
#, elixir-format
|
||||
#: lib/service/activity/renderer/discussion.ex:71
|
||||
msgid "%{profile} renamed the discussion %{discussion} in group %{group}."
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format, fuzzy
|
||||
#, elixir-format
|
||||
#: lib/service/activity/renderer/discussion.ex:41
|
||||
msgid "%{profile} replied to the discussion %{discussion} in group %{group}."
|
||||
msgstr ""
|
||||
|
@ -1406,8 +1406,8 @@ msgstr ""
|
||||
#. File name template for exported list of participants. Should NOT contain spaces. Make sure the output is going to be something standardized that is acceptable as a file name on most systems.
|
||||
#. File name template for exported list of participants. Should NOT contain spaces. Make sure the output is going to be something standardized that is acceptable as a file name on most systems.
|
||||
#, elixir-format
|
||||
#: lib/service/export/participants/csv.ex:73
|
||||
#: lib/service/export/participants/ods.ex:77 lib/service/export/participants/pdf.ex:91
|
||||
#: lib/service/export/participants/csv.ex:81
|
||||
#: lib/service/export/participants/ods.ex:86 lib/service/export/participants/pdf.ex:96
|
||||
msgid "%{event}_participants"
|
||||
msgstr ""
|
||||
|
||||
|
@ -99,24 +99,24 @@ msgid "Cannot refresh the token"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/group.ex:245
|
||||
#: lib/graphql/resolvers/group.ex:252
|
||||
msgid "Current profile is not a member of this group"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/group.ex:249
|
||||
#: lib/graphql/resolvers/group.ex:256
|
||||
msgid "Current profile is not an administrator of the selected group"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/user.ex:613
|
||||
#: lib/graphql/resolvers/user.ex:612
|
||||
msgid "Error while saving user settings"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/error.ex:99 lib/graphql/resolvers/group.ex:242
|
||||
#: lib/graphql/resolvers/group.ex:274 lib/graphql/resolvers/group.ex:311 lib/graphql/resolvers/group.ex:342
|
||||
#: lib/graphql/resolvers/group.ex:391 lib/graphql/resolvers/member.ex:79
|
||||
#: lib/graphql/error.ex:99 lib/graphql/resolvers/group.ex:249
|
||||
#: lib/graphql/resolvers/group.ex:281 lib/graphql/resolvers/group.ex:318 lib/graphql/resolvers/group.ex:349
|
||||
#: lib/graphql/resolvers/group.ex:398 lib/graphql/resolvers/member.ex:81
|
||||
msgid "Group not found"
|
||||
msgstr ""
|
||||
|
||||
@ -131,7 +131,7 @@ msgid "Impossible to authenticate, either your email or password are invalid."
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/group.ex:308
|
||||
#: lib/graphql/resolvers/group.ex:315
|
||||
msgid "Member not found"
|
||||
msgstr ""
|
||||
|
||||
@ -164,33 +164,33 @@ msgid "Registrations are not open"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/user.ex:428
|
||||
#: lib/graphql/resolvers/user.ex:429
|
||||
msgid "The current password is invalid"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/user.ex:471
|
||||
#: lib/graphql/resolvers/user.ex:472
|
||||
msgid "The new email doesn't seem to be valid"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/user.ex:474
|
||||
#: lib/graphql/resolvers/user.ex:475
|
||||
msgid "The new email must be different"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/user.ex:431
|
||||
#: lib/graphql/resolvers/user.ex:432
|
||||
msgid "The new password must be different"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/user.ex:478 lib/graphql/resolvers/user.ex:540
|
||||
#: lib/graphql/resolvers/user.ex:543
|
||||
#: lib/graphql/resolvers/user.ex:479 lib/graphql/resolvers/user.ex:541
|
||||
#: lib/graphql/resolvers/user.ex:544
|
||||
msgid "The password provided is invalid"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
|