Notes de version pour Discourse 2.4.0.beta3

Nouvelles fonctionnalités dans 2.4.0.beta3

Personnalisation du fichier robots.txt

Cette fonctionnalité permet aux administrateurs de personnaliser/remplacer le contenu du fichier robots.txt à l’adresse /admin/customize/robots. Cette page n’est liée nulle part dans l’interface utilisateur : les administrateurs doivent saisir manuellement l’URL pour y accéder :

Envoi d’un maximum de 200 e-mails par minute pour les invitations en masse

Remarque : invite.via_email a été déprécié au profit de invite.emailed_status.

Ce commit ajoute une nouvelle colonne emailed_status dans la table invites pour suivre l’état d’envoi des e-mails.

 0 - non requis
 1 - en attente
 2 - en attente (masse)
 3 - en cours d'envoi
 4 - envoyé
  • Pour les invitations par e-mail normales, un enregistrement d’invitation est créé avec emailed_status défini sur « en attente ».
  • Lors de l’envoi d’invitations en masse, un enregistrement d’invitation est créé avec emailed_status défini sur « en attente (masse) ».
  • Pour les invitations générant un lien, un enregistrement d’invitation est créé avec emailed_status défini sur « non requis ».
  • Lorsque l’e-mail d’invitation est dans la file d’attente, emailed_status est mis à jour à « en cours d’envoi ».
  • Une fois l’e-mail envoyé via le travail InviteEmail, l’enregistrement d’invitation voit son emailed_status mis à jour à « envoyé ».

Authentification externe lors de l’échange d’invitations

Cette fonctionnalité (lorsqu’elle est activée) permet aux sites invite_only d’exiger une authentification externe avant de pouvoir échanger une invitation.

  • Création d’un paramètre de site caché pour activer/désactiver cette option
  • Permet l’envoi d’invitations avec la connexion locale désactivée
  • Ajout d’un bouton OAuth au formulaire d’invitation
  • Nécessite que l’adresse e-mail OAuth corresponde à l’adresse e-mail de l’invitation
  • Empêche l’échange de l’invitation si l’authentification OAuth échoue

Choix de la catégorie lors de la publication d’un MP

Auparavant, cela par défaut sur Non catégorisé, ce qui n’était pas idéal sur certains forums. Désormais, le membre du personnel peut immédiatement décider dans quelle catégorie déplacer le MP.

Affichage du contenu brut des e-mails pour les publications en file d’attente modérables

Si une publication arrive par e-mail mais doit être révisée, nous affichons désormais une icône cliquable pour voir le contenu brut de l’e-mail.

Ceci est utile si l’analyseur d’e-mails de Discourse se comporte de manière étrange et que l’utilisateur révisant la publication souhaite connaître le contenu original avant d’approuver/rejeter la publication.

Améliorations des mots surveillés

De nouvelles fonctionnalités ont été ajoutées dans cette version.

Il y a deux nouveaux boutons. Le premier permet aux administrateurs de télécharger les mots surveillés par action dans un fichier .txt, le deuxième bouton efface tous les mots supprimés par action (par exemple, bloquer, signaler, etc.). De plus, lorsqu’une publication est rejetée car elle contient un ou plusieurs mots bloqués, le message d’erreur liste désormais tous les mots bloqués contenus dans la publication.

Veuillez noter que ces nouvelles fonctionnalités changent également le format du fichier pour l’importation des mots surveillés de .csv à .txt, ce qui le rend incohérent avec l’extension du fichier lors de l’exportation des mots surveillés.

Personnalisation des e-mails HTML

Cette fonctionnalité ajoute la possibilité de personnaliser la partie HTML de tous les e-mails en utilisant un modèle HTML personnalisé et, éventuellement, du CSS pour le styliser. Le CSS sera analysé et converti en styles en ligne car le CSS est mal pris en charge par les clients de messagerie. Lors de la rédaction du HTML et du CSS personnalisés, tenez compte des clients de messagerie pris en charge. Gardez les personnalisations très simples.

Les personnalisations peuvent être ajoutées et modifiées dans Admin > Personnaliser > Style d’e-mail.

Puisque l’e-mail de résumé est déjà fortement stylisé, il existe un paramètre pour désactiver les styles personnalisés pour les e-mails de résumé appelé apply custom styles to digest (appliquer les styles personnalisés aux résumés), trouvé dans Admin > Paramètres > E-mail.

Dans le cadre de ce travail, les locales RTL sont désormais rendues correctement pour tous les e-mails.

Liste des modérateurs de catégorie sur la page À propos

Une nouvelle mise à jour pour la fonctionnalité Category Group Review/Moderation. Désormais, les modérateurs de catégorie seront visibles sur la page À propos du site, aux côtés des membres du personnel.

Ajout de la prise en charge du niveau de visibilité des membres du groupe et envoi d’une notification lorsqu’un membre est accepté dans un groupe.

Autre ajout à la gestion de la visibilité des groupes. Désormais, il existe 5 niveaux de visibilité (similaires à la visibilité du groupe) :

  • public (par défaut)
  • utilisateurs connectés
  • membres uniquement
  • personnel
  • propriétaires

Les administrateurs et les propriétaires de groupes ont toujours une visibilité sur les membres du groupe.

Désormais, des notifications sont également envoyées aux utilisateurs qui sont acceptés dans un groupe.

Intégration de la liste des sujets sur des sites distants via l’API JavaScript.

Cette fonctionnalité ajoute la prise en charge d’une balise <d-topics-list> que vous pouvez intégrer dans votre site et qui sera rendue sous forme de liste de sujets Discourse. Tous les attributs de la balise seront transmis en tant que filtres. Par exemple :

<d-topics-list discourse-url="URL" category="1234"> filtrera sur la catégorie 1234.

Pour utiliser cette fonctionnalité, activez le paramètre de site embed topics list (intégrer la liste des sujets). Ensuite, sur le site où vous souhaitez intégrer, incluez le script JavaScript suivant :

<script src="http://URL/javascripts/embed-topics.js"></script>

URL est l’URL de votre forum Discourse.

Ensuite, incluez la balise <d-topics-list discourse-url="URL"> dans votre document HTML et elle sera remplacée par la liste des sujets.

Pour plus de détails, consultez Embedding a list of Discourse Topics in another site

Ajout d’un webhook pour les notifications utilisateur

Si activé, cela déclenchera un webhook chaque fois qu’une notification utilisateur est créée. Cela pourrait potentiellement générer beaucoup de données selon votre forum et doit être utilisé avec prudence car il inclut tout ce que tous les utilisateurs verront dans leurs flux.

Traiter theme_uploads comme des paramètres en JavaScript et permettre aux thèmes de télécharger des fichiers js en tant qu’actifs

Ce sont d’autres améliorations pour les thèmes. La première permet aux thèmes et aux composants d’accéder aux actifs du thème. Cela signifie que dans le JS du thème, vous pouvez maintenant obtenir l’URL d’un actif avec :

settings.theme_uploads.name

La deuxième amélioration aide à débloquer la capacité des thèmes à différer le chargement de plus gros payloads JS. Le changement est sûr car les thèmes ont déjà le droit d’inclure du JS en ligne.

Paramètres de site pour la liaison avec les applications natives iOS/Android et intégration de l’invite d’installation PWA dans l’interface utilisateur de Discourse

Dans cette version, de nouvelles fonctionnalités sont également disponibles pour les applications Android et iOS.

Il existe désormais deux nouveaux paramètres de site pour ajouter la prise en charge des liens universels iOS via un point de terminaison apple-app-site-association et des liens d’actifs numériques Google au point de terminaison .well-known/assetlinks.json.

De plus, nous empêcherons la barre d’« info mini » d’installation native de s’afficher, capturerons l’événement qui l’accompagne et le différerons jusqu’à ce que l’utilisateur remplisse nos critères, qui sont actuellement le niveau de confiance 1.

Si l’événement se produit et que l’utilisateur remplit nos critères, nous affichons une bannière d’alerte Discourse proposant l’installation à l’utilisateur. La fermeture de la bannière est enregistrée afin que l’utilisateur ne soit plus dérangé sur le même appareil.

Connexion avec Discord

Nous avons intégré la fonctionnalité de discourse-plugin-discord-auth dans le cœur du système. Le plugin se désactivera automatiquement lorsque le cœur sera mis à jour, voir : discourse/discourse-plugin-discord-auth@fd08678?w=1.

Pour les instructions de configuration, visitez Configure Discord Login for Discourse

Amélioration des performances du cache anonyme

Voici 2 nouvelles fonctionnalités pour améliorer les performances :

  • DISCOURSE_COMPRESS_ANON_CACHE (true|false, par défaut false) : cela vous permet de compresser optionnellement les entrées du corps du cache anonyme dans Redis, ce qui peut être utile pour les sites à forte charge avec Redis hébergé sur un serveur distinct des serveurs web.

  • DISCOURSE_ANON_CACHE_STORE_THRESHOLD (par défaut 2), ne placez les entrées dans Redis que si nous les observons plus de N fois. Cela évite les situations où un robot d’exploration peut parcourir un grand nombre de sujets et les stocker tous dans Redis sans jamais les utiliser. Notre durée de cache anonyme par défaut pour les sujets est de seulement 60 secondes. Le cache anonyme est en place pour éviter l’effet « Slashdot » où un seul sujet est touché par des centaines de personnes en une minute.

26 « J'aime »

Encore plus !

Mais attendez, il y a encore mieux ! Nous faisons de notre mieux pour mettre en avant les nouvelles fonctionnalités et les modifications à votre intention, mais il y a toujours trop de changements pour tous les détailler. Pour obtenir la liste complète des nouvelles fonctionnalités, des corrections de bugs, des améliorations de l’expérience utilisateur (UX) et bien plus encore, assurez-vous de consulter les fonctionnalités et corrections supplémentaires listées ci-dessous.

Mises à jour de sécurité

Cette version bêta inclut 10 correctifs de sécurité pour des problèmes signalés par notre communauté et HackerOne.

  • Réinitialisation du mot de passe lors de l’activation d’un compte via un fournisseur d’authentification
  • Ne pas envoyer le jeton CSRF dans la chaîne de requête
  • Mise à jour de nokogiri
  • Ajout de la limitation du taux pour la reporting d’erreurs JS anonyme
  • Ne pas révéler les détails de la catégorie aux utilisateurs qui n’y ont pas accès
  • Restriction de l’accès au message-bus sur les sites nécessitant une connexion
  • Nécessité d’une requête POST avec un jeton CSRF pour la phase de requête OmniAuth
  • Nettoyage de l’identifiant e-mail pour une utilisation comme clé mutex
  • Ajout d’un écran de confirmation lors de la connexion de comptes associés
  • Validation de l’identifiant de bloc de sauvegarde

Améliorations des plugins

Discourse Cakeday

  • Mise à jour des traductions

Discourse Checklist

  • Mise à jour des traductions

Discourse Math

  • Mise à jour des traductions

Discourse Saved Searches

  • Mise à jour des traductions

Discourse Policy

  • Mise à jour de l’icône obsolète

Discourse Invite Token

  • CORRECTION : invite.via_email est obsolète au profit de invite.emailed_status

Discourse User Notes

  • Mise à jour des traductions
  • Mise à jour des noms d’icônes obsolètes
  • Suppression du fichier package.json
  • Mise à jour des noms de paramètres et du readme pour refléter le renommage en « user notes »
  • Mise à jour de README.md
  • CORRECTION : Renommage du paramètre du site dans la base de données également.
  • CORRECTION : Utilisation du chemin correct
  • DÉV : Renommage des fichiers, des fonctions et des entrées de la base de données, plus deux petites corrections

Discourse Translator

  • Utilisation de zh-Hans et zh-Hant comme codes de langue pour l’API Microsoft
  • CORRECTION : Utilisation de l’option HTML dans le traducteur Microsoft
  • Correction des spécifications

Discourse Steam Login

  • Rendre Rubocop heureux

Discourse Amazon Login

  • CORRECTION : Amazon vérifie les adresses e-mail.
  • Rendre Rubocop heureux

Discourse Canned Replies

  • Mise à jour des traductions
  • Mise à jour des noms d’icônes obsolètes
  • REFACTOR : Refactoring/formatage mineur
  • DÉV : Suppression de la dépréciation sendAction
  • CORRECTION : Limitation de la hauteur de la modale d’édition de réponse sur mobile

Discourse Oauth2 Basic

  • Mise à jour des traductions
  • FONCTIONNALITÉ : Migration vers ManagedAuthenticator
  • CORRECTION : Ignorer les user_ids en double lors de la migration des anciennes données
  • Rendre Rubocop heureux
  • CORRECTION : Ignorer les valeurs non numériques lors de la migration depuis l’ancien format de données

Discourse Chat Integration

  • Mise à jour des traductions
  • Mise à jour des noms d’icônes obsolètes
  • CORRECTION : Accès correct aux paramètres du transcript
  • CORRECTION : Variable ou méthode locale non définie `site_setting_saved’
  • CORRECTION : Une erreur serait levée si moins de « skip_messages » existaient

Discourse Graphviz

  • Ajout d’un ID à l’appel d’API decorateCooked
  • CORRECTION : Enregistrement du plugin uniquement s’il est activé
  • CORRECTION : Ne rien faire si non activé
  • CORRECTION : Permet de rendre plusieurs graphiques dans l’aperçu
  • CORRECTION : Suppression automatique des commentaires de la définition du graphique
  • CORRECTION : Permet à la définition du graphique d’avoir des lignes vides
  • FONCTIONNALITÉ : Utilisation de svg=true pour forcer Graphviz à éviter la conversion d’image
  • FONCTIONNALITÉ : Rendu du SVG en SVG réel et remplacement en ligne

Discourse Tooltips

  • REFACTOR : Suppression du pattern this.$()
  • PERF : Activation du cache anonyme de 3 minutes pour les infobulles
  • FONCTIONNALITÉ : Ajout du support de la limitation du taux lorsque les requêtes sont en file d’attente

Discourse Signatures

  • DÉV : Ne pas exiger de redémarrage pour activer les signatures
  • CORRECTION : Sérialisation uniquement des champs personnalisés de l’utilisateur spécifiques à ce plugin

Discourse Patreon

  • Mise à jour des traductions
  • Mise à jour de l’icône obsolète
  • CORRECTION : Ne pas lever d’erreur si le groupe de patrons ou le badge existe déjà.
  • Lint du fichier

Discourse Code Review

  • Mise à jour de l’icône obsolète
  • Modifications suite aux retours de Sam
  • DÉV : Renommage des clés i18n car elles ne sont pas des clés de pluriel i18n
  • DÉV : Déplacement de la synchronisation des utilisateurs dans son propre module
  • DÉV : Déplacement de la création de catégorie dans son propre module
  • CORRECTION : Condition de course
  • CORRECTION : Le tirage d’un commit individuel a été cassé par 079055c
  • FONCTIONNALITÉ : Synchronisation des commits non fusionnés
  • FONCTIONNALITÉ : Synchronisation des suppressions de posts vers Github
  • REFACTOR : Anciens patterns et dépréciations
  • Rendre Rubocop heureux
  • DÉV : Ajout d’helpers pour nettoyer les entrées
  • FONCTIONNALITÉ : Synchronisation des demandes de tirage (Pull Request)
  • DÉV : Rendre Rubocop heureux
  • CORRECTION : Mise en majuscule des constantes de chaîne en snake case
  • CORRECTION : Synchronisation uniquement des posts réguliers
  • CORRECTION : Ignorer la validation lors de la mise à jour des posts de fermeture
  • CORRECTION : Mise à jour du node_id après le miroir d’un commentaire
  • FONCTIONNALITÉ : Page de configuration des Webhooks Github
  • DÉV : Ajout de tests pour le miroir des posts de PR vers Github en tant que commentaires
  • CORRECTION : Condition de course lors de la création de posts et de sujets

Discourse Styleguide

  • REFACTOR : Suppression du pattern this.$()
  • Mise à jour des noms d’icônes FA 4.7 obsolètes et du lien
  • Mise à jour du lien, détails supplémentaires pour la section icônes
  • UX : Petites corrections de style
  • Liste de toutes les icônes disponibles dans les Sprites SVG

Discourse Characters Required

  • Mise à jour des traductions

Discourse Solved

  • Mise à jour des traductions
  • UX : Intégration du texte avec le bouton pour améliorer l’espacement
  • Annulation de « UX : Intégration du texte avec le bouton pour améliorer l’espacement »
  • UX : Si je ne peux pas désélectionner une réponse, afficher du texte et non un bouton
  • Suppression de la variable inutilisée
  • Correction de la marge du texte du bouton Solved
  • CORRECTION : Inclusion des sujets précédemment résolus dans le rehaussement automatique
  • CORRECTION : Correction de la suite de tests après modification des paramètres de catégorie fabriqués
  • Remplacement de l’icône obsolète

Discourse Calendar

  • Diverses corrections de bugs et améliorations de performances
  • Correction de Prettier
  • Rendre Rubocop heureux
  • CORRECTION : S’assurer que seuls les utilisateurs actifs peuvent être en congé
  • DÉV : Ne pas introduire de tests heisenberg basés sur le temps
  • CORRECTION : Ne pas tenter de valider un post d’un sujet sans calendrier
  • CORRECTION : S’assurer que nous vérifions le post original et non n’importe quel post
  • Correction mineure du style de code
  • CORRECTION : Ne pas appliquer Markdown au calendrier si le plugin n’est pas activé
  • Correction de Prettier

Discourse Plugin Discord Auth

(À partir de cette version, la prise en charge de Discord est incluse dans le cœur de Discourse, ce plugin n’est plus requis)

  • DÉV : Approbation des utilisateurs via l’API reviewable
  • CORRECTION : send_email doit être faux
  • FONCTIONNALITÉ : Migration de Discord vers ManagedAuthenticator
  • DÉV : Suppression des paramètres de stratégie inutilisés
  • CORRECTION : Correction de la signature de la méthode after_authenticate pour permettre la reconnexion
  • DÉV : Suppression de la dépendance à omniauth-discord
  • FONCTIONNALITÉ : Modification de la méthode de restriction d’accès aux trusted_guilds
  • UX : Définition de la clé secrète Discord en tant que paramètre de site secret
  • Désactivation automatique du plugin lorsque le cœur est mis à jour avec la prise en charge de Discord
  • UX : Mise à jour du texte du paramètre de site client_id

Discourse Prometheus

  • Rendre Rubocop heureux
  • DÉV : Lint du fichier, tentative d’isoler la racine de l’exception de la base de données
  • DÉV : Tentative de libération agressive des connexions
  • FONCTIONNALITÉ : Suivi du nombre d’appels SQL par point de terminaison HTTP
  • FONCTIONNALITÉ : Suivi des performances du cache anonyme
  • DÉV : La journalisation de la base de données est excessive

Discourse Data Explorer

  • Mise à jour des traductions
  • REFACTOR : Anciens patterns, dépréciations et code mort
  • Ajout de Prettier
  • Correction de Prettier
  • CORRECTION : Empêche la mutation d’un objet en lecture seule

Discourse Akismet

  • Mise à jour des traductions
  • Mise à jour des noms d’icônes obsolètes
  • CORRECTION : Ne pas envoyer l’IP/UA de l’utilisateur si non disponible
  • CORRECTION : Toujours vérifier la présence d’une biographie avant d’envoyer à Akismet
  • Vérification de comment_content avant le nettoyage
  • CORRECTION : Ignorer l’utilisateur si client_ip n’est pas présent
  • Mise à jour de la description de test dupliquée
  • Correction de Rubocop
  • Annulation de « Vérification de comment_content avant le nettoyage »
  • FONCTIONNALITÉ : Lien vers le profil de l’utilisateur si possible lors de la revue des AkismetFlaggedUsers
  • CORRECTION : Rendre compatible avec la fonctionnalité « assets CSS de plugin débundle ».

Discourse Assign

  • Mise à jour des traductions
  • DÉV : Utilisation des IDs de groupe pour permettre l’assignation sur les groupes
  • REFACTOR : Anciens patterns Ember, dépréciations, code mort
  • DÉV : Utilisation de la nouvelle API topic-button
  • CORRECTION : Utilisation de l’API taskActions et suppression des anciens boutons
  • DÉV : Les groupes autorisés à être assignés sont envoyés avec les suggestions. Après la migration, nous aurons toujours besoin d’accéder aux noms des groupes autorisés pour pouvoir rechercher des utilisateurs.
  • CORRECTION : Suppression de l’import inutilisé
  • Initialisation de allowedGroups dans le constructeur
  • Rendre Rubocop heureux
  • UX : Ajout de « Assigné » au titre de la page pour la liste des sujets assignés
  • CORRECTION : Utilisation de can_assign au lieu de staff pour afficher correctement la modale d’assignation

Discourse Voting

  • Mise à jour des traductions
  • DÉV : Définition de category_custom_field comme booléen
  • CORRECTION : Récupération des votes lorsque le vote est désactivé sur une catégorie
  • Rendre Rubocop heureux
  • PERF : Éviter N+1 lors du chargement de la catégorie
  • DÉV : Utilisation de la nouvelle API addNavigationBarItem
  • DÉV : Déplacement d’une partie de l’initialiseur dans le pré-initialiseur
  • CORRECTION : Enveloppement des remplacements dans reloadable_patch
  • CORRECTION : Ajout de l’attribut can_vote à tous les sérialiseurs de catégorie.
  • Linting
  • CORRECTION : S’assurer que le conteneur n’a pas été détruit
  • CORRECTION : Empêcher tout travail si non activé
  • CORRECTION : Garder le plugin compatible avec les anciennes versions de Discourse
  • REFACTOR : Nettoyage du CSS du plugin
  • UX : Enveloppement des avatars dans la fenêtre contextuelle des votants

Discourse AD

  • Mise à jour des traductions
  • CORRECTION : Mauvaise taille des publicités DFP lors de l’utilisation de plusieurs tailles
  • DÉV : Migration de no_ads_for_groups pour utiliser des IDs au lieu de noms de groupes
  • CORRECTION : Les publicités Amazon ne s’affichent jamais
  • DÉV : Migration de no_ads_for_groups pour utiliser des IDs au lieu de noms de groupes
  • CORRECTION : Les publicités s’affichent toujours dans tous les emplacements pour CodeFund et Carbon Ads
  • CORRECTION : Publicités CodeFund entre les posts sur des largeurs étroites
  • FONCTIONNALITÉ : Ajout d’une option pour désactiver les publicités dans les catégories restreintes

Fonctionnalités et corrections supplémentaires

[details=“Cliquez pour développer”]

Nouvelles fonctionnalités

  • Prise en charge de la sortie data-explorer dans la navigation de groupe
  • Suivi de la date de dernière utilisation de la clé API
  • Intégration de sujets avec des métadonnées détaillées
  • Le cache anonyme rapporte des données aux journaux
  • Création d’une tâche rake pour détruire les catégories
  • Nouvelle en-tête HTTP « Discourse-Render »
  • Notification des auteurs lors de la restauration de posts signalés
  • Ne pas remplacer ↔ par un emoji
  • Publication de l’état de lecture sur les messages de groupe. (Initialement introduit dans #7989)
  • Ajout d’un hook après tous les initialiseurs
  • Ajout de l’attribut de compte à rebours à [date]
  • Protection contre les attaques par rejeu lors de l’utilisation de TLS 1.3 0-RTT
  • Autorisation des plugins à manipuler les paramètres du site lors de la restauration de sauvegarde
  • Publication de l’état de lecture sur les messages de groupe.
  • Les emojis favoris s’afficheront également dans la saisie automatique du compositeur
  • Résultats des sondages réservés au personnel
  • Ajout d’un aperçu à l’éditeur de sondage
  • Autorisation des thèmes à remplacer les variables de transformation de couleur
  • Authentification externe lors de l’échange d’invitations
  • Ajout d’un paramètre pour afficher le contenu des e-mails transférés dans les sujets
  • Ajout d’une option pour toujours envoyer des extraits dans les e-mails
  • Mention dans une catégorie sécurisée pour prioriser les groupes
  • Autorisation de maintenir plus longtemps le mutex de traitement des posts
  • Ajout d’une installation de test à l’interface d’administration des mots surveillés
  • Amélioration des statistiques fournies par rake db:stats
  • Génération de nouvelles clés VAPID lorsque base_url change
  • Synchronisation en temps réel de l’état non lu vers les listes de sujets
  • Ajout de pièces jointes aux e-mails sortants
  • Ajout d’un opérateur de recherche pour voir tous les messages directs d’un utilisateur
  • Autorisation aux utilisateurs n’ayant eu aucune pénalité au cours des 6 derniers mois d’atteindre le niveau TL3.
  • Création d’une tâche rake pour détruire les catégories]
  • Nouveaux composants date/heure
  • Conversion de Gz en zip pour les exports
  • Les exports admin/utilisateur sont compressés au format zip
  • Création d’une tâche rake pour détruire les catégories
  • Faire fonctionner Discourse hors ligne avec WorkboxJS

Corrections de bugs

  • Améliorations du compositeur Mobile Safari
  • Rendre la fonctionnalité « demandes d’appartenance au groupe » compatible avec l’option de niveau de visibilité « logged_on_users ».
  • Ajustement de la taille du compositeur pour iPhone Xs Max et Xʀ
  • Rapport des contrôleurs et actions mis en cache aux journaux
  • S’assurer que google classic a le bon emoji man_facepalming
  • Inclusion de ‘short_url’ comme src si l’URL de téléchargement n’existe pas
  • Fermeture de la carte utilisateur après avoir cliqué sur le bouton Message
  • Gestion des fenêtres contextuelles d’authentification pour les particularités des cookies same-site de Safari
  • Notifications utilisateur pour les posts signalés
  • L’utilisateur doit être notifié lorsqu’un post est supprimé
  • Planificateur cassé lors du changement de per_host <-> global
  • Autorisation d’accéder aux objets imbriqués dans les paramètres du thème
  • En cas d’enregistrement utilisateur orphelin, sauter le badge
  • Le battement de cœur doit être par hôte
  • Les notifications ne se mettent pas à jour correctement depuis un onglet en arrière-plan
  • Enregistrement du thème distant non sauvegardé lors de la vérification des mises à jour
  • Éviter la publication de modifications si le sujet a été supprimé
  • Inclusion de l’indicateur de lecture lorsque publish_group_state est activé
  • Un texte remplacé d’une clé plurielle inexistante a entraîné une erreur
  • S’assurer que le rechargement en direct du CSS du thème fonctionne dès la première fois
  • turbo_rspec affiche correctement les erreurs dans les groupes partagés
  • Condition de course lors des déploiements créant des feuilles de style
  • Ne pas rechercher de balises lors de la modification du titre du sujet
  • Ne pas faire planter si le sujet n’existe plus
  • Lors de l’activation via omniauth, création de jetons après la réinitialisation du mot de passe
  • Lors de l’activation d’un utilisateur, s’assurer que le changement est reflété immédiatement
  • Autoriser le tableau de bord à se charger même lorsque la version git ne peut pas être trouvée
  • Affichage des lecteurs réels sur le premier post
  • S’assurer que les tailles d’avatar sont des entiers
  • Utilisation de l’argument app uniquement pour la bannière officielle de l’application iOS
  • Afficher qui a lu uniquement si l’attribut est activé
  • Mise à jour correcte des groupes de sujets
  • La surcharge des textes _MF ne fonctionnait pas pour en_US
  • Lors de l’utilisation d’une URL d’authentificateur personnalisée, envoyer la requête en utilisant GET
  • Add_to_serializer ne prenait pas correctement en compte les chaînes d’héritage
  • Ne pas afficher la bannière PWA lors de l’utilisation d’une application native
  • Suppression du signe % en double des messages d’erreur
  • Vérification du battement de cœur par processus sidekiq
  • Permet à mini-tag-chooser de récupérer les balises en arrière-plan
  • Filtrage des posts cachés pour wordpress
  • Ne pas définir le cookie destination_url après la suppression de son propre compte.
  • Boucle infinie lors de la mention dans IE11
  • Chargement correct des assets CSS de plugin uniquement pour desktop et mobile.
  • Autorisation de la modification de sujets lors de l’utilisation d’une balise cachée
  • Condition de course dans les gestionnaires de repli
  • Ne pas essayer de supprimer les administrateurs et modérateurs mis en attente et inutilisés
  • Réinitialisation régulière de l’extension inconnue des téléchargements
  • Limitation de la bannière d’installation PWA à Android pour l’instant
  • L’indicateur de lecture n’apparaît que lorsque le paramètre de groupe est activé
  • S’assurer que les locales supplémentaires ne sont disponibles que pour le personnel
  • S’assurer que le décalage est toujours positif
  • Empêche la navigation mobile de créer une erreur lors de la désinscription des événements de clic
  • Utilisation d’un pattern plus simple pour le href personnalisé sur les éléments de navigation supplémentaires
  • Rack-mini-profiler n’affiche pas les frames du plugin
  • La navigation J/K réinitialise la sélection actuelle lors du défilement rapide.
  • Définition correcte des niveaux de notification lors de l’invitation de groupe
  • Lors de l’invitation de groupes à envoyer un message, respecter l’état de suivi
  • Exigence explicite de topic_query_params
  • Effacement du cache des sujets de bannière après la remapping
  • S’assurer que les rapports ne peuvent pas modifier les enregistrements
  • Correction de la condition de course lors du chargement de la bibliothèque
  • Maintien plus long des verrous distribués liés à s3
  • Stockage des attributs personnalisés nécessaires aux plugins dans la charge utile queuedpost
  • Tentative d’utilisation des paramètres de addDiscoveryQueryParam
  • Conversion des noms d’authentificateurs omniauth en symboles avant la comparaison
  • Ne pas lever d’exception si l’e-mail de l’authentificateur est manquant
  • Mise en minuscules de l’e-mail revenant du fournisseur d’authentification
  • Remplacement de l’utilisation du modèle par une requête SQL
  • Ordre correct pour le rapport post_edits et suppression de la limite de requête
  • Requête correcte pour le rapport du tableau de bord post_edits
  • Suppression des fichiers d’inventaire tmp après la vérification des téléchargements s3.
  • RIP des menus glissés sur Android
  • Ne pas mettre à jour les notifications watching_first_post lors du déplacement du premier post
  • Les utilisateurs de confiance peuvent entraîner la masquage de contenu avec un seul signalement
  • Prévention des échecs de remapping lors des restaurations
  • Troncature de topic_links.url à 500 caractères lors du remapping
  • Ne pas créer de double notification de like.
  • Le second facteur vide obtient un nom par défaut
  • Polyfill de String.prototype.repeat pour IE
  • Interdiction de l’auto-suppression d’utilisateur lorsque l’utilisateur a posté dans des MP
  • Utilisation de #dup au lieu de #+@ car le contenu pourrait être une instance de Nokogiri::XML::Element.
  • Suppression de la fonction readonly lors de la suppression de la table
  • Création de fonctions readonly lors de la sauvegarde
  • Détection de l’agent utilisateur DiscourseHub.
  • Attribution du badge « First Onebox » uniquement pour les URL Oneboxed.
  • Ordre correct des routes OmniAuth
  • Notification lors de la mise à jour de Reviewable.
  • Le tutoriel discobot incorrect a été lancé pour certaines locales.
  • Suppression de la dépendance à present? dans la bibliothèque distributed_mutex
  • Encodage correct des noms de fichiers non ASCII dans l’en-tête HTTP
  • Ne pas suivre la redirection sur le même hôte avec le chemin /login ou /session
  • Permet le remplacement des emojis de chiffres et de symboles
  • L’intégration de sujets échouait avec certains HTML
  • Ne pas masquer/fermer les sujets s’ils ne répondent pas au minimum de visibilité
  • Utilisation du titre non échappé comme id de combo-box
  • Les téléchargements s3 manquaient d’une en-tête cache-control
  • S’assurer que le rapport flag-ratio affiche les utilisateurs avec désaccord > accord
  • Afficher le lien des demandes d’appartenance uniquement pour les propriétaires de groupe.
  • Le contrôleur généré doit être dans un dossier souligné
  • S’assurer que le sélecteur pikaday s’affiche en UTC
  • Permet le copier-coller de fichiers dans le compositeur avec Chrome
  • Erreur de syntaxe dans b1f5949
  • Rendre le chemin workbox compatible avec multisite
  • Aperçu du compositeur sur IE11
  • Renommage de l’icône obsolète « refresh » en « sync »
  • Meilleure détection des navigateurs Apple
  • Diverses améliorations des mots surveillés
  • Ne pas inclure le chemin de téléchargement multisite dans l’URL source s’il existe déjà.
  • Rendre la récupération des téléchargements compatible avec multisite.
  • Mise à jour correcte des réponses lorsque le premier post est déplacé
  • La modale onClose était appelée à plusieurs reprises
  • Annulation lorsque les tests multisite lèvent des exceptions
  • Ne pas réutiliser les connexions redis dans différents threads dans les tests
  • Les téléchargements Gravatar dépendants de authorized_extensions.
  • DistributedMutex
  • Meilleur message d’erreur lors de la mise à jour du nom d’utilisateur depuis la page utilisateur Admin.
  • Ajout de l’option verbeuse à DbHelper.remap
  • Ajout de frozen_string_literal: true dans la migration
  • Empêcher user-notifications-dropdown de causer des changements non intentionnels
  • Post#each_upload_url cède un chemin incorrect au bloc lorsque CDN est activé.
  • Rendre l’initialiseur fonctionnel lors du premier db:migrate
  • Identification correcte d’Edge basé sur Chromium
  • Prise en charge des feuilles de style multi-fichiers dans les composants de thème
  • Meilleure erreur lorsque SSO échoue en raison d’un secret vide
  • Inclusion de l’étiquette par défaut lors de l’exportation de rapports
  • Fournir un message d’erreur si aucune balise valide n’a été sélectionnée
  • Erreur de chaîne gelée dans TopicEmbed.import
  • Masquage des posts chargés en direct des utilisateurs ignorés
  • Annulation de #18e2816
  • Utilisation du même ID pour les inventaires original et optimisé dans la configuration multisite.
  • Application des contraintes par défaut au format des routes (2e tentative)
  • Conservation des paramètres de requête présents dans auth_redirect
  • S’assurer que les tâches ne s’exécutent pas immédiatement après migrate_to_s3
  • Amélioration de la vérification des balises lors de la mise à jour de la catégorie du sujet
  • Suppression du contexte non catégorisé si non autorisé dans le compositeur
  • Envoi de featuredLink en tant que featured_link au backend pour mettre à jour la valeur correcte…
  • Envoi de featuredLink en tant que featured_link au backend pour mettre à jour la valeur correcte
  • Utilisation de uniq au lieu de uniq! lors de la vérification du chemin racine non compressé. Utilisation de la convention de nommage Rails pour ZipUtils
  • Les migrations ont essayé de changer une chaîne gelée
  • Mise à jour du nombre de réponses lors du déplacement des posts
  • Suppression des notifications que les utilisateurs ne peuvent pas voir après le déplacement des posts
  • Les anciennes notifications ne pointaient pas vers le bon post après le déplacement du post
  • Permet de spécifier des attributs en camelCased dans le composant wrap
  • Définition d’un temps de lecture minimum par post.
  • Sauvegarde toujours des téléchargements locaux en plus des fichiers stockés sur S3
  • Ne pas demander de rafraîchissement sur la demande « se déconnecter de tous »
  • Affichage du même nom d’utilisateur ou nom pour les avis de posts.
  • Noms de sauvegarde vides avec titres de site unicode]
  • Encodage URL des noms d’utilisateur dans les liens de profil utilisateur dans les flux RSS
  • Suppression de la création d’enregistrement de téléchargement de post à l’intérieur de la méthode ‘find_missing_uploads’.
  • Bugs empêchant la fermeture de la modale de suppression de compte avec un bouton
  • Chaîne qui ne peut pas être traduite dans l’interface utilisateur des mots surveillés
  • Noms de sauvegarde vides avec titres de site unicode
  • Respect du paramètre logout_redirect sur « Se déconnecter de tous »
  • Lorsque ‘raw’ commençait par une URL de téléchargement non image, elle n’était pas convertie en short-url.
  • Conversion des URLs non image liées à chaud en short url.
  • Suppression de tous les service workers des appareils Apple encore une fois
  • Renommage des icônes obsolètes, autorisation des icônes personnalisées dans les badges
  • Recompilation des assets de thème extra_js lorsque COMPILER_VERSION change
  • Retour à la compression gzip si brotli n’est pas pris en charge
  • Saut de la conversion Markdown pour les URLs non image liées à chaud
  • Les sauvegardes prises par pg_dump >= 11 sont non portables
  • Application des contraintes par défaut au format des routes
  • S’assurer que les catégories supprimées ne produisent aucun sujet en vedette.

Modifications UX

  • Utilisation de Flexbox pour l’intégration de la liste des sujets
  • Utilisation de vertical-align: middle au lieu des unités em
  • Utilisation de la variable de code couleur
  • Conversion de la structure HTML de la liste de sujets intégrée de tableau à div
  • Améliorations de l’indicateur de lecture.
  • Suppression des chaînes inutilisées sur les notifications de bureau
  • Petit suivi de #8047
  • Meilleur alignement des balises dans l’en-tête
  • Solution de contournement du bug d’autocomplétion de Chrome dans la recherche
  • Correction de la mise en page pour les boîtes de catégorie avec de longs noms de sous-catégories
  • Empêche les images non lightboxed dans les citations de s’étirer/écraser
  • Masquage de l’option « Créer une balise » si l’utilisateur ne peut pas créer de balise.
  • Placement cohérent de la sortie de plugin category-title-before
  • Ajout d’un lien vers l’éditeur robots.txt dans la description du paramètre du site
  • Retour au nom du fournisseur d’authentification non localisé si requis
  • Empêcher les iframes de onebox Twitter d’être plus hautes que la vue du périphérique mobile
  • Amélioration de la gestion des erreurs pour les exceptions OmniAuth courantes
  • Modification du modèle d’e-mail d’administration pour avoir plus d’espace pour le formulaire
  • Effacement du nom d’utilisateur lors de l’ouverture de la modale de durée d’ignorance
  • Masquage des boutons d’en-tête de connexion/inscription pendant les flux d’authentification
  • Ajout de l’icône du bouton de connexion à la page no_ember
  • Amélioration de la mise en page de la modale de l’éditeur de sondage
  • Amélioration des dates sur l’interface utilisateur d’exportation de rapports
  • Utilisation de libellés de jours de la semaine plus courts dans le plugin local-dates
  • Utilisation de libellés de jours de la semaine plus courts dans le sélecteur de date
  • Renommage de « Conserver le post » en « Conserver le post masqué » lorsqu’il est masqué
  • Corrections de style pour la page d’aperçu de l’e-mail de résumé d’administration
  • Suppression de la bordure confuse sur la liste des utilisateurs ignorés
  • Rendre les vues de profil cohérentes avec les autres éléments
  • Empêche les dates cuites de s’enrouler
  • Affichage d’un avertissement lorsque l’administrateur clique sur enregistrer sans ajouter de groupe lors de la modification des permissions de catégorie
  • Augmentation du contraste du texte de la raison de l’épinglage/suivi, amélioration de la mise en page
  • Amélioration de l’association de compte lorsque la description du compte est manquante
  • Ajout de la classe expanded/collapsed à post-controls
  • Correction de l’alignement vertical de la favicon onebox
  • Amélioration de la mise en page des longs titres de balises sur mobile
  • Refactoring de la modale de téléchargement d’avatar pour un meilleur espacement mobile
  • Mise à jour du message « introuvable » de l’invitation
  • Correction de l’espacement du contrôle de téléchargement d’image de profil sur mobile
  • Ajout d’une balise <a> avec href aux titres des boîtes de catégorie
  • Suppression de la copie en double dans les préférences à double facteur
  • Utilisation des variables de couleur SCSS
  • Désactivation par défaut des notifications d’édition système
  • Échange des sections ignorer et couper pour déplacer le bouton « Enregistrer les modifications » en bas
  • Utilisation de la hauteur relative à la vue pour la zone de texte robots.txt
  • Réorganisation des contrôles dans les modales d’édition

Performance

  • Utilisation de l’URL CDN pour le proxy de la favicon
  • Exécution de plusieurs threads pour les计划 de tâches régulières
  • Réduction de la fenêtre de cohérence sur les actions utilisateur
  • Éviter le filtrage des brouillons partagés lorsqu’ils ne sont pas utilisés
  • Sélection uniquement du champ que nous utilisons
  • Précalcul du dernier post lu par un membre du groupe
  • Calcul plus rapide de la longueur du corps du compositeur
  • Éviter N+1 sur la vue du sujet
  • Exécution en ligne de rake posts:rebake_uncooked_posts
  • Le message_bus sera différé par le serveur lorsqu’il est inondé
  • Ajout de plus de contraintes sur l’utilisation du stockage Cache
  • Amélioration de la vitesse de requête lors de la recherche de MP directs
25 « J'aime »