working on properties
This commit is contained in:
@@ -21,6 +21,11 @@ export class ItemSheetL5r5e extends ItemSheet {
|
||||
sheetData.data.ringsList = game.l5r5e.HelpersL5r5e.getRingsList();
|
||||
sheetData.data.techniquesList = game.l5r5e.HelpersL5r5e.getTechniquesList();
|
||||
|
||||
// Prepare Properties (id => object)
|
||||
if (sheetData.data.properties) {
|
||||
sheetData.data.propertiesList = sheetData.data.properties.map((e) => game.items.get(e));
|
||||
}
|
||||
|
||||
return sheetData;
|
||||
}
|
||||
|
||||
@@ -40,6 +45,12 @@ export class ItemSheetL5r5e extends ItemSheet {
|
||||
html.find(".select-on-focus").on("focus", (event) => {
|
||||
event.target.select();
|
||||
});
|
||||
|
||||
// Delete a property
|
||||
html.find(`.property-delete`).on("click", (event) => {
|
||||
const li = $(event.currentTarget).parents(".property");
|
||||
this._deleteProperty(li.data("propertyId"));
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -74,13 +85,48 @@ export class ItemSheetL5r5e extends ItemSheet {
|
||||
// Check item type and subtype
|
||||
const item = game.l5r5e.HelpersL5r5e.getDragnDropTargetObject(event);
|
||||
if (!item || item.entity !== "Item" || item.data.type !== "property" || this.item.type === "property") {
|
||||
return Promise.resolve();
|
||||
return;
|
||||
}
|
||||
|
||||
// TODO
|
||||
console.log("Item - _onDrop - ", item, this);
|
||||
|
||||
// Ok add item
|
||||
// return super._onDrop(event);
|
||||
this._addProperty(item.id);
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a property to the current item
|
||||
* @private
|
||||
*/
|
||||
_addProperty(id) {
|
||||
let props = this.entity.data.data.properties || [];
|
||||
if (!Array.isArray(props)) {
|
||||
props = [];
|
||||
}
|
||||
if (props.includes(id)) {
|
||||
return;
|
||||
}
|
||||
|
||||
props.push(id);
|
||||
|
||||
this.entity.update({
|
||||
data: {
|
||||
properties: props,
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete a property from the current item
|
||||
* @private
|
||||
*/
|
||||
_deleteProperty(id) {
|
||||
let props = this.entity.data.data.properties || [];
|
||||
if (!Array.isArray(props) || !props.includes(id)) {
|
||||
return;
|
||||
}
|
||||
this.entity.update({
|
||||
data: {
|
||||
properties: props.filter((e) => e !== id),
|
||||
},
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,9 +1,8 @@
|
||||
<li class="item flexcol" data-item-id="{{item._id}}">
|
||||
<ul class="item-header item-control">
|
||||
<li class="item-img"><img src="{{item.img}}" title="{{item.name}}" width="32px" height="32px"/></li>
|
||||
<li class="item-name">{{ item.name }}</li>
|
||||
<li class="item-edit" title="{{localize 'l5r5e.global.edit'}}"><i class="fas fa-edit"></i></li>
|
||||
<li class="item-delete" title="{{localize 'l5r5e.global.delete'}}"><i class="fas fa-trash"></i></li>
|
||||
<li class="property flexcol" data-property-id="{{item._id}}">
|
||||
<ul class="property-header property-control">
|
||||
<li class="property-img"><img src="{{item.img}}" title="{{item.name}}" width="32px" height="32px"/></li>
|
||||
<li class="property-name">{{ item.name }}</li>
|
||||
<li class="property-delete" title="{{localize 'l5r5e.global.delete'}}"><i class="fas fa-trash"></i></li>
|
||||
</ul>
|
||||
<div class="item-description">{{{ item.data.description }}}</div>
|
||||
</li>
|
||||
@@ -79,10 +79,8 @@
|
||||
</label>
|
||||
</fieldset>
|
||||
<fieldset>
|
||||
{{json data.properties}}
|
||||
<legend class="text-block-header">{{ localize 'l5r5e.properties' }}</legend>
|
||||
<!-- TODO data.properties a faire en dnd avec les items de type "property" -->
|
||||
{{> 'systems/l5r5e/templates/items/property/properties.html' properties=data.properties }}
|
||||
{{> 'systems/l5r5e/templates/items/property/properties.html' properties=data.propertiesList }}
|
||||
</fieldset>
|
||||
<fieldset>
|
||||
<legend class="text-block-header">{{ localize 'l5r5e.description' }}</legend>
|
||||
|
||||
Reference in New Issue
Block a user