From c92f5dd8b6bc357693b33173ac4869cc86b3623f Mon Sep 17 00:00:00 2001 From: josdejong Date: Mon, 3 Jun 2013 21:33:00 +0200 Subject: [PATCH] Added documentation for the Timeline --- docs/img/graph/graph.png | Bin 0 -> 23400 bytes docs/img/graph/graph120x60.png | Bin 0 -> 4678 bytes docs/img/timeline/timeline.png | Bin 0 -> 23229 bytes docs/img/timeline/timeline120x60.png | Bin 0 -> 6671 bytes docs/timeline.html | 487 +++++++++++++++++++++++++++ 5 files changed, 487 insertions(+) create mode 100644 docs/img/graph/graph.png create mode 100644 docs/img/graph/graph120x60.png create mode 100644 docs/img/timeline/timeline.png create mode 100644 docs/img/timeline/timeline120x60.png create mode 100644 docs/timeline.html diff --git a/docs/img/graph/graph.png b/docs/img/graph/graph.png new file mode 100644 index 0000000000000000000000000000000000000000..3acaa13149a5dfbae14be8737f2664a1925be490 GIT binary patch literal 23400 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 IM6N<$g1{XUg#Z8m literal 0 HcmV?d00001 diff --git a/docs/img/timeline/timeline.png b/docs/img/timeline/timeline.png new file mode 100644 index 0000000000000000000000000000000000000000..d77c304ca9c30e0c093d94e8acaaf46157704027 GIT binary patch literal 23229 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 l(*Keh$p!eA05p-;x0bZCDHZ;` literal 0 HcmV?d00001 diff --git a/docs/img/timeline/timeline120x60.png b/docs/img/timeline/timeline120x60.png new file mode 100644 index 0000000000000000000000000000000000000000..f9d0c6a71096dd36d254740021131aa33f339e30 GIT binary patch literal 6671 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 + + + vis.js | timeline documentation + + + + + + + + +
+ +

Timeline documentation

+ + + + + + + + + + + + + + + +
AuthorJos de Jong, Almende B.V.
Webpagehttp://visjs.org
License Apache License, Version 2.0
+ + +

Contents

+
+ +

Overview

+

+ The Timeline is an interactive visualization chart to visualize data in time. + The data items can take place on a single date, or have a start and end date (a range). + You can freely move and zoom in the timeline by dragging and scrolling in the + Timeline. Items can be created, edited, and deleted in the timeline. + The time scale on the axis is adjusted automatically, and supports scales ranging + from milliseconds to years. +

+ +

Example

+

+ The following code shows how to create a Timeline and provide it with data. + More examples can be found in the examples directory. +

+ +
<!DOCTYPE HTML>
+<html>
+<head>
+    <title>Timeline | Basic demo</title>
+
+    <style type="text/css">
+        body, html {
+            font-family: sans-serif;
+        }
+    </style>
+
+    <script src="../../vis.js"></script>
+</head>
+<body>
+<div id="visualization"></div>
+
+<script type="text/javascript">
+    var container = document.getElementById('visualization');
+    var items = [
+        {id: 1, content: 'item 1', start: '2013-04-20'},
+        {id: 2, content: 'item 2', start: '2013-04-14'},
+        {id: 3, content: 'item 3', start: '2013-04-18'},
+        {id: 4, content: 'item 4', start: '2013-04-16', end: '2013-04-19'},
+        {id: 5, content: 'item 5', start: '2013-04-25'},
+        {id: 6, content: 'item 6', start: '2013-04-27'}
+    ];
+    var options = {};
+    var timeline = new vis.Timeline(container, items, options);
+</script>
+</body>
+</html>
+
+ + +

Loading

+

+ Install or download the vis.js library. + in a subfolder of your project. Include the library script in the head of your html code: +

+ +
+<script type="text/javascript" src="vis/vis.js"></script>
+
+ +The constructor of the Timeline is vis.Timeline +
var timeline = new vis.Timeline(container, items, options);
+ + +The constructor accepts three parameters: +
    +
  • + container is the DOM element in which to create the graph. +
  • +
  • + items is an Array containing items. The properties of an + item are described in section Data Format. +
  • +
  • + options is an optional Object containing a name-value map + with options. Options can also be set using the method + setOptions. +
  • +
+ +

Data Format

+ +

+ The Timeline uses regular Arrays and Objects as data format. + Data items can contain the properties start, + end (optional), content, + group (optional), and className (optional). +

+ +

+ A table is constructed as: +

+ +
+var items = [
+    {
+        start: new Date(2010, 7, 15),
+        end: new Date(2010, 8, 2),  // end is optional
+        content: 'Trajectory A'
+        // Optional: a field 'group'
+        // Optional: a field 'className'
+        // Optional: a field 'editable'
+    }
+    // more items...
+]);
+
+ +

Properties

+ +

+ The item properties are defined as: +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredDescription
startDateyesThe start date of the item, for example new Date(2010,09,23).
endDatenoThe end date of the item. The end date is optional, and can be left null. + If end date is provided, the item is displayed as a range. + If not, the item is displayed as a box.
contentStringyesThe contents of the item. This can be plain text or html code.
groupany typenoThis field is optional. When the group column is provided, + all items with the same group are placed on one line. + A vertical axis is displayed showing the groups. + Grouping items can be useful for example when showing availability of multiple + people, rooms, or other resources next to each other.
+
classNameStringnoThis field is optional. A className can be used to give items + and individual css style. For example, when an item has className + 'red', one can define a css style + + .red { + background-color: red; + border-color: dark-red; + } + . + More details on how to style items can be found in the section + Styles. +
+ + +

Configuration Options

+ +

+ Options can be used to customize the timeline. + Options are defined as a JSON object. All options are optional. +

+ +
+var options = {
+    width: '100%',
+    height: '30px'
+};
+
+ +

+ The following options are available. +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDefaultDescription
alignString"center"Alignment of items with style 'box'. Available values are + 'center' (default), 'left', or 'right').
autoResizebooleanfalseIf true, the Timeline will automatically detect when its + container is resized, and redraw itself accordingly.
endDatenoneThe initial end date for the axis of the timeline. + If not provided, the latest date present in the items set is taken as + end date.
heightStringnoneThe height of the timeline in pixels or as a percentage. + When height is undefined or null, the height of the timeline is automatically + adjusted to fit the contents. + It is possible to set a maximum height using option maxHeight + to prevent the timeline from getting too high in case of automatically + calculated height. +
margin.axisNumber20The minimal margin in pixels between items and the time axis.
margin.itemNumber10The minimal margin in pixels between items.
maxDatenoneSet a maximum Date for the visible range. + It will not be possible to move beyond this maximum. +
maxHeightNumbernoneSpecifies a maximum height for the Timeline in pixels. +
minDatenoneSet a minimum Date for the visible range. + It will not be possible to move beyond this minimum. +
orderfunctionnoneProvide a custom sort function to order the items. The order of the + items is determining the way they are stacked. The function + order is called with two parameters, both of type + `vis.components.items.Item`. +
orientationString'bottom'Orientation of the timeline: 'top' or 'bottom' (default). + If orientation is 'bottom', the time axis is drawn at the bottom, + and if 'top', the axis is drawn on top.
paddingNumber5The padding of items, needed to correctly calculate the size + of item ranges. Must correspond with the css of item ranges.
showMajorLabelsbooleantrueBy default, the timeline shows both minor and major date labels on the + time axis. + For example the minor labels show minutes and the major labels show hours. + When showMajorLabels is false, no major labels + are shown.
showMinorLabelsbooleantrueBy default, the timeline shows both minor and major date labels on the + time axis. + For example the minor labels show minutes and the major labels show hours. + When showMinorLabels is false, no minor labels + are shown. When both showMajorLabels and + showMinorLabels are false, no horizontal axis will be + visible.
startDatenoneThe initial start date for the axis of the timeline. + If not provided, the earliest date present in the events is taken as start date.
styleString'box'Specifies the style for the timeline items. Choose from 'dot' or 'box'. + Note that the content of the items can override this global style, + and can contain additional html formatting. +
widthString'100%'The width of the timeline in pixels or as a percentage.
zoomMaxNumber315360000000000Set a maximum zoom interval for the visible range in milliseconds. + It will not be possible to zoom out further than this maximum. + Default value equals about 10000 years. +
zoomMinNumber10Set a minimum zoom interval for the visible range in milliseconds. + It will not be possible to zoom in further than this minimum. +
+ +

Methods

+

+ The Timeline supports the following methods. +

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
MethodReturn TypeDescription
setGroups(groups)noneSet a data set with groups for the Timeline. + groups can be an Array with Objects, + a DataSet, or a DataView. +
setItems(items)noneSet a data set with items for the Timeline. + items can be an Array with Objects, + a DataSet, or a DataView. +
setOptions(options)noneSet or update options. It is possible to change any option + of the timeline at any time. You can for example switch orientation + on the fly. +
+ + +

Styles

+

+ All parts of the Timeline have a class name and a default css style. + The styles can be overwritten, which enables full customization of the layout + of the Timeline. +

+ +

For example, to change the border and background color of all items, include the + following code inside the head of your html code or in a separate stylesheet.

+
<style>
+    .graph .item {
+      border-color: orange;
+      background-color: yellow;
+    }
+</style>
+
+ + +

Data Policy

+

+ All code and data are processed and rendered in the browser. No data is sent to any server. +

+ +
+ +