| <!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>
 |