[spip-dev] suggestion : bouton "sauvegarder" (article)

> or je me suis dit que ce serait pas mal d'avoir en plus du bouton
> [Valider] un bouton [Enregistrer] (par exemple) qui fasse comme valider
> mais nous laisse sur la page d'édition : éviter simplement de valider
> puis revenir dans l'édition

CE que je fais, c'est "Valider" puis "back" (attention, ça ne marche pas si
"back" nous ramène à une opération de création d'article).

Encore un peu plus sûr, ce serait un autosave. Le valider, puis back,
c'est quand on n'a pas de problème, qu'on n'est pas interrompu, distrait...

J'avais mentionné sur cette liste (sans réponse) que l'inclusion
d'une image dans un article (spip 1.6) m'a fait sauté ma page
me ramenant hors de l'édition d'une article. [1]

Un autosave m'aurait éviter de recommencer quelques heures de travail
(petit texte mais longue réflexion).

Est-ce possible à programmer? J'avoue ne pas avoir idée de tout ce
que cela peut impliquer... Mais je crois que cela pourrait éviter
beaucoup de larmes...

[1] Ce bug est-il connu, corrigé? Que faire?

          Anne

Encore un peu plus sûr, ce serait un autosave.

Ca m'étonnerait que ça possible : on est sur le web, hein, pas dans une
grosse appli locale...

J'avais mentionné sur cette liste (sans réponse) que l'inclusion
d'une image dans un article (spip 1.6) m'a fait sauté ma page
me ramenant hors de l'édition d'une article. [1]

Oui, les formulaires d'envoi d'image et de texte sont séparés. Je ne sais
pas si c'est un bug, mais c'est un piège à connaître (enfin, on ne se fait
prendre qu'une fois, en général...). Si quelqu'un trouve une solution, on
l'intégrera ; mais a priori c'est assez lourd (les deux formulaires n'ont
pas la même destination).

-- Fil

Si :

<html>
<head>
<title>test autosave</title>
<script>
  function savePopup() {
    document.forms["monForm"].target="_blank";
  }
  function save() {
    document.forms["monForm"].target="";
  }
  debut=(new Date()).getTime();
  function auto() {
    maintenant=(new Date()).getTime();
    if(maintenant-debut > 10000) {
       document.forms["monForm"].target="_blank";
       document.forms["monForm"].submit();
       debut=maintenant;
    }
  }
</script>
</head>
<body>

<h1>test autosave</h1>
<form name="monForm" action="auto.php" method="post">
  <textarea name="essai" cols="40" rows="10" onKeyPress="auto();"></textarea>
  <input type="submit" value="ok" onclick="save();">
  <input type="submit" value="auto" onclick="savePopup();">
</form>
</body>
</html>

le php destination :
<html>
<body>
Save ...
<? echo $essai."\n";
   sleep(3);
?>
<script>
  window.close();
</script>
</body>
</html>

  Ce qui est chiant, c'est que le php affiche rien (le sleep coince
tout) et qu'on décide pas de la taille de la page, mais doit y avoir
moyen de faire des choses de ce coté là nan ?

À+, Pif.

- La premiÚre grosse limite, c'est qu'en général ce genre de chose te fait perdre la main sans prévenir. Ce qui est, genre, insupportable.

- Inconvénient qui peut aller avec ce genre de chose: les modifications de textes déjà publiés. Sur les textes déjà en ligne, pour éviter la "publication" de textes qui seraient cours de modif, il faut surtout pas sauvegarder pendant qu'on bosse; sinon, on risque d'avoir momentanément un texte zarbi accessible sur le site public. (Bon, faut pas de bol, parce qu'en plus y'a le cache; mais sur un site avec des forums, le recalcul peut se faire n'importe quand.)

- Sinon, peut-être une piste, mais méga-lourde: un iframe caché dans la page. De temps en temps, on y balance une copie du champ texte et on fait une validation uniquement de cette iframe. Y'a des chances que ça ne se voit pas. En revanches, difficultés de compatibilité (les iframes, sur mon vieux Mac, c'est assez problématique). De plus, ça nécessite de faire tourner une boucle javascript en permanence (timer); je ne sais pas ce qu'il en est aujourd'hui, mais à l'époque, ce genre de chose faisait ramer la machine dans des proportions phénoménales.

- Pour les images et docs, possibilité aussi (à étudier) d'afficher cette colonne dans une iframe. Mais bon, moi, jusqu'à présent, je m'en méfie.

A*

ARNO* wrote:

[...]ne se voit pas. En revanches, difficultés de compatibilité (les iframes, sur mon vieux Mac, c'est assez problématique). De plus, ça nécessite de faire tourner une boucle javascript en permanence (timer); je ne sais pas ce qu'il en est aujourd'hui, mais à l'époque, ce genre de chose faisait ramer la machine dans des proportions phénoménales.

Les iframes: chez moi: je les interdits.
une boucle récursive en Javascript.... oui, au bout de 5 minutes... plus de ram.
Il existe une autre fonction, qui permet d'appeler une fonction après un certain temps, et qui n'a pas le désaventage "bouffe ram" de la première fonction.
Bien sur, sur les très vieux navigateurs ça ne passera pas.