<!DOCTYPE HTML> <html> <head> <title>Timeline | Individual editable items</title> <style> body, html { font-family: arial, sans-serif; font-size: 11pt; } div.vis-editable, div.vis-editable.vis-selected { /* custom styling for editable items... */ } div.vis-readonly, div.vis-readonly.vis-selected { /* custom styling for readonly items... */ background-color: #ff4500; border-color: red; color: white; } </style> <script src="../../../dist/vis.js"></script> <link href="../../../dist/vis-timeline-graph2d.min.css" rel="stylesheet" type="text/css" /> </head> <body> <p>Specify individual items to be editable or readonly. Toggle edit options and override behavior from timeline.editable</p> <div id="visualization"></div> <p> <form> Timeline.editable = {</br> <input name="add" type="checkbox" checked>add</input></br> <input name="remove" type="checkbox" checked>remove</input></br> <input name="updateGroup" type="checkbox">updateGroup</input></br> <input name="updateTime" type="checkbox" checked>updateTime</input><br> <input name="overrideItems" type="checkbox">overrideItems</input><br> } </form> </p> <script> // create a DataSet with items var items = new vis.DataSet([ {id: 1, content: 'Editable', editable: true, start: '2010-08-23', group: 1}, {id: 2, content: 'Editable', editable: true, start: '2010-08-23T23:00:00', group: 2}, {id: 3, content: 'Read-only', editable: false, start: '2010-08-24T16:00:00', group: 1}, {id: 4, content: 'Read-only', editable: false, start: '2010-08-26', end: '2010-09-02', group: 2}, {id: 5, content: 'Editable', editable: true, start: '2010-08-28', group: 1}, {id: 6, content: 'Read-only', editable: false, start: '2010-08-29', group: 2}, {id: 7, content: 'Editable', editable: true, start: '2010-08-31', end: '2010-09-03', group: 1}, {id: 8, content: 'Read-only', editable: false, start: '2010-09-04T12:00:00', group: 2}, {id: 9, content: 'Default', start: '2010-09-04', group: 1}, {id: 10, content: 'Default', start: '2010-08-24', group: 2} ]); var groups = [ { id: 1, content: 'group 1' }, { id: 2, content: 'group 2' } ] var container = document.getElementById('visualization'); var options = { editable: { add: true, remove: true, updateGroup: false, updateTime: true, overrideItems: false } // default for all items }; var timeline = new vis.Timeline(container, items, groups, options); var updateEditOptions = function(e){ var changedOption = e.target.name; var options = { editable: { } }; options.editable[changedOption] = e.target.checked; timeline.setOptions(options); }; var cbs = document.getElementsByTagName("input"); [].forEach.call(cbs, function(cb){ cb.onchange = updateEditOptions; }); </script> </body> </html>