Drag and Drop für Container #98 (#99)

Items können jetzt per Drag and Drop in Container verschoben werden. Werden sie nicht in einen Container gedroppt, landen sie wieder in der allgemeinen Item Übersicht.

Co-authored-by: Ender <harald@drueppels.de>
Reviewed-on: #99
Reviewed-by: Byroks <byroks@gmail.com>
This commit is contained in:
oskaloq 2024-03-31 18:51:01 +02:00
parent fb30f8fe40
commit 08e767afcb
2 changed files with 14 additions and 2 deletions

View File

@ -526,7 +526,11 @@ export default class M5CharacterSheet extends ActorSheet {
let data = null; let data = null;
try { try {
data = JSON.parse(event.dataTransfer.getData("text/plain")); data = JSON.parse(event.dataTransfer.getData("text/plain"));
data.data.system.containerId = ""; //Clean containerId console.log("Data", data.data);
let target = event.target.closest("[data-container-id]") as HTMLElement;
let containerId = target ? target.dataset.containerId : "";
console.log("Container ID", containerId);
data.data.system.containerId = containerId; //Update containerId
if (data.type !== "Transfer") return false; if (data.type !== "Transfer") return false;
} catch (err) { } catch (err) {
return false; return false;
@ -535,6 +539,14 @@ export default class M5CharacterSheet extends ActorSheet {
if (!data.data) return false; if (!data.data) return false;
if (data.actorId === this.actor.id) { if (data.actorId === this.actor.id) {
let itemId=data.data._id;
const context = this.actor as any;
const item = context.items.get(itemId);
item.update({
data: {
containerId: data.data.system.containerId,
},
});
return this._onSortItem(event, data.data); return this._onSortItem(event, data.data);
} }

View File

@ -63,7 +63,7 @@
<h3>{{localize "midgard5.itemsInContainers"}}</h3> <h3>{{localize "midgard5.itemsInContainers"}}</h3>
<div class="flexbox"> <div class="flexbox">
{{#each data.calc.gear.containers as |container containerId|}} {{#each data.calc.gear.containers as |container containerId|}}
<div class="flexcolumn-2"> <div class="flexcolumn-2" data-container-id="{{containerId}}">
<div class="flexpart"> <div class="flexpart">
<div class="flexpart-header"><img src="{{container.icon}}" class="flexpart-icon">{{container.label}}</div> <div class="flexpart-header"><img src="{{container.icon}}" class="flexpart-icon">{{container.label}}</div>
<table> <table>