Merge branch 'improve-build-times' into 'master'
Improve build times See merge request framasoft/mobilizon!608
This commit is contained in:
commit
3847e97a64
@ -30,7 +30,6 @@
|
||||
"graphql": "^15.0.0",
|
||||
"graphql-tag": "^2.10.3",
|
||||
"intersection-observer": "^0.11.0",
|
||||
"javascript-time-ago": "^2.0.4",
|
||||
"leaflet": "^1.4.0",
|
||||
"leaflet.locatecontrol": "^0.72.0",
|
||||
"lodash": "^4.17.11",
|
||||
@ -54,7 +53,6 @@
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/chai": "^4.2.11",
|
||||
"@types/javascript-time-ago": "^2.0.1",
|
||||
"@types/leaflet": "^1.5.2",
|
||||
"@types/leaflet.locatecontrol": "^0.60.7",
|
||||
"@types/lodash": "^4.14.141",
|
||||
|
@ -1,5 +1,9 @@
|
||||
@import "variables.scss";
|
||||
|
||||
@import "~bulma";
|
||||
@import "~bulma-divider";
|
||||
@import "~buefy/src/scss/buefy";
|
||||
|
||||
// a {
|
||||
// color: $violet-2;
|
||||
// }
|
||||
|
@ -46,8 +46,6 @@ export default class ActorCard extends Vue {
|
||||
</style>
|
||||
|
||||
<style lang="scss">
|
||||
@import "../../variables.scss";
|
||||
|
||||
.tooltip {
|
||||
display: block !important;
|
||||
z-index: 10000;
|
||||
|
@ -88,7 +88,6 @@ export default class ParticipantCard extends Vue {
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
@import "../../variables.scss";
|
||||
.card-footer-item {
|
||||
height: $control-height;
|
||||
}
|
||||
|
@ -51,7 +51,7 @@
|
||||
|
||||
<b-table-column field="targetActor.updatedAt" :label="$t('Date')" sortable v-slot="props">
|
||||
<span :title="$options.filters.formatDateTimeString(props.row.updatedAt)">{{
|
||||
timeago(props.row.updatedAt)
|
||||
formatDistanceToNow(new Date(props.row.updatedAt), { locale: $dateFnsLocale })
|
||||
}}</span></b-table-column
|
||||
>
|
||||
|
||||
@ -102,6 +102,7 @@
|
||||
<script lang="ts">
|
||||
import { Component, Mixins } from "vue-property-decorator";
|
||||
import { SnackbarProgrammatic as Snackbar } from "buefy";
|
||||
import { formatDistanceToNow } from "date-fns";
|
||||
import { ACCEPT_RELAY, REJECT_RELAY, RELAY_FOLLOWERS } from "../../graphql/admin";
|
||||
import { Paginate } from "../../types/paginate";
|
||||
import { IFollower } from "../../types/actor/follower.model";
|
||||
@ -126,6 +127,8 @@ export default class Followers extends Mixins(RelayMixin) {
|
||||
|
||||
RelayMixin = RelayMixin;
|
||||
|
||||
formatDistanceToNow = formatDistanceToNow;
|
||||
|
||||
async acceptRelays(): Promise<void> {
|
||||
await this.checkedRows.forEach((row: IFollower) => {
|
||||
this.acceptRelay(`${row.actor.preferredUsername}@${row.actor.domain}`);
|
||||
|
@ -64,7 +64,7 @@
|
||||
|
||||
<b-table-column field="targetActor.updatedAt" :label="$t('Date')" sortable v-slot="props">
|
||||
<span :title="$options.filters.formatDateTimeString(props.row.updatedAt)">{{
|
||||
timeago(props.row.updatedAt)
|
||||
formatDistanceToNow(new Date(props.row.updatedAt), { locale: $dateFnsLocale })
|
||||
}}</span></b-table-column
|
||||
>
|
||||
|
||||
@ -100,6 +100,7 @@
|
||||
<script lang="ts">
|
||||
import { Component, Mixins } from "vue-property-decorator";
|
||||
import { SnackbarProgrammatic as Snackbar } from "buefy";
|
||||
import { formatDistanceToNow } from "date-fns";
|
||||
import { ADD_RELAY, RELAY_FOLLOWINGS, REMOVE_RELAY } from "../../graphql/admin";
|
||||
import { IFollower } from "../../types/actor/follower.model";
|
||||
import { Paginate } from "../../types/paginate";
|
||||
@ -126,6 +127,8 @@ export default class Followings extends Mixins(RelayMixin) {
|
||||
|
||||
RelayMixin = RelayMixin;
|
||||
|
||||
formatDistanceToNow = formatDistanceToNow;
|
||||
|
||||
async followRelay(e: Event): Promise<void> {
|
||||
e.preventDefault();
|
||||
try {
|
||||
|
@ -24,7 +24,12 @@
|
||||
<strong :class="{ organizer: commentFromOrganizer }">{{ comment.actor.name }}</strong>
|
||||
<small>@{{ usernameWithDomain(comment.actor) }}</small>
|
||||
<a class="comment-link has-text-grey" :href="commentURL">
|
||||
<small>{{ timeago(new Date(comment.updatedAt)) }}</small>
|
||||
<small>{{
|
||||
formatDistanceToNow(new Date(comment.updatedAt), {
|
||||
locale: $dateFnsLocale,
|
||||
addSuffix: true,
|
||||
})
|
||||
}}</small>
|
||||
</a>
|
||||
</span>
|
||||
<a v-else class="comment-link has-text-grey" :href="commentURL">
|
||||
@ -130,8 +135,8 @@
|
||||
<script lang="ts">
|
||||
import { Component, Prop, Vue, Ref } from "vue-property-decorator";
|
||||
import EditorComponent from "@/components/Editor.vue";
|
||||
import TimeAgo from "javascript-time-ago";
|
||||
import { SnackbarProgrammatic as Snackbar } from "buefy";
|
||||
import { formatDistanceToNow } from "date-fns";
|
||||
import { CommentModel, IComment } from "../../types/comment.model";
|
||||
import { CURRENT_ACTOR_CLIENT } from "../../graphql/actor";
|
||||
import { IPerson, usernameWithDomain } from "../../types/actor";
|
||||
@ -171,18 +176,13 @@ export default class Comment extends Vue {
|
||||
|
||||
showReplies = false;
|
||||
|
||||
timeAgoInstance: TimeAgo | null = null;
|
||||
|
||||
CommentModeration = CommentModeration;
|
||||
|
||||
usernameWithDomain = usernameWithDomain;
|
||||
|
||||
async mounted(): Promise<void> {
|
||||
const localeName = this.$i18n.locale;
|
||||
const locale = await import(`javascript-time-ago/locale/${localeName}`);
|
||||
TimeAgo.addLocale(locale);
|
||||
this.timeAgoInstance = new TimeAgo(localeName);
|
||||
formatDistanceToNow = formatDistanceToNow;
|
||||
|
||||
async mounted(): Promise<void> {
|
||||
const { hash } = this.$route;
|
||||
if (hash.includes(`#comment-${this.comment.uuid}`)) {
|
||||
this.fetchReplies();
|
||||
@ -243,13 +243,6 @@ export default class Comment extends Vue {
|
||||
this.showReplies = true;
|
||||
}
|
||||
|
||||
timeago(dateTime: Date): string {
|
||||
if (this.timeAgoInstance != null) {
|
||||
return this.timeAgoInstance.format(dateTime);
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
get commentSelected(): boolean {
|
||||
return this.commentId === this.$route.hash;
|
||||
}
|
||||
@ -316,8 +309,6 @@ export default class Comment extends Vue {
|
||||
}
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
@import "@/variables.scss";
|
||||
|
||||
form.reply {
|
||||
padding-bottom: 1rem;
|
||||
}
|
||||
|
@ -43,7 +43,10 @@
|
||||
</span>
|
||||
<div class="post-infos">
|
||||
<span :title="comment.insertedAt | formatDateTimeString">
|
||||
{{ $timeAgo.format(new Date(comment.updatedAt), "twitter") || $t("Right now") }}</span
|
||||
{{
|
||||
formatDistanceToNow(new Date(comment.updatedAt), { locale: $dateFnsLocale }) ||
|
||||
$t("Right now")
|
||||
}}</span
|
||||
>
|
||||
</div>
|
||||
</div>
|
||||
@ -53,7 +56,13 @@
|
||||
v-if="comment.insertedAt.getTime() !== comment.updatedAt.getTime()"
|
||||
:title="comment.updatedAt | formatDateTimeString"
|
||||
>
|
||||
{{ $t("Edited {ago}", { ago: $timeAgo.format(new Date(comment.updatedAt)) }) }}
|
||||
{{
|
||||
$t("Edited {ago}", {
|
||||
ago: formatDistanceToNow(new Date(comment.updatedAt), {
|
||||
locale: $dateFnsLocale,
|
||||
}),
|
||||
})
|
||||
}}
|
||||
</p>
|
||||
</div>
|
||||
<div class="comment-deleted" v-else-if="!editMode">
|
||||
@ -76,7 +85,8 @@
|
||||
</template>
|
||||
<script lang="ts">
|
||||
import { Component, Prop, Vue } from "vue-property-decorator";
|
||||
import { IComment, CommentModel } from "../../types/comment.model";
|
||||
import { formatDistanceToNow } from "date-fns";
|
||||
import { IComment } from "../../types/comment.model";
|
||||
import { usernameWithDomain, IPerson } from "../../types/actor";
|
||||
import { CURRENT_ACTOR_CLIENT } from "../../graphql/actor";
|
||||
|
||||
@ -99,14 +109,16 @@ export default class DiscussionComment extends Vue {
|
||||
|
||||
usernameWithDomain = usernameWithDomain;
|
||||
|
||||
formatDistanceToNow = formatDistanceToNow;
|
||||
|
||||
// isReportModalActive: boolean = false;
|
||||
|
||||
toggleEditMode() {
|
||||
toggleEditMode(): void {
|
||||
this.updatedComment = this.comment.text;
|
||||
this.editMode = !this.editMode;
|
||||
}
|
||||
|
||||
updateComment() {
|
||||
updateComment(): void {
|
||||
this.comment.text = this.updatedComment;
|
||||
this.$emit("update-comment", this.comment);
|
||||
this.toggleEditMode();
|
||||
@ -114,8 +126,6 @@ export default class DiscussionComment extends Vue {
|
||||
}
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
@import "@/variables.scss";
|
||||
|
||||
article.comment {
|
||||
display: flex;
|
||||
border-top: 1px solid #e9e9e9;
|
||||
|
@ -16,7 +16,10 @@
|
||||
<div class="title-and-date">
|
||||
<p class="discussion-minimalist-title">{{ discussion.title }}</p>
|
||||
<span :title="actualDate | formatDateTimeString">
|
||||
{{ $timeAgo.format(new Date(actualDate), "twitter") || $t("Right now") }}</span
|
||||
{{
|
||||
formatDistanceToNowStrict(new Date(actualDate), { locale: $dateFnsLocale }) ||
|
||||
$t("Right now")
|
||||
}}</span
|
||||
>
|
||||
</div>
|
||||
<div class="has-text-grey" v-if="!discussion.lastComment.deletedAt">
|
||||
@ -28,6 +31,7 @@
|
||||
</template>
|
||||
<script lang="ts">
|
||||
import { Component, Prop, Vue } from "vue-property-decorator";
|
||||
import { formatDistanceToNowStrict } from "date-fns";
|
||||
import { IDiscussion } from "../../types/discussions";
|
||||
import RouteName from "../../router/name";
|
||||
|
||||
@ -37,7 +41,9 @@ export default class DiscussionListItem extends Vue {
|
||||
|
||||
RouteName = RouteName;
|
||||
|
||||
get htmlTextEllipsis() {
|
||||
formatDistanceToNowStrict = formatDistanceToNowStrict;
|
||||
|
||||
get htmlTextEllipsis(): string {
|
||||
const element = document.createElement("div");
|
||||
if (this.discussion.lastComment && this.discussion.lastComment.text) {
|
||||
element.innerHTML = this.discussion.lastComment.text
|
||||
@ -47,7 +53,7 @@ export default class DiscussionListItem extends Vue {
|
||||
return element.innerText;
|
||||
}
|
||||
|
||||
get actualDate() {
|
||||
get actualDate(): string | Date | undefined {
|
||||
if (this.discussion.updatedAt === this.discussion.insertedAt && this.discussion.lastComment) {
|
||||
return this.discussion.lastComment.publishedAt;
|
||||
}
|
||||
|
@ -552,8 +552,6 @@ export default class EditorComponent extends Vue {
|
||||
}
|
||||
</script>
|
||||
<style lang="scss">
|
||||
@import "@/variables.scss";
|
||||
|
||||
$color-black: #000;
|
||||
$color-white: #eee;
|
||||
|
||||
|
@ -27,23 +27,21 @@ export default class DateCalendarIcon extends Vue {
|
||||
*/
|
||||
@Prop({ required: true }) date!: string;
|
||||
|
||||
get dateObj() {
|
||||
get dateObj(): Date {
|
||||
return new Date(this.$props.date);
|
||||
}
|
||||
|
||||
get month() {
|
||||
get month(): string {
|
||||
return this.dateObj.toLocaleString(undefined, { month: "short" });
|
||||
}
|
||||
|
||||
get day() {
|
||||
get day(): string {
|
||||
return this.dateObj.toLocaleString(undefined, { day: "numeric" });
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
@import "../../variables.scss";
|
||||
|
||||
time.datetime-container {
|
||||
background: $backgrounds;
|
||||
border: 1px solid $borders;
|
||||
|
@ -115,8 +115,6 @@ export default class EventCard extends Vue {
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
@import "../../variables";
|
||||
|
||||
a.card {
|
||||
display: block;
|
||||
background: $secondary;
|
||||
|
@ -275,8 +275,6 @@ export default class EventListCard extends mixins(ActorMixin, EventMixin) {
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
@import "../../variables";
|
||||
|
||||
article.box {
|
||||
div.tag-container {
|
||||
position: absolute;
|
||||
|
@ -104,8 +104,6 @@ export default class EventListViewCard extends mixins(ActorMixin, EventMixin) {
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
@import "../../variables";
|
||||
|
||||
article.box {
|
||||
div.content {
|
||||
padding: 5px;
|
||||
|
@ -20,8 +20,6 @@ export default class EventMetadataBlock extends Vue {
|
||||
}
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
@import "../../variables.scss";
|
||||
|
||||
h2 {
|
||||
font-size: 1.8rem;
|
||||
font-weight: 500;
|
||||
|
@ -44,8 +44,6 @@ export default class Footer extends Vue {
|
||||
}
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
@import "../variables.scss";
|
||||
|
||||
footer.footer {
|
||||
color: $secondary;
|
||||
display: flex;
|
||||
|
@ -32,8 +32,6 @@ export default class GroupSection extends Vue {
|
||||
}
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
@import "@/variables.scss";
|
||||
|
||||
section {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
|
@ -54,7 +54,7 @@
|
||||
|
||||
<script lang="ts">
|
||||
import { Component, Prop, Vue } from "vue-property-decorator";
|
||||
import { IGroup, IMember, usernameWithDomain } from "@/types/actor";
|
||||
import { IMember, usernameWithDomain } from "@/types/actor";
|
||||
import RouteName from "../../router/name";
|
||||
|
||||
@Component
|
||||
@ -68,8 +68,6 @@ export default class InvitationCard extends Vue {
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
@import "@/variables.scss";
|
||||
|
||||
.media:not(.subfield) {
|
||||
background: lighten($primary, 40%);
|
||||
padding: 10px;
|
||||
|
@ -4,7 +4,7 @@
|
||||
|
||||
<script lang="ts">
|
||||
import { Component, Prop, Vue } from "vue-property-decorator";
|
||||
// eslint-disable-next-line @typescript-eslint/ban-ts-ignore
|
||||
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
||||
// @ts-ignore
|
||||
import MobilizonLogo from "../assets/mobilizon_logo.svg?inline";
|
||||
|
||||
@ -18,8 +18,6 @@ export default class Logo extends Vue {
|
||||
}
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
@import "../variables.scss";
|
||||
|
||||
svg {
|
||||
fill: $background-color;
|
||||
|
||||
|
@ -216,8 +216,6 @@ export default class NavBar extends Vue {
|
||||
}
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
@import "../variables.scss";
|
||||
|
||||
nav {
|
||||
.navbar-item {
|
||||
a.button {
|
||||
|
@ -5,11 +5,17 @@
|
||||
>
|
||||
<div class="title-info-wrapper">
|
||||
<p class="post-minimalist-title">{{ post.title }}</p>
|
||||
<small class="has-text-grey">{{ $timeAgo.format(new Date(post.insertedAt)) }}</small>
|
||||
<small class="has-text-grey">{{
|
||||
formatDistanceToNow(new Date(post.publishAt || post.insertedAt), {
|
||||
locale: $dateFnsLocale,
|
||||
addSuffix: true,
|
||||
})
|
||||
}}</small>
|
||||
</div>
|
||||
</router-link>
|
||||
</template>
|
||||
<script lang="ts">
|
||||
import { formatDistanceToNow } from "date-fns";
|
||||
import { Component, Prop, Vue } from "vue-property-decorator";
|
||||
import RouteName from "../../router/name";
|
||||
import { IPost } from "../../types/post.model";
|
||||
@ -19,6 +25,8 @@ export default class PostListItem extends Vue {
|
||||
@Prop({ required: true, type: Object }) post!: IPost;
|
||||
|
||||
RouteName = RouteName;
|
||||
|
||||
formatDistanceToNow = formatDistanceToNow;
|
||||
}
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
|
@ -114,8 +114,6 @@ export default class FolderItem extends Mixins(ResourceMixin) {
|
||||
}
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
@import "@/variables.scss";
|
||||
|
||||
.resource-wrapper {
|
||||
display: flex;
|
||||
flex: 1;
|
||||
|
@ -57,8 +57,6 @@ export default class ResourceItem extends Vue {
|
||||
}
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
@import "@/variables.scss";
|
||||
|
||||
.resource-wrapper {
|
||||
display: flex;
|
||||
flex: 1;
|
||||
|
@ -111,8 +111,6 @@ export default class ResourceSelector extends Vue {
|
||||
}
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
@import "../../variables.scss";
|
||||
|
||||
.panel {
|
||||
a.panel-block {
|
||||
cursor: default;
|
||||
|
@ -30,8 +30,6 @@ export default class SettingMenuItem extends Vue {
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
@import "@/variables.scss";
|
||||
|
||||
li.setting-menu-item {
|
||||
font-size: 1.05rem;
|
||||
background-color: #fff1de;
|
||||
|
@ -37,8 +37,6 @@ export default class SettingMenuSection extends Vue {
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
@import "@/variables.scss";
|
||||
|
||||
li {
|
||||
font-size: 1.3rem;
|
||||
background-color: $secondary;
|
||||
|
@ -13,8 +13,6 @@ export default class Tag extends Vue {}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
@import "../variables.scss";
|
||||
|
||||
span.tag {
|
||||
background: $purple-3;
|
||||
color: $violet-2;
|
||||
|
@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<div class="card" v-if="todo">
|
||||
<div class="card-content">
|
||||
<b-field :label="$t('Statut')">
|
||||
<b-field :label="$t('Status')">
|
||||
<b-checkbox size="is-large" v-model="status" />
|
||||
</b-field>
|
||||
<b-field :label="$t('Title')">
|
||||
|
@ -12,8 +12,6 @@ import { Component, Vue } from "vue-property-decorator";
|
||||
export default class Subtitle extends Vue {}
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
@import "@/variables.scss";
|
||||
|
||||
h2 {
|
||||
display: block;
|
||||
margin: 15px 0 30px;
|
||||
|
@ -8,14 +8,12 @@ import { Component, Prop, Vue } from "vue-property-decorator";
|
||||
export default class VerticalDivider extends Vue {
|
||||
@Prop({ default: "Or" }) content!: string;
|
||||
|
||||
get dataContent() {
|
||||
get dataContent(): string {
|
||||
return this.content.toLocaleUpperCase();
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
@import "@/variables.scss";
|
||||
|
||||
.is-divider-vertical[data-content]::after {
|
||||
background-color: $body-background-color;
|
||||
}
|
||||
|
@ -2,7 +2,7 @@ import nl2br from "@/filters/utils";
|
||||
import { formatDateString, formatTimeString, formatDateTimeString } from "./datetime";
|
||||
|
||||
export default {
|
||||
install(vue: any) {
|
||||
install(vue: any): void {
|
||||
vue.filter("formatDateString", formatDateString);
|
||||
vue.filter("formatTimeString", formatTimeString);
|
||||
vue.filter("formatDateTimeString", formatDateTimeString);
|
||||
|
@ -204,7 +204,7 @@
|
||||
"Duplicate": "Dupliquer",
|
||||
"Edit": "Modifier",
|
||||
"Edit post": "Éditer le billet",
|
||||
"Edited {ago}": "Édité {ago}",
|
||||
"Edited {ago}": "Édité il y a {ago}",
|
||||
"Eg: Stockholm, Dance, Chess…": "Par exemple : Lyon, Danse, Bridge…",
|
||||
"Either on the {instance} instance or on another instance.": "Sur l'instance {instance} ou bien sur une autre instance.",
|
||||
"Either the account is already validated, either the validation token is incorrect.": "Soit le compte est déjà validé, soit le jeton de validation est incorrect.",
|
||||
|
@ -1,43 +0,0 @@
|
||||
/* eslint-disable @typescript-eslint/camelcase */
|
||||
|
||||
import ar from "./ar.json";
|
||||
import be from "./be.json";
|
||||
import ca from "./ca.json";
|
||||
import cs from "./cs.json";
|
||||
import de from "./de.json";
|
||||
import en_US from "./en_US.json";
|
||||
import es from "./es.json";
|
||||
import fi from "./fi.json";
|
||||
import fr_FR from "./fr_FR.json";
|
||||
import it from "./it.json";
|
||||
import ja from "./ja.json";
|
||||
import nl from "./nl.json";
|
||||
import oc from "./oc.json";
|
||||
import pl from "./pl.json";
|
||||
import pt from "./pt.json";
|
||||
import pt_BR from "./pt_BR.json";
|
||||
import ru from "./ru.json";
|
||||
import sv from "./sv.json";
|
||||
|
||||
export default {
|
||||
ar,
|
||||
be,
|
||||
ca,
|
||||
cs,
|
||||
de,
|
||||
en: en_US,
|
||||
en_US,
|
||||
es,
|
||||
fi,
|
||||
fr: fr_FR,
|
||||
fr_FR,
|
||||
it,
|
||||
ja,
|
||||
nl,
|
||||
oc,
|
||||
pl,
|
||||
pt,
|
||||
pt_BR,
|
||||
ru,
|
||||
sv,
|
||||
};
|
@ -1,19 +1,14 @@
|
||||
{
|
||||
"ar": "العربية",
|
||||
"bg": "Български",
|
||||
"be": "Беларуская мова",
|
||||
"br": "Brezhoneg",
|
||||
"ca": "Català",
|
||||
"co": "Corsu",
|
||||
"cs": "čeština",
|
||||
"de": "Deutsch",
|
||||
"en": "English",
|
||||
"eo": "Esperanto",
|
||||
"es": "Español",
|
||||
"fi": "suomi",
|
||||
"fr": "Français",
|
||||
"gl": "Galego",
|
||||
"hu": "Magyar",
|
||||
"it": "Italiano",
|
||||
"ja": "日本語",
|
||||
"nl": "Dutch",
|
||||
@ -22,9 +17,5 @@
|
||||
"pt": "Português",
|
||||
"pt_PT": "Português (Portugal)",
|
||||
"ru": "Русский",
|
||||
"sq": "Shqip",
|
||||
"sv": "Svenska",
|
||||
"tr": "Türkçe",
|
||||
"vi": "Tiếng Việt",
|
||||
"zh_Hant_TW": "繁體中文(台灣)"
|
||||
"sv": "Svenska"
|
||||
}
|
||||
|
@ -6,33 +6,17 @@ import Component from "vue-class-component";
|
||||
import VueScrollTo from "vue-scrollto";
|
||||
import VueMeta from "vue-meta";
|
||||
import VTooltip from "v-tooltip";
|
||||
import TimeAgo from "javascript-time-ago";
|
||||
import App from "./App.vue";
|
||||
import router from "./router";
|
||||
import { NotifierPlugin } from "./plugins/notifier";
|
||||
import { DateFnsPlugin } from "./plugins/dateFns";
|
||||
import filters from "./filters";
|
||||
import { i18n } from "./utils/i18n";
|
||||
import messages from "./i18n";
|
||||
import apolloProvider from "./vue-apollo";
|
||||
|
||||
Vue.config.productionTip = false;
|
||||
|
||||
let language = document.documentElement.getAttribute("lang") as string;
|
||||
language =
|
||||
language ||
|
||||
((window.navigator as any).userLanguage || window.navigator.language).replace(/-/, "_");
|
||||
export const locale =
|
||||
language && messages.hasOwnProperty(language) ? language : language.split("-")[0];
|
||||
|
||||
import(`javascript-time-ago/locale/${locale}`).then((localeFile) => {
|
||||
TimeAgo.addLocale(localeFile);
|
||||
Vue.prototype.$timeAgo = new TimeAgo(locale);
|
||||
});
|
||||
|
||||
Vue.use(Buefy);
|
||||
Vue.use(NotifierPlugin);
|
||||
Vue.use(DateFnsPlugin, { locale });
|
||||
Vue.use(filters);
|
||||
Vue.use(VueMeta);
|
||||
Vue.use(VueScrollTo);
|
||||
|
@ -1,7 +1,6 @@
|
||||
import { Component, Vue, Ref } from "vue-property-decorator";
|
||||
import { ActorType, IActor } from "@/types/actor";
|
||||
import { IFollower } from "@/types/actor/follower.model";
|
||||
import TimeAgo from "javascript-time-ago";
|
||||
|
||||
@Component
|
||||
export default class RelayMixin extends Vue {
|
||||
@ -13,20 +12,11 @@ export default class RelayMixin extends Vue {
|
||||
|
||||
perPage = 10;
|
||||
|
||||
timeAgoInstance: TimeAgo | null = null;
|
||||
|
||||
async mounted() {
|
||||
const localeName = this.$i18n.locale;
|
||||
const locale = await import(`javascript-time-ago/locale/${localeName}`);
|
||||
TimeAgo.addLocale(locale);
|
||||
this.timeAgoInstance = new TimeAgo(localeName);
|
||||
}
|
||||
|
||||
toggle(row: object) {
|
||||
toggle(row: Record<string, unknown>): void {
|
||||
this.table.toggleDetails(row);
|
||||
}
|
||||
|
||||
async onPageChange(page: number) {
|
||||
async onPageChange(page: number): Promise<void> {
|
||||
this.page = page;
|
||||
await this.$apollo.queries.relayFollowings.fetchMore({
|
||||
variables: {
|
||||
@ -53,11 +43,4 @@ export default class RelayMixin extends Vue {
|
||||
(actor.preferredUsername === "relay" || actor.preferredUsername === actor.domain)
|
||||
);
|
||||
}
|
||||
|
||||
timeago(dateTime: string): string {
|
||||
if (this.timeAgoInstance != null) {
|
||||
return this.timeAgoInstance.format(new Date(dateTime));
|
||||
}
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
import Vue from "vue";
|
||||
import Locale from "date-fns";
|
||||
import VueInstance from "vue";
|
||||
|
||||
declare module "vue/types/vue" {
|
||||
interface Vue {
|
||||
@ -7,8 +7,8 @@ declare module "vue/types/vue" {
|
||||
}
|
||||
}
|
||||
|
||||
export function DateFnsPlugin(vue: typeof Vue, { locale }: { locale: string }): void {
|
||||
export function DateFnsPlugin(vue: typeof VueInstance, { locale }: { locale: string }): void {
|
||||
import(`date-fns/locale/${locale}/index.js`).then((localeEntity) => {
|
||||
Vue.prototype.$dateFnsLocale = localeEntity;
|
||||
VueInstance.prototype.$dateFnsLocale = localeEntity;
|
||||
});
|
||||
}
|
||||
|
@ -1,4 +1,5 @@
|
||||
import Vue from "vue";
|
||||
/* eslint-disable no-shadow */
|
||||
import VueInstance from "vue";
|
||||
import { ColorModifiers } from "buefy/types/helpers.d";
|
||||
import { Route, RawLocation } from "vue-router";
|
||||
|
||||
@ -12,39 +13,39 @@ declare module "vue/types/vue" {
|
||||
beforeRouteEnter?(
|
||||
to: Route,
|
||||
from: Route,
|
||||
next: (to?: RawLocation | false | ((vm: Vue) => void)) => void
|
||||
next: (to?: RawLocation | false | ((vm: VueInstance) => void)) => void
|
||||
): void;
|
||||
|
||||
beforeRouteLeave?(
|
||||
to: Route,
|
||||
from: Route,
|
||||
next: (to?: RawLocation | false | ((vm: Vue) => void)) => void
|
||||
next: (to?: RawLocation | false | ((vm: VueInstance) => void)) => void
|
||||
): void;
|
||||
|
||||
beforeRouteUpdate?(
|
||||
to: Route,
|
||||
from: Route,
|
||||
next: (to?: RawLocation | false | ((vm: Vue) => void)) => void
|
||||
next: (to?: RawLocation | false | ((vm: VueInstance) => void)) => void
|
||||
): void;
|
||||
}
|
||||
}
|
||||
|
||||
export class Notifier {
|
||||
private readonly vue: typeof Vue;
|
||||
private readonly vue: typeof VueInstance;
|
||||
|
||||
constructor(vue: typeof Vue) {
|
||||
constructor(vue: typeof VueInstance) {
|
||||
this.vue = vue;
|
||||
}
|
||||
|
||||
success(message: string) {
|
||||
success(message: string): void {
|
||||
this.notification(message, "is-success");
|
||||
}
|
||||
|
||||
error(message: string) {
|
||||
error(message: string): void {
|
||||
this.notification(message, "is-danger");
|
||||
}
|
||||
|
||||
info(message: string) {
|
||||
info(message: string): void {
|
||||
this.notification(message, "is-info");
|
||||
}
|
||||
|
||||
@ -60,6 +61,6 @@ export class Notifier {
|
||||
}
|
||||
|
||||
/* eslint-disable */
|
||||
export function NotifierPlugin(vue: typeof Vue): void {
|
||||
export function NotifierPlugin(vue: typeof VueInstance): void {
|
||||
vue.prototype.$notifier = new Notifier(vue);
|
||||
}
|
||||
|
@ -1,18 +1,70 @@
|
||||
import Vue from "vue";
|
||||
import VueI18n from "vue-i18n";
|
||||
import messages from "../i18n/index";
|
||||
import { DateFnsPlugin } from "@/plugins/dateFns";
|
||||
import en from "../i18n/en_US.json";
|
||||
import langs from "../i18n/langs.json";
|
||||
|
||||
const DEFAULT_LOCALE = "en";
|
||||
|
||||
let language = document.documentElement.getAttribute("lang") as string;
|
||||
language = language || ((window.navigator as any).userLanguage || window.navigator.language).replace(/-/, "_");
|
||||
export const locale = language && messages.hasOwnProperty(language) ? language : language.split("-")[0];
|
||||
export const locale =
|
||||
language && Object.prototype.hasOwnProperty.call(langs, language) ? language : language.split("-")[0];
|
||||
|
||||
Vue.use(VueI18n);
|
||||
|
||||
console.log(en);
|
||||
console.log(locale);
|
||||
export const i18n = new VueI18n({
|
||||
locale, // set locale
|
||||
messages, // set locale messages
|
||||
fallbackLocale: "en_US",
|
||||
locale: DEFAULT_LOCALE, // set locale
|
||||
messages: (en as unknown) as VueI18n.LocaleMessages, // set locale messages
|
||||
fallbackLocale: "en",
|
||||
});
|
||||
console.log(i18n);
|
||||
|
||||
Vue.use(DateFnsPlugin, { locale });
|
||||
|
||||
const loadedLanguages = ["en"];
|
||||
|
||||
function setI18nLanguage(lang: string): string {
|
||||
i18n.locale = lang;
|
||||
return lang;
|
||||
}
|
||||
|
||||
function fileForLanguage(lang: string) {
|
||||
const matches: Record<string, string> = {
|
||||
fr: "fr_FR",
|
||||
en: "en_US",
|
||||
};
|
||||
if (Object.prototype.hasOwnProperty.call(matches, lang)) {
|
||||
return matches[lang];
|
||||
}
|
||||
return lang;
|
||||
}
|
||||
|
||||
export async function loadLanguageAsync(lang: string): Promise<string> {
|
||||
// If the same language
|
||||
if (i18n.locale === lang) {
|
||||
return Promise.resolve(setI18nLanguage(lang));
|
||||
}
|
||||
|
||||
// If the language was already loaded
|
||||
if (loadedLanguages.includes(lang)) {
|
||||
return Promise.resolve(setI18nLanguage(lang));
|
||||
}
|
||||
|
||||
console.log(fileForLanguage(lang));
|
||||
// If the language hasn't been loaded yet
|
||||
return import(/* webpackChunkName: "lang-[request]" */ `@/i18n/${fileForLanguage(lang)}.json`).then(
|
||||
(newMessages: any) => {
|
||||
i18n.setLocaleMessage(lang, newMessages.default);
|
||||
loadedLanguages.push(lang);
|
||||
return setI18nLanguage(lang);
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
loadLanguageAsync(locale);
|
||||
|
||||
export function formatList(list: string[]): string {
|
||||
if (window.Intl && Intl.ListFormat) {
|
||||
|
@ -135,7 +135,3 @@ $subtitle-sup-size: 15px;
|
||||
$breadcrumb-item-color: $primary;
|
||||
$checkbox-background-color: #fff;
|
||||
$title-color: $violet-3;
|
||||
|
||||
@import "~bulma";
|
||||
@import "~bulma-divider";
|
||||
@import "~buefy/src/scss/buefy";
|
||||
|
@ -119,8 +119,6 @@ export default class About extends Vue {
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
@import "../variables.scss";
|
||||
|
||||
.hero.is-primary {
|
||||
background: $background-color;
|
||||
|
||||
|
@ -122,8 +122,6 @@ export default class AboutInstance extends Vue {
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
@import "../../variables.scss";
|
||||
|
||||
section {
|
||||
&:not(:first-child) {
|
||||
margin: 2rem auto;
|
||||
|
@ -166,8 +166,6 @@ export default class AboutMobilizon extends Vue {}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
@import "../../variables.scss";
|
||||
|
||||
.hero.is-primary {
|
||||
background: $background-color;
|
||||
.subtitle {
|
||||
|
@ -51,8 +51,6 @@ export default class Privacy extends Vue {
|
||||
}
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
@import "@/variables.scss";
|
||||
|
||||
main > .container {
|
||||
background: $white;
|
||||
|
||||
|
@ -27,8 +27,6 @@ export default class Rules extends Vue {
|
||||
}
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
@import "@/variables.scss";
|
||||
|
||||
main > .container {
|
||||
background: $white;
|
||||
}
|
||||
|
@ -144,8 +144,3 @@ export default class Profile extends Vue {
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<style lang="scss">
|
||||
@import "../../variables";
|
||||
@import "~bulma/sass/utilities/_all";
|
||||
@import "~bulma/sass/components/dropdown.sass";
|
||||
</style>
|
||||
|
@ -168,7 +168,6 @@ export default class Register extends mixins(identityEditionMixin) {
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
@import "../../variables.scss";
|
||||
.avatar-enter-active {
|
||||
transition: opacity 1s ease;
|
||||
}
|
||||
|
@ -359,8 +359,6 @@ export default class Settings extends Vue {
|
||||
}
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
@import "../../variables.scss";
|
||||
|
||||
.notification a {
|
||||
color: $primary !important;
|
||||
text-decoration: underline !important;
|
||||
|
@ -145,14 +145,13 @@ export default class Users extends Vue {
|
||||
});
|
||||
}
|
||||
|
||||
onFiltersChange({ email }: { email: string }) {
|
||||
onFiltersChange({ email }: { email: string }): void {
|
||||
this.email = email;
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
@import "../../variables.scss";
|
||||
a.profile,
|
||||
a.user-profile {
|
||||
text-decoration: none;
|
||||
|
@ -296,8 +296,6 @@
|
||||
</template>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
@import "@/variables.scss";
|
||||
|
||||
main section > .container {
|
||||
background: $white;
|
||||
}
|
||||
|
@ -1044,8 +1044,6 @@ export default class Event extends EventMixin {
|
||||
}
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
@import "../../variables";
|
||||
|
||||
.section {
|
||||
padding: 1rem 2rem 4rem;
|
||||
}
|
||||
|
@ -278,8 +278,6 @@ export default class MyEvents extends Vue {
|
||||
|
||||
<!-- Add "scoped" attribute to limit CSS to this component only -->
|
||||
<style lang="scss" scoped>
|
||||
@import "../../variables";
|
||||
|
||||
main > .container {
|
||||
background: $white;
|
||||
}
|
||||
|
@ -365,7 +365,7 @@ export default class Participants extends Vue {
|
||||
|
||||
nl2br = nl2br;
|
||||
|
||||
toggleQueueDetails(row: IParticipant) {
|
||||
toggleQueueDetails(row: IParticipant): void {
|
||||
if (row.metadata.message && row.metadata.message.length < MESSAGE_ELLIPSIS_LENGTH) return;
|
||||
this.queueTable.toggleDetails(row);
|
||||
}
|
||||
@ -374,8 +374,6 @@ export default class Participants extends Vue {
|
||||
|
||||
<!-- Add "scoped" attribute to limit CSS to this component only -->
|
||||
<style lang="scss" scoped>
|
||||
@import "../../variables.scss";
|
||||
|
||||
section {
|
||||
padding: 1rem 0;
|
||||
}
|
||||
|
@ -546,8 +546,6 @@ export default class Group extends mixins(GroupMixin) {
|
||||
}
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
@import "../../variables.scss";
|
||||
|
||||
div.container {
|
||||
background: white;
|
||||
margin-bottom: 3rem;
|
||||
|
@ -120,8 +120,6 @@ export default class MyEvents extends Vue {
|
||||
|
||||
<!-- Add "scoped" attribute to limit CSS to this component only -->
|
||||
<style lang="scss" scoped>
|
||||
@import "../../variables";
|
||||
|
||||
main > .container {
|
||||
background: $white;
|
||||
}
|
||||
|
@ -338,8 +338,6 @@ export default class Home extends Vue {
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
@import "@/variables.scss";
|
||||
|
||||
main > div > .container {
|
||||
background: $white;
|
||||
}
|
||||
|
@ -58,8 +58,6 @@ export default class Interact extends Vue {
|
||||
}
|
||||
</script>
|
||||
<style lang="scss">
|
||||
@import "@/variables.scss";
|
||||
|
||||
main > .container {
|
||||
background: $white;
|
||||
}
|
||||
|
@ -443,8 +443,6 @@ export default class Report extends Vue {
|
||||
}
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
@import "@/variables.scss";
|
||||
|
||||
tbody td img.image,
|
||||
.note img.image {
|
||||
display: inline;
|
||||
|
@ -129,8 +129,6 @@ export default class Post extends Vue {
|
||||
}
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
@import "../../variables.scss";
|
||||
|
||||
article {
|
||||
section.heading-section {
|
||||
text-align: center;
|
||||
|
@ -366,8 +366,6 @@ export default class Search extends Vue {
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
@import "@/variables.scss";
|
||||
|
||||
main > .container {
|
||||
background: $white;
|
||||
|
||||
|
@ -323,8 +323,6 @@ export default class AccountSettings extends Vue {
|
||||
}
|
||||
</script>
|
||||
<style lang="scss">
|
||||
@import "@/variables.scss";
|
||||
|
||||
.setting-title {
|
||||
margin-top: 2rem;
|
||||
margin-bottom: 1rem;
|
||||
|
@ -155,8 +155,6 @@ export default class Notifications extends Vue {
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
@import "../../variables.scss";
|
||||
|
||||
.field {
|
||||
&:not(:last-child) {
|
||||
margin-bottom: 1.5rem;
|
||||
|
@ -17,7 +17,7 @@
|
||||
v-model="$i18n.locale"
|
||||
:placeholder="$t('Select a language')"
|
||||
>
|
||||
<option v-for="(language, lang) in languages" :value="lang" :key="lang">
|
||||
<option v-for="(language, lang) in langs" :value="lang" :key="lang">
|
||||
{{ language }}
|
||||
</option>
|
||||
</b-select>
|
||||
@ -73,8 +73,10 @@ export default class Preferences extends Vue {
|
||||
|
||||
RouteName = RouteName;
|
||||
|
||||
langs: Record<string, string> = langs;
|
||||
|
||||
@Watch("loggedUser")
|
||||
setSavedTimezone(loggedUser: IUser) {
|
||||
setSavedTimezone(loggedUser: IUser): void {
|
||||
if (loggedUser && loggedUser.settings.timezone) {
|
||||
this.selectedTimezone = loggedUser.settings.timezone;
|
||||
} else {
|
||||
@ -87,22 +89,24 @@ export default class Preferences extends Vue {
|
||||
}
|
||||
}
|
||||
|
||||
// eslint-disable-next-line class-methods-use-this
|
||||
sanitize(timezone: string): string {
|
||||
return timezone.split("_").join(" ").replace("St ", "St. ").split("/").join(" - ");
|
||||
}
|
||||
|
||||
get timezones() {
|
||||
get timezones(): Record<string, string[]> {
|
||||
if (!this.config || !this.config.timezones) return {};
|
||||
return this.config.timezones.reduce((acc: { [key: string]: Array<string> }, val: string) => {
|
||||
const components = val.split("/");
|
||||
const [prefix, suffix] = [components.shift() as string, components.join("/")];
|
||||
const pushOrCreate = (
|
||||
acc: { [key: string]: Array<string> },
|
||||
prefix: string,
|
||||
suffix: string
|
||||
acc2: { [key: string]: Array<string> },
|
||||
prefix2: string,
|
||||
suffix2: string
|
||||
) => {
|
||||
(acc[prefix] = acc[prefix] || []).push(suffix);
|
||||
return acc;
|
||||
// eslint-disable-next-line no-param-reassign
|
||||
(acc2[prefix2] = acc2[prefix2] || []).push(suffix2);
|
||||
return acc2;
|
||||
};
|
||||
if (suffix) {
|
||||
return pushOrCreate(acc, prefix, suffix);
|
||||
@ -111,22 +115,8 @@ export default class Preferences extends Vue {
|
||||
}, {});
|
||||
}
|
||||
|
||||
get languages(): object {
|
||||
return this.$i18n.availableLocales.reduce((acc: object, lang: string) => {
|
||||
// @ts-ignore
|
||||
if (langs[lang]) {
|
||||
return {
|
||||
...acc,
|
||||
// @ts-ignore
|
||||
[lang]: langs[lang],
|
||||
};
|
||||
}
|
||||
return acc;
|
||||
}, {} as object);
|
||||
}
|
||||
|
||||
@Watch("selectedTimezone")
|
||||
async updateTimezone() {
|
||||
async updateTimezone(): Promise<void> {
|
||||
if (this.selectedTimezone !== this.loggedUser.settings.timezone) {
|
||||
await this.$apollo.mutate<{ setUserSetting: string }>({
|
||||
mutation: SET_USER_SETTINGS,
|
||||
@ -138,7 +128,7 @@ export default class Preferences extends Vue {
|
||||
}
|
||||
|
||||
@Watch("$i18n.locale")
|
||||
async updateLocale() {
|
||||
async updateLocale(): Promise<void> {
|
||||
await this.$apollo.mutate({
|
||||
mutation: UPDATE_USER_LOCALE,
|
||||
variables: {
|
||||
|
@ -212,9 +212,6 @@ export default class Register extends Vue {
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
@import "../../variables";
|
||||
@import "../../common.scss";
|
||||
|
||||
.avatar-enter-active {
|
||||
transition: opacity 1s ease;
|
||||
}
|
||||
|
@ -7,6 +7,7 @@
|
||||
"importHelpers": true,
|
||||
"moduleResolution": "node",
|
||||
"experimentalDecorators": true,
|
||||
"skipLibCheck": true,
|
||||
"esModuleInterop": true,
|
||||
"allowSyntheticDefaultImports": true,
|
||||
"resolveJsonModule": true,
|
||||
|
@ -5,6 +5,7 @@ module.exports = {
|
||||
runtimeCompiler: true,
|
||||
lintOnSave: true,
|
||||
filenameHashing: true,
|
||||
productionSourceMap: false,
|
||||
outputDir: path.resolve(__dirname, "../priv/static"),
|
||||
configureWebpack: (config) => {
|
||||
// Limit the used memory when building
|
||||
@ -25,6 +26,17 @@ module.exports = {
|
||||
|
||||
config.plugins.push(new ForkTsCheckerWebpackPlugin(forkTsCheckerOptions));
|
||||
},
|
||||
chainWebpack: (config) => {
|
||||
// remove the prefetch plugin
|
||||
config.plugins.delete("prefetch");
|
||||
},
|
||||
css: {
|
||||
loaderOptions: {
|
||||
scss: {
|
||||
additionalData: `@import "@/variables.scss";`,
|
||||
},
|
||||
},
|
||||
},
|
||||
// configureWebpack: {
|
||||
// optimization: {
|
||||
// splitChunks: {
|
||||
|
17
js/yarn.lock
17
js/yarn.lock
@ -1352,11 +1352,6 @@
|
||||
dependencies:
|
||||
"@types/node" "*"
|
||||
|
||||
"@types/javascript-time-ago@^2.0.1":
|
||||
version "2.0.1"
|
||||
resolved "https://registry.yarnpkg.com/@types/javascript-time-ago/-/javascript-time-ago-2.0.1.tgz#819ec39b467409e2fd6acb42bc53ae7d631bbdb0"
|
||||
integrity sha512-6QWXsuqzfUMfsg1DTJan/MfUi80LGS1TOohSqxlgpBZEHH344xpl3LzgANTp7PPWf7Z/9S0l14RMQPF0vH7MIg==
|
||||
|
||||
"@types/json-schema@^7.0.3", "@types/json-schema@^7.0.4", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.6":
|
||||
version "7.0.6"
|
||||
resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.6.tgz#f4c7ec43e81b319a9815115031709f26987891f0"
|
||||
@ -7988,13 +7983,6 @@ javascript-stringify@^2.0.0, javascript-stringify@^2.0.1:
|
||||
resolved "https://registry.yarnpkg.com/javascript-stringify/-/javascript-stringify-2.0.1.tgz#6ef358035310e35d667c675ed63d3eb7c1aa19e5"
|
||||
integrity sha512-yV+gqbd5vaOYjqlbk16EG89xB5udgjqQF3C5FAORDg4f/IS1Yc5ERCv5e/57yBcfJYw05V5JyIXabhwb75Xxow==
|
||||
|
||||
javascript-time-ago@^2.0.4:
|
||||
version "2.2.8"
|
||||
resolved "https://registry.yarnpkg.com/javascript-time-ago/-/javascript-time-ago-2.2.8.tgz#d2821816a648f4659f605e030418af7949f0564e"
|
||||
integrity sha512-VU2GZ88QYl7zEfnKe2VecnPlXunr1awIAf21S13CRUUYlk6cVbmA81GApMXHIbDUfYfsJVcPjjB76KLEPO4fGA==
|
||||
dependencies:
|
||||
relative-time-format "^1.0.5"
|
||||
|
||||
jest-worker@^25.4.0:
|
||||
version "25.5.0"
|
||||
resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-25.5.0.tgz#2611d071b79cea0f43ee57a3d118593ac1547db1"
|
||||
@ -11941,11 +11929,6 @@ relateurl@0.2.x:
|
||||
resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9"
|
||||
integrity sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=
|
||||
|
||||
relative-time-format@^1.0.5:
|
||||
version "1.0.5"
|
||||
resolved "https://registry.yarnpkg.com/relative-time-format/-/relative-time-format-1.0.5.tgz#3fb7c76ae39156afe0a3a7ff0cb7bf30aa0f0fb6"
|
||||
integrity sha512-MAgx/YKcUQYJpIaWcfetPstElnWf26JxVis4PirdwVrrymFdbxyCSm6yENpfB1YuwFbtHSHksN3aBajVNxk10Q==
|
||||
|
||||
remark-parse@^7.0.0:
|
||||
version "7.0.2"
|
||||
resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-7.0.2.tgz#41e7170d9c1d96c3d32cf1109600a9ed50dba7cf"
|
||||
|
@ -17,8 +17,8 @@ defmodule Mobilizon.GraphQL.Schema.PostType do
|
||||
field(:attributed_to, :actor, description: "The post's group")
|
||||
field(:visibility, :post_visibility, description: "The post's visibility")
|
||||
field(:publish_at, :datetime, description: "When the post was published")
|
||||
field(:inserted_at, :naive_datetime, description: "The post's creation date")
|
||||
field(:updated_at, :naive_datetime, description: "The post's last update date")
|
||||
field(:inserted_at, :datetime, description: "The post's creation date")
|
||||
field(:updated_at, :datetime, description: "The post's last update date")
|
||||
|
||||
field(:tags, list_of(:tag),
|
||||
resolve: &Tag.list_tags_for_post/3,
|
||||
|
@ -1643,12 +1643,17 @@ defmodule Mobilizon.Events do
|
||||
where(query, [q], q.local == true)
|
||||
end
|
||||
|
||||
@spec filter_local_or_from_followed_instances_events(Ecto.Query.t()) :: Ecto.Query.t()
|
||||
@spec filter_local_or_from_followed_instances_events(Ecto.Query.t()) ::
|
||||
Ecto.Query.t()
|
||||
defp filter_local_or_from_followed_instances_events(query) do
|
||||
from(q in query,
|
||||
left_join: s in Share,
|
||||
on: s.uri == q.url,
|
||||
where: q.local == true or not is_nil(s.uri)
|
||||
follower_actor_id = Mobilizon.Config.relay_actor_id()
|
||||
|
||||
query
|
||||
|> join(:left, [q], s in Share, on: s.uri == q.url)
|
||||
|> join(:left, [_q, ..., s], f in Follower, on: f.target_actor_id == s.actor_id)
|
||||
|> where(
|
||||
[q, ..., s, f],
|
||||
q.local == true or (f.actor_id == ^follower_actor_id and not is_nil(s.uri))
|
||||
)
|
||||
end
|
||||
|
||||
|
@ -61,7 +61,7 @@ defmodule Mobilizon.Posts.Post do
|
||||
belongs_to(:picture, Picture, on_replace: :update)
|
||||
many_to_many(:tags, Tag, join_through: "posts_tags", on_replace: :delete)
|
||||
|
||||
timestamps()
|
||||
timestamps(type: :utc_datetime)
|
||||
end
|
||||
|
||||
@required_attrs [
|
||||
|
@ -42,7 +42,7 @@
|
||||
<tr>
|
||||
<td bgcolor="#ffffff" align="left" style="padding: 20px 30px 0px 30px; color: #474467; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 18px; font-weight: 400; line-height: 25px;" >
|
||||
<p style="margin: 0;">
|
||||
<%= gettext("Note: %{name} (%{domain}) following you doesn't necessarily imply that you follow this instance, but you can ask to follow them too.") %>
|
||||
<%= gettext("Note: %{name} (%{domain}) following you doesn't necessarily imply that you follow this instance, but you can ask to follow them too.", name: @follower.name, domain: @follower.domain) %>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
@ -139,13 +139,13 @@ msgid "Current profile is not an administrator of the selected group"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/user.ex:514
|
||||
#: lib/graphql/resolvers/user.ex:512
|
||||
msgid "Error while saving user settings"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/group.ex:200 lib/graphql/resolvers/group.ex:248
|
||||
#: lib/graphql/resolvers/group.ex:283 lib/graphql/resolvers/member.ex:80
|
||||
#: lib/graphql/error.ex:90 lib/graphql/resolvers/group.ex:200
|
||||
#: lib/graphql/resolvers/group.ex:248 lib/graphql/resolvers/group.ex:283 lib/graphql/resolvers/member.ex:80
|
||||
msgid "Group not found"
|
||||
msgstr ""
|
||||
|
||||
@ -154,11 +154,6 @@ msgstr ""
|
||||
msgid "Group with ID %{id} not found"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/group.ex:41 lib/graphql/resolvers/group.ex:55
|
||||
msgid "Group with name %{name} not found"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/user.ex:83
|
||||
msgid "Impossible to authenticate, either your email or password are invalid."
|
||||
@ -254,7 +249,7 @@ msgid "User already disabled"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/user.ex:489
|
||||
#: lib/graphql/resolvers/user.ex:487
|
||||
msgid "User requested is not logged-in"
|
||||
msgstr ""
|
||||
|
||||
@ -829,7 +824,7 @@ msgid "Resource not found"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/error.ex:90
|
||||
#: lib/graphql/error.ex:91
|
||||
msgid "Something went wrong"
|
||||
msgstr ""
|
||||
|
||||
|
@ -113,13 +113,13 @@ msgid "Current profile is not an administrator of the selected group"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/user.ex:514
|
||||
#: lib/graphql/resolvers/user.ex:512
|
||||
msgid "Error while saving user settings"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/group.ex:200 lib/graphql/resolvers/group.ex:248
|
||||
#: lib/graphql/resolvers/group.ex:283 lib/graphql/resolvers/member.ex:80
|
||||
#: lib/graphql/error.ex:90 lib/graphql/resolvers/group.ex:200
|
||||
#: lib/graphql/resolvers/group.ex:248 lib/graphql/resolvers/group.ex:283 lib/graphql/resolvers/member.ex:80
|
||||
msgid "Group not found"
|
||||
msgstr ""
|
||||
|
||||
@ -128,11 +128,6 @@ msgstr ""
|
||||
msgid "Group with ID %{id} not found"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/group.ex:41 lib/graphql/resolvers/group.ex:55
|
||||
msgid "Group with name %{name} not found"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/user.ex:83
|
||||
msgid "Impossible to authenticate, either your email or password are invalid."
|
||||
@ -228,7 +223,7 @@ msgid "User already disabled"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/user.ex:489
|
||||
#: lib/graphql/resolvers/user.ex:487
|
||||
msgid "User requested is not logged-in"
|
||||
msgstr ""
|
||||
|
||||
@ -803,7 +798,7 @@ msgid "Resource not found"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/error.ex:90
|
||||
#: lib/graphql/error.ex:91
|
||||
msgid "Something went wrong"
|
||||
msgstr ""
|
||||
|
||||
|
@ -107,13 +107,13 @@ msgid "Current profile is not an administrator of the selected group"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/user.ex:514
|
||||
#: lib/graphql/resolvers/user.ex:512
|
||||
msgid "Error while saving user settings"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/group.ex:200 lib/graphql/resolvers/group.ex:248
|
||||
#: lib/graphql/resolvers/group.ex:283 lib/graphql/resolvers/member.ex:80
|
||||
#: lib/graphql/error.ex:90 lib/graphql/resolvers/group.ex:200
|
||||
#: lib/graphql/resolvers/group.ex:248 lib/graphql/resolvers/group.ex:283 lib/graphql/resolvers/member.ex:80
|
||||
msgid "Group not found"
|
||||
msgstr ""
|
||||
|
||||
@ -122,11 +122,6 @@ msgstr ""
|
||||
msgid "Group with ID %{id} not found"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/group.ex:41 lib/graphql/resolvers/group.ex:55
|
||||
msgid "Group with name %{name} not found"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/user.ex:83
|
||||
msgid "Impossible to authenticate, either your email or password are invalid."
|
||||
@ -222,7 +217,7 @@ msgid "User already disabled"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/user.ex:489
|
||||
#: lib/graphql/resolvers/user.ex:487
|
||||
msgid "User requested is not logged-in"
|
||||
msgstr ""
|
||||
|
||||
@ -797,7 +792,7 @@ msgid "Resource not found"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/error.ex:90
|
||||
#: lib/graphql/error.ex:91
|
||||
msgid "Something went wrong"
|
||||
msgstr ""
|
||||
|
||||
|
@ -113,13 +113,13 @@ msgid "Current profile is not an administrator of the selected group"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/user.ex:514
|
||||
#: lib/graphql/resolvers/user.ex:512
|
||||
msgid "Error while saving user settings"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/group.ex:200 lib/graphql/resolvers/group.ex:248
|
||||
#: lib/graphql/resolvers/group.ex:283 lib/graphql/resolvers/member.ex:80
|
||||
#: lib/graphql/error.ex:90 lib/graphql/resolvers/group.ex:200
|
||||
#: lib/graphql/resolvers/group.ex:248 lib/graphql/resolvers/group.ex:283 lib/graphql/resolvers/member.ex:80
|
||||
msgid "Group not found"
|
||||
msgstr ""
|
||||
|
||||
@ -128,11 +128,6 @@ msgstr ""
|
||||
msgid "Group with ID %{id} not found"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/group.ex:41 lib/graphql/resolvers/group.ex:55
|
||||
msgid "Group with name %{name} not found"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/user.ex:83
|
||||
msgid "Impossible to authenticate, either your email or password are invalid."
|
||||
@ -228,7 +223,7 @@ msgid "User already disabled"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/user.ex:489
|
||||
#: lib/graphql/resolvers/user.ex:487
|
||||
msgid "User requested is not logged-in"
|
||||
msgstr ""
|
||||
|
||||
@ -803,7 +798,7 @@ msgid "Resource not found"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/error.ex:90
|
||||
#: lib/graphql/error.ex:91
|
||||
msgid "Something went wrong"
|
||||
msgstr ""
|
||||
|
||||
|
@ -107,13 +107,13 @@ msgid "Current profile is not an administrator of the selected group"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/user.ex:514
|
||||
#: lib/graphql/resolvers/user.ex:512
|
||||
msgid "Error while saving user settings"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/group.ex:200 lib/graphql/resolvers/group.ex:248
|
||||
#: lib/graphql/resolvers/group.ex:283 lib/graphql/resolvers/member.ex:80
|
||||
#: lib/graphql/error.ex:90 lib/graphql/resolvers/group.ex:200
|
||||
#: lib/graphql/resolvers/group.ex:248 lib/graphql/resolvers/group.ex:283 lib/graphql/resolvers/member.ex:80
|
||||
msgid "Group not found"
|
||||
msgstr ""
|
||||
|
||||
@ -122,11 +122,6 @@ msgstr ""
|
||||
msgid "Group with ID %{id} not found"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/group.ex:41 lib/graphql/resolvers/group.ex:55
|
||||
msgid "Group with name %{name} not found"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/user.ex:83
|
||||
msgid "Impossible to authenticate, either your email or password are invalid."
|
||||
@ -222,7 +217,7 @@ msgid "User already disabled"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/user.ex:489
|
||||
#: lib/graphql/resolvers/user.ex:487
|
||||
msgid "User requested is not logged-in"
|
||||
msgstr ""
|
||||
|
||||
@ -797,7 +792,7 @@ msgid "Resource not found"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/error.ex:90
|
||||
#: lib/graphql/error.ex:91
|
||||
msgid "Something went wrong"
|
||||
msgstr ""
|
||||
|
||||
|
@ -117,13 +117,13 @@ msgid "Current profile is not an administrator of the selected group"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/user.ex:514
|
||||
#: lib/graphql/resolvers/user.ex:512
|
||||
msgid "Error while saving user settings"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/group.ex:200 lib/graphql/resolvers/group.ex:248
|
||||
#: lib/graphql/resolvers/group.ex:283 lib/graphql/resolvers/member.ex:80
|
||||
#: lib/graphql/error.ex:90 lib/graphql/resolvers/group.ex:200
|
||||
#: lib/graphql/resolvers/group.ex:248 lib/graphql/resolvers/group.ex:283 lib/graphql/resolvers/member.ex:80
|
||||
msgid "Group not found"
|
||||
msgstr ""
|
||||
|
||||
@ -132,11 +132,6 @@ msgstr ""
|
||||
msgid "Group with ID %{id} not found"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/group.ex:41 lib/graphql/resolvers/group.ex:55
|
||||
msgid "Group with name %{name} not found"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/user.ex:83
|
||||
msgid "Impossible to authenticate, either your email or password are invalid."
|
||||
@ -232,7 +227,7 @@ msgid "User already disabled"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/user.ex:489
|
||||
#: lib/graphql/resolvers/user.ex:487
|
||||
msgid "User requested is not logged-in"
|
||||
msgstr ""
|
||||
|
||||
@ -807,7 +802,7 @@ msgid "Resource not found"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/error.ex:90
|
||||
#: lib/graphql/error.ex:91
|
||||
msgid "Something went wrong"
|
||||
msgstr ""
|
||||
|
||||
|
@ -114,13 +114,13 @@ msgid "Current profile is not an administrator of the selected group"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/user.ex:514
|
||||
#: lib/graphql/resolvers/user.ex:512
|
||||
msgid "Error while saving user settings"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/group.ex:200 lib/graphql/resolvers/group.ex:248
|
||||
#: lib/graphql/resolvers/group.ex:283 lib/graphql/resolvers/member.ex:80
|
||||
#: lib/graphql/error.ex:90 lib/graphql/resolvers/group.ex:200
|
||||
#: lib/graphql/resolvers/group.ex:248 lib/graphql/resolvers/group.ex:283 lib/graphql/resolvers/member.ex:80
|
||||
msgid "Group not found"
|
||||
msgstr ""
|
||||
|
||||
@ -129,11 +129,6 @@ msgstr ""
|
||||
msgid "Group with ID %{id} not found"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/group.ex:41 lib/graphql/resolvers/group.ex:55
|
||||
msgid "Group with name %{name} not found"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/user.ex:83
|
||||
msgid "Impossible to authenticate, either your email or password are invalid."
|
||||
@ -229,7 +224,7 @@ msgid "User already disabled"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/user.ex:489
|
||||
#: lib/graphql/resolvers/user.ex:487
|
||||
msgid "User requested is not logged-in"
|
||||
msgstr ""
|
||||
|
||||
@ -804,7 +799,7 @@ msgid "Resource not found"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/error.ex:90
|
||||
#: lib/graphql/error.ex:91
|
||||
msgid "Something went wrong"
|
||||
msgstr ""
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -93,75 +93,71 @@ msgstr "debe ser mayor o igual que% {number}"
|
||||
msgid "must be equal to %{number}"
|
||||
msgstr "debe ser igual a% {number}"
|
||||
|
||||
#: lib/graphql/resolvers/user.ex:103
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/user.ex:103
|
||||
msgid "Cannot refresh the token"
|
||||
msgstr "No se puede actualizar el token"
|
||||
|
||||
#: lib/graphql/resolvers/group.ex:139
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/group.ex:139
|
||||
msgid "Creator profile is not owned by the current user"
|
||||
msgstr "El perfil del creador no es propiedad del usuario actual"
|
||||
|
||||
#: lib/graphql/resolvers/group.ex:203
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/group.ex:203
|
||||
msgid "Current profile is not a member of this group"
|
||||
msgstr "El perfil actual no es miembro de este grupo"
|
||||
|
||||
#: lib/graphql/resolvers/group.ex:207
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/group.ex:207
|
||||
msgid "Current profile is not an administrator of the selected group"
|
||||
msgstr "El perfil actual no es un administrador del grupo seleccionado"
|
||||
|
||||
#: lib/graphql/resolvers/user.ex:514
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/user.ex:512
|
||||
msgid "Error while saving user settings"
|
||||
msgstr "Error al guardar los parámetros del usuario"
|
||||
|
||||
#: lib/graphql/resolvers/group.ex:200 lib/graphql/resolvers/group.ex:248
|
||||
#: lib/graphql/resolvers/group.ex:283 lib/graphql/resolvers/member.ex:80
|
||||
#, elixir-format
|
||||
#: lib/graphql/error.ex:90 lib/graphql/resolvers/group.ex:200
|
||||
#: lib/graphql/resolvers/group.ex:248 lib/graphql/resolvers/group.ex:283 lib/graphql/resolvers/member.ex:80
|
||||
msgid "Group not found"
|
||||
msgstr "Grupo no encontrado"
|
||||
|
||||
#: lib/graphql/resolvers/group.ex:69
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/group.ex:69
|
||||
msgid "Group with ID %{id} not found"
|
||||
msgstr "No se encontró el grupo con ID% {id}"
|
||||
|
||||
#: lib/graphql/resolvers/group.ex:41 lib/graphql/resolvers/group.ex:55
|
||||
#, elixir-format
|
||||
msgid "Group with name %{name} not found"
|
||||
msgstr "No se encontró el grupo con el nombre% {name}"
|
||||
|
||||
#: lib/graphql/resolvers/user.ex:83
|
||||
#, elixir-format
|
||||
msgid "Impossible to authenticate, either your email or password are invalid."
|
||||
msgstr ""
|
||||
"Imposible autenticarse, su correo electrónico o contraseña no son válidos."
|
||||
|
||||
#: lib/graphql/resolvers/group.ex:280
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/group.ex:280
|
||||
msgid "Member not found"
|
||||
msgstr "Miembro no encontrado"
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/actor.ex:58 lib/graphql/resolvers/actor.ex:88
|
||||
#: lib/graphql/resolvers/user.ex:417
|
||||
#, elixir-format
|
||||
msgid "No profile found for the moderator user"
|
||||
msgstr "No se encontró el perfil del usuario moderador"
|
||||
|
||||
#: lib/graphql/resolvers/user.ex:195
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/user.ex:195
|
||||
msgid "No user to validate with this email was found"
|
||||
msgstr "No se encontró ningún usuario para validar con este correo electrónico"
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/person.ex:232 lib/graphql/resolvers/user.ex:76
|
||||
#: lib/graphql/resolvers/user.ex:219
|
||||
#, elixir-format
|
||||
msgid "No user with this email was found"
|
||||
msgstr "No se encontró ningún usuario con este correo electrónico"
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/comment.ex:50 lib/graphql/resolvers/comment.ex:112
|
||||
#: lib/graphql/resolvers/event.ex:286 lib/graphql/resolvers/feed_token.ex:28 lib/graphql/resolvers/group.ex:245
|
||||
#: lib/graphql/resolvers/member.ex:77 lib/graphql/resolvers/participant.ex:29
|
||||
@ -169,707 +165,706 @@ msgstr "No se encontró ningún usuario con este correo electrónico"
|
||||
#: lib/graphql/resolvers/person.ex:191 lib/graphql/resolvers/person.ex:256 lib/graphql/resolvers/person.ex:288
|
||||
#: lib/graphql/resolvers/person.ex:301 lib/graphql/resolvers/picture.ex:75 lib/graphql/resolvers/report.ex:110
|
||||
#: lib/graphql/resolvers/todos.ex:57
|
||||
#, elixir-format
|
||||
msgid "Profile is not owned by authenticated user"
|
||||
msgstr "El perfil no es propiedad del usuario autenticado"
|
||||
|
||||
#: lib/graphql/resolvers/user.ex:125
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/user.ex:125
|
||||
msgid "Registrations are not open"
|
||||
msgstr "Las inscripciones no están abiertas"
|
||||
|
||||
#: lib/graphql/resolvers/user.ex:330
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/user.ex:330
|
||||
msgid "The current password is invalid"
|
||||
msgstr "La contraseña actual no es válida"
|
||||
|
||||
#: lib/graphql/resolvers/user.ex:382
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/user.ex:382
|
||||
msgid "The new email doesn't seem to be valid"
|
||||
msgstr "El nuevo correo electrónico no parece ser válido"
|
||||
|
||||
#: lib/graphql/resolvers/user.ex:379
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/user.ex:379
|
||||
msgid "The new email must be different"
|
||||
msgstr "El nuevo correo electrónico debe ser diferente"
|
||||
|
||||
#: lib/graphql/resolvers/user.ex:333
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/user.ex:333
|
||||
msgid "The new password must be different"
|
||||
msgstr "La nueva contraseña debe ser diferente"
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/user.ex:376 lib/graphql/resolvers/user.ex:439
|
||||
#: lib/graphql/resolvers/user.ex:442
|
||||
#, elixir-format
|
||||
msgid "The password provided is invalid"
|
||||
msgstr "La contraseña proporcionada no es válida"
|
||||
|
||||
#: lib/graphql/resolvers/user.ex:337
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/user.ex:337
|
||||
msgid "The password you have chosen is too short. Please make sure your password contains at least 6 characters."
|
||||
msgstr ""
|
||||
"La contraseña que ha elegido es demasiado corta. Asegúrese de que su "
|
||||
"contraseña contenga al menos 6 caracteres."
|
||||
|
||||
#: lib/graphql/resolvers/user.ex:215
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/user.ex:215
|
||||
msgid "This user can't reset their password"
|
||||
msgstr "Este usuario no puede restablecer su contraseña"
|
||||
|
||||
#: lib/graphql/resolvers/user.ex:79
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/user.ex:79
|
||||
msgid "This user has been disabled"
|
||||
msgstr "Este usuario ha sido inhabilitado"
|
||||
|
||||
#: lib/graphql/resolvers/user.ex:179
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/user.ex:179
|
||||
msgid "Unable to validate user"
|
||||
msgstr "No se puede validar al usuario"
|
||||
|
||||
#: lib/graphql/resolvers/user.ex:420
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/user.ex:420
|
||||
msgid "User already disabled"
|
||||
msgstr "El usuario ya está inhabilitado"
|
||||
|
||||
#: lib/graphql/resolvers/user.ex:489
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/user.ex:487
|
||||
msgid "User requested is not logged-in"
|
||||
msgstr "El usuario solicitado no ha iniciado sesión"
|
||||
|
||||
#: lib/graphql/resolvers/group.ex:254
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/group.ex:254
|
||||
msgid "You are already a member of this group"
|
||||
msgstr "Ya eres miembro de este grupo"
|
||||
|
||||
#: lib/graphql/resolvers/group.ex:287
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/group.ex:287
|
||||
msgid "You can't leave this group because you are the only administrator"
|
||||
msgstr "No puedes dejar este grupo porque eres el único administrador"
|
||||
|
||||
#: lib/graphql/resolvers/group.ex:251
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/group.ex:251
|
||||
msgid "You cannot join this group"
|
||||
msgstr "No puedes unirte a este grupo"
|
||||
|
||||
#: lib/graphql/resolvers/group.ex:97
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/group.ex:97
|
||||
msgid "You may not list groups unless moderator."
|
||||
msgstr "No puedes enumerar grupos a menos que seas moderador."
|
||||
|
||||
#: lib/graphql/resolvers/user.ex:387
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/user.ex:387
|
||||
msgid "You need to be logged-in to change your email"
|
||||
msgstr "Debes iniciar sesión para cambiar tu correo electrónico"
|
||||
|
||||
#: lib/graphql/resolvers/user.ex:345
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/user.ex:345
|
||||
msgid "You need to be logged-in to change your password"
|
||||
msgstr "Debes iniciar sesión para cambiar tu contraseña"
|
||||
|
||||
#: lib/graphql/resolvers/group.ex:212
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/group.ex:212
|
||||
msgid "You need to be logged-in to delete a group"
|
||||
msgstr "Debes iniciar sesión para eliminar un grupo"
|
||||
|
||||
#: lib/graphql/resolvers/user.ex:447
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/user.ex:447
|
||||
msgid "You need to be logged-in to delete your account"
|
||||
msgstr "Debes iniciar sesión para eliminar su cuenta"
|
||||
|
||||
#: lib/graphql/resolvers/group.ex:259
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/group.ex:259
|
||||
msgid "You need to be logged-in to join a group"
|
||||
msgstr "Debes iniciar sesión para eliminar su cuenta"
|
||||
|
||||
#: lib/graphql/resolvers/group.ex:292
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/group.ex:292
|
||||
msgid "You need to be logged-in to leave a group"
|
||||
msgstr "Debes iniciar sesión para dejar un grupo"
|
||||
|
||||
#: lib/graphql/resolvers/group.ex:177
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/group.ex:177
|
||||
msgid "You need to be logged-in to update a group"
|
||||
msgstr "Debes iniciar sesión para actualizar un grupo"
|
||||
|
||||
#: lib/graphql/resolvers/user.ex:58
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/user.ex:58
|
||||
msgid "You need to have admin access to list users"
|
||||
msgstr "Necesitas tener acceso de administrador para listar usuarios"
|
||||
|
||||
#: lib/graphql/resolvers/user.ex:108
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/user.ex:108
|
||||
msgid "You need to have an existing token to get a refresh token"
|
||||
msgstr "Debes tener un token existente para obtener un token de actualización"
|
||||
|
||||
#: lib/graphql/resolvers/user.ex:198 lib/graphql/resolvers/user.ex:222
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/user.ex:198 lib/graphql/resolvers/user.ex:222
|
||||
msgid "You requested again a confirmation email too soon"
|
||||
msgstr ""
|
||||
"Solicitó de nuevo un correo electrónico de confirmación demasiado pronto"
|
||||
|
||||
#: lib/graphql/resolvers/user.ex:128
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/user.ex:128
|
||||
msgid "Your email is not on the allowlist"
|
||||
msgstr "Tu correo electrónico no está en la lista de permitidos"
|
||||
|
||||
#: lib/graphql/resolvers/actor.ex:64 lib/graphql/resolvers/actor.ex:94
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/actor.ex:64 lib/graphql/resolvers/actor.ex:94
|
||||
msgid "Error while performing background task"
|
||||
msgstr "Error al realizar la tarea en segundo plano"
|
||||
|
||||
#: lib/graphql/resolvers/actor.ex:27
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/actor.ex:27
|
||||
msgid "No profile found with this ID"
|
||||
msgstr "No se encontró ningún perfil con este ID"
|
||||
|
||||
#: lib/graphql/resolvers/actor.ex:54 lib/graphql/resolvers/actor.ex:91
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/actor.ex:54 lib/graphql/resolvers/actor.ex:91
|
||||
msgid "No remote profile found with this ID"
|
||||
msgstr "No se encontró ningún perfil remoto con este ID"
|
||||
|
||||
#: lib/graphql/resolvers/actor.ex:69
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/actor.ex:69
|
||||
msgid "Only moderators and administrators can suspend a profile"
|
||||
msgstr "Solo los moderadores y administradores pueden suspender un perfil"
|
||||
|
||||
#: lib/graphql/resolvers/actor.ex:99
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/actor.ex:99
|
||||
msgid "Only moderators and administrators can unsuspend a profile"
|
||||
msgstr ""
|
||||
"Solo los moderadores y administradores pueden anular la suspensión de un "
|
||||
"perfil"
|
||||
|
||||
#: lib/graphql/resolvers/actor.ex:24
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/actor.ex:24
|
||||
msgid "Only remote profiles may be refreshed"
|
||||
msgstr "Solo se pueden actualizar los perfiles remotos"
|
||||
|
||||
#: lib/graphql/resolvers/actor.ex:61
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/actor.ex:61
|
||||
msgid "Profile already suspended"
|
||||
msgstr "Perfil ya suspendido"
|
||||
|
||||
#: lib/graphql/resolvers/participant.ex:96
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/participant.ex:96
|
||||
msgid "A valid email is required by your instance"
|
||||
msgstr "Su instancia requiere un correo electrónico válido"
|
||||
|
||||
#: lib/graphql/resolvers/participant.ex:90
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/participant.ex:90
|
||||
msgid "Anonymous participation is not enabled"
|
||||
msgstr "La participación anónima no está habilitada"
|
||||
|
||||
#: lib/graphql/resolvers/person.ex:188
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/person.ex:188
|
||||
msgid "Cannot remove the last administrator of a group"
|
||||
msgstr "No se puede eliminar al último administrador de un grupo"
|
||||
|
||||
#: lib/graphql/resolvers/person.ex:185
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/person.ex:185
|
||||
msgid "Cannot remove the last identity of a user"
|
||||
msgstr "No se puede eliminar la última identidad de un usuario"
|
||||
|
||||
#: lib/graphql/resolvers/comment.ex:109
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/comment.ex:109
|
||||
msgid "Comment is already deleted"
|
||||
msgstr "El comentario ya está eliminado"
|
||||
|
||||
#: lib/graphql/resolvers/discussion.ex:61
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/discussion.ex:61
|
||||
msgid "Discussion not found"
|
||||
msgstr "Discusión no encontrada"
|
||||
|
||||
#: lib/graphql/resolvers/report.ex:62 lib/graphql/resolvers/report.ex:87
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/report.ex:62 lib/graphql/resolvers/report.ex:87
|
||||
msgid "Error while saving report"
|
||||
msgstr "Error al guardar el informe"
|
||||
|
||||
#: lib/graphql/resolvers/report.ex:113
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/report.ex:113
|
||||
msgid "Error while updating report"
|
||||
msgstr "Error al actualizar el informe"
|
||||
|
||||
#: lib/graphql/resolvers/participant.ex:131
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/participant.ex:131
|
||||
msgid "Event id not found"
|
||||
msgstr "ID de evento no encontrado"
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/error.ex:89 lib/graphql/resolvers/event.ex:238
|
||||
#: lib/graphql/resolvers/event.ex:283
|
||||
#, elixir-format
|
||||
msgid "Event not found"
|
||||
msgstr "Evento no encontrado"
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/participant.ex:87
|
||||
#: lib/graphql/resolvers/participant.ex:128 lib/graphql/resolvers/participant.ex:160
|
||||
#, elixir-format
|
||||
msgid "Event with this ID %{id} doesn't exist"
|
||||
msgstr "El evento con este ID%{id} no existe"
|
||||
|
||||
#: lib/graphql/resolvers/participant.ex:103
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/participant.ex:103
|
||||
msgid "Internal Error"
|
||||
msgstr "Error interno"
|
||||
|
||||
#: lib/graphql/resolvers/event.ex:100 lib/graphql/resolvers/participant.ex:234
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/event.ex:100 lib/graphql/resolvers/participant.ex:234
|
||||
msgid "Moderator profile is not owned by authenticated user"
|
||||
msgstr "El perfil del moderador no es propiedad del usuario autenticado"
|
||||
|
||||
#: lib/graphql/resolvers/discussion.ex:181
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/discussion.ex:181
|
||||
msgid "No discussion with ID %{id}"
|
||||
msgstr "Sin discusión con ID%{id}"
|
||||
|
||||
#: lib/graphql/resolvers/todos.ex:81 lib/graphql/resolvers/todos.ex:171
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/todos.ex:81 lib/graphql/resolvers/todos.ex:171
|
||||
msgid "No profile found for user"
|
||||
msgstr "No se encontró perfil para el usuario"
|
||||
|
||||
#: lib/graphql/resolvers/feed_token.ex:66
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/feed_token.ex:66
|
||||
msgid "No such feed token"
|
||||
msgstr "No existe tal token de alimentación"
|
||||
|
||||
#: lib/graphql/resolvers/resource.ex:87
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/resource.ex:87
|
||||
msgid "No such resource"
|
||||
msgstr "No existe tal recurso"
|
||||
|
||||
#: lib/graphql/resolvers/event.ex:202
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/event.ex:202
|
||||
msgid "Organizer profile is not owned by the user"
|
||||
msgstr "El perfil del organizador no es propiedad del usuario"
|
||||
|
||||
#: lib/graphql/resolvers/participant.ex:244
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/participant.ex:244
|
||||
msgid "Participant already has role %{role}"
|
||||
msgstr "El participante ya tiene el rol%{role}"
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/participant.ex:173
|
||||
#: lib/graphql/resolvers/participant.ex:202 lib/graphql/resolvers/participant.ex:237
|
||||
#: lib/graphql/resolvers/participant.ex:247
|
||||
#, elixir-format
|
||||
msgid "Participant not found"
|
||||
msgstr "Participante no encontrado"
|
||||
|
||||
#: lib/graphql/resolvers/person.ex:31
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/person.ex:31
|
||||
msgid "Person with ID %{id} not found"
|
||||
msgstr "Persona con ID%{id} no encontrada"
|
||||
|
||||
#: lib/graphql/resolvers/person.ex:52
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/person.ex:52
|
||||
msgid "Person with username %{username} not found"
|
||||
msgstr "Persona con nombre de usuario %{username} no encontrada"
|
||||
|
||||
#: lib/graphql/resolvers/picture.ex:45
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/picture.ex:45
|
||||
msgid "Picture with ID %{id} was not found"
|
||||
msgstr "No se encontró la foto con ID %{id}"
|
||||
|
||||
#: lib/graphql/resolvers/post.ex:165 lib/graphql/resolvers/post.ex:198
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/post.ex:165 lib/graphql/resolvers/post.ex:198
|
||||
msgid "Post ID is not a valid ID"
|
||||
msgstr "La ID de publicación no es válida"
|
||||
|
||||
#: lib/graphql/resolvers/post.ex:168 lib/graphql/resolvers/post.ex:201
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/post.ex:168 lib/graphql/resolvers/post.ex:201
|
||||
msgid "Post doesn't exist"
|
||||
msgstr "La publicación no existe"
|
||||
|
||||
#: lib/graphql/resolvers/member.ex:83
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/member.ex:83
|
||||
msgid "Profile invited doesn't exist"
|
||||
msgstr "El perfil invitado no existe"
|
||||
|
||||
#: lib/graphql/resolvers/member.ex:92
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/member.ex:92
|
||||
msgid "Profile is already a member of this group"
|
||||
msgstr "Perfil ya es miembro de este grupo"
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/post.ex:131 lib/graphql/resolvers/post.ex:171
|
||||
#: lib/graphql/resolvers/post.ex:204 lib/graphql/resolvers/resource.ex:86 lib/graphql/resolvers/resource.ex:123
|
||||
#: lib/graphql/resolvers/resource.ex:152 lib/graphql/resolvers/resource.ex:181 lib/graphql/resolvers/todos.ex:60
|
||||
#: lib/graphql/resolvers/todos.ex:84 lib/graphql/resolvers/todos.ex:102 lib/graphql/resolvers/todos.ex:174
|
||||
#: lib/graphql/resolvers/todos.ex:197 lib/graphql/resolvers/todos.ex:225
|
||||
#, elixir-format
|
||||
msgid "Profile is not member of group"
|
||||
msgstr "El perfil no es miembro del grupo"
|
||||
|
||||
#: lib/graphql/resolvers/person.ex:154 lib/graphql/resolvers/person.ex:182
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/person.ex:154 lib/graphql/resolvers/person.ex:182
|
||||
msgid "Profile not found"
|
||||
msgstr "Perfil no encontrado"
|
||||
|
||||
#: lib/graphql/resolvers/event.ex:104 lib/graphql/resolvers/participant.ex:241
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/event.ex:104 lib/graphql/resolvers/participant.ex:241
|
||||
msgid "Provided moderator profile doesn't have permission on this event"
|
||||
msgstr "El perfil de moderador proporcionado no tiene permiso para este evento"
|
||||
|
||||
#: lib/graphql/resolvers/report.ex:38
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/report.ex:38
|
||||
msgid "Report not found"
|
||||
msgstr "Informe no encontrado"
|
||||
|
||||
#: lib/graphql/resolvers/resource.ex:149 lib/graphql/resolvers/resource.ex:178
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/resource.ex:149 lib/graphql/resolvers/resource.ex:178
|
||||
msgid "Resource doesn't exist"
|
||||
msgstr "El recurso no existe"
|
||||
|
||||
#: lib/graphql/resolvers/participant.ex:124
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/participant.ex:124
|
||||
msgid "The event has already reached its maximum capacity"
|
||||
msgstr "El evento ya alcanzó su capacidad máxima"
|
||||
|
||||
#: lib/graphql/resolvers/participant.ex:267
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/participant.ex:267
|
||||
msgid "This token is invalid"
|
||||
msgstr "Este token no es válido"
|
||||
|
||||
#: lib/graphql/resolvers/todos.ex:168 lib/graphql/resolvers/todos.ex:222
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/todos.ex:168 lib/graphql/resolvers/todos.ex:222
|
||||
msgid "Todo doesn't exist"
|
||||
msgstr "Todo no existe"
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/todos.ex:78 lib/graphql/resolvers/todos.ex:194
|
||||
#: lib/graphql/resolvers/todos.ex:219
|
||||
#, elixir-format
|
||||
msgid "Todo list doesn't exist"
|
||||
msgstr "La lista de tareas pendientes no existe"
|
||||
|
||||
#: lib/graphql/resolvers/feed_token.ex:72
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/feed_token.ex:72
|
||||
msgid "Token does not exist"
|
||||
msgstr "El token no existe"
|
||||
|
||||
#: lib/graphql/resolvers/feed_token.ex:69
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/feed_token.ex:69
|
||||
msgid "Token is not a valid UUID"
|
||||
msgstr "El token no es un UUID válido"
|
||||
|
||||
#: lib/graphql/error.ex:87 lib/graphql/resolvers/person.ex:323
|
||||
#, elixir-format
|
||||
#: lib/graphql/error.ex:87 lib/graphql/resolvers/person.ex:323
|
||||
msgid "User not found"
|
||||
msgstr "Usuario no encontrado"
|
||||
|
||||
#: lib/graphql/resolvers/person.ex:235
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/person.ex:235
|
||||
msgid "You already have a profile for this user"
|
||||
msgstr "Ya tienes un perfil para este usuario"
|
||||
|
||||
#: lib/graphql/resolvers/participant.ex:134
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/participant.ex:134
|
||||
msgid "You are already a participant of this event"
|
||||
msgstr "Ya eres participante de este evento"
|
||||
|
||||
#: lib/graphql/resolvers/discussion.ex:185
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/discussion.ex:185
|
||||
msgid "You are not a member of the group the discussion belongs to"
|
||||
msgstr "No eres miembro del grupo al que pertenece la discusión"
|
||||
|
||||
#: lib/graphql/resolvers/member.ex:86
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/member.ex:86
|
||||
msgid "You are not a member of this group"
|
||||
msgstr "no eres un miembro de este grupo"
|
||||
|
||||
#: lib/graphql/resolvers/member.ex:143
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/member.ex:143
|
||||
msgid "You are not a moderator or admin for this group"
|
||||
msgstr "No eres moderador ni administrador de este grupo"
|
||||
|
||||
#: lib/graphql/resolvers/comment.ex:55
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/comment.ex:55
|
||||
msgid "You are not allowed to create a comment if not connected"
|
||||
msgstr "No está permitido crear un comentario si no está conectado"
|
||||
|
||||
#: lib/graphql/resolvers/feed_token.ex:44
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/feed_token.ex:44
|
||||
msgid "You are not allowed to create a feed token if not connected"
|
||||
msgstr "No puede crear un token de feed si no está conectado"
|
||||
|
||||
#: lib/graphql/resolvers/comment.ex:117
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/comment.ex:117
|
||||
msgid "You are not allowed to delete a comment if not connected"
|
||||
msgstr "No puede eliminar un comentario si no está conectado"
|
||||
|
||||
#: lib/graphql/resolvers/feed_token.ex:81
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/feed_token.ex:81
|
||||
msgid "You are not allowed to delete a feed token if not connected"
|
||||
msgstr "No puede eliminar un token de feed si no está conectado"
|
||||
|
||||
#: lib/graphql/resolvers/comment.ex:77
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/comment.ex:77
|
||||
msgid "You are not allowed to update a comment if not connected"
|
||||
msgstr "No se le permite actualizar un comentario si no está conectado"
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/participant.ex:167
|
||||
#: lib/graphql/resolvers/participant.ex:196
|
||||
#, elixir-format
|
||||
msgid "You can't leave event because you're the only event creator participant"
|
||||
msgstr ""
|
||||
"No puedes abandonar el evento porque eres el único participante creador del "
|
||||
"evento"
|
||||
|
||||
#: lib/graphql/resolvers/member.ex:147
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/member.ex:147
|
||||
msgid "You can't set yourself to a lower member role for this group because you are the only administrator"
|
||||
msgstr ""
|
||||
"No puede establecerse en un rol de miembro inferior para este grupo porque "
|
||||
"es el único administrador"
|
||||
|
||||
#: lib/graphql/resolvers/comment.ex:105
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/comment.ex:105
|
||||
msgid "You cannot delete this comment"
|
||||
msgstr "No puedes borrar este comentario"
|
||||
|
||||
#: lib/graphql/resolvers/event.ex:279
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/event.ex:279
|
||||
msgid "You cannot delete this event"
|
||||
msgstr "No puedes borrar este evento"
|
||||
|
||||
#: lib/graphql/resolvers/member.ex:89
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/member.ex:89
|
||||
msgid "You cannot invite to this group"
|
||||
msgstr "No puedes invitar a este grupo"
|
||||
|
||||
#: lib/graphql/resolvers/feed_token.ex:75
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/feed_token.ex:75
|
||||
msgid "You don't have permission to delete this token"
|
||||
msgstr "No tienes permiso para eliminar este token"
|
||||
|
||||
#: lib/graphql/resolvers/admin.ex:52
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/admin.ex:52
|
||||
msgid "You need to be logged-in and a moderator to list action logs"
|
||||
msgstr ""
|
||||
"Debe iniciar sesión y un moderador para enumerar los registros de acción"
|
||||
|
||||
#: lib/graphql/resolvers/report.ex:28
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/report.ex:28
|
||||
msgid "You need to be logged-in and a moderator to list reports"
|
||||
msgstr "Debe iniciar sesión y un moderador para enumerar los informes"
|
||||
|
||||
#: lib/graphql/resolvers/report.ex:118
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/report.ex:118
|
||||
msgid "You need to be logged-in and a moderator to update a report"
|
||||
msgstr "Debe iniciar sesión y ser un moderador para actualizar un informe"
|
||||
|
||||
#: lib/graphql/resolvers/report.ex:43
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/report.ex:43
|
||||
msgid "You need to be logged-in and a moderator to view a report"
|
||||
msgstr "Debe iniciar sesión y ser un moderador para actualizar un informe"
|
||||
|
||||
#: lib/graphql/resolvers/admin.ex:208
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/admin.ex:208
|
||||
msgid "You need to be logged-in and an administrator to access admin settings"
|
||||
msgstr ""
|
||||
"Debe iniciar sesión y ser administrador para acceder a la configuración de "
|
||||
"administrador"
|
||||
|
||||
#: lib/graphql/resolvers/admin.ex:193
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/admin.ex:193
|
||||
msgid "You need to be logged-in and an administrator to access dashboard statistics"
|
||||
msgstr ""
|
||||
"Debe iniciar sesión y ser administrador para acceder a las estadísticas del "
|
||||
"panel"
|
||||
|
||||
#: lib/graphql/resolvers/admin.ex:232
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/admin.ex:232
|
||||
msgid "You need to be logged-in and an administrator to save admin settings"
|
||||
msgstr ""
|
||||
"Debe iniciar sesión y ser administrador para acceder a las estadísticas del "
|
||||
"panel"
|
||||
|
||||
#: lib/graphql/resolvers/discussion.ex:66
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/discussion.ex:66
|
||||
msgid "You need to be logged-in to access discussions"
|
||||
msgstr "Debe iniciar sesión para acceder a las discusiones"
|
||||
|
||||
#: lib/graphql/resolvers/resource.ex:92
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/resource.ex:92
|
||||
msgid "You need to be logged-in to access resources"
|
||||
msgstr "Debes iniciar sesión para acceder a los recursos"
|
||||
|
||||
#: lib/graphql/resolvers/event.ex:213
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/event.ex:213
|
||||
msgid "You need to be logged-in to create events"
|
||||
msgstr "Debes iniciar sesión para crear eventos"
|
||||
|
||||
#: lib/graphql/resolvers/post.ex:139
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/post.ex:139
|
||||
msgid "You need to be logged-in to create posts"
|
||||
msgstr "Debes iniciar sesión para crear publicaciones"
|
||||
|
||||
#: lib/graphql/resolvers/report.ex:81 lib/graphql/resolvers/report.ex:92
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/report.ex:81 lib/graphql/resolvers/report.ex:92
|
||||
msgid "You need to be logged-in to create reports"
|
||||
msgstr "Debe iniciar sesión para crear informes"
|
||||
|
||||
#: lib/graphql/resolvers/resource.ex:128
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/resource.ex:128
|
||||
msgid "You need to be logged-in to create resources"
|
||||
msgstr "Debe iniciar sesión para crear recursos"
|
||||
|
||||
#: lib/graphql/resolvers/event.ex:291
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/event.ex:291
|
||||
msgid "You need to be logged-in to delete an event"
|
||||
msgstr "Debe iniciar sesión para eliminar un evento"
|
||||
|
||||
#: lib/graphql/resolvers/post.ex:209
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/post.ex:209
|
||||
msgid "You need to be logged-in to delete posts"
|
||||
msgstr "Debes iniciar sesión para eliminar publicaciones"
|
||||
|
||||
#: lib/graphql/resolvers/resource.ex:186
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/resource.ex:186
|
||||
msgid "You need to be logged-in to delete resources"
|
||||
msgstr "Debes iniciar sesión para eliminar recursos"
|
||||
|
||||
#: lib/graphql/resolvers/participant.ex:108
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/participant.ex:108
|
||||
msgid "You need to be logged-in to join an event"
|
||||
msgstr "Debes iniciar sesión para eliminar recursos"
|
||||
|
||||
#: lib/graphql/resolvers/participant.ex:207
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/participant.ex:207
|
||||
msgid "You need to be logged-in to leave an event"
|
||||
msgstr "Debes iniciar sesión para salir de un evento"
|
||||
|
||||
#: lib/graphql/resolvers/event.ex:252
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/event.ex:252
|
||||
msgid "You need to be logged-in to update an event"
|
||||
msgstr "Debe iniciar sesión para actualizar un evento"
|
||||
|
||||
#: lib/graphql/resolvers/post.ex:176
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/post.ex:176
|
||||
msgid "You need to be logged-in to update posts"
|
||||
msgstr "Debes iniciar sesión para actualizar las publicaciones"
|
||||
|
||||
#: lib/graphql/resolvers/resource.ex:157
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/resource.ex:157
|
||||
msgid "You need to be logged-in to update resources"
|
||||
msgstr "Debes iniciar sesión para actualizar los recursos"
|
||||
|
||||
#: lib/graphql/resolvers/resource.ex:204
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/resource.ex:204
|
||||
msgid "You need to be logged-in to view a resource preview"
|
||||
msgstr "Debe iniciar sesión para ver una vista previa del recurso"
|
||||
|
||||
#: lib/graphql/resolvers/picture.ex:86
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/picture.ex:86
|
||||
msgid "You need to login to upload a picture"
|
||||
msgstr "Debes iniciar sesión para subir una imagen"
|
||||
|
||||
#: lib/graphql/resolvers/report.ex:84
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/report.ex:84
|
||||
msgid "Reporter ID does not match the anonymous profile id"
|
||||
msgstr ""
|
||||
"La identificación del informante no coincide con la identificación del "
|
||||
"perfil anónimo"
|
||||
|
||||
#: lib/graphql/resolvers/report.ex:59
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/report.ex:59
|
||||
msgid "Reporter profile is not owned by authenticated user"
|
||||
msgstr "El perfil del denunciante no es propiedad de un usuario autenticado"
|
||||
|
||||
#: lib/graphql/resolvers/resource.ex:120
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/resource.ex:120
|
||||
msgid "Parent resource doesn't belong to this group"
|
||||
msgstr "El recurso principal no pertenece a este grupo"
|
||||
|
||||
#: lib/graphql/resolvers/participant.ex:93
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/participant.ex:93
|
||||
msgid "Profile ID provided is not the anonymous profile one"
|
||||
msgstr "El ID de perfil proporcionado no es el del perfil anónimo"
|
||||
|
||||
#: lib/mobilizon/users/user.ex:109
|
||||
#, elixir-format
|
||||
#: lib/mobilizon/users/user.ex:109
|
||||
msgid "The chosen password is too short."
|
||||
msgstr "La contraseña elegida es demasiado corta."
|
||||
|
||||
#: lib/mobilizon/users/user.ex:138
|
||||
#, elixir-format
|
||||
#: lib/mobilizon/users/user.ex:138
|
||||
msgid "The registration token is already in use, this looks like an issue on our side."
|
||||
msgstr ""
|
||||
"El token de registro ya está en uso, esto parece un problema de nuestra "
|
||||
"parte."
|
||||
|
||||
#: lib/mobilizon/users/user.ex:104
|
||||
#, elixir-format
|
||||
#: lib/mobilizon/users/user.ex:104
|
||||
msgid "This email is already used."
|
||||
msgstr "Este correo electrónico ya está en uso."
|
||||
|
||||
#: lib/graphql/error.ex:88
|
||||
#, elixir-format
|
||||
#: lib/graphql/error.ex:88
|
||||
msgid "Post not found"
|
||||
msgstr "Informe no encontrado"
|
||||
|
||||
#: lib/graphql/error.ex:75
|
||||
#, elixir-format
|
||||
#: lib/graphql/error.ex:75
|
||||
msgid "Invalid arguments passed"
|
||||
msgstr "Se pasaron argumentos no válidos"
|
||||
|
||||
#: lib/graphql/error.ex:81
|
||||
#, elixir-format
|
||||
#: lib/graphql/error.ex:81
|
||||
msgid "Invalid credentials"
|
||||
msgstr "Credenciales no válidas"
|
||||
|
||||
#: lib/graphql/error.ex:79
|
||||
#, elixir-format
|
||||
#: lib/graphql/error.ex:79
|
||||
msgid "Reset your password to login"
|
||||
msgstr "Restablezca su contraseña para iniciar sesión"
|
||||
|
||||
#: lib/graphql/error.ex:86
|
||||
#, elixir-format
|
||||
#: lib/graphql/error.ex:86
|
||||
msgid "Resource not found"
|
||||
msgstr "Recurso no encontrado"
|
||||
|
||||
#: lib/graphql/error.ex:90
|
||||
#, elixir-format
|
||||
#: lib/graphql/error.ex:91
|
||||
msgid "Something went wrong"
|
||||
msgstr "Algo salió mal"
|
||||
|
||||
#: lib/graphql/error.ex:74
|
||||
#, elixir-format
|
||||
#: lib/graphql/error.ex:74
|
||||
msgid "Unknown Resource"
|
||||
msgstr "Recurso desconocido"
|
||||
|
||||
#: lib/graphql/error.ex:84
|
||||
#, elixir-format
|
||||
#: lib/graphql/error.ex:84
|
||||
msgid "You don't have permission to do this"
|
||||
msgstr "No tienes permiso para hacer esto"
|
||||
|
||||
#: lib/graphql/error.ex:76
|
||||
#, elixir-format
|
||||
#: lib/graphql/error.ex:76
|
||||
msgid "You need to be logged in"
|
||||
msgstr "Debes iniciar sesión"
|
||||
|
||||
#: lib/graphql/resolvers/member.ex:112
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/member.ex:112
|
||||
msgid "You can't accept this invitation with this profile."
|
||||
msgstr "No puedes aceptar esta invitación con este perfil."
|
||||
|
||||
#: lib/graphql/resolvers/member.ex:129
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/member.ex:129
|
||||
msgid "You can't reject this invitation with this profile."
|
||||
msgstr "No puedes rechazar esta invitación con este perfil."
|
||||
|
||||
#: lib/graphql/resolvers/picture.ex:78
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/picture.ex:78
|
||||
msgid "File doesn't have an allowed MIME type."
|
||||
msgstr "El archivo no tiene un tipo MIME permitido."
|
||||
|
||||
#: lib/graphql/resolvers/group.ex:172
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/group.ex:172
|
||||
msgid "Profile is not administrator for the group"
|
||||
msgstr "El perfil no es miembro del grupo"
|
||||
|
||||
#: lib/graphql/resolvers/event.ex:241
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/event.ex:241
|
||||
msgid "You can't edit this event."
|
||||
msgstr "No puedes borrar este evento."
|
||||
|
||||
#: lib/graphql/resolvers/event.ex:244
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/event.ex:244
|
||||
msgid "You can't attribute this event to this profile."
|
||||
msgstr "No puedes rechazar esta invitación con este perfil."
|
||||
|
@ -114,13 +114,13 @@ msgid "Current profile is not an administrator of the selected group"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/user.ex:514
|
||||
#: lib/graphql/resolvers/user.ex:512
|
||||
msgid "Error while saving user settings"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/group.ex:200 lib/graphql/resolvers/group.ex:248
|
||||
#: lib/graphql/resolvers/group.ex:283 lib/graphql/resolvers/member.ex:80
|
||||
#: lib/graphql/error.ex:90 lib/graphql/resolvers/group.ex:200
|
||||
#: lib/graphql/resolvers/group.ex:248 lib/graphql/resolvers/group.ex:283 lib/graphql/resolvers/member.ex:80
|
||||
msgid "Group not found"
|
||||
msgstr ""
|
||||
|
||||
@ -129,11 +129,6 @@ msgstr ""
|
||||
msgid "Group with ID %{id} not found"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/group.ex:41 lib/graphql/resolvers/group.ex:55
|
||||
msgid "Group with name %{name} not found"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/user.ex:83
|
||||
msgid "Impossible to authenticate, either your email or password are invalid."
|
||||
@ -229,7 +224,7 @@ msgid "User already disabled"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/user.ex:489
|
||||
#: lib/graphql/resolvers/user.ex:487
|
||||
msgid "User requested is not logged-in"
|
||||
msgstr ""
|
||||
|
||||
@ -804,7 +799,7 @@ msgid "Resource not found"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/error.ex:90
|
||||
#: lib/graphql/error.ex:91
|
||||
msgid "Something went wrong"
|
||||
msgstr ""
|
||||
|
||||
|
@ -116,13 +116,13 @@ msgid "Current profile is not an administrator of the selected group"
|
||||
msgstr "Le profil actuel n'est pas un·e administrateur·ice du groupe sélectionné"
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/user.ex:514
|
||||
#: lib/graphql/resolvers/user.ex:512
|
||||
msgid "Error while saving user settings"
|
||||
msgstr "Erreur lors de la sauvegarde des paramètres utilisateur"
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/group.ex:200 lib/graphql/resolvers/group.ex:248
|
||||
#: lib/graphql/resolvers/group.ex:283 lib/graphql/resolvers/member.ex:80
|
||||
#: lib/graphql/error.ex:90 lib/graphql/resolvers/group.ex:200
|
||||
#: lib/graphql/resolvers/group.ex:248 lib/graphql/resolvers/group.ex:283 lib/graphql/resolvers/member.ex:80
|
||||
msgid "Group not found"
|
||||
msgstr "Groupe non trouvé"
|
||||
|
||||
@ -131,11 +131,6 @@ msgstr "Groupe non trouvé"
|
||||
msgid "Group with ID %{id} not found"
|
||||
msgstr "Groupe avec l'ID %{id} non trouvé"
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/group.ex:41 lib/graphql/resolvers/group.ex:55
|
||||
msgid "Group with name %{name} not found"
|
||||
msgstr "Groupe avec le nom %{name} non trouvé"
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/user.ex:83
|
||||
msgid "Impossible to authenticate, either your email or password are invalid."
|
||||
@ -233,7 +228,7 @@ msgid "User already disabled"
|
||||
msgstr "L'utilisateur·ice est déjà désactivé·e"
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/user.ex:489
|
||||
#: lib/graphql/resolvers/user.ex:487
|
||||
msgid "User requested is not logged-in"
|
||||
msgstr "L'utilisateur·ice demandé·e n'est pas connecté·e"
|
||||
|
||||
@ -810,7 +805,7 @@ msgid "Resource not found"
|
||||
msgstr "Ressource non trouvée"
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/error.ex:90
|
||||
#: lib/graphql/error.ex:91
|
||||
msgid "Something went wrong"
|
||||
msgstr "Quelque chose s'est mal passé"
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -114,13 +114,13 @@ msgid "Current profile is not an administrator of the selected group"
|
||||
msgstr "Il profilo corrente non è amministratore del gruppo selezionato"
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/user.ex:514
|
||||
#: lib/graphql/resolvers/user.ex:512
|
||||
msgid "Error while saving user settings"
|
||||
msgstr "Errore nel salvare le preferenze utente"
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/group.ex:200 lib/graphql/resolvers/group.ex:248
|
||||
#: lib/graphql/resolvers/group.ex:283 lib/graphql/resolvers/member.ex:80
|
||||
#: lib/graphql/error.ex:90 lib/graphql/resolvers/group.ex:200
|
||||
#: lib/graphql/resolvers/group.ex:248 lib/graphql/resolvers/group.ex:283 lib/graphql/resolvers/member.ex:80
|
||||
msgid "Group not found"
|
||||
msgstr "Gruppo non trovato"
|
||||
|
||||
@ -129,11 +129,6 @@ msgstr "Gruppo non trovato"
|
||||
msgid "Group with ID %{id} not found"
|
||||
msgstr "Gruppo con ID %{id} non trovato"
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/group.ex:41 lib/graphql/resolvers/group.ex:55
|
||||
msgid "Group with name %{name} not found"
|
||||
msgstr "Gruppo con nome %{name} non trovato"
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/user.ex:83
|
||||
msgid "Impossible to authenticate, either your email or password are invalid."
|
||||
@ -229,7 +224,7 @@ msgid "User already disabled"
|
||||
msgstr "Utente già disabilitato"
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/user.ex:489
|
||||
#: lib/graphql/resolvers/user.ex:487
|
||||
msgid "User requested is not logged-in"
|
||||
msgstr "L'utente richiesto non è loggato"
|
||||
|
||||
@ -804,7 +799,7 @@ msgid "Resource not found"
|
||||
msgstr "Segnalazione non trovata"
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/error.ex:90
|
||||
#: lib/graphql/error.ex:91
|
||||
msgid "Something went wrong"
|
||||
msgstr ""
|
||||
|
||||
|
@ -101,13 +101,13 @@ msgid "Current profile is not an administrator of the selected group"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/user.ex:514
|
||||
#: lib/graphql/resolvers/user.ex:512
|
||||
msgid "Error while saving user settings"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/group.ex:200 lib/graphql/resolvers/group.ex:248
|
||||
#: lib/graphql/resolvers/group.ex:283 lib/graphql/resolvers/member.ex:80
|
||||
#: lib/graphql/error.ex:90 lib/graphql/resolvers/group.ex:200
|
||||
#: lib/graphql/resolvers/group.ex:248 lib/graphql/resolvers/group.ex:283 lib/graphql/resolvers/member.ex:80
|
||||
msgid "Group not found"
|
||||
msgstr ""
|
||||
|
||||
@ -116,11 +116,6 @@ msgstr ""
|
||||
msgid "Group with ID %{id} not found"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/group.ex:41 lib/graphql/resolvers/group.ex:55
|
||||
msgid "Group with name %{name} not found"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/user.ex:83
|
||||
msgid "Impossible to authenticate, either your email or password are invalid."
|
||||
@ -216,7 +211,7 @@ msgid "User already disabled"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/user.ex:489
|
||||
#: lib/graphql/resolvers/user.ex:487
|
||||
msgid "User requested is not logged-in"
|
||||
msgstr ""
|
||||
|
||||
@ -791,7 +786,7 @@ msgid "Resource not found"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/error.ex:90
|
||||
#: lib/graphql/error.ex:91
|
||||
msgid "Something went wrong"
|
||||
msgstr ""
|
||||
|
||||
|
@ -107,13 +107,13 @@ msgid "Current profile is not an administrator of the selected group"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/user.ex:514
|
||||
#: lib/graphql/resolvers/user.ex:512
|
||||
msgid "Error while saving user settings"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/group.ex:200 lib/graphql/resolvers/group.ex:248
|
||||
#: lib/graphql/resolvers/group.ex:283 lib/graphql/resolvers/member.ex:80
|
||||
#: lib/graphql/error.ex:90 lib/graphql/resolvers/group.ex:200
|
||||
#: lib/graphql/resolvers/group.ex:248 lib/graphql/resolvers/group.ex:283 lib/graphql/resolvers/member.ex:80
|
||||
msgid "Group not found"
|
||||
msgstr ""
|
||||
|
||||
@ -122,11 +122,6 @@ msgstr ""
|
||||
msgid "Group with ID %{id} not found"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/group.ex:41 lib/graphql/resolvers/group.ex:55
|
||||
msgid "Group with name %{name} not found"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/user.ex:83
|
||||
msgid "Impossible to authenticate, either your email or password are invalid."
|
||||
@ -222,7 +217,7 @@ msgid "User already disabled"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/user.ex:489
|
||||
#: lib/graphql/resolvers/user.ex:487
|
||||
msgid "User requested is not logged-in"
|
||||
msgstr ""
|
||||
|
||||
@ -797,7 +792,7 @@ msgid "Resource not found"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/error.ex:90
|
||||
#: lib/graphql/error.ex:91
|
||||
msgid "Something went wrong"
|
||||
msgstr ""
|
||||
|
||||
|
@ -114,13 +114,13 @@ msgid "Current profile is not an administrator of the selected group"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/user.ex:514
|
||||
#: lib/graphql/resolvers/user.ex:512
|
||||
msgid "Error while saving user settings"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/group.ex:200 lib/graphql/resolvers/group.ex:248
|
||||
#: lib/graphql/resolvers/group.ex:283 lib/graphql/resolvers/member.ex:80
|
||||
#: lib/graphql/error.ex:90 lib/graphql/resolvers/group.ex:200
|
||||
#: lib/graphql/resolvers/group.ex:248 lib/graphql/resolvers/group.ex:283 lib/graphql/resolvers/member.ex:80
|
||||
msgid "Group not found"
|
||||
msgstr ""
|
||||
|
||||
@ -129,11 +129,6 @@ msgstr ""
|
||||
msgid "Group with ID %{id} not found"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/group.ex:41 lib/graphql/resolvers/group.ex:55
|
||||
msgid "Group with name %{name} not found"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/user.ex:83
|
||||
msgid "Impossible to authenticate, either your email or password are invalid."
|
||||
@ -229,7 +224,7 @@ msgid "User already disabled"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/user.ex:489
|
||||
#: lib/graphql/resolvers/user.ex:487
|
||||
msgid "User requested is not logged-in"
|
||||
msgstr ""
|
||||
|
||||
@ -804,7 +799,7 @@ msgid "Resource not found"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/error.ex:90
|
||||
#: lib/graphql/error.ex:91
|
||||
msgid "Something went wrong"
|
||||
msgstr ""
|
||||
|
||||
|
@ -121,13 +121,13 @@ msgid "Current profile is not an administrator of the selected group"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/user.ex:514
|
||||
#: lib/graphql/resolvers/user.ex:512
|
||||
msgid "Error while saving user settings"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/group.ex:200 lib/graphql/resolvers/group.ex:248
|
||||
#: lib/graphql/resolvers/group.ex:283 lib/graphql/resolvers/member.ex:80
|
||||
#: lib/graphql/error.ex:90 lib/graphql/resolvers/group.ex:200
|
||||
#: lib/graphql/resolvers/group.ex:248 lib/graphql/resolvers/group.ex:283 lib/graphql/resolvers/member.ex:80
|
||||
msgid "Group not found"
|
||||
msgstr ""
|
||||
|
||||
@ -136,11 +136,6 @@ msgstr ""
|
||||
msgid "Group with ID %{id} not found"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/group.ex:41 lib/graphql/resolvers/group.ex:55
|
||||
msgid "Group with name %{name} not found"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/user.ex:83
|
||||
msgid "Impossible to authenticate, either your email or password are invalid."
|
||||
@ -236,7 +231,7 @@ msgid "User already disabled"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/user.ex:489
|
||||
#: lib/graphql/resolvers/user.ex:487
|
||||
msgid "User requested is not logged-in"
|
||||
msgstr ""
|
||||
|
||||
@ -811,7 +806,7 @@ msgid "Resource not found"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/error.ex:90
|
||||
#: lib/graphql/error.ex:91
|
||||
msgid "Something went wrong"
|
||||
msgstr ""
|
||||
|
||||
|
@ -107,13 +107,13 @@ msgid "Current profile is not an administrator of the selected group"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/user.ex:514
|
||||
#: lib/graphql/resolvers/user.ex:512
|
||||
msgid "Error while saving user settings"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/group.ex:200 lib/graphql/resolvers/group.ex:248
|
||||
#: lib/graphql/resolvers/group.ex:283 lib/graphql/resolvers/member.ex:80
|
||||
#: lib/graphql/error.ex:90 lib/graphql/resolvers/group.ex:200
|
||||
#: lib/graphql/resolvers/group.ex:248 lib/graphql/resolvers/group.ex:283 lib/graphql/resolvers/member.ex:80
|
||||
msgid "Group not found"
|
||||
msgstr ""
|
||||
|
||||
@ -122,11 +122,6 @@ msgstr ""
|
||||
msgid "Group with ID %{id} not found"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/group.ex:41 lib/graphql/resolvers/group.ex:55
|
||||
msgid "Group with name %{name} not found"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/user.ex:83
|
||||
msgid "Impossible to authenticate, either your email or password are invalid."
|
||||
@ -222,7 +217,7 @@ msgid "User already disabled"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/user.ex:489
|
||||
#: lib/graphql/resolvers/user.ex:487
|
||||
msgid "User requested is not logged-in"
|
||||
msgstr ""
|
||||
|
||||
@ -797,7 +792,7 @@ msgid "Resource not found"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/error.ex:90
|
||||
#: lib/graphql/error.ex:91
|
||||
msgid "Something went wrong"
|
||||
msgstr ""
|
||||
|
||||
|
@ -107,13 +107,13 @@ msgid "Current profile is not an administrator of the selected group"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/user.ex:514
|
||||
#: lib/graphql/resolvers/user.ex:512
|
||||
msgid "Error while saving user settings"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/group.ex:200 lib/graphql/resolvers/group.ex:248
|
||||
#: lib/graphql/resolvers/group.ex:283 lib/graphql/resolvers/member.ex:80
|
||||
#: lib/graphql/error.ex:90 lib/graphql/resolvers/group.ex:200
|
||||
#: lib/graphql/resolvers/group.ex:248 lib/graphql/resolvers/group.ex:283 lib/graphql/resolvers/member.ex:80
|
||||
msgid "Group not found"
|
||||
msgstr ""
|
||||
|
||||
@ -122,11 +122,6 @@ msgstr ""
|
||||
msgid "Group with ID %{id} not found"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/group.ex:41 lib/graphql/resolvers/group.ex:55
|
||||
msgid "Group with name %{name} not found"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/user.ex:83
|
||||
msgid "Impossible to authenticate, either your email or password are invalid."
|
||||
@ -222,7 +217,7 @@ msgid "User already disabled"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/user.ex:489
|
||||
#: lib/graphql/resolvers/user.ex:487
|
||||
msgid "User requested is not logged-in"
|
||||
msgstr ""
|
||||
|
||||
@ -797,7 +792,7 @@ msgid "Resource not found"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/error.ex:90
|
||||
#: lib/graphql/error.ex:91
|
||||
msgid "Something went wrong"
|
||||
msgstr ""
|
||||
|
||||
|
@ -113,13 +113,13 @@ msgid "Current profile is not an administrator of the selected group"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/user.ex:514
|
||||
#: lib/graphql/resolvers/user.ex:512
|
||||
msgid "Error while saving user settings"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/group.ex:200 lib/graphql/resolvers/group.ex:248
|
||||
#: lib/graphql/resolvers/group.ex:283 lib/graphql/resolvers/member.ex:80
|
||||
#: lib/graphql/error.ex:90 lib/graphql/resolvers/group.ex:200
|
||||
#: lib/graphql/resolvers/group.ex:248 lib/graphql/resolvers/group.ex:283 lib/graphql/resolvers/member.ex:80
|
||||
msgid "Group not found"
|
||||
msgstr ""
|
||||
|
||||
@ -128,11 +128,6 @@ msgstr ""
|
||||
msgid "Group with ID %{id} not found"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/group.ex:41 lib/graphql/resolvers/group.ex:55
|
||||
msgid "Group with name %{name} not found"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/user.ex:83
|
||||
msgid "Impossible to authenticate, either your email or password are invalid."
|
||||
@ -228,7 +223,7 @@ msgid "User already disabled"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/user.ex:489
|
||||
#: lib/graphql/resolvers/user.ex:487
|
||||
msgid "User requested is not logged-in"
|
||||
msgstr ""
|
||||
|
||||
@ -803,7 +798,7 @@ msgid "Resource not found"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/error.ex:90
|
||||
#: lib/graphql/error.ex:91
|
||||
msgid "Something went wrong"
|
||||
msgstr ""
|
||||
|
||||
|
@ -114,13 +114,13 @@ msgid "Current profile is not an administrator of the selected group"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/user.ex:514
|
||||
#: lib/graphql/resolvers/user.ex:512
|
||||
msgid "Error while saving user settings"
|
||||
msgstr "Ett fel uppstod när användarinställningarna skulle sparas"
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/group.ex:200 lib/graphql/resolvers/group.ex:248
|
||||
#: lib/graphql/resolvers/group.ex:283 lib/graphql/resolvers/member.ex:80
|
||||
#: lib/graphql/error.ex:90 lib/graphql/resolvers/group.ex:200
|
||||
#: lib/graphql/resolvers/group.ex:248 lib/graphql/resolvers/group.ex:283 lib/graphql/resolvers/member.ex:80
|
||||
msgid "Group not found"
|
||||
msgstr "Gruppen kunde inte hittas"
|
||||
|
||||
@ -129,11 +129,6 @@ msgstr "Gruppen kunde inte hittas"
|
||||
msgid "Group with ID %{id} not found"
|
||||
msgstr "Gruppen med %{id} kunde inte hittas"
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/group.ex:41 lib/graphql/resolvers/group.ex:55
|
||||
msgid "Group with name %{name} not found"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/user.ex:83
|
||||
msgid "Impossible to authenticate, either your email or password are invalid."
|
||||
@ -229,7 +224,7 @@ msgid "User already disabled"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/resolvers/user.ex:489
|
||||
#: lib/graphql/resolvers/user.ex:487
|
||||
msgid "User requested is not logged-in"
|
||||
msgstr ""
|
||||
|
||||
@ -804,7 +799,7 @@ msgid "Resource not found"
|
||||
msgstr "Resursen kunde inte hittas"
|
||||
|
||||
#, elixir-format
|
||||
#: lib/graphql/error.ex:90
|
||||
#: lib/graphql/error.ex:91
|
||||
msgid "Something went wrong"
|
||||
msgstr ""
|
||||
|
||||
|
@ -6,6 +6,7 @@ defmodule Mobilizon.EventsTest do
|
||||
alias Mobilizon.Actors.Actor
|
||||
alias Mobilizon.Events
|
||||
alias Mobilizon.Events.{Event, Participant, Session, Tag, TagRelation, Track}
|
||||
alias Mobilizon.Federation.ActivityPub.Relay
|
||||
alias Mobilizon.Service.Workers
|
||||
alias Mobilizon.Storage.Page
|
||||
|
||||
@ -19,10 +20,54 @@ defmodule Mobilizon.EventsTest do
|
||||
category: "meeting"
|
||||
}
|
||||
|
||||
describe "list_events/5" do
|
||||
setup do
|
||||
actor = insert(:actor)
|
||||
event = insert(:event, organizer_actor: actor, visibility: :public, local: true)
|
||||
Mobilizon.Config.clear_config_cache()
|
||||
{:ok, actor: actor, event: event}
|
||||
end
|
||||
|
||||
test "list_events/0 returns all events", %{event: event} do
|
||||
assert event.title == hd(Events.list_events()).title
|
||||
end
|
||||
|
||||
test "list_events/5 returns events from other instances if we follow them",
|
||||
%{event: _event} do
|
||||
events = Events.list_events()
|
||||
assert length(events) == 1
|
||||
|
||||
%Actor{id: remote_instance_actor_id} = remote_instance_actor = insert(:instance_actor)
|
||||
%Actor{id: remote_actor_id} = insert(:actor, domain: "somedomain.tld", user: nil)
|
||||
%Event{url: remote_event_url} = insert(:event, local: false, title: "My Remote event")
|
||||
Mobilizon.Share.create(remote_event_url, remote_instance_actor_id, remote_actor_id)
|
||||
|
||||
%Actor{} = own_instance_actor = Relay.get_actor()
|
||||
|
||||
insert(:follower, target_actor: remote_instance_actor, actor: own_instance_actor)
|
||||
|
||||
events = Events.list_events()
|
||||
assert length(events) == 2
|
||||
assert events |> Enum.any?(fn event -> event.title == "My Remote event" end)
|
||||
end
|
||||
|
||||
test "list_events/5 doesn't return events from other instances if we don't follow them anymore",
|
||||
%{event: _event} do
|
||||
%Actor{id: remote_instance_actor_id} = insert(:instance_actor)
|
||||
%Actor{id: remote_actor_id} = insert(:actor, domain: "somedomain.tld", user: nil)
|
||||
%Event{url: remote_event_url} = insert(:event, local: false, title: "My Remote event")
|
||||
Mobilizon.Share.create(remote_event_url, remote_instance_actor_id, remote_actor_id)
|
||||
|
||||
events = Events.list_events()
|
||||
assert length(events) == 1
|
||||
assert events |> Enum.all?(fn event -> event.title != "My Remote event" end)
|
||||
end
|
||||
end
|
||||
|
||||
describe "events" do
|
||||
setup do
|
||||
actor = insert(:actor)
|
||||
event = insert(:event, organizer_actor: actor, visibility: :public)
|
||||
event = insert(:event, organizer_actor: actor, visibility: :public, local: true)
|
||||
Workers.BuildSearch.insert_search_event(event)
|
||||
{:ok, actor: actor, event: event}
|
||||
end
|
||||
@ -41,10 +86,6 @@ defmodule Mobilizon.EventsTest do
|
||||
}
|
||||
@invalid_attrs %{begins_on: nil, description: nil, ends_on: nil, title: nil}
|
||||
|
||||
test "list_events/0 returns all events", %{event: event} do
|
||||
assert event.title == hd(Events.list_events()).title
|
||||
end
|
||||
|
||||
test "get_event!/1 returns the event with given id", %{event: event} do
|
||||
assert Events.get_event!(event.id).title == event.title
|
||||
refute Ecto.assoc_loaded?(Events.get_event!(event.id).organizer_actor)
|
||||
|
@ -78,6 +78,28 @@ defmodule Mobilizon.Factory do
|
||||
)
|
||||
end
|
||||
|
||||
def instance_actor_factory do
|
||||
preferred_username = "relay"
|
||||
domain = "#{sequence("mydomain")}.com"
|
||||
|
||||
struct!(
|
||||
actor_factory(),
|
||||
%{
|
||||
preferred_username: preferred_username,
|
||||
type: :Application,
|
||||
url: "http://#{domain}/#{preferred_username}",
|
||||
followers_url: Actor.build_url(preferred_username, :followers),
|
||||
following_url: Actor.build_url(preferred_username, :following),
|
||||
members_url: Actor.build_url(preferred_username, :members),
|
||||
resources_url: Actor.build_url(preferred_username, :resources),
|
||||
inbox_url: Actor.build_url(preferred_username, :inbox),
|
||||
outbox_url: Actor.build_url(preferred_username, :outbox),
|
||||
user: nil,
|
||||
domain: domain
|
||||
}
|
||||
)
|
||||
end
|
||||
|
||||
def follower_factory do
|
||||
uuid = Ecto.UUID.generate()
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user