From bcbce0a2bcf3b85141bf506acc7b8c8aa39bebac Mon Sep 17 00:00:00 2001 From: yotamberk Date: Thu, 13 Apr 2017 15:46:04 +0300 Subject: [PATCH] Drag and drop custom fields (#2872) * Fix redraw order * Fix error when option is not defined * Allow template labels * Add .travis.yml file * Add experiment travis code * Fix react example * Fix drop event item properties * Fix review comments --- lib/timeline/component/ItemSet.js | 28 ++++++++++------------------ 1 file changed, 10 insertions(+), 18 deletions(-) diff --git a/lib/timeline/component/ItemSet.js b/lib/timeline/component/ItemSet.js index 23798ecf..76f89e4b 100644 --- a/lib/timeline/component/ItemSet.js +++ b/lib/timeline/component/ItemSet.js @@ -2031,25 +2031,17 @@ ItemSet.prototype._onAddItem = function (event) { var scale = this.body.util.getScale(); var step = this.body.util.getStep(); - var newItemData = { - start: snap ? snap(start, scale, step) : start, - content: 'new item' - }; - + var newItemData; if (event.type == 'drop') { - var itemData = JSON.parse(event.dataTransfer.getData("text")) - newItemData.content = itemData.content; // content is required - newItemData.type = itemData.type || 'box'; - 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 = itemData.end; - newItemData.start = itemData.start; - } + newItemData = JSON.parse(event.dataTransfer.getData("text")) + newItemData.content = newItemData.content ? newItemData.content : 'new item' + newItemData.start = newItemData.start ? newItemData.start : (snap ? snap(start, scale, step) : start) + newItemData.type = newItemData.type || 'box'; + newItemData[this.itemsData._fieldId] = newItemData.id || util.randomUUID(); + + if (newItemData.type == 'range' && !newItemData.end) { + var end = this.body.util.toTime(x + this.props.width / 5); + newItemData.end = snap ? snap(end, scale, step) : end; } } else { newItemData[this.itemsData._fieldId] = util.randomUUID();