Il y a quelques choses étranges qui se produisent d’un point de vue UX lorsque tous les e-mails sont désactivés.
Je qualifierais ces problèmes de bugs.
- Tout le monde, y compris les personnes non membres du personnel, reçoit un message indiquant que le système n’envoie pas d’e-mails. Il semble qu’il n’y ait aucun moyen de désactiver cette notification. Je ne vois aucune raison pour laquelle les utilisateurs seraient alertés de cela en permanence. Peut-être que ce serait acceptable de l’afficher uniquement au personnel ou aux administrateurs. Cela a peut-être été une décision consciente à un moment donné. Je n’ai simplement pas pu trouver de discussion à ce sujet.
if (
this.siteSettings.disable_emails === "yes" ||
this.siteSettings.disable_emails === "non-staff"
) {
notices.push(
Notice.create({
text: I18n.t("emails_are_disabled"), // "Tous les e-mails sortants ont été désactivés globalement par un administrateur. Aucune notification par e-mail ne sera envoyée."
id: "alert-emails-disabled",
})
);
}
Je pense que la condition de garde devrait être modifiée en
if (
this.get("currentUser.staff") && // ou currentUser.admin
(this.siteSettings.disable_emails === "yes" ||
this.siteSettings.disable_emails === "non-staff")
) {
…
Ou tout au moins prévoir un paramètre pour décider qui reçoit cette notification. (par exemple : tout le monde / personnel / administrateur / personne)
aussi FIX: Show 'emails disabled' to staff users when disabled for non-staf… · discourse/discourse@acc121f · GitHub dans cette correction, l’idée semble être que les e-mails désactivés devraient être affichés uniquement au personnel, mais les tests https://github.com/discourse/discourse/blob/master/app/assets/javascripts/discourse/tests/acceptance/email-notice-test.js#L24 vérifient que tout le monde voit la notification
sur une note mineure : je trouve tous les test("when … un peu confus. par exemple : “When enabled” teste réellement disable_emails = "yes", ce qui, bien que je comprenne qu’il s’agisse de tests pour un changement dans les paramètres, teste en réalité les e-mails désactivés, et inversement When disabled teste les e-mails activés. Je suppose qu’ils se réfèrent davantage aux valeurs définies qu’à l’effet final, ce qui est probablement la convention du projet. Dans ce cas, c’est tout à fait acceptable. Juste étrange du point de vue d’un nouvel arrivant.
- que disable_emails soit défini sur “yes” ou “non-staff”, la section e-mails apparaît toujours dans la page des préférences de l’utilisateur pour tout le monde. Ce qui est étrange car dans le modèle, il y a des vérifications qui désactivent certaines parties lorsque les résumés ou les listes de diffusion sont désactivés.
Comme vous pouvez le voir, il n’y a pas de vérification https://github.com/discourse/discourse/blob/master/app/assets/javascripts/discourse/app/templates/preferences.hbs#L18
<li class="nav-emails">
{{#link-to "preferences.emails"}}
{{i18n "user.preferences_nav.emails"}}
{{/link-to}}
</li>
Dans ma version, j’ai quelque chose comme ça : (je ne sais pas si c’est ainsi que vous feriez, d’ailleurs) Je suis ouvert aux suggestions ![]()
{{#if (show-emails-preferences model siteSettings.disable_emails)}}
<li class="nav-emails">
{{#link-to "preferences.emails"}}
{{i18n "user.preferences_nav.emails"}}
{{/link-to}}
</li>
{{/if}}
où show-emails-preferences est défini dans un helper comme suit :
registerUnbound("show-emails-preferences", (model, disable_emails, args) => {
let result = true;
if(disable_emails === 'yes'){
result = false;
}else if(disable_emails === 'non-staff'){
result = model.staff ? true : false;
}else{
result = true;
}
return result;
});
Faites-moi savoir si l’une de ces propositions semble être une amélioration valable, et je peux préparer une PR
Salutations