forked from public/foundryvtt-reve-de-dragon
		
	Affichage du contenu d'un conteneur
Les actions qui modifient le contenu doivent forcer un render
This commit is contained in:
		| @@ -8,6 +8,7 @@ import { Misc } from "./misc.js"; | ||||
| import { HtmlUtility } from "./html-utility.js"; | ||||
| import { ReglesOptionelles } from "./regles-optionelles.js"; | ||||
| import { SYSTEM_RDD } from "./constants.js"; | ||||
| import { RdDSheetUtility } from "./rdd-sheet-utility.js"; | ||||
|  | ||||
| /** | ||||
|  * Extend the basic ItemSheet with some very simple modifications | ||||
| @@ -63,15 +64,15 @@ export class RdDItemSheet extends ItemSheet { | ||||
|   /* -------------------------------------------- */ | ||||
|   async getData() { | ||||
|     const objectData = Misc.data(this.object); | ||||
|  | ||||
|     let formData = { | ||||
|       id: this.object.id, | ||||
|       title: objectData.name, | ||||
|       id: objectData.id, | ||||
|       type: objectData.type, | ||||
|       img: objectData.img, | ||||
|       name: objectData.name, | ||||
|       data: objectData.data, | ||||
|       isGM: game.user.isGM, | ||||
|       actorId: this.actor?.id, | ||||
|       owner: this.document.isOwner, | ||||
|       editable: this.isEditable, | ||||
|       cssClass: this.isEditable ? "editable" : "locked", | ||||
| @@ -79,7 +80,9 @@ export class RdDItemSheet extends ItemSheet { | ||||
|     } | ||||
|     if (this.actor) { | ||||
|       formData.isOwned = true; | ||||
|       formData.actorId = this.actor.id; | ||||
|       if (objectData.type == 'conteneur') { | ||||
|         this.prepareConteneurData(formData); | ||||
|       } | ||||
|     } | ||||
|  | ||||
|     formData.categorieCompetences = RdDItemCompetence.getCategorieCompetences(); | ||||
| @@ -96,7 +99,7 @@ export class RdDItemSheet extends ItemSheet { | ||||
|     } | ||||
|     if (formData.type == 'gemme') { | ||||
|       formData.gemmeTypeList = RdDGemme.getGemmeTypeOptionList(); | ||||
|       RdDGemme.calculDataDerivees( formData.data ); | ||||
|       RdDGemme.calculDataDerivees(formData.data); | ||||
|     } | ||||
|     if (formData.type == 'potion') { | ||||
|       if (this.dateUpdated) { | ||||
| @@ -113,14 +116,25 @@ export class RdDItemSheet extends ItemSheet { | ||||
|     return formData; | ||||
|   } | ||||
|  | ||||
|   prepareConteneurData(formData) { | ||||
|     formData.itemsByType = Misc.classify(this.actor.items.map(i => foundry.utils.deepClone(i.data))); | ||||
|     RdDUtility.filterEquipementParType(formData); | ||||
|  | ||||
|     this.objetVersConteneur = RdDUtility.buildArbreDeConteneurs(formData.conteneurs, formData.objets); | ||||
|     formData.subItems = formData.conteneurs.find(it => it._id == this.object.id)?.subItems; | ||||
|  | ||||
|   } | ||||
|  | ||||
|   /* -------------------------------------------- */ | ||||
|   /** @override */ | ||||
|   activateListeners(html) { | ||||
|     super.activateListeners(html); | ||||
|  | ||||
|     let itemSheetDialog = this; | ||||
|  | ||||
|     HtmlUtility._showControlWhen($(".item-cout"), ReglesOptionelles.isUsing('afficher-prix-joueurs') || game.user.isGM || !this.object.isOwned); | ||||
|     HtmlUtility._showControlWhen($(".item-magique"), this.object.isMagique()); | ||||
|      | ||||
|  | ||||
|     // Everything below here is only needed if the sheet is editable | ||||
|     if (!this.options.editable) return; | ||||
|  | ||||
| @@ -168,13 +182,37 @@ export class RdDItemSheet extends ItemSheet { | ||||
|       } | ||||
|     }); | ||||
|  | ||||
|     html.find('.item-split').click(async event => { | ||||
|       const item = RdDSheetUtility.getItem(event, this.actor); | ||||
|       await RdDSheetUtility.splitItem(item, this.actor, async () => itemSheetDialog.render(true)); | ||||
|     }); | ||||
|     html.find('.item-edit').click(async event => { | ||||
|       const item = RdDSheetUtility.getItem(event, this.actor); | ||||
|       item.sheet.render(true); | ||||
|     }); | ||||
|     html.find('.item-delete').click(async event => { | ||||
|       const li = RdDSheetUtility.getEventElement(event); | ||||
|       RdDUtility.confirmerSuppression(this, li); | ||||
|     }); | ||||
|     html.find('.item-vendre').click(async event => { | ||||
|       const item = RdDSheetUtility.getItem(event, this.actor); | ||||
|       item?.proposerVente(); | ||||
|     }); | ||||
|     html.find('.item-action').click(async event => { | ||||
|       const item = RdDSheetUtility.getItem(event, this.actor); | ||||
|       this.actor.actionItem(item, async () => itemSheetDialog.render(true)); | ||||
|     }); | ||||
|     html.find('.conteneur-name a').click(async event => { | ||||
|       RdDUtility.toggleAfficheContenu(RdDSheetUtility.getItemId(event)); | ||||
|       this.render(true); | ||||
|     }); | ||||
|   } | ||||
|  | ||||
|   /* -------------------------------------------- */ | ||||
|   async _onSelectCategorie(event) { | ||||
|     event.preventDefault(); | ||||
|  | ||||
|     if (this.object.isCompetence()){ | ||||
|     if (this.object.isCompetence()) { | ||||
|       let level = RdDItemCompetence.getNiveauBase(event.currentTarget.value); | ||||
|       Misc.templateData(this.object).base = level; | ||||
|       $("#base").val(level); | ||||
| @@ -198,4 +236,6 @@ export class RdDItemSheet extends ItemSheet { | ||||
|  | ||||
|     return this.object.update(formData); | ||||
|   } | ||||
|  | ||||
|  | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user