MyPads : troisième version admissible

Rappel des épisodes précédents : MyPads est un « plugin » qui permet à notre service en ligne Framapad (un outil en ligne de rédaction collaborative), d’organiser ses documents.

Pour savoir de quoi il retourne : http://fr.ulule.com/etherpad-framapad/

Cet article sur le Framablog fait partie des derniers d’une longue série présentant les avancées du développement de ce plugin. Voir https://framablog.org/tag/mypads/

Ainsi, cet article est (volontairement) plutôt technique, et non un article généraliste plutôt dédié au grand public comme habituellement sur le Framablog.

MyPadsDeux semaines après la seconde version admissible, en voici une nouvelle. Merci aux tests, retours, suggestions que certains d’entre vous nous ont envoyés. C’est grâce à ceux-ci que nous avons pu améliorer MyPads et commencer à anticiper les évolutions futures.

Changements depuis la RC2

Par ordre chronologique, voici la liste des changements depuis la RC2 :

  • Interface graphique Web
    • Amélioration du rendu pour l’élément HTML5 permettant de choisir la couleur par défaut employée au sein des pads.
    • Ajout d’une icône au niveau de la liste de ses groupes pour aller plus directement aux pads de chaque groupe.
    • Remplacement des termes ‘ASC’ et ‘DESC’ (pour ascendant et descendant) par des flèches pour le tri de ses groupes.
    • Mise à jour du titre de la fenêtre en fonction de la navigation de l’utilisateur.
    • Mise en avant de l’usage des emails au détriment des identifiants dans les créations de listes utilisateurs, invitation d’utilisateurs…
    • Correction d’un mauvais alignement des blocs groupe lorsque ceux-ci sont nombreux.
    • Icônes plus logiques en fonction des actions qu’elles entraînent (édition, écriture dans un pad etc.).
    • Correction d’un problème de duplication, dans le client Web et en affichage seulement, des utilisateurs en cas d’invitations multiples de la même personne.
    • Redirection propre avec message d ‘erreur, sur le client Web, si le groupe ou pad pointé n’existe pas en base de données (cas entre autres rencontré lorsque l’élément a été intentionnellement supprimé).
  • Anomalies et régressions
    • Correction de l’impossibilité de créer un pad sous etherpad si le nom donné via MyPads est trop long (régression amenée par l’usage d’identifiants humainement compréhensibles).
    • Correction d’un bug gênant dans certains cas d’invitations d’utilisateurs sur des groupes restreints, qui rendait l’affichage du groupe impossible dans le client Web.
    • Correction d’un souci au niveau des permissions en cas de pad privé avec son propre mot de passe au sein d’un groupe lui aussi contraint par mot de passe.
    • Résolution d’une anomalie à la première connexion après inscription, qui nécessitait que l’utilisateur recharge la page pour pouvoir continuer.
  • Améliorations
    • Usage de l’en-tête HTTP Authorization pour que le client et le serveur s’échangent le jeton d’authentification plus discrètement lorsque cela était possible.
    • Invitation d’utilisateurs rendue plus efficace avec l’option d’utiliser un bloc texte, avec une adresse mail ou un identifiant par ligne.
    • Redirection, en cas d’accès direct à un pad restreint ou privé, vers l’interface MyPads (notamment pour y saisir le mot de passe).
    • L’envoi de mail à partir du serveur utilise la langue sélectionnée par l’utilisateur lors de la création de son compte, et s’il n’y en a pas eu, la langue par défaut que l’administrateur a choisi pour MyPads.
    • La possibilité, en cas de vérification des emails activée par l’administrateur, pour un nouvel inscrit qui aurait manqué son mail de confirmation (sa validité étant limitée dans le temps), de se le voir envoyer à nouveau par la procédure de récupération de mot de passe.
  • Nouvelles fonctionnalités
    • Possibilité, pour l’administrateur MyPads d’interdire la création de pads en dehors de MyPads et son ajout dans l’interface d’administration de MyPads.
    • Migration de l’authentification de l’administrateur MyPads vers le nouveau système d’authentification et son système de jetons.
  • Générales
    • Quelques améliorations de la traduction.
    • Et bien entendu une part non négligeable des tests unitaires et fonctionnels ont dû être adaptés à tous ces changements.

Ce qu’il reste pour la version stable

En dehors de nouvelles anomalies à corriger, il ne reste, pour annoncer la version stable, que :

  • À améliorer la suppression des données du plugin. Aujourd’hui, si vous désinstallez MyPads depuis l’interface d’administration d’etherpad, toutes les données de MyPads sont supprimées. Il semblerait que ce comportement soit peut être trop radical et qu’il vaudrait mieux que les données ne soient effacées qu’après une action volontaire sous MyPads et non plus automatiquement à la désinstallation.
  • Donner la possibilité à l’administrateur de fixer un temps de validité pour les jetons d’authentification.
  • Ajouter davantage de traces pour le débogage au niveau du code serveur de MyPads.
  • Retravailler les feuilles de style de manière à les rendre plus aisées à modifier.
  • Améliorer globalement le style employé au sein du plugin.
  • Optimiser le chargement du code JavaScript de MyPads en le rendant plus compact.
  • Publier MyPads sur NPM de manière à ce qu’il soit installable directement depuis etherpad et non manuellement comme c’est le cas aujourd’hui.

Il est possible qu’une nouvelle fonctionnalité fasse exceptionnellement son apparition à la demande de Framasoft : l’envoi de mails groupés à ses listes d’utilisateurs pour faciliter le partage de groupes, pads publics ou sous mot de passe.

D’autres améliorations plus importantes sont prévues pour les versions ultérieures. Vous en trouverez trace dans notre espace gitlab et toute aide sera bienvenue pour les implémenter.

MyPads

MyPads RC3

Two weeks after RC2, here is a new release candidate. Thank you all for testing, giving us feedback and suggestions. By means of these, we’ve improved Mypads and begun to plan future developments.

Changes from RC2

Here is a list of changes by chronological order :

  • Web user interface
    • HTML5 input color render enhancement for pad author default color.
    • Icon addition on own groups list to be able to go more directly to group’s pads.
    • Replacement of ‘ASC’ and ‘DESC’ terms by up and down arrows for group ordering.
    • Window title updates according to user navigation.
    • Email emphasis to the detriment of logins into userlists creation, invitation…
    • Bad alignment fix for group blocks when there are many of them.
    • More meaningful icons depending on called actions (update, pad writing etc).
    • Duplication problem fix for users already invited.
    • Clean redirection with error message, in the Web client, if the group or pad is not found in database (scenario encountered for example when an element has been deliberately removed).
  • Bugs and regressions
    • Fix for etherpad inability to create a pad when the name chosen under MyPads was too long (a regression that come from human readable identifiers).
    • Fix for an annoying bug which happens with restricted groups and some invitations, that ends to an impossible group view.
    • Fix for correct permission when a private pad has its own password into a password-protected group.
    • Fix for a bug right after subscription : it was abnormally needed to reload the page to be able to interact with the client.
  • Improvements
    • HTTP Authorization header usage for a more discrete token exchange between client and server, when possible.
    • More efficient user invitation with an additional option : textarea block which one email address or login per line.
    • Redirection, from direct access to a restricted or private pad, to the MyPads interface (in particular to be able to enter a password).
    • Email sending from server now uses the selected language from the user or, if there is no, the default language chosen by the MyPads administrator.
    • In the case of emails check activated by the administrator, a fresh subscriber who have missed the confirmation mail (which validity expires), can have a new one from password recovery procedure.
  • Features
    • The MyPads administrator can forbid pads creation outside from MyPads and the option can be managed from MyPads administration interface.
    • MyPads administration has been migrated from old cookie authentication to the new token-based one.
  • Global
    • Translations enhancements.
    • And of course a significant part of unit and functional tests have been adapted to this changes.

Things to do before stable

Apart from new bugs to fix, the stable version only needs :

  • To improve plugin data removal. At the moment, if you uninstall MyPads from etherpad plugins administration, all MyPads data is erased. It seems that this behavior to be too drastic. A better way may be to remove data only after an intentional action from MyPads administration and no more an automatic hook after uninstalling.
  • Give the ability for the administrator to fix an expiration for authentication tokens.
  • Add more debug traces for the server part of MyPads.
  • Rework stylesheets in order to make them more readable and easy to update.
  • Globally improve the used style for MyPads.
  • Optimize JavaScript code loading by making it more compact.
  • Publish MyPads on the NPM registry for allowing direct installation from etherpad plugins administration.

We would like to exceptionally add a new feature (asked by Framasoft): grouped emails sending to your user lists with the stated goal to make easier groups, pads shares.

Other features and improvements are expected for next versions. You can see some of them in our Gitlab space. Any help will be welcomed.