Arborescence de conteneurs

Les conteneurs sont maintenant précédés d'une icone:
* pour ouvrir:  '+'
* pour fermer: '-'
* si vide: carré vide
This commit is contained in:
Vincent Vandemeulebrouck
2022-08-26 22:23:04 +02:00
parent 82115ed8d7
commit 4b1862fa48
4 changed files with 54 additions and 30 deletions

View File

@ -465,34 +465,32 @@ export class RdDUtility {
/** Construit la structure récursive des conteneurs, avec imbrication potentielle
*
*/
static buildConteneur(objet, niveau) {
if (!niveau) niveau = 1;
objet.niveau = niveau;
//console.log("OBJ:", objet);
let str = Handlebars.partials['systems/foundryvtt-reve-de-dragon/templates/actor-sheet-inventaire-conteneur.html']({ item: objet });
if (objet.type == 'conteneur') {
const afficherContenu = this.getAfficheContenu(objet._id);
str = str + RdDUtility.buildContenu(objet, niveau, afficherContenu);
}
return str;
static buildConteneur(objet, profondeur) {
if (!profondeur) profondeur = 1;
objet.niveau = profondeur;
const isConteneur = objet.type == 'conteneur';
const isOuvert = isConteneur && this.getAfficheContenu(objet._id);
const isVide = isConteneur && Misc.templateData(objet).contenu.length == 0;
const conteneur = Handlebars.partials['systems/foundryvtt-reve-de-dragon/templates/actor-sheet-inventaire-conteneur.html']({
item: objet,
vide: isVide,
ouvert: isOuvert
});
const contenu = isConteneur ? RdDUtility.buildContenu(objet, profondeur, isOuvert) : '';
return conteneur + contenu;
}
/* -------------------------------------------- */
static buildContenu(objet, niveau, afficherContenu) {
if (!niveau) niveau = 1;
objet.niveau = niveau;
let strContenu = "";
static buildContenu(objet, profondeur, afficherContenu) {
if (!profondeur) profondeur = 1;
objet.niveau = profondeur;
const display = afficherContenu ? 'item-display-show' : 'item-display-hide';
//console.log("ITEM DISPLAYED", objet );
if (afficherContenu) {
strContenu = "<ul class='item-list alterne-list item-display-show list-item-margin" + niveau + "'>";
} else {
strContenu = "<ul class='item-list alterne-list item-display-hide list-item-margin" + niveau + "'>";
}
let strContenu = `<ul class='item-list alterne-list ${display} list-item-margin${profondeur}'>`;
for (let subItem of objet.subItems) {
strContenu = strContenu + this.buildConteneur(subItem, niveau + 1);
strContenu += this.buildConteneur(subItem, profondeur + 1);
}
strContenu = strContenu + "</ul>";
return strContenu;
return strContenu + "</ul>";
}
/* -------------------------------------------- */