diff --git a/docs/timeline/index.html b/docs/timeline/index.html
index 5e5c8c85..d3e350df 100644
--- a/docs/timeline/index.html
+++ b/docs/timeline/index.html
@@ -666,6 +666,14 @@ function (option, path) {
and set repeat to weekly.
+
+
+ itemsAlwaysDraggable |
+ boolean |
+ false |
+ If true, all items in the Timeline are draggable without being selected. If false, only the selected item(s) are draggable. |
+
+
locale |
String |
diff --git a/lib/timeline/component/ItemSet.js b/lib/timeline/component/ItemSet.js
index e688bf11..4ec39bfb 100644
--- a/lib/timeline/component/ItemSet.js
+++ b/lib/timeline/component/ItemSet.js
@@ -43,6 +43,7 @@ function ItemSet(body, options) {
selectable: true,
multiselect: false,
+ itemsAlwaysDraggable: false,
editable: {
updateTime: false,
@@ -307,7 +308,7 @@ ItemSet.prototype._create = function(){
ItemSet.prototype.setOptions = function(options) {
if (options) {
// copy all options that we know
- var fields = ['type', 'align', 'order', 'stack', 'selectable', 'multiselect', 'multiselectPerGroup', 'groupOrder', 'dataAttributes', 'template', 'groupTemplate', 'hide', 'snap', 'groupOrderSwap'];
+ var fields = ['type', 'align', 'order', 'stack', 'selectable', 'multiselect', 'itemsAlwaysDraggable', 'multiselectPerGroup', 'groupOrder', 'dataAttributes', 'template', 'groupTemplate', 'hide', 'snap', 'groupOrderSwap'];
util.selectiveExtend(fields, this.options, options);
if ('orientation' in options) {
@@ -1172,7 +1173,7 @@ ItemSet.prototype._onDragStart = function (event) {
var me = this;
var props;
- if (item && item.selected) {
+ if (item && (item.selected || this.options.itemsAlwaysDraggable)) {
if (!this.options.editable.updateTime &&
!this.options.editable.updateGroup &&
@@ -1213,7 +1214,9 @@ ItemSet.prototype._onDragStart = function (event) {
var baseGroupIndex = this._getGroupIndex(item.data.group);
- this.touchParams.itemProps = this.getSelection().map(function (id) {
+ var itemsToDrag = (this.options.itemsAlwaysDraggable && !item.selected) ? [item.id] : this.getSelection();
+
+ this.touchParams.itemProps = itemsToDrag.map(function (id) {
var item = me.items[id];
var groupIndex = me._getGroupIndex(item.data.group);
return {
diff --git a/lib/timeline/optionsTimeline.js b/lib/timeline/optionsTimeline.js
index 05646730..6474914f 100644
--- a/lib/timeline/optionsTimeline.js
+++ b/lib/timeline/optionsTimeline.js
@@ -79,6 +79,7 @@ let allOptions = {
repeat: {string},
__type__: {object, array}
},
+ itemsAlwaysDraggable: { boolean: boolean },
locale:{string},
locales:{
__any__: {any},