diff --git a/js/src/assets/mobilizon_logo.svg b/js/src/assets/mobilizon_logo.svg deleted file mode 100644 index 97ef70b74..000000000 --- a/js/src/assets/mobilizon_logo.svg +++ /dev/null @@ -1,11 +0,0 @@ - - Mobilizon Logo - - - - - - - - - \ No newline at end of file diff --git a/js/src/components/Comment/CommentTree.vue b/js/src/components/Comment/CommentTree.vue index 592e23cd9..10c5bbc44 100644 --- a/js/src/components/Comment/CommentTree.vue +++ b/js/src/components/Comment/CommentTree.vue @@ -39,10 +39,13 @@ {{ $t("The organiser has chosen to close comments.") }} - -

- {{ $t("Loading…") }} -

+

+ {{ $t("Loading comments…") }} +

+ - + + Mobilizon Logo + + + + + + + + + diff --git a/js/src/i18n/en_US.json b/js/src/i18n/en_US.json index d03b83648..a676c79b0 100644 --- a/js/src/i18n/en_US.json +++ b/js/src/i18n/en_US.json @@ -800,5 +800,15 @@ "Mobilizon is a federated software, meaning you can interact - depending on your admin's federation settings - with content from other instances, such as joining groups or events that were created elsewhere.": "Mobilizon is a federated software, meaning you can interact - depending on your admin federation settings - with content from other instances, such as joining groups or events that were created elsewhere.", "This instance, {instanceName} ({domain}), hosts your profile, so remember its name.": "This instance, {instanceName} ({domain}), hosts your profile, so remember its name.", "If you are being asked for your federated indentity, it's composed of your username and your instance. For instance, the federated identity for your first profile is:": "If you are being asked for your federated indentity, it's composed of your username and your instance. For instance, the federated identity for your first profile is:", - "Uploaded media size": "Uploaded media size" + "Uploaded media size": "Uploaded media size", + "Loading comments…": "Loading comments…", + "Tentative": "Tentative", + "Cancelled": "Cancelled", + "Click for more information": "Click for more information", + "About anonymous participation": "About anonymous participation", + "As the event organizer has chosen to manually validate participation requests, your participation will be really confirmed only once you receive an email stating it's being accepted.": "As the event organizer has chosen to manually validate participation requests, your participation will be really confirmed only once you receive an email stating it's being accepted.", + "Your participation status is saved only on this device and will be deleted one month after the event's passed.": "Your participation status is saved only on this device and will be deleted one month after the event's passed.", + "You may clear all participation information for this device with the buttons below.": "You may clear all participation information for this device with the buttons below.", + "Clear participation data for this event": "Clear participation data for this event", + "Clear participation data for all events": "Clear participation data for all events" } diff --git a/js/src/i18n/fr_FR.json b/js/src/i18n/fr_FR.json index 1e52c9b99..257a116e2 100644 --- a/js/src/i18n/fr_FR.json +++ b/js/src/i18n/fr_FR.json @@ -888,5 +888,15 @@ "Mobilizon is a federated software, meaning you can interact - depending on your admin's federation settings - with content from other instances, such as joining groups or events that were created elsewhere.": "Mobilizon est un logiciel fédéré, ce qui signifie que vous pouvez interagir - en fonction des paramètres de fédération de votre administrateur·ice - avec du contenu d'autres instances, comme par exemple rejoindre des groupes ou des événements ayant été créés ailleurs.", "This instance, {instanceName} ({domain}), hosts your profile, so remember its name.": "Cette instance, {instanceName} ({domain}), héberge votre profil, donc notez bien son nom.", "If you are being asked for your federated indentity, it's composed of your username and your instance. For instance, the federated identity for your first profile is:": "Si l'on vous demande votre identité fédérée, elle est composée de votre nom d'utilisateur·ice et de votre instance. Par exemple, l'identité fédérée de votre premier profil est :", - "Uploaded media size": "Taille des médias téléversés" + "Uploaded media size": "Taille des médias téléversés", + "Loading comments…": "Chargement des commentaires…", + "Tentative": "Provisoire", + "Cancelled": "Annulé", + "Click for more information": "Cliquez pour plus d'informations", + "About anonymous participation": "À propos de la participation anonyme", + "As the event organizer has chosen to manually validate participation requests, your participation will be really confirmed only once you receive an email stating it's being accepted.": "L'organisateur de l'événement ayant choisi de valider manuellement les demandes de participation, votre participation ne sera réellement confirmée que lorsque vous recevrez un courriel indiquant qu'elle est acceptée.", + "Your participation status is saved only on this device and will be deleted one month after the event's passed.": "Le statut de votre participation est enregistré uniquement sur cet appareil et sera supprimé un mois après la fin de l'événement.", + "You may clear all participation information for this device with the buttons below.": "Vous pouvez effacer toutes les informations de participation pour cet appareil avec les boutons ci-dessous.", + "Clear participation data for this event": "Effacer mes données de participation pour cet événement", + "Clear participation data for all events": "Effacer mes données de participation pour tous les événements" } diff --git a/js/src/services/AnonymousParticipationStorage.ts b/js/src/services/AnonymousParticipationStorage.ts index 25f3e441f..ab03f3a68 100644 --- a/js/src/services/AnonymousParticipationStorage.ts +++ b/js/src/services/AnonymousParticipationStorage.ts @@ -160,11 +160,16 @@ async function removeAnonymousParticipation(eventUUID: string): Promise { ); } +function removeAllAnonymousParticipations(): void { + localStorage.removeItem(ANONYMOUS_PARTICIPATIONS_LOCALSTORAGE_KEY); +} + export { addLocalUnconfirmedAnonymousParticipation, confirmLocalAnonymousParticipation, getLeaveTokenForParticipation, isParticipatingInThisEvent, removeAnonymousParticipation, + removeAllAnonymousParticipations, AnonymousParticipationNotFoundError, }; diff --git a/js/src/views/About/AboutInstance.vue b/js/src/views/About/AboutInstance.vue index a1b7db04d..86b75262f 100644 --- a/js/src/views/About/AboutInstance.vue +++ b/js/src/views/About/AboutInstance.vue @@ -47,7 +47,7 @@ - @@ -105,7 +105,7 @@ import langs from "../../i18n/langs.json"; }; }, skip() { - return !this.config.languages; + return !this.config || !this.config.languages; }, }, }, @@ -126,8 +126,11 @@ export default class AboutInstance extends Vue { } get formattedLanguageList(): string { - const list = this.languages.map(({ name }) => name); - return formatList(list); + if (this.languages) { + const list = this.languages.map(({ name }) => name); + return formatList(list); + } + return ""; } // eslint-disable-next-line class-methods-use-this diff --git a/js/src/views/Event/Event.vue b/js/src/views/Event/Event.vue index 3974c7519..5c665e347 100644 --- a/js/src/views/Event/Event.vue +++ b/js/src/views/Event/Event.vue @@ -104,80 +104,16 @@
-
-
- - {{ $t("Cancel anonymous participation") }} - - {{ $t("You are participating in this event anonymously") }} - - - - - - - - {{ - $t( - "You are participating in this event anonymously but didn't confirm participation" - ) - }} - - - - - - -
-
- -
-
+
{{ $t("Instance languages") }} + {{ formattedLanguageList }}