Le CTRL+S sur l'édition de cours

a marqué ce sujet comme résolu.

Hello,

Ma suggestion est toute bête mais j'ai tendance à abuser de la touche CTRL+S dans ma vie de tous les jours (et je sais que je ne suis pas le seul !).

Il serait super cool si on pouvait utiliser CTRL+S dans les cours pour enregistrer rapidement en cours d'écriture.

Je ne pense pas que ce soit possible. Car si on ajoute des raccourcis clavier, il faudrait qu'il viennent s'installer à côté de ceux de l'utilisateur et non venir empiéter dessus. Et en général, dans les navigateurs internet, ctrl + s, sert à enregistrer la page en cours d'affichage. Donc imagine qu'on mette en place un tel raccourci, quand tu fais cette combinaison de touche, qui prend le relais derrière ? Nous ou le navigateur ? Et hop, conflit. ^^

Mais on peut aussi très bien en trouver une autre !

Quand tu dis "conflit", tu parles d'accessibilité ?

Bah disons que si désires enregistré la page, mais que c'est nous qui prenons le dessus comment tu fais ? Ça va poser un p'tit problème. Je suis d'accord que sur l'aspect technique ça ne pose pas problème, mais après comme dis, il faudrait que ces raccourcis claviers s'insèrent à côté de ceux déjà présents.

Si tu veux, il y la ZEP-13, qui parle de l'éditeur MD du site et les raccourcis claviers y sont très longuement évoqués. ;)

Ouais alors à ce moment là je suis d'accord, si tu veux laisser le comportement natif du navigateur pour ne pas gêner les utilisateurs, il faut effectivement trouver une combinaison différente. Même si je doute que beaucoup de gens vont être gênés parce qu'ils voulaient absolument enregistrer la page d'édition avec leur clavier.

J'propose une option dans le compte utilisateur si vous voulez vraiment laisser ce comportement inutile :/ .

Parce que mettre un autre raccourcis ça serait juste trop chiant. L'idée du CTRL+S c'est que c'est le raccourcis par référence pour faire un enregistrement.

Hello, ayant fait un peu d'accessibilité, je peux vous dire que l'implémentation de Ctrl + S est à faire comme suit :

  • sur toutes les pages : ne rien faire
  • sur la page de rédaction d'un tutoriel
    • en dehors du champ : ne rien faire
    • à l'intérieur du champ (focus sur le textarea) : sauvegarder, donc "surcharger" le raccourcis clavier

Ainsi, on n'obstrue que très peu le raccourcis du navigateur et on permet une implémentation propre de la chose.

Le gros soucis, car personnellement j'avais pensé à l'époque à enrichir le back-office d'édition de tutoriel, c'est qu'il n'y a pas d'API prête à recevoir les données. Donc soit il faut faire un bout de JS qui va envoyer une requête asynchrone en balançant tout les champs comme si on avait cliqué sur "Enregistrer", soit il faut attendre l'arrivée de l'API sur les tutoriels. La première solution revient à faire un

1
2
3
4
5
// créer un tableau des données
$('textarea:focus').parents('form:first').find(':input').each(function(){
    // remplir le tableau à coup de .push($(this).val());
});
// faire une requête AJAX avec le tableau en paramètre `data`

ou quelque chose de ce genre là, donc ça reste assez simple à réaliser, mais ça sera à changer dès qu'il y aura une API, pour que ce soit plus léger, plus propre et plus rapide.

Bah ça me semblait évident, il suffit de simuler l'enregistrement du tuto. La petite subtilité sera peut être qu'il faut recharger une nouvelle fois le formulaire pour avoir le token csrf ?

A priori rien de bien méchant. C'est aussi pour ça que je le propose :) .

+0 -0

Bah faudrait surtout pas que ça recharge la page, surtout si on est en train de parler de gens qui appuient fréquemment sur Ctrl S. À mon avis sans API c'est une fonctionnalité qui risque d'être un nid à problèmes (rechargement de formulaire comme tu l'as évoqué) Post sans redirect Get donc comportement inattendu, quid de la validation s'il y en a une sur cette page etc. Je suis d'accord pour dire que c'est très intéressant mais il faut que le site soit conçu pour (donc pour traiter proprement des requêtes Ajax)

+0 -0

En tout cas, si vous faites une sauvegarde en direct avec un appel à une API, il faut désactiver le Ctrl + S le temps que l'appel retourne quelque chose, sinon on peut se retrouver avec deux appels consécutifs qui ne sont pas traités dans l'ordre d'émission.

+0 -0

En fait peu importe la méthode il faut le faire. Cependant inutile de parler de solutions techniques pour le faire. Celui qui le fera saura le faire et bien, et si c'est pas le cas, vu que le code est review on s'en rendra compte avant la prod.

Bref, la question c'est, le faire ou ne pas le faire, et rien d'autre.

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte