Bonjour,

Je travaille actuellement sur une application d'entreprise. L'utilisateur a la possibilité de modifier partiellement la mise en page et l'affichage de l'espace de travail. Par exemple, il peut choisir de n'afficher qu'un panel sur les 6 (je travail avec bootstrap). De ce fait, j'utilise jquery pour cacher les autres panels et n'afficher que ce dernier. Seulement, quand on actualise la page, on revient à l'affichage de base. De même, il a la possibilité d'intervertir la position des panels. Mais celle ci revient à l'affichage de base lors de l'actualisation de la page.

Est-il possible de sauvegarder le DOM de l'utilisateur et de le restaurer ? J'avais pensé à une variable de SESSION, mais je ne sais pas comment récupérer le DOM de la page.

Merci à ceux qui m'aideront :)

4 réponses


Salut,

Je pense que tu ne sais pas ce qu'est le DOM ;)
Tu peux sauvegarder les positions / états de tes panels dans les cookies ou le localStorage (incompatible IE8 lte) ou le sessionStorage (incompatible IE8 lte également).
Ton app est en SPA ?

sytrys59
Auteur

Pour moi le DOM c'est l'état de la page nan ? Je me trompe peut-être, ou du moins je l'explique mal. Je ne suis qu'un pauvre étudiant sans défense :p
Euh, de mon point de vu oui : elle est SPA. Elle sera intégrée par la suite à un portail. Et chaque service de l'entreprise tourne entre une et deux page (je parle de l'affichage, pas de tout les scripts qui gravitent autour). Pour le service dont je m'occupe actuellement, une seule page qui contient du html ;)

Bonjour,
je pense que tu devrais travailler avec des objets JS pour tes panels. Ce sont ces objets que tu sauvegardes en localStorage et tu crees le DOM a partir de cela.

exemple en pseudo code JS :

// init
// si tu utilises AngularJS ou React, tu disposeras de cette variable panels dans ta vue, tu pourras creer ton DOM
var panels = JSON.parse(localStorage.getItem('config')).panels || [];

// quand l'utilisateur ajoute un nouveau panel
panels.push(newPanel);

// suppression du panel,...
// changement de position du panels
/// ...

// a chaque chagement de panels, sauvegarde dans le localStorage
localStorage.setItem('config', JSON.stringify({panels: panels}); 
sytrys59
Auteur

Ca m'a l'air compliqué tout ça. Peut être la faute en Vendredi qui appelle le week end ! J'essaierai ca dès Lundi et je vous tiendrais au courant ;)
Mais en y pensant, tout ce fais en javascript au niveau de la visibilité ou non des panels. Ce n'est pas possible de sauvegarder l'état des scripts qui gèrent ca et de le restaurer à la place du script qui se charge à l'actualisation de la page ? Toujours en cookie ou en session ?