Améliorons Etherpad/Framapad

Plugin MyPads pour groupes, comptes personnels et pads privés

  • MyPads : point de la semaine 25

    Tâches réalisées

    Les avancées de cette semaine ne sont pas aussi importantes que prévu. Deux raisons à cela : un prestataire moins disponible et des tâches plus compliquées à réaliser qu’elles n’avaient été estimées. Voici donc ce qui a été fait :

    •     La localisation des messages côté serveur a été faite. Il s’agit des messages renvoyés par l’API de MyPads, laquelle est utilisée par le client Web principal. Ceci était important notamment car certains messages, des erreurs avant tout, étaient affichés tels quels par le client Web et n’étaient pas traduits depuis l’anglais. Cette tâche a pris un peu de temps, car il a fallu faire le tour des fichiers pour la mettre en place puis traduire les messages vers le français.
    •     La récupération de l’identifiant utilisateur et le choix d’une couleur pouvant être affichés par défaut dans les pads. C’est cette tâche, qui paraissait assez triviale, qui a été la plus chronophage. MyPads, en tant que plugin Etherpad, se sert du système d’événements renvoyés par Etherpad pour pouvoir interagir avec ce dernier. Modifier les paramètres de la session utilisateur était bel et bien possible, mais il n’y avait pas de moyen simple de connaître, dans le contexte renvoyé par Etherpad, quel était l’utilisateur actuel sous MyPads et de ce fait les informations à utiliser. Comme il n’était pas envisageable de modifier le cœur d’Etherpad pour renvoyer des données supplémentaires ni de modifier à la volée le code client d’Etherpad, il a fallu éprouver plusieurs pistes. Voilà comment cela se passe au final du point de vue utilisateur :
    •     ==> À l’inscription, vous pouvez d’ores et déjà opter pour une couleur par le biais de l’élément HTML5 dédié. Notez que ce choix est facultatif.
    •     ==> Par défaut, l’identifiant et la couleur, si elle a été sélectionnée, seront utilisés au sein des pads.
    •     ==> Dans votre profil, vous pouvez modifier votre couleur mais aussi demander à MyPads de ne pas utiliser vos données au sein des pads. Dans ce cas, MyPads n’interférera pas avec un usage classique d’Etherpad et il vous reviendra de spécifier votre nom et votre couleur au sein du pad.

    Bien entendu, même si vous avez choisi d’employer par défaut vos données, vous pourrez toujours modifier, pour une session donnée, vos paramètres, par exemple si un invité a choisi la même couleur que vous.

    Ces nouveautés sont disponibles sur la version en ligne. N’hésitez pas à tester et à nous donner vos impressions.


    Pour la semaine 26

    Sont prévus les deux éléments non réalisés la semaine dernière, à savoir le module de gestion des favoris ainsi que les pages publiques pour les groupes du même type ou ceux protégés par mot de passe.

    Également :

    •     Lorsqu’un groupe est supprimé, les pads qui lui sont attachés le sont également. L’idée est de vous proposer, si vous le souhaitez, de déplacer les pads du groupe supprimé vers un autre groupe.
    •     Vous laisser le choix de supprimer complètement votre compte. Si vous confirmez, tous les groupes et pads dont vous êtes le seul administrateur seront supprimés.
    •     L’administration de MyPads
    •     ==> Réservée aux administrateurs de l’instance Etherpad.
    •     ==> Avec un module de gestion des utilisateurs.
    •     ==> Et un module de paramétrage de MyPads (taille des mots de passe, configuration pour l’envoi de mail etc).
  • MyPads : point de la semaine 24

    Ce n’est pas parce que l’on approche du but que nous allons oublier le point hebdomadaire. Le voici donc.

    Semaine 24 : ce qui a été fait
    Avant la version bêta

    •     Ergonomie
    •     ==> amélioration de la page de vue et édition du pad, en y ajoutant des liens vers les actions communes sur le pad ;
    •     ==> possibilité d’ouvrir le pad dans un nouvel onglet ;
    •     ==> désactivation des liens du menu non encore implémentés (modules des favoris et d’administration) ;
    •     ==> correction de l’affichage du statut de favori dans la vue du pad ;
    •     ==> ajout des actions communes par le biais d’icônes directement sur la liste de groupes et dans la vue groupes pour les pads ;
    •     ==> quelques aides en plus.
    •     fonctionnel
    •     ==> traduction de l’interface de l’anglais au français ;
    •     ==> langue par défaut en anglais, sauf si le navigateur de l’utilisateur est paramétré dans une autre langue et que la traduction existe ;
    •     ==> ajout de la possibilité de changer de langue dans l’en-tête de MyPads ;
    •     ==> choix de la langue à la création de compte et dans le profil utilisateur ;
    •     ==> sauvegarde en base de données ;
    •     ==> tests unitaires et fonctionnels associés.
    •     Correction de l’ordre de démarrage du plugin au sein d’Etherpad et réutilisation de la session Express créée par Etherpad sous MyPads.

    Une partie de ces améliorations a fait suite au lancement d’une pré-bêta en interne lundi et après les retours de membres de Framasoft.


    MyPads bêta

    Le serveur qui devait accueillir la bêta a été préparé pour la recevoir et un script a été écrit de manière à ce que les données soient régulièrement remises à plat. La version en ligne suit la branche de développement de MyPads et, outre le fait que cette version ne soit pas optimisée ni terminée,  il est possible d’y voir s’y glisser des anomalies plus ou moins gênantes.

    L’ensemble des tâches encore à mener avant la version stable a été listée sur le Gitlab. Des bonus sont prévus dans les mois à venir et intégreront une branche develop lorsque la version stable sera publiée.

    La bêta a été lancée jeudi par une annonce sur le Framablog ainsi qu’une actualité Ulule à destination des donateurs.

    Durant ces quelques jours, un plantage du serveur d’applications a été éprouvé. Il était dû à une mauvaise protection au niveau de l’API dans le cadre de la vérification du mot de passe d’un utilisateur déjà authentifié. Si aucun mot de passe n’était donné, ce qui n’était pas possible sur le client Web sans modification directe du code HTML, la fonction de cryptographie lancée s’interrompait, entraînant avec elle MyPads et Etherpad. L’anomalie n’a pas été remontée par le testeur mais a pu être débusquée et corrigée. Des tests unitaires ont été écrits de manière à éviter que cela ne se reproduise dans de futures versions.

    Au total, quelques centaines de personnes se sont connectées au serveur et ont testé le plugin. Nous avons eu assez peu de retours : quelques-uns en commentaires sur l’annonce, sur Framaspère ou encore directement sous Gitlab. Nous sommes conscients que la nécessité de créer un compte sous notre instance Gitlab peut être ressenti comme une contrainte mais il est important pour Framasoft d’héberger ses données. Github n’est utilisé que comme miroir et les anomalies n’y sont par conséquent pas activées. Notez cependant qu’il vous est possible de vous identifier avec un compte Github, si vous le souhaitez.

    N’hésitez en tout cas pas à nous faire parvenir vos critiques, suggestions. Elles sont importantes afin de nous aider à finaliser un outil de bonne qualité. Et bien sûr, merci à celles et ceux qui ont pris le temps de tester.


    Semaine 25 : ce qui doit être fait

    Vous avez déjà en main la liste des éléments prévus pour ce mois mais plus précisément, ces prochains jours :

    •     la localisation côté serveur des messages de l’API, et notamment les messages d’erreurs qui sont affichés directement sur le client Web ;
    •     le module de gestion des favoris : pads, groupes ;
    •     la récupération de l’identifiant utilisateur pour un usage par défaut au sein des pads créés, ainsi que la possibilité, offerte dans le profil, d’opter pour une couleur préférée ;
    •     les pages publiques : pour partager un groupe, un lien pourra être donné à vos contacts afin qu’ils puissent afficher directement au sein de MyPads les groues publics ou privés (dans ce cas, le mot de passe sera demandé avant toute interaction).
  • La première démonstration de MyPads est disponible !

    Framapad — un de nos services Libre, Éthique, Décentralisé et Solidaire les plus utilisés — permet de rédiger des documents collaborativement et en temps réel.

    Basé sur le logiciel libre Etherpad, Framapad héberge aujourd’hui plus de 300 000 documents, grâce à vos dons qui nous permettent de maintenir le service.

    Malheureusement, ce service souffre de deux manques importants :

    • l’impossibilité de regrouper les pads créés (par exemple par thèmes, ou tout simplement pour les retrouver facilement plus tard) ;
    • l’impossibilité de protéger ses pads (pour protéger des données confidentielles, des travaux scolaires, etc.).

    Le crowdfunding de MyPads

    Framasoft avait donc lancé un appel à financement participatif, afin de collecter une somme qui permettrait de développer un module comblant ces deux lacunes.
    La somme fut récoltée en quelques semaines, et nous avions donc pu nous lancer à la recherche d’un prestataire pour effectuer ce développement.

    Débuté en janvier 2015, le développement a pris un peu de retard, mais l’adage du libre ne dit-il pas : « Ça sortira quand ça sera prêt » ?

    Eh bien, bonne nouvelle : une première démo est disponible !

    Ceci est une première démonstration.

    Alors attention, hein : dans « première démonstration », il y a « première » et « démonstration » !

    « Première » car le plugin n’est pas terminé. Il devrait l’être pour l’anniversaire de la clôture de l’appel à participation, c’est-à-dire le 30 juillet prochain.
    Cela signifie que beaucoup de choses vont encore évoluer dans les 50 prochains jours. Et surtout qu’il est encore loin d’être complet. Donc, ne vous étonnez pas si certaines choses ne fonctionnent pas comme vous vous y attendriez. Et inutile de nous rapporter que les couleurs ne vous plaisent pas : elles sont tout sauf définitives [😉]

    « Démonstration » car les comptes et les documents créés sur la démo seront régulièrement effacés. Il ne faut donc surtout pas vous en servir pour créer des documents dans un cadre professionnel, car vos contenus peuvent être effacés d’une heure sur l’autre.

    Alors, les esprits chagrins se plaindront sans doute du délai de développement d’un tel plugin. Cela s’explique principalement par le fait que le développement a réellement commencé au début de l’année 2015, et que le prestataire ne pouvait consacrer 100% de son temps à ce projet (ce qui était convenu et accepté par Framasoft).

    Par ailleurs, le développement d’un tel plugin est loin d’être trivial. Plus de 60 000 lignes de codes auront été écrites lors de 200 commits. Au total, le dépôt compte près d’un million de lignes de Javascript (essentiellement dues aux frameworks, certes, mais cela en fait un plugin conséquent).

    Enfin, nous aurons fait le maximum pour vous tenir au courant de l’avancement du projet, avec plus de 20 billets blog, qui ont aujourd’hui pris un rythme hebdomadaire.

    Bref, nous vous encourageons à tester le plugin, tout en gardant à l’esprit qu’il reste encore pas mal de travaux à effectuer d’ici fin juillet.


    Exemple de contenu dans un pad protégé

    D’ici là, vous pouvez aussi :

    • installer votre plugin sur votre instance d’etherpad (il faudra cloner le dépot et faire un npm install à la main, car MyPads ne sera poussé sur npmjs qu’une fois le développement considéré comme stable) ;
    • nous remonter vos remarques sur le dépôt du GitLab Framasoft (qui, rappelons le, est ouvert à tous).

    Tester cette démo de MyPads

  • MyPads : point de la semaine 23

    Ce qui a été fait

    Un certain nombre de tâches ont pu être travaillées en semaine 23, et notamment :

    • un premier jet du module de partage d’administration et d’invitation d’utilisateurs (en mode visibilité restreinte) pour les groupes
      • pour le moment, il est limité aux seuls inscrits et demande de saisir l’identifiant utilisateur ;
      • mais il sera rapidement possible de saisir une adresse mail en plus de l’identifiant et d’inviter des utilisateurs externes, y compris en mode restreint ;
      • il y est possible de révoquer les droits concédés à d’autres administrateurs ou aux utilisateurs.
    • le module d’affichage des pads avec
      • la création automatique du pad sous etherpad au premier affichage ;
      • sa suppression effective en cas d’effacement sous MyPads ;
      • le filtrage des accès en modes restreint ou privé ;
      • l’accès au pad sans restriction en mode public ;
      • la prise en charge du mot de passe, à saisir en cas de visibilité fixée à privée.
    • le partage, par le biais du lien direct etherpad, de l’accès aux pads publics ou privés (avec mot de passe). L’interface est pour le moment sommaire et évoluera vers une meilleure intégration ;
    • le mode archive des groupes, qui affiche pour le moment l’export HTML des pads qui en font partie ;
    • des corrections d’anomalies ;
    • les tests unitaires et fonctionnels des modules développés ;
    • enfin la correction du bug gênant décrit lors de la semaine 17, par un changement du moment où MyPads est configuré quand l’instance etherpad est lancée, ce qui ne permet plus à YAJSML de venir perturber son fonctionnement.

    Ce qui est prévu pour cette nouvelle semaine

    Pour la semaine 24, il reste un certain nombre de courtes tâches et de petites améliorations à faire. De plus, il est prévu de travailler sur :

    • un module de gestion des favoris par utilisateur : groupes et pads ;
    • la mise en place de la gestion de la localisation au niveau du client Web (choisir sa langue pour l’interface) et la traduction vers le français ;
    • une prise en charge correcte des permissions avec une véritable séparation entre utilisateurs et administrateurs de groupes et l’apparition du statut d’administrateurs du plugin MyPads.
  • MyPads : point de la semaine 22

    Travaux effectués

    La semaine dernière a été mise à profit pour :

    1.     la réalisation de la page de détails des groupes, laquelle comprend :
      •         toutes les propriétés du groupes affichées ;
      •         la liste des administrateurs et utilisateurs du groupe ;
      •         la liste des pads attachés à ce groupe. 
    2.     une gestion sommaire des pads depuis cette page, avec :
      •         la création d’un nouveau pad, en saisissant son intitulé ;
      •         sa modification, en fait son renommage ;
      •         l’effacement de celui-ci ;
      •         enfin, l’ajout de pad en favori.
    3.     les tests fonctionnels liés à cette page.

    La gestion des pads n’est pas pleinement terminée puisque le client ne propose pas encore d’écraser les options de visibilité du groupe, c’est à dire que par exemple si le groupe est défini comme public, tous les pads attachés le seront également. Ce comportement sera rapidement amélioré.


    Pour la semaine 23

    Quelques tâches importantes devraient être effectuées cette semaine avec en priorité l’invitation d’utilisateurs déjà inscrits, le partage d’administration du groupe. Selon le temps disponible, une page regroupant tous les favoris sera également créée ou encore sera effectuée la traduction de MyPads vers le français.