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.ringsList = game.l5r5e.HelpersL5r5e.getRingsList();
|
||||||
sheetData.data.techniquesList = game.l5r5e.HelpersL5r5e.getTechniquesList();
|
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;
|
return sheetData;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -40,6 +45,12 @@ export class ItemSheetL5r5e extends ItemSheet {
|
|||||||
html.find(".select-on-focus").on("focus", (event) => {
|
html.find(".select-on-focus").on("focus", (event) => {
|
||||||
event.target.select();
|
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
|
// Check item type and subtype
|
||||||
const item = game.l5r5e.HelpersL5r5e.getDragnDropTargetObject(event);
|
const item = game.l5r5e.HelpersL5r5e.getDragnDropTargetObject(event);
|
||||||
if (!item || item.entity !== "Item" || item.data.type !== "property" || this.item.type === "property") {
|
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
|
// 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}}">
|
<li class="property flexcol" data-property-id="{{item._id}}">
|
||||||
<ul class="item-header item-control">
|
<ul class="property-header property-control">
|
||||||
<li class="item-img"><img src="{{item.img}}" title="{{item.name}}" width="32px" height="32px"/></li>
|
<li class="property-img"><img src="{{item.img}}" title="{{item.name}}" width="32px" height="32px"/></li>
|
||||||
<li class="item-name">{{ item.name }}</li>
|
<li class="property-name">{{ item.name }}</li>
|
||||||
<li class="item-edit" title="{{localize 'l5r5e.global.edit'}}"><i class="fas fa-edit"></i></li>
|
<li class="property-delete" title="{{localize 'l5r5e.global.delete'}}"><i class="fas fa-trash"></i></li>
|
||||||
<li class="item-delete" title="{{localize 'l5r5e.global.delete'}}"><i class="fas fa-trash"></i></li>
|
|
||||||
</ul>
|
</ul>
|
||||||
<div class="item-description">{{{ item.data.description }}}</div>
|
<div class="item-description">{{{ item.data.description }}}</div>
|
||||||
</li>
|
</li>
|
||||||
@@ -79,10 +79,8 @@
|
|||||||
</label>
|
</label>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<fieldset>
|
<fieldset>
|
||||||
{{json data.properties}}
|
|
||||||
<legend class="text-block-header">{{ localize 'l5r5e.properties' }}</legend>
|
<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.propertiesList }}
|
||||||
{{> 'systems/l5r5e/templates/items/property/properties.html' properties=data.properties }}
|
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<fieldset>
|
<fieldset>
|
||||||
<legend class="text-block-header">{{ localize 'l5r5e.description' }}</legend>
|
<legend class="text-block-header">{{ localize 'l5r5e.description' }}</legend>
|
||||||
|
|||||||
Reference in New Issue
Block a user