PluXml.org

Blog ou CMS à l'Xml

Vous n'êtes pas identifié(e).

#1 12/05/2012 14:58:05

rockyhorror
Membre
Inscription : 10/11/2011
Messages : 246
Site Web

[Plugin] AutoSave

Bonjour,


Voici un petit plugin, qui permet de récupérer les données de l'article  ou de la page statique en cours de rédaction en cas de timeout du login pluxml (ou autre erreurs de manipulation: fermeture de l'onglet, changement de page...)


A utiliser avec un navigateur récent car se base sur les fonctions "local storage" du HTML5.


Téléchargement ici


N'hésitez pas à tester, et me remonter vos remarques.

Dernière modification par rockyhorror (11/02/2015 21:35:01)

Hors ligne

#2 13/05/2012 18:53:56

Jerry Wham
Membre
Inscription : 13/07/2011
Messages : 2 560
Site Web

Re : [Plugin] AutoSave

Est-ce que ça fonctionne avec plxEditor ? Car j'avais essayé de coder un plugin similaire mais j'avais été confronté au problème avec plxEditor qui transforme le textarea en iframe, et je n'avais pas réussi.


Mangez un castor, vous sauverez un arbre !

J'ai la tête dans le  ...code

Hors ligne

#3 13/05/2012 23:48:37

rockyhorror
Membre
Inscription : 10/11/2011
Messages : 246
Site Web

Re : [Plugin] AutoSave

Effectivement, ça ne marche pas avec plxEditor.

Hors ligne

#4 14/05/2012 01:17:11

Jerry Wham
Membre
Inscription : 13/07/2011
Messages : 2 560
Site Web

Re : [Plugin] AutoSave

Le plugin de Stephane ne fonctionne pas également avec plxEditor.


Mangez un castor, vous sauverez un arbre !

J'ai la tête dans le  ...code

Hors ligne

#5 11/02/2015 21:38:01

rockyhorror
Membre
Inscription : 10/11/2011
Messages : 246
Site Web

Re : [Plugin] AutoSave

Bonjour,

Voici une nouvelle version de ce plugin que j'ai délaissé depuis un petit moment.

Cela fonctionne maintenant même si vous utilisez le plugin CkEditor (et sans doute la plxToolbar mais pas testé)

Par là

Hors ligne

#6 12/02/2015 00:09:50

Jerry Wham
Membre
Inscription : 13/07/2011
Messages : 2 560
Site Web

Re : [Plugin] AutoSave

Cool mais il manque la vérification et l'appel à jquery (qui n'est pas forcément présent partout).


Mangez un castor, vous sauverez un arbre !

J'ai la tête dans le  ...code

Hors ligne

#7 12/02/2015 15:58:43

Stéphane
Consultant PluXml
Lieu : pas loin de Toulouse
Inscription : 07/08/2007
Messages : 6 290
Site Web

Re : [Plugin] AutoSave

Salut

Dans le code tu appelles le fichier sisyphus.js
alors qu'il n'y a que le fichier sisyphus.min.js de dispo

nb: il faut charger jquery avant le plugin

Sinon le plugin fonctionne avec CKeditor (testé et validé). il faut attendre 30 secondes avant de voir une mention "AutoSave" s'affiché dans un encart vert. On change de page, on revient sur l'article: on récupère bien le texte qui était en cours de rédaction

NOTE: rendre paramétrable le délai de 30 secondes serait pas mal.


Ancien responsable de PluXml  cool

Hors ligne

#8 12/02/2015 18:32:13

Jerry Wham
Membre
Inscription : 13/07/2011
Messages : 2 560
Site Web

Re : [Plugin] AutoSave

Je suis curieux de savoir comment il fonctionne ce plugin. Il récupère le contenu de la div générée par CKeditor ? Est-ce qu'il fonctionne avec d'autres wysiwyg ?


Mangez un castor, vous sauverez un arbre !

J'ai la tête dans le  ...code

Hors ligne

#9 12/02/2015 20:46:37

rockyhorror
Membre
Inscription : 10/11/2011
Messages : 246
Site Web

Re : [Plugin] AutoSave

Oups, merci Stéphane, petite erreur d'inattention.
J'ai corrigé l'archive.

Je mettrais le delai d'enregistrement en paramètre pour la prochaine version.

Hors ligne

#10 13/02/2015 01:39:58

Jerry Wham
Membre
Inscription : 13/07/2011
Messages : 2 560
Site Web

Re : [Plugin] AutoSave

J'ai regardé un peu vite fait le code javascript et en fait, il est prévu pour fonctionner aussi avec CKeditor.

sisyphus.js vérifie si une instance de CKeditor existe, sinon, si j'ai bien compris, il part du principe qu'il s'agit d'un textarea "nu".

J'ai aussi regardé le code php et il peut être optimisé en plaçant le js tout en bas de page et en utilisant qu'un seul hook. Vu que rockyhorror, tu n'as pas de profil sur github, je posterai mes modif comme un fork sur mon github afin que vous puissiez voir et charger ce que j'ai fait.

Mais là, c'est dodo tongue

Vraiment merci rockyhorror d'avoir posté ce script qui va être vraiment utile à tous. J'opterais, si j'en avais la possibilité et une fois le code nettoyé, de le passer comme plugin officiel. Il ne sauve pas des chatons, mais pas loin  big_smile

Dernière modification par Jerry Wham (13/02/2015 01:43:05)


Mangez un castor, vous sauverez un arbre !

J'ai la tête dans le  ...code

Hors ligne

#11 13/02/2015 21:45:44

Jerry Wham
Membre
Inscription : 13/07/2011
Messages : 2 560
Site Web

Re : [Plugin] AutoSave

Voici la version que je vous propose suite au travail de rockyhorror. Je l'ai mis sur github à l'adresse https://github.com/jerrywham/AutoSave.

L'archive est disponible ici

Les modifications que j'ai apportées :

  • correction de l'appel du fichier javascript sisyphus

  • suppression des hooks inutiles

  • appel des javascripts en bas de page

  • déport du javascript en ligne, dans un fichier séparé. Il ne reste plus que l'appel à une fonction.

  • création d'un panneau de configuration pour régler la durée entre chaque sauvegarde.

  • suppression de jquery.notify au profil des fonctions natives de pluxml.

  • vérification du chargement de jquery préalablement au chargement des autres fichiers javascript.

Enjoy tongue

Dernière modification par Jerry Wham (13/02/2015 21:51:05)


Mangez un castor, vous sauverez un arbre !

J'ai la tête dans le  ...code

Hors ligne

#12 16/02/2015 12:47:39

Jerry Wham
Membre
Inscription : 13/07/2011
Messages : 2 560
Site Web

Re : [Plugin] AutoSave

Je viens de nouveau de modifier le code.

Il n'est en fait pas nécessaire de préciser un délai d'enregistrement. Il y a une option de sisyphus qui permet de n'enregistrer que si les formulaires sont modifiés. J'ai donc supprimé l'affichage régulier de la vignette "AutoSave" au profit d'une image fixe qui précise que le plugin est actif. S'il y a un bug, elle ne s'affiche pas et donc il n'y a pas de sauvegarde.

Sisyphus peut également prendre en compte les paramètres passés dans l'url pour les considérer comme des pages différentes. Cela corrige le bug qui redirigeait automatiquement vers un nouvel article quel que soit le lien cliqué (nouvel article ou article anciennement rédigé).

J'ai supprimé la page de config qui ne sert plus à rien.

J'ai ajouté une icône.

Le code est ainsi simplifié.

Les sources sont disponibles sur github.

Dernière modification par Jerry Wham (16/02/2015 12:48:18)


Mangez un castor, vous sauverez un arbre !

J'ai la tête dans le  ...code

Hors ligne

#13 16/02/2015 13:48:06

Stéphane
Consultant PluXml
Lieu : pas loin de Toulouse
Inscription : 07/08/2007
Messages : 6 290
Site Web

Re : [Plugin] AutoSave

Excellent Jerry


Ancien responsable de PluXml  cool

Hors ligne

#14 16/02/2015 17:24:03

Jerry Wham
Membre
Inscription : 13/07/2011
Messages : 2 560
Site Web

Re : [Plugin] AutoSave

Merci.

Reste à voir si on peut le faire fonctionner avec tinymce.


Mangez un castor, vous sauverez un arbre !

J'ai la tête dans le  ...code

Hors ligne

#15 16/02/2015 23:12:10

rockyhorror
Membre
Inscription : 10/11/2011
Messages : 246
Site Web

Re : [Plugin] AutoSave

Hello,

Beau travail. Pas grand chose à dire. juste si tu peux corriger le titre de l'icone "Sauvegarde locale activée". J'avais laissé avec un timeout, parce que sinon la sauvegarde se fait à chaque appui sur une touche, ce qui peux sembler un peut trop. A voir.

Hors ligne

#16 18/02/2015 01:18:23

Jerry Wham
Membre
Inscription : 13/07/2011
Messages : 2 560
Site Web

Re : [Plugin] AutoSave

Je viens de mettre à jour les sources sur github afin que sisyphus prenne en charge tinymce.

J'ai corrigé le titre de l'icône.

Je n'ai pas ajouté de timeout car cela permet :

  • d'éviter d'avoir une alerte régulièrement, ce qui peut être saoulant à force

  • de n'enregistrer que s'il y a un changement dans le textearea


Enjoy tongue


Mangez un castor, vous sauverez un arbre !

J'ai la tête dans le  ...code

Hors ligne

#17 18/02/2015 09:38:24

je-evrard
Pluxml Staff
Lieu : pau
Inscription : 08/05/2012
Messages : 1 205
Site Web

Re : [Plugin] AutoSave

smile  cool merci jerry.


Petit à petit l'oiseau fait son nid.
- Sites : Création web - Création artistique
- pluxml : Plugins - Visual Wizard - facebook vw

Hors ligne

#18 18/02/2015 11:50:40

Jerry Wham
Membre
Inscription : 13/07/2011
Messages : 2 560
Site Web

Re : [Plugin] AutoSave

Attention quand même dans les premiers temps de bien vérifier que le plugin fonctionne comme prévu. Des bugs ne sont potentiellement pas à exclure.


Mangez un castor, vous sauverez un arbre !

J'ai la tête dans le  ...code

Hors ligne

#19 24/02/2015 21:09:12

rockyhorror
Membre
Inscription : 10/11/2011
Messages : 246
Site Web

Re : [Plugin] AutoSave

Plop,

J'ai zippé et mis à dispos sur mon site.

Merci Jerry

Hors ligne

#20 10/03/2015 01:08:21

Jerry Wham
Membre
Inscription : 13/07/2011
Messages : 2 560
Site Web

Re : [Plugin] AutoSave

Bon, j'ai trouvé un bug très génant : l'ensemble des plugins d'un site peut être désactivé d'un coup. Je pense que le problème vient d'autosave. Il va falloir que je vérifie.
Faites donc attention que cela ne vous arrive pas. Désactivez le plugin si nécessaire jusqu'à ce que le bug soit résolu.

Si d'autres ont eu ce désagrément, merci de nous en faire part.


Mangez un castor, vous sauverez un arbre !

J'ai la tête dans le  ...code

Hors ligne

#21 29/04/2015 15:08:49

PPmarcel
Membre
Lieu : Île-de-France
Inscription : 21/06/2010
Messages : 260
Site Web

Re : [Plugin] AutoSave

Ce plugin il poutre. J'utilise la version 0.4ter avec spxtynimce.

Je regrette seulement de ne pas l'avoir utilisé plus tôt.

Il sauvegarde tout, même si je ferme mon onglet pendant que je tape, je récupère bien le dernier caractère, aucune perte !
Bravo rockyhorror pour le script, et merci Jerry Wham pour toutes les améliorations.

Hors ligne

#22 30/04/2015 02:52:05

Jerry Wham
Membre
Inscription : 13/07/2011
Messages : 2 560
Site Web

Re : [Plugin] AutoSave

De rien. tongue


Mangez un castor, vous sauverez un arbre !

J'ai la tête dans le  ...code

Hors ligne

#23 01/06/2015 10:43:41

Francis
Membre
Inscription : 19/11/2011
Messages : 446
Site Web

Re : [Plugin] AutoSave

Vraiment chouette, ce plugin, merci rockyhorror et Jerry !

Il y aurait une amélioration possible, qui rendrait bien service à l'occasion :
Quand l'utilisateur a mis un joli bazar dans une page, la méthode la plus rationnelle est de quitter sans sauvegarder, puis de rouvrir la page.
Mais là, crac, toutes les modifications reviennent !

Evidemment, puisque c'est le but du plugin !
Mais ce serait utile de pouvoir effacer la sauvegarde, pour pouvoir quitter et retrouver ensuite le contenu initial.

Je pense éventuellement au remplacement de la coche qui est à gauche de l'icône par une vraie case à cocher,
qu'on pourrait décocher pour effacer la sauvegarde de toutes les modifs depuis le dernier enregistrement (ou éventuellement un raccourci clavier, si c'est trop compliqué avec la case à cocher).

J'ai vu une méthode "remove" dans sisyphus.js, qui me fait penser que cette fonction est prévue.

Hors ligne

#24 02/06/2015 23:32:22

Francis
Membre
Inscription : 19/11/2011
Messages : 446
Site Web

Re : [Plugin] AutoSave

En fait, j'ai dit une bêtise : une case à cocher ne correspondrait pas à la fonction remove, qui annule la dernière mémorisation de la page en cours de modification, mais ne désactive pas la sauvegarde automatique.
Ce serait plutôt un bouton RAZ (ou un logo ayant le même sens) qui correspondrait à cette fonction "remove".

D'où le fonctionnement si on veut fermer la page sans la sauvegarder et retrouver sa version initiale : un petit coup de RAZ, on ferme la page et on peut la rouvrir sans affichage des modifs effectuées depuis le dernier enregistrement par le bouton "Enregistrer".

Hors ligne

#25 12/06/2015 20:23:50

Francis
Membre
Inscription : 19/11/2011
Messages : 446
Site Web

Re : [Plugin] AutoSave

Ma question n'a pas eu beaucoup de succès, je pense que personne n'avait la solution sous la main et que tout le monde est très occupé !
Alors j'ai potassé la question, j'ai eu un peu de mal à trouver la doc mais finalement j'ai résolu le problème  smile

Pour permettre à l'utilisateur de fermer sa page et la rouvrir ensuite sans retrouver les modifications qu'il n'a pas enregistré lui-même (en cliquant sur le bouton "Enregistrer"), j'ai ajouté à côté du logo "Autosave" un lien "Fermer sans enregistrer".

Ce lien utilise la méthode manuallyReleaseData() de Sisyphus, qui efface la mémoire du formulaire indiqué. Pour éviter un test entre formulaire d'article ou formulaire de page statique, je n'ai pas fait dans le détail et j'ai utilisé la balise form : on efface tout ce qui a pu être mémorisé et on recommence !

Ça consiste à modifier la ligne 33 du fichier js/AutoSave.js

[== JavaScript ==]
newBlocMsg.innerHTML = '<img src="'+PLX_PLUGINS+'AutoSave/autosave.png" alt="Save locally enable" title="Sauvegarde locale activée"/>' ;

et à la remplacer par

[== JavaScript ==]
newBlocMsg.innerHTML = '<img src="'+PLX_PLUGINS+'AutoSave/autosave.png" alt="Save locally enable" title="Sauvegarde locale activée"/>'
                       + '&nbsp;<a href="#" onclick="$(\'form\').sisyphus().manuallyReleaseData(); window.history.back(); return false;"'
                       + ' style="position: relative; bottom: 4px; font-size: 0.45em;">Fermer sans enregistrer</a>' ;

Le retour se fait sur la page précédente, donc sur la liste des articles ou des pages statiques, suivant le type de page qu'on est en train d'éditer.

Dernière modification par Francis (13/06/2015 00:00:15)

Hors ligne

Pied de page des forums

A propos Nous soutenir Contact Twitter Google+
Copyright © 2006-2018 PluXml.org, tous droits réservés