Actualiser une macro JavaScript


#1

Bonjour,
Après moult recherches sur le forum anglais, je ne comprends pas très bien si il est vraiment possible d’actualiser/rafraichir une macro JavaScript.
Pour exemple j’ai une macro JavaScript qui s’exécute en fonction de paramètres contenu dans un dataTiddler. Si je modifie les valeurs du dataTiddler, la macro JavaScript ne s’actualise pas tant que je ne rafraichis pas la page.

Y a t-il un moyen d’actualiser la macro via un bouton par exemple ?


#2

Effectivement, pour que les modifications d’une macro javascript soient prises en compte il faut d’abord rafraichir TiddlyWiki (et s’il y a un bug dans ton javaScript, ça fait potentiellement planter TW)

Une fois que ceci est fait, tu peux mettre à jour les données de ton DataTiddler, et là, la mise à jour se fait en live sans avoir à rafraichir TW.

Exemple :
SI tu modifies une donnée du fichier http://d3jsv5trial.tiddlyspot.com/#flare.json (ex : multiplie par 100 la “size” d’un élément) , alors http://d3jsv5trial.tiddlyspot.com/#D3%20Zoomable%20Circle%20Pack%20Widget, qui appelle ce json, est mis à jour immédiatement.


#3

Je suis d’accord pour ton exemple, lorsqu’on édite un tiddler puis qu’on le valide, cela actualise les données. Mais ce que j’aurai dû indiquer dans mon premier message, c’est que je modifie les données du dataTiddler avec le widget EditTextWidget. Et là, cela ne fonctionne pas :confused:


#4

Je suis confronté au même problème que toi. En attendant je fais les mises à jour via un bouton
le code que j’ai mis en place est le suivant (tu peux le voir en action ici: http://archipel.tiddlyspot.com, dans le tiddler “Archipel”

\define selaction()
<$wikify name=myvalue text={{maMacroEnWikiText}} output="text">
<$fieldmangler tiddler="toto.csv">
<$action-setfield $tiddler="toto.csv" text=<<myvalue>> />
<$action-setfield  $tiddler="toto.csv" $field="type" $value="text/csv"/>
</$fieldmangler>
</$wikify>
\end

<$button actions=<<selaction>>>
Update button
</$button>

Mais cela ne me satisfait pas, je voudrais complètement me passer de bouton. J’avais laissé tombé l’affaire depuis quelques jours, mais je vais m’y replonger prochainement.
Je me dis qu’il doit y avoir moyen de créer un javascript qui reprend le code du widget Wikify…

Tiens moi au courant si tu trouves le truc…


#5

Je sais pas si on a exactement le même problème, en tous cas moi je voulais par exemple que ma macro Javascript additionne des données à partir de valeur contenus dans un dataTiddler. Et je voulais aussi, quelle s’actualise en même temps que les valeurs du dataTiddler changes.
Avec le Widget “EditTextWidget” cela fonctionne :

<dl>
  Valeur 1 : 
  <dd><$edit-text tiddler="$:/temp/data/variable" index="V1" tag="input"/></dd>
  Valeur 2 :
  <dd><$edit-text tiddler="$:/temp/data/variable" index="V2" tag="input"/></dd>
  Valeur 3 :
  <dd><$edit-text tiddler="$:/temp/data/variable" index="V3" tag="input"/></dd>
</dl>

Résultat = <$macrocall $name="maMacroJavascript"
V1={{$:/temp/data/variable##V1}}
V2={{$:/temp/data/variable##V2}}
V3={{$:/temp/data/variable##V3}}/>

Dans mon cas il me semble que c’est “EditTextWidget” qui actualise les macros du tiddlywiki.
Pour ton cas, j’ai lu sur le forum anglais une astuce pour actualiser une macro javascript en fonction d’une horloge (toute les deux seconde par exemple). Mais je ne la retrouve plus… :frowning: