Bonjour,
Je voudrais que l’affichage d’une liste d’un objet soit en vignette dès que le nombre de lignes est inférieur à 10.
Voici ce que je fais :
ImmoProperty = (function(ui) {
if (!ui) return; // Do nothing on legacy UI
var app = ui.getAjax();
Simplicite.UI.hooks.ImmoProperty = function(o, cbk) {
try {
o.locals.ui.list.preload = function(ctn, obj) {
// Paramétrage pour les vignettes :
property = app.getBusinessObject("ImmoProperty"); // Nb de biens total
var len = property.list.length;
console.log("preload property.list.length = " + len);
// Paramétrage pour les vignette :
if (o.isMainInstance()) {
var p = o.locals.ui; // copy of Globals
if (len < 10) {
p.list.minified = true; // Afficher en vignette
} else p.list.minified = false; // Ne pas afficher en vignette
}
};
Cela fonctionne seulement si je clique 2 fois sur l’objet dans le menu à gauche. Je m’explique, si je clique sur un statut pour lequel moins de 10 lignes seront affichées, la première fois l’affichage conserve son état précédent, càd avant le select de ce statut, si c’est en liste, ça reste en liste, si c’est en vignette, ça reste en vignette et ceci indépendamment de nombre de ligne dans le statut sélectionné. Si je reclique sur le même statut, cette fois-ci la condition (< 10) s’applique.
Je voudrais que dès qu’on clique sur un statut, et en fonction de nombre de ligne qui vont s’afficher, la condition s’applique directement : Si < 10 => vignette, sinon, liste.
J’ai essayé de mettre le code dans le preload, cela a le même effet.
Un autre besoin, si on est sur une liste > 10 lignes, mais qu’on applique un filtre qui réduit la liste à < 10, je voudrais savoir s’il est possible de basculer directement en vignette.
Merci d’avance pour votre aide.
Abed