J'utilise l'excellente bibliothèque Sortable JS de RubaXa pour permettre le réarrangement par glisser-déposer des divs sur un tableau de bord basé sur Bootstrap. Comme les divs sont tous en 2 colonnes (gauche et droite), j'ai défini les colonnes avec les ids "leftColumn" et "rightColumn".
Afin de permettre le glissement entre les colonnes, j'ai configuré les deux tables de tri avec le même groupe, comme ceci :
Sortable.create(leftColumn, {
group: 'dash_sections',
});
Sortable.create(rightColumn, {
group: 'dash_sections',
});
J'essaie maintenant de charger et de sauvegarder la commande à partir des deux listes (le groupe entier). J'ai placé data-id
dans chacune des balises div, et j'essaie d'utiliser le code suivant pour sauvegarder et rétablir l'ordre de tout cela.
Sortable.create(rightColumn, {
group: 'dash_sections',
store: {
get: function (sortable) {
var order = localStorage.getItem(sortable.options.group);
return order ? order.split('|') : [];
},
set: function (sortable) {
var order = sortable.toArray();
localStorage.setItem(sortable.options.group, order.join('|'));
}
}
});
Cependant, je ne sauvegarde et ne restaure l'ordre que pour cette colonne, et non pour l'ensemble du groupe. Je souhaite que l'ordre du groupe soit stocké dans une seule chaîne dans la base de données. Comment dois-je procéder pour sauvegarder et restaurer l'ordre du groupe entier ?
Mise à jour : J'ai mis un code similaire dans les deux fonctions sortable.create, en utilisant "leftcol" et "rightcol" au lieu de sortable.options.group. Cela permet de sauvegarder correctement l'ordre de chaque sortable tant que l'on ne glisse pas entre les colonnes. Je suis toujours à la recherche d'un moyen de sauvegarder l'ordre même lorsque l'on glisse entre les colonnes.