From 260b9592f55104532be2670464612e4740885b4b Mon Sep 17 00:00:00 2001 From: Thomas Citharel Date: Tue, 16 Jun 2020 16:15:38 +0200 Subject: [PATCH] Improve notification settings Signed-off-by: Thomas Citharel --- js/src/components/NavBar.vue | 1 + .../Settings/NotificationsOnboarding.vue | 10 +-- js/src/i18n/en_US.json | 18 ++--- js/src/i18n/fr_FR.json | 18 ++--- js/src/variables.scss | 5 ++ js/src/views/Settings.vue | 2 +- js/src/views/Settings/AccountSettings.vue | 3 +- js/src/views/Settings/Notifications.vue | 74 ++++++++++++++----- 8 files changed, 86 insertions(+), 45 deletions(-) diff --git a/js/src/components/NavBar.vue b/js/src/components/NavBar.vue index e67f6145e..61fdfedbb 100644 --- a/js/src/components/NavBar.vue +++ b/js/src/components/NavBar.vue @@ -222,6 +222,7 @@ nav { .navbar-item { a.button.is-success { background: #1e7d97; + font-weight: bold; } svg { diff --git a/js/src/components/Settings/NotificationsOnboarding.vue b/js/src/components/Settings/NotificationsOnboarding.vue index fd8b4153b..b5b1991ad 100644 --- a/js/src/components/Settings/NotificationsOnboarding.vue +++ b/js/src/components/Settings/NotificationsOnboarding.vue @@ -6,14 +6,12 @@
{{ - $t("We'll always send you emails to notify about important event updates") + $t( + "Mobilizon will send you an email when the events you are attending have important changes: date and time, address, confirmation or cancellation, etc." + ) }}

- {{ - $t( - "Like title or physical address update, start or end date change or event being confirmed or cancelled." - ) - }} + {{ $t("Other notification options:") }}

diff --git a/js/src/i18n/en_US.json b/js/src/i18n/en_US.json index 801674cd2..92271d7bd 100644 --- a/js/src/i18n/en_US.json +++ b/js/src/i18n/en_US.json @@ -248,7 +248,7 @@ "No results for \"{queryText}\"": "No results for \"{queryText}\"", "No user account with this email was found. Maybe you made a typo?": "No user account with this email was found. Maybe you made a typo?", "Notes": "Notes", - "Notifications": "Notifications", + "Email notifications": "Email notifications", "Number of places": "Number of places", "OK": "OK", "Old password": "Old password", @@ -571,15 +571,14 @@ "Other": "Other", "No moderation logs yet": "No moderation logs yet", "Participation notifications": "Participation notifications", - "We'll always send you emails to notify about important event updates": "We'll always send you emails to notify about important event updates", - "Like title or physical address update, start or end date change or event being confirmed or cancelled.": "Like title or physical address update, start or end date change or event being confirmed or cancelled.", + "Mobilizon will send you an email when the events you are attending have important changes: date and time, address, confirmation or cancellation, etc.": "Mobilizon will send you an email when the events you are attending have important changes: date and time, address, confirmation or cancellation, etc.", + "Other notification options:": "Other notification options:", "Organizer notifications": "Organizer notifications", "Notifications for manually approved participations to an event": "Notifications for manually approved participations to an event", - "We'll send you an email when there new participations requests.": "We'll send you an email when there new participations requests.", - "No notifications": "No notifications", - "Direct": "Direct", - "Every hour": "Every hour", - "Every day": "Every day", + "Do not receive any mail": "Do not receive any mail", + "Receive one email per request": "Receive one email per request", + "Hourly email summary": "Hourly email summary", + "Daily email summary": "Daily email summary", "report #{report_number}": "report #{report_number}", "{moderator} closed {report}": "{moderator} closed {report}", "a non-existent report": "a non-existent report", @@ -644,5 +643,6 @@ "Powered by {mobilizon}. © 2018 - {date} The Mobilizon Contributors - Made with the financial support of {contributors}.": "Powered by {mobilizon}. © 2018 - {date} The Mobilizon Contributors - Made with the financial support of {contributors}.", "more than 1360 contributors": "more than 1360 contributors", "{moderator} has unsuspended profile {profile}": "{moderator} has unsuspended profile {profile}", - "{moderator} has deleted user {user}": "{moderator} has deleted user {user}" + "{moderator} has deleted user {user}": "{moderator} has deleted user {user}", + "Change timezone": "Change timezone" } diff --git a/js/src/i18n/fr_FR.json b/js/src/i18n/fr_FR.json index 81d7112ea..c93fec9eb 100644 --- a/js/src/i18n/fr_FR.json +++ b/js/src/i18n/fr_FR.json @@ -311,7 +311,7 @@ "Notes": "Notes", "Notification before the event": "Notification avant l'événement", "Notification on the day of the event": "Notification le jour de l'événement", - "Notifications": "Notifications", + "Email notifications": "Notifications par email", "Number of places": "Nombre de places", "OK": "OK", "Old password": "Ancien mot de passe", @@ -593,15 +593,14 @@ "{title} ({count} todos)": "{title} ({count} todos)", "© The OpenStreetMap Contributors": "© Les Contributeur⋅ices OpenStreetMap", "Participation notifications": "Notifications de participation", - "We'll always send you emails to notify about important event updates": "Nous vous enverrons toujours des emails pour vous notifier à propos des mises à jour importantes des événements", - "Like title or physical address update, start or end date change or event being confirmed or cancelled.": "Comme la mise à jour du titre ou de l'addresse de l'événement, un changement de date de début ou de fin, ou bien l'événement devenant confirmé ou bien annulé.", + "Mobilizon will send you an email when the events you are attending have important changes: date and time, address, confirmation or cancellation, etc.": "Mobilizon vous enverra un email quand les événements auxquels vous participez connaissent des événements importants : date et heure, adresse, confirmation ou annulation, etc.", + "Other notification options:": "Autres options de notification :", "Organizer notifications": "Notifications pour organisateur·ice", "Notifications for manually approved participations to an event": "Notifications pour l'approbation manuelle des participations à un événement", - "We'll send you an email when there new participations requests.": "Nous vous enverrons un email lorsqu'il y aura de nouvelles demandes de participation.", - "No notifications": "Pas de notifications", - "Direct": "Direct", - "Every hour": "À chaque heure", - "Every day": "Chaque jour", + "Do not receive any mail": "Ne pas recevoir d'e-mail", + "Receive one email per request": "Recevoir un e-mail par demande", + "Hourly email summary": "E-mail récapitulatif chaque heure", + "Daily email summary": "E-mail récapitulatif chaque jour", "report #{report_number}": "le signalement #{report_number}", "{moderator} closed {report}": "{moderator} a fermé {report}", "a non-existent report": "un signalement non-existant", @@ -667,5 +666,6 @@ "Powered by {mobilizon}. © 2018 - {date} The Mobilizon Contributors - Made with the financial support of {contributors}.": "Propulsé par {mobilizon}. © 2018 - {date} Les contributeur·ices Mobilizon - Fait avec le soutien financier de {contributors}.", "more than 1360 contributors": "plus de 1360 contributeur·ices", "{moderator} has unsuspended profile {profile}": "{moderator} a annulé la suspension de {profile}", - "{moderator} has deleted user {user}": "{moderator} a supprimé l'utilisateur·ice {user}" + "{moderator} has deleted user {user}": "{moderator} a supprimé l'utilisateur·ice {user}", + "Change timezone": "Changer de fuseau horaire" } diff --git a/js/src/variables.scss b/js/src/variables.scss index 446f830b4..2c94f7512 100644 --- a/js/src/variables.scss +++ b/js/src/variables.scss @@ -81,3 +81,8 @@ $subtitle-sup-size: 15px; padding: 3px 8px; margin: 15px auto 30px; } + +$accent: #1e7d97; + +$breadcrumb-item-color: $accent; +$checkbox-background-color: #fff; diff --git a/js/src/views/Settings.vue b/js/src/views/Settings.vue index d72c56cf5..f3ac9ba51 100644 --- a/js/src/views/Settings.vue +++ b/js/src/views/Settings.vue @@ -66,7 +66,7 @@ export default class Settings extends Vue { to: { name: RouteName.PREFERENCES } as Route, }, { - title: this.$t("Notifications") as string, + title: this.$t("Email notifications") as string, to: { name: RouteName.NOTIFICATIONS } as Route, }, ], diff --git a/js/src/views/Settings/AccountSettings.vue b/js/src/views/Settings/AccountSettings.vue index 40c4916af..58f8b2191 100644 --- a/js/src/views/Settings/AccountSettings.vue +++ b/js/src/views/Settings/AccountSettings.vue @@ -283,7 +283,8 @@ export default class AccountSettings extends Vue { @import "@/variables.scss"; .setting-title { - margin-top: 1rem; + margin-top: 2rem; + margin-bottom: 1rem; h2 { display: inline; diff --git a/js/src/views/Settings/Notifications.vue b/js/src/views/Settings/Notifications.vue index d855bde25..85d4b08ce 100644 --- a/js/src/views/Settings/Notifications.vue +++ b/js/src/views/Settings/Notifications.vue @@ -6,14 +6,12 @@
{{ - $t("We'll always send you emails to notify about important event updates") + $t( + "Mobilizon will send you an email when the events you are attending have important changes: date and time, address, confirmation or cancellation, etc." + ) }}

- {{ - $t( - "Like title or physical address update, start or end date change or event being confirmed or cancelled." - ) - }} + {{ $t("Other notification options:") }}

@@ -24,11 +22,16 @@ $t("We'll use your timezone settings to send a recap of the morning of the event.") }}

- {{ - $t("Your timezone is currently set to {timezone}.", { - timezone: loggedUser.settings.timezone, - }) - }} +
+ {{ + $t("Your timezone is currently set to {timezone}.", { + timezone: loggedUser.settings.timezone, + }) + }} + {{ + $t("Change timezone") + }} +
{{ $t("You can pick your timezone into your preferences.") }}
@@ -60,7 +63,7 @@

{{ $t("Organizer notifications") }}

-
+
{{ $t("Notifications for manually approved participations to an event") }} {{ value }} -

- {{ $t("We'll send you an email when there new participations requests.") }} -

@@ -87,6 +87,7 @@ import { ICurrentUser, INotificationPendingParticipationEnum, } from "../../types/current-user.model"; +import RouteName from "../../router/name"; @Component({ apollo: { @@ -106,12 +107,14 @@ export default class Notifications extends Vue { notificationPendingParticipationValues: object = {}; + RouteName = RouteName; + mounted() { this.notificationPendingParticipationValues = { - [INotificationPendingParticipationEnum.NONE]: this.$t("No notifications"), - [INotificationPendingParticipationEnum.DIRECT]: this.$t("Direct"), - [INotificationPendingParticipationEnum.ONE_HOUR]: this.$t("Every hour"), - [INotificationPendingParticipationEnum.ONE_DAY]: this.$t("Every day"), + [INotificationPendingParticipationEnum.NONE]: this.$t("Do not receive any mail"), + [INotificationPendingParticipationEnum.DIRECT]: this.$t("Receive one email per request"), + [INotificationPendingParticipationEnum.ONE_HOUR]: this.$t("Hourly email summary"), + [INotificationPendingParticipationEnum.ONE_DAY]: this.$t("Daily email summary"), }; } @@ -133,3 +136,36 @@ export default class Notifications extends Vue { } } + +