Support drag and drop in adversary and environment sheets

This commit is contained in:
Carlos Fernandez 2025-12-04 16:41:18 -05:00
parent 2bae7900fe
commit a4705f4204
5 changed files with 20 additions and 50 deletions

View file

@ -25,7 +25,8 @@ export default class AdversarySheet extends DHBaseActorSheet {
action: 'editAttribution'
}
]
}
},
dragDrop: [{ dragSelector: '[data-item-id][draggable="true"]', dropSelector: null }]
};
static PARTS = {
@ -163,14 +164,6 @@ export default class AdversarySheet extends DHBaseActorSheet {
});
}
_onDropItem(event, item) {
if (this.document.uuid !== item.parent?.uuid) {
return null; // block all drag drop except internal ones
}
return super._onDropItem(event, item);
}
/* -------------------------------------------- */
/* Application Clicks Actions */
/* -------------------------------------------- */

View file

@ -877,21 +877,6 @@ export default class CharacterSheet extends DHBaseActorSheet {
});
}
async _onDragStart(event) {
const item = await getDocFromElement(event.target);
const dragData = {
originActor: this.document.uuid,
originId: item.id,
type: item.documentName,
uuid: item.uuid
};
event.dataTransfer.setData('text/plain', JSON.stringify(dragData));
super._onDragStart(event);
}
async _onDropItem(event, item) {
if (this.document.uuid === item.parent?.uuid) {
return this._onSortItem(event, item);

View file

@ -130,23 +130,16 @@ export default class DhpEnvironment extends DHBaseActorSheet {
/* -------------------------------------------- */
async _onDragStart(event) {
const item = event.currentTarget.closest('.inventory-item');
const item = event.currentTarget.closest('.inventory-item[data-type=adversary]');
if (item) {
const adversaryData = { type: 'Actor', uuid: item.dataset.itemUuid };
event.dataTransfer.setData('text/plain', JSON.stringify(adversaryData));
event.dataTransfer.setDragImage(item, 60, 0);
} else {
return super._onDragStart(event);
}
}
_onDropItem(event, item) {
if (this.document.uuid !== item.parent?.uuid) {
return null; // block all drag drop except internal ones
}
return super._onDropItem(event, item);
}
/* -------------------------------------------- */
/* Application Clicks Actions */
/* -------------------------------------------- */

View file

@ -419,18 +419,6 @@ export default class Party extends DHBaseActorSheet {
}
/* -------------------------------------------- */
async _onDragStart(event) {
const item = await getDocFromElement(event.target);
const dragData = {
originActor: this.document.uuid,
originId: item.id,
type: item.documentName,
uuid: item.uuid
};
event.dataTransfer.setData('text/plain', JSON.stringify(dragData));
super._onDragStart(event);
}
async _onDropActor(event, document) {
const data = foundry.applications.ux.TextEditor.implementation.getDragEventData(event);