diff --git a/examples/timeline/other/drag&drop.html b/examples/timeline/other/drag&drop.html
index 81bcb1f1..5810eb9b 100644
--- a/examples/timeline/other/drag&drop.html
+++ b/examples/timeline/other/drag&drop.html
@@ -49,6 +49,10 @@
item 3 - range
+
+ item 3 - range - fixed times -
+ (start: now, end: now + 10 min)
+
@@ -110,12 +114,16 @@
var item = {
id: new Date(),
type: itemType,
- content: event.target.innerHTML.split('-')[0].trim(),
- start: new Date(),
- end: new Date(1000*60*60*24 + (new Date()).valueOf()),
+ content: event.target.innerHTML.split('-')[0].trim()
};
- event.dataTransfer.setData("text/plain", JSON.stringify(item));
+ var isFixedTimes = (event.target.innerHTML.split('-')[2] && event.target.innerHTML.split('-')[2].trim() == 'fixed times')
+ if (isFixedTimes) {
+ item.start = new Date();
+ item.end = new Date(1000*60*10 + (new Date()).valueOf());
+ }
+
+ event.dataTransfer.setData("text", JSON.stringify(item));
}
var items = document.querySelectorAll('.items .item');
diff --git a/lib/timeline/Core.js b/lib/timeline/Core.js
index aa8344da..a5034479 100644
--- a/lib/timeline/Core.js
+++ b/lib/timeline/Core.js
@@ -231,7 +231,7 @@ Core.prototype._create = function (container) {
}
// make sure your target is a vis element
- if (!event.target.className.includes('vis')) return;
+ if (!event.target.className.indexOf("vis") > -1) return;
// make sure only one item is added every time you're over the timeline
if (itemAddedToTimeline) return;
@@ -244,7 +244,7 @@ Core.prototype._create = function (container) {
function handleDrop(event) {
// return when dropping non-vis items
try {
- var itemData = JSON.parse(event.dataTransfer.getData("text/plain"))
+ var itemData = JSON.parse(event.dataTransfer.getData("text"))
if (!itemData.content) return
} catch (err) {
return false;
@@ -252,8 +252,8 @@ Core.prototype._create = function (container) {
itemAddedToTimeline = false;
event.center = {
- x: event.x,
- y: event.y
+ x: event.clientX,
+ y: event.clientY
}
me.itemSet._onAddItem(event);
diff --git a/lib/timeline/component/ItemSet.js b/lib/timeline/component/ItemSet.js
index 5875a46a..b0a71b94 100644
--- a/lib/timeline/component/ItemSet.js
+++ b/lib/timeline/component/ItemSet.js
@@ -1856,12 +1856,12 @@ ItemSet.prototype._onAddItem = function (event) {
newItemData[this.itemsData._fieldId] = itemData.id || util.randomUUID();
if (itemData.type == 'range' || (itemData.end && itemData.start)) {
-
if (!itemData.end) {
var end = this.body.util.toTime(x + this.props.width / 5);
newItemData.end = snap ? snap(end, scale, step) : end;
} else {
- newItemData.end = new Date(newItemData.start._i).getTime() + new Date(itemData.end).getTime() - new Date(itemData.start).getTime();
+ newItemData.end = itemData.end;
+ newItemData.start = itemData.start;
}
}
} else {