[spip-dev] Compteur maxlength saisies dans le privé

Hop,

Je remarquais une régression sur saisies cet am. En effet la fonctionnalité qui permet d'afficher le nombre de caractères restants sur un champ texte limité en taille max n'est plus opérationnelle dans l'espace privé depuis ce commit :

https://git.spip.net/spip-contrib-extensions/saisies/commit/04d2cf88f23b69b5a7d140ee96701e23a2e290c7

Et pour cause, le pipeline affichage_final n'agit que dans l'espace public, le script intégré par le commit cité n'est donc pas présent dans le privé. Un patch simple pour palier à ça serait :

diff --git a/saisies_pipelines.php b/saisies_pipelines.php
index 77da034..183bfcf 100644
--- a/saisies_pipelines.php
+++ b/saisies_pipelines.php
@@ -20,6 +20,7 @@ if (!defined('_ECRIRE_INC_VERSION')) {
  function saisies_header_prive($flux) {
  	$js = find_in_path('javascript/saisies.js');
  	$flux .= "\n<script type='text/javascript' src='$js'></script>\n";
+	$flux .= "\n<script type='text/javascript' src='". produire_fond_statique('javascript/textarea-counter/textarea-counter.js')."'></script>\n";
  	include_spip('inc/filtres');
  	$css = produire_fond_statique('saisies.css');
  	$flux .= "\n<link rel='stylesheet' href='$css' type='text/css' media='all' />\n";

Ça permet d'insérer le script dans toutes les pages du privé, mais amha ça serait peut-être mieux de passer par une déclaration dans le paquet.xml pour bénéficier de la compression/concaténation du script dans le privé.

Seul problème avec ce patch, le script génère des erreurs js du type "Uncaught TypeError: counter is null" quand on teste la fonctionnalité depuis la page de constructeur de saisies des champs extras, cf ecrire/?exec=champs_extras_edit&objet=article

À suivre...

Ca vaudrait pas la peine d'utiliser plutôt le pipeline formulaires_fond?

Merci à vous tous. J’avais constaté ce dysfonctionnement et je cherchais justement d’où cela venait…
Thrax

Le but du commit c'était de ne pas multiplier l'insertion de js inline, mais de ne l'insérer qu'une seule fois.
Je ne sais pas si on peut avec formulaires_fond (je pense pas)

L'erreur vient de là ?
https://git.spip.net/spip-contrib-extensions/saisies/src/branch/master/javascript/textarea-counter/textarea-counter.js.html#L67

Suffirait de tester counter, non ?

normalemt avec un test de static cela devrait le faire.

https://git.spip.net/spip-contrib-extensions/saisie_nombre/src/branch/master/saisie_nombre_pipelines.php#L12

Saperlipopette, mais bien sûr !
Par contre on risque de retomber sur l'erreur JS signalée par b_b.
Je regarde ça dès que j'ai cinq minutes.