<!DOCTYPE HTML>
							 | 
						|
								<html>
							 | 
						|
								<head>
							 | 
						|
								    <title>Timeline | Grid styling</title>
							 | 
						|
								
							 | 
						|
								    <script src="http://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment-with-locales.min.js"></script>
							 | 
						|
								    <script src="../../../dist/vis.js"></script>
							 | 
						|
								    <link href="../../../dist/vis-timeline-graph2d.min.css" rel="stylesheet" type="text/css"/>
							 | 
						|
								
							 | 
						|
								    <style type="text/css">
							 | 
						|
								        body, html {
							 | 
						|
								            font-family: sans-serif;
							 | 
						|
								        }
							 | 
						|
								
							 | 
						|
								        /* alternating column backgrounds */
							 | 
						|
								        .vis-time-axis .vis-grid.vis-odd {
							 | 
						|
								            background: #f5f5f5;
							 | 
						|
								        }
							 | 
						|
								    </style>
							 | 
						|
								
							 | 
						|
								</head>
							 | 
						|
								<body>
							 | 
						|
								
							 | 
						|
								<p>
							 | 
						|
								    Week numbers are calculated based on locales. For this to properly work, the timeline must be loaded with a version
							 | 
						|
								    of moment.js including locales.</p>
							 | 
						|
								<p>To set a locale for the timeline, specify the option
							 | 
						|
								    <code>{locale: STRING}</code>.</p>
							 | 
						|
								<p>
							 | 
						|
								  To set the scale to use week numbers, use the following options:
							 | 
						|
								  <code>
							 | 
						|
								    {
							 | 
						|
								      timeAxis: {
							 | 
						|
								        scale: 'week',
							 | 
						|
								        step: 1
							 | 
						|
								      },
							 | 
						|
								      format: {
							 | 
						|
								        minorLabels: {week: 'w'}
							 | 
						|
								      }
							 | 
						|
								    }
							 | 
						|
								  </code>
							 | 
						|
								</p>
							 | 
						|
								
							 | 
						|
								<p>The following timeline is initialized with the 'de' locale and items are added with locally localized moment.js
							 | 
						|
								    objects. The timeline locale can be switched to another locale at runtime. If you choose the 'en' locale, the week
							 | 
						|
								    numbers will be calculated according to the US week calendar numbering scheme.</p>
							 | 
						|
								
							 | 
						|
								<p>
							 | 
						|
								    <label for="locale">Select a locale:</label>
							 | 
						|
								    <select id="locale">
							 | 
						|
								        <option value="en">en</option>
							 | 
						|
								        <option value="it">it</option>
							 | 
						|
								        <option value="nl">nl</option>
							 | 
						|
								        <option value="de" selected>de</option>
							 | 
						|
								    </select>
							 | 
						|
								</p>
							 | 
						|
								
							 | 
						|
								<div id="visualization"></div>
							 | 
						|
								
							 | 
						|
								<script type="text/javascript">
							 | 
						|
								    var itemCount = 26;
							 | 
						|
								
							 | 
						|
								    // DOM element where the Timeline will be attached
							 | 
						|
								    var container = document.getElementById('visualization');
							 | 
						|
								
							 | 
						|
								    // just a group for the effects
							 | 
						|
								    var groups = new vis.DataSet();
							 | 
						|
								    groups.add([{id: 1, content: "ISO Weeks"}, {id: 2, content: "US Weeks"}]);
							 | 
						|
								
							 | 
						|
								    // Create a DataSet (allows two way data-binding)
							 | 
						|
								    var items = new vis.DataSet();
							 | 
						|
								
							 | 
						|
								    // create a localized moment object based on the current date
							 | 
						|
								    var USdate = moment().locale('en').hours(0).minutes(0).seconds(0).milliseconds(0);
							 | 
						|
								
							 | 
						|
								    // use the locale-aware weekday function to move to the begin of the current week
							 | 
						|
								    USdate.weekday(0);
							 | 
						|
								
							 | 
						|
								    // Iterate and just add a week to use it again in the next iteration
							 | 
						|
								    for (var i = 0; i < itemCount; i++) {
							 | 
						|
								        var USweekNumber = USdate.format('w');
							 | 
						|
								        var USweekStart = USdate.format();
							 | 
						|
								        var USweekEnd = USdate.add(1, 'week').format();
							 | 
						|
								        items.add({
							 | 
						|
								            id: i,
							 | 
						|
								            group: 2,
							 | 
						|
								            content: 'US week ' + USweekNumber,
							 | 
						|
								            start: USweekStart,
							 | 
						|
								            end: USweekEnd
							 | 
						|
								        });
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    // create another localized moment object - the 'de' locale works according to the ISO8601 leap week calendar system
							 | 
						|
								    var DEdate = moment().locale('de').hours(0).minutes(0).seconds(0).milliseconds(0);
							 | 
						|
								    DEdate.weekday(0);
							 | 
						|
								    for (var j = 0; j < itemCount; j++) {
							 | 
						|
								        var DEweekNumber = DEdate.format('w');
							 | 
						|
								        var DEweekStart = DEdate.format();
							 | 
						|
								        var DEweekEnd = DEdate.add(1, 'week').format();
							 | 
						|
								        items.add({
							 | 
						|
								            id: itemCount + j,
							 | 
						|
								            group: 1,
							 | 
						|
								            content: 'ISO week ' + DEweekNumber,
							 | 
						|
								            start: DEweekStart,
							 | 
						|
								            end: DEweekEnd
							 | 
						|
								        });
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    // Configuration for the Timeline
							 | 
						|
								    var options = {
							 | 
						|
								      locale: 'de',
							 | 
						|
								      timeAxis: {
							 | 
						|
								        scale: 'week',
							 | 
						|
								        step: 1
							 | 
						|
								      },
							 | 
						|
								      format: {
							 | 
						|
								        minorLabels: {week: 'w'}
							 | 
						|
								      }
							 | 
						|
								    };
							 | 
						|
								
							 | 
						|
								    // Create a Timeline
							 | 
						|
								    var timeline = new vis.Timeline(container, items, groups, options);
							 | 
						|
								
							 | 
						|
								    // update the locale when changing the select box value
							 | 
						|
								    var select = document.getElementById('locale');
							 | 
						|
								    select.onchange = function () {
							 | 
						|
								        timeline.setOptions({
							 | 
						|
								            locale: this.value
							 | 
						|
								        });
							 | 
						|
								    };
							 | 
						|
								    select.onchange();
							 | 
						|
								</script>
							 | 
						|
								</body>
							 | 
						|
								</html>
							 |