forked from potsda.mn/mobilizon
Merge branch 'improve-notification-settings' into 'master'
Improve notification settings See merge request framasoft/mobilizon!476
This commit is contained in:
commit
5c3592cc63
|
@ -222,6 +222,7 @@ nav {
|
||||||
.navbar-item {
|
.navbar-item {
|
||||||
a.button.is-success {
|
a.button.is-success {
|
||||||
background: #1e7d97;
|
background: #1e7d97;
|
||||||
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
|
|
||||||
svg {
|
svg {
|
||||||
|
|
|
@ -6,14 +6,12 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="field">
|
<div class="field">
|
||||||
<strong>{{
|
<strong>{{
|
||||||
$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."
|
||||||
|
)
|
||||||
}}</strong>
|
}}</strong>
|
||||||
<p>
|
<p>
|
||||||
{{
|
{{ $t("Other notification options:") }}
|
||||||
$t(
|
|
||||||
"Like title or physical address update, start or end date change or event being confirmed or cancelled."
|
|
||||||
)
|
|
||||||
}}
|
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="field">
|
<div class="field">
|
||||||
|
|
|
@ -248,7 +248,7 @@
|
||||||
"No results for \"{queryText}\"": "No results for \"{queryText}\"",
|
"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?",
|
"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",
|
"Notes": "Notes",
|
||||||
"Notifications": "Notifications",
|
"Email notifications": "Email notifications",
|
||||||
"Number of places": "Number of places",
|
"Number of places": "Number of places",
|
||||||
"OK": "OK",
|
"OK": "OK",
|
||||||
"Old password": "Old password",
|
"Old password": "Old password",
|
||||||
|
@ -571,15 +571,14 @@
|
||||||
"Other": "Other",
|
"Other": "Other",
|
||||||
"No moderation logs yet": "No moderation logs yet",
|
"No moderation logs yet": "No moderation logs yet",
|
||||||
"Participation notifications": "Participation notifications",
|
"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",
|
"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.",
|
||||||
"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.",
|
"Other notification options:": "Other notification options:",
|
||||||
"Organizer notifications": "Organizer notifications",
|
"Organizer notifications": "Organizer notifications",
|
||||||
"Notifications for manually approved participations to an event": "Notifications for manually approved participations to an event",
|
"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.",
|
"Do not receive any mail": "Do not receive any mail",
|
||||||
"No notifications": "No notifications",
|
"Receive one email per request": "Receive one email per request",
|
||||||
"Direct": "Direct",
|
"Hourly email summary": "Hourly email summary",
|
||||||
"Every hour": "Every hour",
|
"Daily email summary": "Daily email summary",
|
||||||
"Every day": "Every day",
|
|
||||||
"report #{report_number}": "report #{report_number}",
|
"report #{report_number}": "report #{report_number}",
|
||||||
"{moderator} closed {report}": "{moderator} closed {report}",
|
"{moderator} closed {report}": "{moderator} closed {report}",
|
||||||
"a non-existent report": "a non-existent 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}.",
|
"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",
|
"more than 1360 contributors": "more than 1360 contributors",
|
||||||
"{moderator} has unsuspended profile {profile}": "{moderator} has unsuspended profile {profile}",
|
"{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"
|
||||||
}
|
}
|
||||||
|
|
|
@ -311,7 +311,7 @@
|
||||||
"Notes": "Notes",
|
"Notes": "Notes",
|
||||||
"Notification before the event": "Notification avant l'événement",
|
"Notification before the event": "Notification avant l'événement",
|
||||||
"Notification on the day of the event": "Notification le jour de 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",
|
"Number of places": "Nombre de places",
|
||||||
"OK": "OK",
|
"OK": "OK",
|
||||||
"Old password": "Ancien mot de passe",
|
"Old password": "Ancien mot de passe",
|
||||||
|
@ -593,15 +593,14 @@
|
||||||
"{title} ({count} todos)": "{title} ({count} todos)",
|
"{title} ({count} todos)": "{title} ({count} todos)",
|
||||||
"© The OpenStreetMap Contributors": "© Les Contributeur⋅ices OpenStreetMap",
|
"© The OpenStreetMap Contributors": "© Les Contributeur⋅ices OpenStreetMap",
|
||||||
"Participation notifications": "Notifications de participation",
|
"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",
|
"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.",
|
||||||
"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é.",
|
"Other notification options:": "Autres options de notification :",
|
||||||
"Organizer notifications": "Notifications pour organisateur·ice",
|
"Organizer notifications": "Notifications pour organisateur·ice",
|
||||||
"Notifications for manually approved participations to an event": "Notifications pour l'approbation manuelle des participations à un événement",
|
"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.",
|
"Do not receive any mail": "Ne pas recevoir d'e-mail",
|
||||||
"No notifications": "Pas de notifications",
|
"Receive one email per request": "Recevoir un e-mail par demande",
|
||||||
"Direct": "Direct",
|
"Hourly email summary": "E-mail récapitulatif chaque heure",
|
||||||
"Every hour": "À chaque heure",
|
"Daily email summary": "E-mail récapitulatif chaque jour",
|
||||||
"Every day": "Chaque jour",
|
|
||||||
"report #{report_number}": "le signalement #{report_number}",
|
"report #{report_number}": "le signalement #{report_number}",
|
||||||
"{moderator} closed {report}": "{moderator} a fermé {report}",
|
"{moderator} closed {report}": "{moderator} a fermé {report}",
|
||||||
"a non-existent report": "un signalement non-existant",
|
"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}.",
|
"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",
|
"more than 1360 contributors": "plus de 1360 contributeur·ices",
|
||||||
"{moderator} has unsuspended profile {profile}": "{moderator} a annulé la suspension de {profile}",
|
"{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"
|
||||||
}
|
}
|
||||||
|
|
|
@ -81,3 +81,8 @@ $subtitle-sup-size: 15px;
|
||||||
padding: 3px 8px;
|
padding: 3px 8px;
|
||||||
margin: 15px auto 30px;
|
margin: 15px auto 30px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$accent: #1e7d97;
|
||||||
|
|
||||||
|
$breadcrumb-item-color: $accent;
|
||||||
|
$checkbox-background-color: #fff;
|
||||||
|
|
|
@ -66,7 +66,7 @@ export default class Settings extends Vue {
|
||||||
to: { name: RouteName.PREFERENCES } as Route,
|
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,
|
to: { name: RouteName.NOTIFICATIONS } as Route,
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
|
|
|
@ -283,7 +283,8 @@ export default class AccountSettings extends Vue {
|
||||||
@import "@/variables.scss";
|
@import "@/variables.scss";
|
||||||
|
|
||||||
.setting-title {
|
.setting-title {
|
||||||
margin-top: 1rem;
|
margin-top: 2rem;
|
||||||
|
margin-bottom: 1rem;
|
||||||
|
|
||||||
h2 {
|
h2 {
|
||||||
display: inline;
|
display: inline;
|
||||||
|
|
|
@ -6,14 +6,12 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="field">
|
<div class="field">
|
||||||
<strong>{{
|
<strong>{{
|
||||||
$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."
|
||||||
|
)
|
||||||
}}</strong>
|
}}</strong>
|
||||||
<p>
|
<p>
|
||||||
{{
|
{{ $t("Other notification options:") }}
|
||||||
$t(
|
|
||||||
"Like title or physical address update, start or end date change or event being confirmed or cancelled."
|
|
||||||
)
|
|
||||||
}}
|
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="field">
|
<div class="field">
|
||||||
|
@ -24,11 +22,16 @@
|
||||||
$t("We'll use your timezone settings to send a recap of the morning of the event.")
|
$t("We'll use your timezone settings to send a recap of the morning of the event.")
|
||||||
}}
|
}}
|
||||||
</p>
|
</p>
|
||||||
<span v-if="loggedUser.settings && loggedUser.settings.timezone">{{
|
<div v-if="loggedUser.settings && loggedUser.settings.timezone">
|
||||||
|
<em>{{
|
||||||
$t("Your timezone is currently set to {timezone}.", {
|
$t("Your timezone is currently set to {timezone}.", {
|
||||||
timezone: loggedUser.settings.timezone,
|
timezone: loggedUser.settings.timezone,
|
||||||
})
|
})
|
||||||
}}</span>
|
}}</em>
|
||||||
|
<router-link class="change-timezone" :to="{ name: RouteName.PREFERENCES }">{{
|
||||||
|
$t("Change timezone")
|
||||||
|
}}</router-link>
|
||||||
|
</div>
|
||||||
<span v-else>{{ $t("You can pick your timezone into your preferences.") }}</span>
|
<span v-else>{{ $t("You can pick your timezone into your preferences.") }}</span>
|
||||||
</b-checkbox>
|
</b-checkbox>
|
||||||
</div>
|
</div>
|
||||||
|
@ -60,7 +63,7 @@
|
||||||
<div class="setting-title">
|
<div class="setting-title">
|
||||||
<h2>{{ $t("Organizer notifications") }}</h2>
|
<h2>{{ $t("Organizer notifications") }}</h2>
|
||||||
</div>
|
</div>
|
||||||
<div class="field">
|
<div class="field is-primary">
|
||||||
<strong>{{ $t("Notifications for manually approved participations to an event") }}</strong>
|
<strong>{{ $t("Notifications for manually approved participations to an event") }}</strong>
|
||||||
<b-select
|
<b-select
|
||||||
v-model="notificationPendingParticipation"
|
v-model="notificationPendingParticipation"
|
||||||
|
@ -73,9 +76,6 @@
|
||||||
>{{ value }}</option
|
>{{ value }}</option
|
||||||
>
|
>
|
||||||
</b-select>
|
</b-select>
|
||||||
<p>
|
|
||||||
{{ $t("We'll send you an email when there new participations requests.") }}
|
|
||||||
</p>
|
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
</div>
|
</div>
|
||||||
|
@ -87,6 +87,7 @@ import {
|
||||||
ICurrentUser,
|
ICurrentUser,
|
||||||
INotificationPendingParticipationEnum,
|
INotificationPendingParticipationEnum,
|
||||||
} from "../../types/current-user.model";
|
} from "../../types/current-user.model";
|
||||||
|
import RouteName from "../../router/name";
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
apollo: {
|
apollo: {
|
||||||
|
@ -106,12 +107,14 @@ export default class Notifications extends Vue {
|
||||||
|
|
||||||
notificationPendingParticipationValues: object = {};
|
notificationPendingParticipationValues: object = {};
|
||||||
|
|
||||||
|
RouteName = RouteName;
|
||||||
|
|
||||||
mounted() {
|
mounted() {
|
||||||
this.notificationPendingParticipationValues = {
|
this.notificationPendingParticipationValues = {
|
||||||
[INotificationPendingParticipationEnum.NONE]: this.$t("No notifications"),
|
[INotificationPendingParticipationEnum.NONE]: this.$t("Do not receive any mail"),
|
||||||
[INotificationPendingParticipationEnum.DIRECT]: this.$t("Direct"),
|
[INotificationPendingParticipationEnum.DIRECT]: this.$t("Receive one email per request"),
|
||||||
[INotificationPendingParticipationEnum.ONE_HOUR]: this.$t("Every hour"),
|
[INotificationPendingParticipationEnum.ONE_HOUR]: this.$t("Hourly email summary"),
|
||||||
[INotificationPendingParticipationEnum.ONE_DAY]: this.$t("Every day"),
|
[INotificationPendingParticipationEnum.ONE_DAY]: this.$t("Daily email summary"),
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -133,3 +136,36 @@ export default class Notifications extends Vue {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
@import "../../variables.scss";
|
||||||
|
|
||||||
|
.field {
|
||||||
|
.b-checkbox.checkbox {
|
||||||
|
align-items: normal;
|
||||||
|
|
||||||
|
/deep/ & input:checked + .check {
|
||||||
|
background-color: $accent;
|
||||||
|
border-color: $accent;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
&:not(:last-child) {
|
||||||
|
margin-bottom: 1.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.change-timezone {
|
||||||
|
color: $accent;
|
||||||
|
text-decoration: underline;
|
||||||
|
text-decoration-color: #fea72b;
|
||||||
|
text-decoration-thickness: 2px;
|
||||||
|
margin-left: 5px;
|
||||||
|
}
|
||||||
|
// /deep/ .select select {
|
||||||
|
// &:active,
|
||||||
|
// &:focus {
|
||||||
|
// border-color: $primary;
|
||||||
|
// box-shadow: 0 0 0 0.125em rgba($primary, 0.25);
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
Loading…
Reference in a new issue