fix: correct drop time when dropping onto an existing event

This commit is contained in:
ma0048
2026-07-24 12:37:38 +02:00
parent 9b273fa498
commit 32a7e28c80
2 changed files with 15 additions and 9 deletions
+10 -2
View File
@@ -27,7 +27,8 @@ export default {
provide() {
return {
flipAxis: Vue.computed(() => this.flipAxis),
axisRow: Vue.computed(() => this.axisRow)
axisRow: Vue.computed(() => this.axisRow),
onDropEvent: Vue.computed(() => this.onDropEvent),
};
},
props: {
@@ -376,6 +377,13 @@ export default {
return dropStart.startOf('day').plus(lastBlock.end);
},
onDropEvent(evt, items, date)
{
if (this.snapToGrid)
this.onDropSnap(evt, items, date)
else
this.onDropFree(evt, items, date)
},
onDropSnap(evt, items, date, part) {
let obj = items;
if (!obj?.orig) return;
@@ -390,7 +398,7 @@ export default {
const grabOffset = grabTime.diff(dropDay);
const snappedPart = blocks.find(b => grabOffset >= b.start && grabOffset < b.end) || part;
const dropStart = dropDay.plus(snappedPart.start);
const dropStart = snappedPart ? dropDay.plus(snappedPart.start) : grabTime;
let nettoDuration = this._getNettoDurationForDrop(obj);
let dropEnd = this.calculateDropEnd(dropStart, nettoDuration);
@@ -35,6 +35,10 @@ export default {
onDrop: {
from: "onDrop",
default: () => null
},
onDropEvent: {
from: "onDropEvent",
default: () => () => {}
}
},
props: {
@@ -128,13 +132,7 @@ export default {
});
}
return this.onDrop({
item: [obj],
start: this.event.start.toISO(),
end: this.event.end.toISO(),
ctrlKey: false,
targetKalenderId: null
});
return this.onDropEvent(evt, items, this.event.start.startOf('day'));
},
},
template:`