| <!DOCTYPE html> | |
| <html lang="en"> | |
| <head> | |
|     <script>(function (i, s, o, g, r, a, m) { | |
|         i['GoogleAnalyticsObject'] = r; | |
|         i[r] = i[r] || function () { | |
|                     (i[r].q = i[r].q || []).push(arguments) | |
|                 }, i[r].l = 1 * new Date(); | |
|         a = s.createElement(o), m = s.getElementsByTagName(o)[0]; | |
|         a.async = 1; | |
|         a.src = g; | |
|         m.parentNode.insertBefore(a, m) | |
|     })(window, document, 'script', '//www.google-analytics.com/analytics.js', 'ga'); | |
|     ga('create', 'UA-61231638-1', 'auto'); | |
|     ga('send', 'pageview');</script> | |
|     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> | |
|     <meta charset="utf-8"> | |
|     <meta http-equiv="X-UA-Compatible" content="IE=edge"> | |
|     <meta name="viewport" content="width=device-width, initial-scale=1"> | |
|     <meta name="description" content=""> | |
|     <meta name="author" content=""> | |
|     <link rel="icon" HREF="favicon.ico"> | |
|     <title>vis.js - A dynamic, browser based visualization library.</title> | |
| 
 | |
|     <!-- Bootstrap core CSS --> | |
|     <link href="./css/bootstrap.css" rel="stylesheet"> | |
| 
 | |
|     <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries --> | |
|     <!--[if lt IE 9]> | |
|     <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script> | |
|     <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script> | |
|     <![endif]--> | |
| 
 | |
| 
 | |
|     <script src="./js/smooth-scroll.min.js"></script> | |
|     <script language="JavaScript"> | |
|         smoothScroll.init(); | |
|     </script> | |
| 
 | |
|     <style> | |
| 
 | |
|         html { | |
|             height: 100%; | |
|         } | |
| 
 | |
|         body { | |
|             font-family: Lustria, Georgia, Times, "Times New Roman", serif !important; | |
|             height: 100%; | |
|             background: url('./images/crosswordStrong.png') /* Background pattern from subtlepatterns.com */ | |
|         } | |
| 
 | |
|         img.icon { | |
|             position: relative; | |
|             top: -2px; | |
|         } | |
| 
 | |
|         div.navbar-wrapper { | |
|             background-color: #07508E; | |
|             border-bottom: 3px solid #ffffff; | |
|             font-size: 16px; | |
|         } | |
| 
 | |
|         div.center { | |
|             width: 970px; | |
|             margin-left: auto; | |
|             margin-right: auto; | |
|         } | |
| 
 | |
|         div.container.small { | |
|             max-width: 970px; | |
|         } | |
| 
 | |
|         div.blogHeader { | |
|             margin-left: auto; | |
|             margin-right: auto; | |
|             text-align: center; | |
|             width: 910px; | |
|             padding: 0px 30px 0px 30px; | |
|             margin-top: -150px; | |
|             color: #ffffff; | |
|             text-shadow: 1px 1px 3px rgba(0, 0, 0, 1); | |
|             margin-bottom: 60px; | |
|         } | |
| 
 | |
|         div.post { | |
|             margin: 40px 80px 0px 190px; | |
|             padding: 10px 10px 10px 20px;; | |
|             border: 1px solid #eeeeee; | |
|             border-radius: 3px; | |
|         } | |
| 
 | |
|         div.postHeader { | |
|             float: left; | |
|             font-size: 30px; | |
|         } | |
| 
 | |
|         div.postDate { | |
|             margin-top: 19px; | |
|             float: right; | |
|             font-size: 12px; | |
|         } | |
| 
 | |
|         div.postAuthor { | |
|             padding-left: 5px; | |
|             margin-top: 19px; | |
|             margin-right: 20px; | |
|             float: right; | |
|             font-size: 12px; | |
|         } | |
| 
 | |
|         div.postContent { | |
|             font-size: 16px; | |
|             margin-top: 50px; | |
|             padding: 10px 20px 0px 20px; | |
|             text-align: justify; | |
|         } | |
| 
 | |
|         div.full { | |
|             min-height: 100%; | |
|             box-shadow: 0px 2px 10px rgba(0, 0, 0, 0.4); | |
|             padding: 0px; | |
|             background-color: #ffffff; | |
|         } | |
| 
 | |
|         div.postsMenu { | |
|             position: relative; | |
|             left: -15px; | |
|             top: -50px; | |
|             width: 0px; | |
|             height: 0px; | |
|         } | |
| 
 | |
|         div.postsMenuContent { | |
|             padding: 10px; | |
|             background-color: #6787a6; | |
|             width: 180px; | |
|             height: 500px; | |
|             border-radius: 5px; | |
|             box-shadow: 0px 2px 10px rgba(0, 0, 0, 0.4); | |
|             color: #ffffff; | |
|             font-size: 16px; | |
|         } | |
| 
 | |
|         a.post { | |
|             font-size: 12px; | |
|             text-decoration: none; | |
|             color: #ffffff; | |
|             display: block; | |
|             margin: 10px 0px 0px 0px; | |
|         } | |
|     </style> | |
| </head> | |
| <!-- NAVBAR | |
| ================================================== --> | |
| <body> | |
| 
 | |
| <div class="navbar-wrapper"> | |
|     <div class="container"> | |
|         <nav class="navbar navbar-inverse navbar-static-top" role="navigation"> | |
|             <div class="container"> | |
|                 <div class="navbar-header"> | |
|                     <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" | |
|                             aria-expanded="false" aria-controls="navbar"> | |
|                         <span class="sr-only">Toggle navigation</span> | |
|                         <span class="icon-bar"></span> | |
|                         <span class="icon-bar"></span> | |
|                         <span class="icon-bar"></span> | |
|                     </button> | |
|                     <a class="navbar-brand hidden-sm" href="./index.html">vis.js</a> | |
|                 </div> | |
|                 <div id="navbar" class="navbar-collapse collapse"> | |
|                     <ul class="nav navbar-nav"> | |
|                         <li><a href="./index.html#modules">Modules</a></li> | |
|                         <li><a href="./docs/index.html" target="_blank">Documentation <img class="icon" | |
|                                                                                            src="./images/external-link-icons/external-link-icon-white.png"></a> | |
|                         </li> | |
|                         <li class="active"><a href="#">Blog</a></li> | |
|                         <li><a href="./index.html#download_install">Download</a></li> | |
|                         <li><a href="./showcase/index.html">Showcase</a></li> | |
|                         <li><a href="./index.html#contribute">Contribute</a></li> | |
|                         <li><a href="./featureRequests.html">Feature requests</a></li> | |
|                         <li><a href="./index.html#licenses">License</a></li> | |
|                     </ul> | |
|                 </div> | |
|             </div> | |
|         </nav> | |
| 
 | |
|     </div> | |
| </div> | |
| 
 | |
| <a href="https://github.com/almende/vis" class="hidden-xs hidden-sm hidden-md"><img | |
|         style="position: absolute; top: 0; right: 0; border: 0;" | |
|         src="https://camo.githubusercontent.com/38ef81f8aca64bb9a64448d0d70f1308ef5341ab/68747470733a2f2f73332e616d617a6f6e6177732e636f6d2f6769746875622f726962626f6e732f666f726b6d655f72696768745f6461726b626c75655f3132313632312e706e67" | |
|         alt="Fork me on GitHub" | |
|         data-canonical-src="https://s3.amazonaws.com/github/ribbons/forkme_right_darkblue_121621.png"></a> | |
| 
 | |
| <div class="container full small"> | |
|     <div class="center"> | |
|         <img src="./images/wallHeader.png"> | |
|     </div> | |
| 
 | |
|     <div class="blogHeader"> | |
|         <h1>vis.js</h1> | |
| 
 | |
|         <p>A dynamic, browser based visualization library. | |
|             The library consists of the components DataSet, Timeline, Network, Graph2d and Graph3d. This blog is about | |
|             the latest developments, roadmap and releases. | |
|         </p> | |
|     </div> | |
| 
 | |
|     <div class="postsMenu"> | |
|         <div class="postsMenuContent"> | |
|             Posts: | |
|             <a data-scroll class="post" href="#V4Release">- V4, ES6 and what's next</a> | |
|             <a data-scroll class="post" href="#Released version 3.11.0">- Released version 3.11.0</a> | |
|             <a data-scroll class="post" href="#Released version 3.10.0">- Released version 3.10.0</a> | |
|             <a data-scroll class="post" href="#Released version 3.9.0">- Released version 3.9.0</a> | |
|             <a data-scroll class="post" href="#The 2015 roadmap for vis.js">- The 2015 roadmap for vis.js</a> | |
|             <a data-scroll class="post" href="#A look back on vis.js">- A look back on vis.js</a> | |
|             <a data-scroll class="post" href="#New website for vis.js!">- New website for vis.js!</a> | |
|             <a data-scroll class="post" href="#Released version 3.8.0">- Released version 3.8.0</a> | |
|         </div> | |
|     </div> | |
| 
 | |
|     <div class="post"> | |
|         <div class="postHeader" id="V4Release">V4, ES6 and what's next</div> | |
|         <div class="postAuthor">by <a href="https://github.com/alexdm0">Alex</a></div> | |
|         <div class="postDate">22nd of May 2015</div> | |
|         <div class="postContent"> | |
|             <p> | |
|                 It’s been a long time coming but its finally here! We have just released the newest version of vis.js: | |
|                 v4! This is a breaking release (hence the version number change). This means the options and the API | |
|                 have been changed in such a way that it is no longer backwards compatible. | |
|             </p> | |
| 
 | |
|             <p> | |
|                 We know it is annoying to go back to your code and making the required changes, but I guarantee that it | |
|                 is for the best. To help with this migration, we have included an option validator to our new release. | |
|                 This validator is currently applied on the network, timeline and graph2d. It checks if the options you | |
|                 supply are of the right type. If your options do not exist or if the type is wrong, it will give | |
|                 you an understandable message with suggestions of options you may have meant. We think this will make | |
|                 developing for vis a lot easier, as well as the migration from v3 to v4. | |
|             </p> | |
| 
 | |
|             <p> | |
|                 The biggest change in this release is in the network module. We have rewritten the network module in | |
|                 full and the results are cleanly separated ES6 modules. The option structure has been changed to suit | |
|                 this structure. The options have also been grouped, making it easier to document and understand. For example, | |
|                 lets look at the options for fonts. It used to be fontColor, fontFace fontSize, which is now | |
|                 grouped in a font object with {color:’’,face:’’,size:’’}. Also completely new is the clustering | |
|                 mechanism. It used to be mostly automatic and twitchy but this new version gives all the control to the | |
|                 user. This should make the clustering very useful and I’ll be happy to hear of missing features for | |
|                 this! | |
|             </p> | |
| 
 | |
|             <p> | |
|                 We have moved to hammer.js 2 for all of our touch and click events, and a lot of work has gone into | |
|                 updating all the css elements (especially for timeline) to eliminate conflicts with large frameworks | |
|                 that overload <i>everything</i>. | |
|             </p> | |
| 
 | |
|             <p> | |
|                 Over the last year, we have received a lot of issues on our Github page for which we are very thankful. | |
|                 Whether it is a bug report, question or feature request, we handle all of them as quickly as we can, and | |
|                 with these big new rewrites it gives us a new perspective on what is important. We hope the validator | |
|                 will prevent a lot of issues. The new examples have also been designed to more clearly show simple | |
|                 options. We plan to provide links to JSBin for all options, but this is a lot of work (for which we | |
|                 wouldn’t mind some help ;) ). | |
|             </p> | |
| 
 | |
|             <p> | |
|                 So what’s next? Well the next module that really needs a good overhaul is the graph2d. This module is | |
|                 used by us internally quite a lot, and we need to improve the architecture and make it easy to extend it | |
|                 with new graph types. | |
|             </p> | |
| 
 | |
|             <p> | |
|                 We want to unify the code between the timeline and the graph2d even more. The ideal result would be | |
|                 using a graph2d as a group in the timeline, or use the timeline items in a graph2d without nasty hacks. | |
|                 The graph2d should get numeric x axis (so not necessarily only time), logarithmic axis and hopefully the | |
|                 architecture will be flexible enough to allow the x and y axis to be interchanged. The API across the | |
|                 modules will also be further unified, and I think we’ve made a great start with v4! | |
|             </p> | |
| 
 | |
|             <p> | |
|                 From all the modules currently in vis, the graph3d is the oldest and currently the one suffering a lack | |
|                 of attention. If you are an excited user of the graph3d module and want to contribute, we’re open for | |
|                 additions to the vis.js team! The graph3d is feature complete but a webgl implementation could be a | |
|                 great improvement. | |
|             </p> | |
| 
 | |
|             <p> | |
|                 I cannot give a timeframe for the things I have discussed here, and we’re always open for ideas and | |
|                 contributions. If you feel like you want to contribute, let us know :). | |
|             </p> | |
| 
 | |
|             <h3>Changelog:</h3> | |
| 
 | |
|             <h4>General</h4> | |
| 
 | |
|             <ul> | |
|                 <li>Changed the build scripts to include a transpilation of ES6 to ES5 | |
|                     (using <a href="http://babel.org">http://babel.org</a>), so we can use ES6 features in the vis.js | |
|                     code. | |
|                     When creating a custom bundle using browserify, one now needs to add a | |
|                     transform step using <code>babelify</code>, this is described in README.md. | |
|                 </li> | |
|             </ul> | |
| 
 | |
|             <h4>Timeline</h4> | |
| 
 | |
|             <ul> | |
|                 <li>Integrated an option configurator and validator.</li> | |
|                 <li>Implemented option <code>multiselect</code>, which is false by default.</li> | |
|                 <li>Added method <code>setData({groups: groups, items: items})</code>.</li> | |
|                 <li>Fixed range items not being displayed smaller than 10 pixels (twice the | |
|                     padding). In order to have overflowing text, one should now apply css style | |
|                     <code>.vis.timeline .item.range { overflow: visible; }</code> instead of | |
|                     <code>.vis.timeline .item.range .content { overflow: visible; }</code>. | |
|                     See example 18_range_overflow.html. | |
|                 </li> | |
|                 <li>Fixed invalid css names for time axis grid, renamed hours class names from | |
|                     <code>4-8h</code> to <code>h4-h8</code>. | |
|                 </li> | |
|                 <li>Deprecated option <code>showCustomTime</code>. Use method <code>addCustomTime()</code> instead.</li> | |
|                 <li>Deprecated event <code>finishedRedraw</code> as it's redundant.</li> | |
|                 <li>Renamed option <code>animate</code> to <code>animation</code>, and changed it to be either a boolean | |
|                     or an object <code>{duration: number, easingFunction: string}</code>. | |
|                 </li> | |
|                 <li>Fixed #831: items losing selection when their type changed.</li> | |
|             </ul> | |
| 
 | |
|             <h4>Graph2d</h4> | |
| 
 | |
|             <ul> | |
|                 <li>New option structure.</li> | |
|                 <li>Cleaned up docs.</li> | |
|                 <li>Fixed #628: stacking order.</li> | |
|                 <li>Fixed #624: sorting order.</li> | |
|                 <li>Fixed #616: stacking with negative bars.</li> | |
|                 <li>Fixed #728: alignment issues.</li> | |
|                 <li>Fixed #716: Height of graph <code>2px</code> too large when configuring a fixed height.</li> | |
|             </ul> | |
| 
 | |
|             <h4>Network</h4> | |
| 
 | |
|             <p>The network has been completely rewritten. The new modular setup using ES6 classes makes | |
|                 it future proof for maintainability, extendability and clarity. A summary of new features:</p> | |
| 
 | |
|             <ul> | |
|                 <li>New examples, categorized by topic.</li> | |
|                 <li>New docs.</li> | |
|                 <li>New option structure, adhering to the modular setup on the backend.</li> | |
|                 <li>New events for user interaction.</li> | |
|                 <li>New render events for drawing custom elements on the canvas.</li> | |
|                 <li>New physics events for making a loading bar during stabilization.</li> | |
|                 <li>A lot of new methods that make extending easier.</li> | |
|                 <li>Manipulation system now works without the UI neccesarily.</li> | |
|                 <li>Nodes and edges can cast shadows.</li> | |
|                 <li>Configurator system to dynamically change almost all options.</li> | |
|                 <li>Validator has been created for the network's options, warning you about typo's and suggesting | |
|                     alternatives. | |
|                 </li> | |
|                 <li>Diamond shape for nodes.</li> | |
|                 <li>Unified the label code so edges and nodes have the same label settings.</li> | |
|                 <li>InheritColors for edges can be set to both, making a gradient fade between two node colors.</li> | |
|                 <li>Redesigned the clustering system giving full control over it.</li> | |
|                 <li>Random seed can be saved so the network will be the same every time you start it.</li> | |
|                 <li>New physics solver based on ForceAtlas2 as implemented in gephi.]</li> | |
|                 <li>New avoidOverlap option for physics.</li> | |
|                 <li>Many, many bugfixes.</li> | |
|             </ul> | |
| 
 | |
|             <h4>DataSet</h4> | |
| 
 | |
|             <ul> | |
|                 <li>Dropped support for Google visualization DataTable.</li> | |
|                 <li>Dropped support for appending data returned by <code>DataSet.get()</code> to an existing | |
|                     Array or DataTable. | |
|                 </li> | |
|             </ul> | |
| 
 | |
|         </div> | |
|     </div> | |
| 
 | |
|     <div class="post"> | |
|         <div class="postHeader" id="Released version 3.11.0">Released version 3.11.0</div> | |
|         <div class="postAuthor">by <a href="https://github.com/josdejong">Jos</a></div> | |
|         <div class="postDate">6th of March 2015</div> | |
|         <div class="postContent"> | |
|             <p> | |
|                 Today we released vis.js version 3.11.0. The Timeline has gotten quite some attention in this release: | |
|                 For example, the Timeline finally has gotten more event handlers to enable custom behavior in a flexible | |
|                 way. Network is evolving at a steady speed. It's really great to get more and more substantial | |
|                 contributions from the community latest months! Thanks. | |
|             </p> | |
| 
 | |
|             <p>Changelog:</p> | |
| 
 | |
|             <h3>Network</h3> | |
| 
 | |
|             <ul> | |
|                 <li>(added gradient coloring for lines, but set for release in 4.0 due to required refactoring of | |
|                     options). | |
|                 </li> | |
|                 <li>Fixed bug where a network that has frozen physics would resume redrawing after setData, setOptions | |
|                     etc. | |
|                 </li> | |
|                 <li>Added option to bypass default groups. If more groups are specified in the nodes than there are in | |
|                     the groups, loop over supplied groups instead of default. | |
|                 </li> | |
|                 <li>Added two new static smooth curves modes: curveCW and curve CCW.</li> | |
|                 <li>Added request redraw for certain internal processes to reduce number of draw calls (performance | |
|                     improvements!). | |
|                 </li> | |
|                 <li>Added pull request for usage of Icons. Thanks @Dude9177! | |
|                 <li>Allow hierarchical view to be set in setOptions.</li> | |
|                 <li>Fixed manipulation bar for mobile.</li> | |
|                 <li>Fixed #670: Bug when updating data in a DataSet, when Network is connected to the DataSet via a | |
|                     DataView. | |
|                 </li> | |
|                 <li>Fixed #688: Added a css class to be able to distinguish buttons "Edit node" and "Edit edge".</li> | |
|             </ul> | |
| 
 | |
|             <h3>Timeline</h3> | |
| 
 | |
|             <ul> | |
|                 <li>Implemented orientation option `'both'`, displaying a time axis both on top | |
|                     and bottom (#665). | |
|                 </li> | |
|                 <li>Implemented creating new range items by dragging in an empty space with the | |
|                     ctrl key down. | |
|                 </li> | |
|                 <li>Implemented configuration option `order: function` to define a custom ordering | |
|                     for the items (see #538, #234). | |
|                 </li> | |
|                 <li>Implemented events `click`, `doubleClick`, and `contextMenu`.</li> | |
|                 <li>Implemented method `getEventProperties(event)`.</li> | |
|                 <li>Fixed not property initializing with a DataView for groups.</li> | |
|                 <li>Merged add custom timebar functionality, thanks @aytech! | |
|                 <li>Fixed #664: end of item not restored when canceling a move event.</li> | |
|                 <li>Fixed #609: reduce the left/right dragarea when an item range is very small, | |
|                     so you can still move it as a whole. | |
|                 </li> | |
|                 <li>Fixed #676: misalignment of background items when using subgroups and the | |
|                     group label's height is larger than the contents. | |
|                 </li> | |
|             </ul> | |
| 
 | |
|             <h3>Graph2d</h3> | |
| 
 | |
|             <ul> | |
|                 <li>Implemented events `click`, `doubleClick`, and `contextMenu`.</li> | |
|                 <li>Implemented method `getEventProperties(event)`.</li> | |
|             </ul> | |
| 
 | |
|             <h3>DataSet/DataView</h3> | |
| 
 | |
|             <ul> | |
|                 <li>Implemented support for mapping field names. Thanks @spatialillusions.</li> | |
|                 <li>Fixed #670: DataView not passing a data property on update events (see #670) | |
|             </ul> | |
| 
 | |
|         </div> | |
|     </div> | |
| 
 | |
|     <div class="post"> | |
|         <div class="postHeader" id="Released version 3.10.0">Released version 3.10.0</div> | |
|         <div class="postAuthor">by <a href="https://github.com/josdejong">Jos</a></div> | |
|         <div class="postDate">11th of February 2015</div> | |
|         <div class="postContent"> | |
|             <p> | |
|                 Version 3.10.0 has been released. Lots of improvements in Network, and some smaller bug fixes and | |
|                 improvements in Timeline and DataSet. | |
|             </p> | |
| 
 | |
|             <p>Changelog:</p> | |
| 
 | |
|             <h3>Network</h3> | |
| 
 | |
|             <ul class="task-list"> | |
|                 <li>Added option bindToWindow (default true) to choose whether the keyboard binds are global or to the | |
|                     network div. | |
|                 </li> | |
|                 <li>Improved images handling so broken images are shown on all references of images that are broken. | |
|                 </li> | |
|                 <li>Added getConnectedNodes method.</li> | |
|                 <li>Added fontSizeMin, fontSizeMax, fontSizeMaxVisible, scaleFontWithValue, fontDrawThreshold to | |
|                     Nodes. | |
|                 </li> | |
|                 <li>Added fade in of labels (on nodes) near the fontDrawThreshold.</li> | |
|                 <li>Added nodes option to zoomExtent to zoom in on specific set of nodes.</li> | |
|                 <li>Added stabilizationIterationsDone event which fires at the end of the internal stabilization run. | |
|                     Does not imply that the network is stabilized. | |
|                 </li> | |
|                 <li>Added freezeSimulation method.</li> | |
|                 <li>Added clusterByZoom option.</li> | |
|                 <li>Added class name 'network-tooltip' to the tooltip, allowing custom styling.</li> | |
|                 <li>Fixed bug when redrawing was not right on zoomed-out browsers.</li> | |
|                 <li>Added opacity option to edges. Opacity is only used for the unselected state.</li> | |
|                 <li>Fixed bug where selections from removed data elements persisted.</li> | |
|             </ul> | |
| 
 | |
|             <h3>Timeline</h3> | |
|             <ul class="task-list"> | |
|                 <li>`Timeline.redraw()` now also recalculates the size of items.</li> | |
|                 <li>Implemented option `snap: function` to customize snapping to nice date when dragging items.</li> | |
|                 <li>Implemented option `timeAxis: {scale: string, step: number}` to set fixed scale.</li> | |
|                 <li>Fixed width of range items not always being maintained when moving due to snapping to nice dates. | |
|                 </li> | |
|                 <li>Fixed not being able to drag items to an other group on mobile devices.</li> | |
|                 <li>Fixed `setWindow` not working when applying an interval larger than the configured `zoomMax`.</li> | |
|             </ul> | |
| 
 | |
|             <h3>DataSet/DataView</h3> | |
| 
 | |
|             <ul class="task-list"> | |
|                 <li>Added property `length` holding the total number of items to the `DataSet and `DataView`.</li> | |
|                 <li>Added a method `refresh()` to the `DataView`, to update filter results.</li> | |
|                 <li>Fixed a bug in the `DataSet` returning an empty object instead of `null` when no item was found when | |
|                     using both a filter and specifying fields. | |
|                 </li> | |
|             </ul> | |
| 
 | |
|         </div> | |
|     </div> | |
| 
 | |
|     <div class="post"> | |
|         <div class="postHeader" id="Released version 3.9.0">Released version 3.9.0</div> | |
|         <div class="postAuthor">by <a href="https://github.com/AlexDM0">Alex</a></div> | |
|         <div class="postDate">16th of January 2015</div> | |
|         <div class="postContent"> | |
|             <p> | |
|                 We have been very busy fixing a lot of the open Github issues over the last week. We have also received | |
|                 multiple pull requests that could be added quickly! Special thanks to | |
|                 our community members contributing this release: @klmdb, @pavlos256, @T-rav, @brendon1982. | |
|                 Since this is a release with new features, we push the version number up to 3.9.0. Next up: big | |
|                 refactoring and version 4.0.0! | |
|             </p> | |
| 
 | |
|             <p>Changelog:</p> | |
| 
 | |
|             <h3> | |
|                 <a class="anchor" href="#network" aria-hidden="true"><span class="octicon octicon-link"></span></a>Network | |
|             </h3> | |
| 
 | |
|             <ul class="task-list"> | |
|                 <li>Reverted change in image class, fixed bug #552</li> | |
|                 <li>Improved the fontFill offset between different browsers. #365</li> | |
|                 <li>Fixed dashed lines on firefox on Unix systems</li> | |
|                 <li>Altered the Manipulation Mixin to be succesfully destroyed from memory when calling destroy();</li> | |
|                 <li>Improved drawing of arrowheads on smooth curves. #349</li> | |
|                 <li>Caught case where click originated on external DOM element and drag progressed to vis.</li> | |
|                 <li>Added label stroke support to Nodes, Edges & Groups as per-object or global settings. Thank you | |
|                     @klmdb! | |
|                 </li> | |
|                 <li>Reverted patch that made nodes return to 'default' setting if no group was assigned to fix issue | |
|                     #561. | |
|                     The correct way to 'remove' a group from a node is to assign it a different one. | |
|                 </li> | |
|                 <li>Made the node/edge selected by the popup system the same as selected by the click-to-select system. | |
|                     Thank you @pavlos256! | |
|                 </li> | |
|                 <li>Improved edit edge control nodes positions, altered style a little.</li> | |
|                 <li>Fixed issue #564 by resetting state to initial when no callback is performed in the return | |
|                     function. | |
|                 </li> | |
|                 <li>Added condition to Repulsion similar to BarnesHut to ensure nodes do not overlap.</li> | |
|                 <li>Added labelAlignment option to edges. Thanks @T-rav!</li> | |
|                 <li>Close active sessions in dataManipulation when calling setData().</li> | |
|             </ul> | |
| 
 | |
|             <h3> | |
|                 <a class="anchor" href="#timeline" aria-hidden="true"><span class="octicon octicon-link"></span></a>Timeline | |
|             </h3> | |
| 
 | |
|             <ul class="task-list"> | |
|                 <li>Added byUser flag to options of the rangechange and rangechanged event.</li> | |
|             </ul> | |
| 
 | |
| 
 | |
|         </div> | |
|     </div> | |
| 
 | |
|     <div class="post"> | |
|         <div class="postHeader" id="The 2015 roadmap for vis.js">The 2015 roadmap for vis.js</div> | |
|         <div class="postAuthor">by <a href="https://github.com/AlexDM0">Alex</a></div> | |
|         <div class="postDate">9th of January 2015</div> | |
|         <div class="postContent"> | |
|             <p> | |
|                 I initially wanted to do a small recap of vis.js so far but it became larger (and more off topic) than I | |
|                 expected. To understand some of the motivations for our roadmap, <a href="#A look back on vis.js">take a | |
|                 look at the post below this one first</a>. | |
|             </p> | |
| 
 | |
|             <p> | |
|                 So now for our plans for 2015! We have added a lot of features over the last year, and we have to be | |
|                 careful that vis does not die of option-obesity. To mediate this we thought of a few solutions. | |
|                 Firstly, we will make the docs collapsible using a similar system to <a | |
|                     href="https://www.jsoneditoronline.org/" target="_blank">Jos′s great online JSON editor</a>. | |
|                 This is naturally a temporary fix but | |
|                 the docs are one of the most important ways to get information. We think we ourselves may be the most | |
|                 frequent visitor of those pages so it's a good start! | |
|             </p> | |
| 
 | |
|             <p> | |
|                 Secondly, the actual changes, we plan to reorganize some of the option structure. This will | |
|                 unfortunately (but by definition) be a breaking change from our old versions. The new structure will be | |
|                 clearer and more intuitive. The work our current | |
|                 users will have to do to update will be minimal. If you're using the options we reorganize, you'll have | |
|                 to update your options. Breaking releases are always a shame, but we feel it is necessary. | |
|             </p> | |
| 
 | |
|             <p> | |
|                 The third step we want to take is to go over the code of each module and modularize everything much | |
|                 more. This will make the code easier to maintain as we move away from very large .js files, as well as | |
|                 make it easier to expand on. | |
|             </p> | |
| 
 | |
|             <p> | |
|                 Once everything is modularized, we want to change the API to allow users to plug their own parts of vis | |
|                 together. As an example: You start a network module, plug in the type of node module, edge module, | |
|                 physics module and optionally navigation module (etc.) and you're good to go! | |
|                 All of these modules will be individually configured. This means the huge list of options will be | |
|                 segmented into smaller, more manageable parts. Additionally, the docs will become smaller and clearer. | |
|             </p> | |
| 
 | |
|             <p> | |
|                 Of course, we do not want to abandon all our plug-and-play functionality! We will also start to supply | |
|                 more preconfigured constructors (i.e. a vis.BarChart that will give you a preconfigured graph2d module). | |
|                 Apart from these constructors | |
|                 we will continue to publish examples which will include code snippets that you can use in your own | |
|                 project. | |
|             </p> | |
| 
 | |
|             <p> | |
|                 Once this has been completed, we expect there will be more options that accept functions as arguments | |
|                 which gives you more control over vis. Finally, because everything (well, more than now) would be split | |
|                 up into | |
|                 modules, it becomes easier for the community to create additional modules, further improving vis! | |
|             </p> | |
| 
 | |
|             <p> | |
|                 The things I have listed here are the ideas that we have now. This is subject to change. We also cannot | |
|                 provide a timeline for this because we work on vis whenever we have time. No deadlines, no constrains, | |
|                 just when we have time. | |
|             </p> | |
| 
 | |
|             <p> | |
|                 To wrap up, there are a few things I did not mention here but I'd like to add to the post anyway. | |
|             <ul> | |
|                 <li>We want to improve the fusion of graph2d and the timeline, with the ideal that a graph2d can be used | |
|                     like a group in timeline now. | |
|                 </li> | |
|                 <li>Examples will be split in simple option/configuration examples and larger, feature | |
|                     demonstration/exploration examples. | |
|                 </li> | |
|                 <li>Graph2d will be expanded.</li> | |
|                 <li>We will move to hammer.js 2.0.</li> | |
|                 <li>We will add features <a href="./featureRequests.html" target="_blank">from the list</a> when we can | |
|                 </li> | |
|                 <li>We hope to keep up the | |
|                     <communi></communi> | |
|                     cation with our community! | |
|                 </li> | |
|             </ul> | |
|             Let's make 2015 as good as last year! | |
|             </p> | |
|         </div> | |
|     </div> | |
| 
 | |
|     <div class="post"> | |
|         <div class="postHeader" id="A look back on vis.js">A look back on vis.js</div> | |
|         <div class="postAuthor">by <a href="https://github.com/AlexDM0">Alex</a></div> | |
|         <div class="postDate">9th of January 2015</div> | |
|         <div class="postContent"> | |
|             <p> | |
|                 In April 2013, the initial commit was made for vis.js by <a href="https://github.com/josdejong">Jos</a> | |
|                 because the old CHAP LINKS library was becoming too large to expand and maintain. | |
|                 Vis.js was a clean, new start using all the knowledge gathered from the CHAP library with the ideal that | |
|                 the new infrastructure would be more stable, faster and easier to maintain. | |
|             </p> | |
| 
 | |
|             <p> | |
|                 In January 2014, I joined the project and started to expand the Network module, which was called Graph | |
|                 back then. I have been working alongside Jos since then we have poured a lot of hours into vis. | |
|             </p> | |
| 
 | |
|             <p> | |
|                 On the 16th of April 2014, exactly a year after the initial commit, <a | |
|                     href="https://twitter.com/hackernewsbot/status/456231005678874624" target="_blank">a twitterbot with | |
|                 a lot of followers</a> notified | |
|                 the world that we were featured on hackernews! This was the boost we needed to really reach a large | |
|                 community. We saw the amount of visitors and Github stars increase greatly over the months that | |
|                 followed. | |
|             </p> | |
| 
 | |
|             <p> | |
|                 The 14th of October, we have altered the license of vis.js to MIT or APACHE 2.0. This allowed <a | |
|                     href="http://tiddlywiki.com/" target="_blank">Tiddlywiki</a> to add vis.js to their keychain. From | |
|                 what we hear, | |
|                 their developers really enjoy working with vis and we look forward to hearing how their community uses | |
|                 our software! | |
|             </p> | |
| 
 | |
|             <p> | |
|                 Now, we have a great community that helps out in issues, fixes our typos in the docs, notifies us of | |
|                 bugs and sometimes fixes them for us. We have received pull requests with new features and improvements | |
|                 and | |
|                 it has been fantastic! | |
|             </p> | |
| 
 | |
|             <p> | |
|                 This post started out as the roadmap for vis in 2015, but the review was longer than I initially | |
|                 expected thereby deserving its own post. | |
|             </p> | |
| 
 | |
|             <p> | |
|                 Have fun using vis! | |
|             </p> | |
|         </div> | |
|     </div> | |
| 
 | |
|     <div class="post"> | |
|         <div class="postHeader" id="New website for vis.js!">New website for vis.js!</div> | |
|         <div class="postAuthor">by <a href="https://github.com/AlexDM0">Alex</a></div> | |
|         <div class="postDate">9th of January 2015</div> | |
|         <div class="postContent"> | |
|             <p> | |
|                 The old website served us well, but now that we arrived in 2015... it is really time for an upgrade! We | |
|                 hope the new website is more informative, modern and a good promotion for vis.js! | |
|                 It also allows us to keep the community updated through this blog and to <a href="./showcase/index.html" | |
|                                                                                             target="_blank">show off | |
|                 great projects that make use of vis.js in our showcase</a>. | |
|             </p> | |
| 
 | |
|             <p>If you have made something and would like it featured, | |
|                 please make an <a href="https://github.com/almende/vis/issues" target="_blank">issue on Github</a> with | |
|                 your project and how you'd like to be credited.</p> | |
|             </p><p> | |
|             The new website is in beta so if anyone spots a typo or other mistake, please let us know on our <a | |
|                 href="https://www.github.com/almende/vis" target="_blank">Github</a> page. | |
|         </p> | |
| 
 | |
|             <p> | |
|                 There is no forum on this website. We prefer to keep all the communication with the community through | |
|                 Github. We believe this is the best solution so everyone only has to check the Github issues | |
|                 when there is a problem or suggestion. | |
|             </p> | |
| 
 | |
|             <p> | |
|                 A big change introduced with our new website, is the <a href="./featureRequests.html" target="_blank">feature | |
|                 request page</a>. There are a lot of issues on Github that suggest features but we do not | |
|                 always have time to implement these ourselves. On the other hand, there have been issues where people | |
|                 tell us they want to contribute but are now sure where to start. To mediate this (and to make a clear | |
|                 overview | |
|                 for ourselves) we listed everything <a href="./featureRequests.html" target="_blank">here</a>. | |
|             </p> | |
| 
 | |
|             <p>Once a feature is added to <a href="./featureRequests.html" target="_blank">the list</a>, it is not the | |
|                 end of the line. At each new release, we'll look at the list and see which features we may want to pick | |
|                 up for the next one. Discussions on these features | |
|                 can still continue on the referenced Github issues. When we have added a feature to this list, we will | |
|                 close the Github issue that requested it to keep our open issues more of a bug-todo list. The main | |
|                 motivation for this | |
|                 is because we have noticed that old bugs (on pages after 2) would be overlooked from time to time. | |
|             </p> | |
| 
 | |
|             <p> | |
|                 This feature page is an experiment. If it turns out that the community does not like us closing issues | |
|                 with open feature requests or if it does not have the impact we'd like it to have, we'll revert back to | |
|                 the old model. | |
|             </p> | |
| 
 | |
|             <p> | |
|                 We thank you all for using vis! Last year has seen a great increase in our user base and it is a great | |
|                 motivating factor knowing that our work is used by others! | |
|             </p> | |
| 
 | |
|             <p> | |
|                 Here's to a great 2015! | |
|             </p> | |
|         </div> | |
|     </div> | |
| 
 | |
|     <div class="post"> | |
|         <div class="postHeader" id="Released version 3.8.0">Released version 3.8.0</div> | |
|         <div class="postAuthor">by <a href="https://github.com/AlexDM0">Alex</a></div> | |
|         <div class="postDate">9th of January 2015</div> | |
|         <div class="postContent"> | |
|             <p> | |
|                 We're proud to present a new version of the vis.js library: 3.8.0! This release has a lot of new | |
|                 features and bugfixes, nearly all of which were suggested and/or discovered | |
|                 by our community on <a href="https://www.github.com/almende/vis" target="_blank">Github</a>. A lot of | |
|                 the issues on Github have been handled in this release and it is likely to be the | |
|                 last release before 4.0.0. The 4.0.0 release will break compatibility with old code (only options will | |
|                 be revisited on the API side) but more on that in <a href="#The 2015 roadmap for vis.js">the roadmap | |
|                 post</a>. | |
|             </p> | |
| 
 | |
|             <p>Changelog:</p> | |
| 
 | |
|             <h3> | |
|                 <a class="anchor" href="#network" aria-hidden="true"><span class="octicon octicon-link"></span></a>Network | |
|             </h3> | |
| 
 | |
|             <ul class="task-list"> | |
|                 <li>Fixed flipping of hierarchical network on update when using RL and DU.</li> | |
|                 <li>Added zoomExtentOnStabilize option to network.</li> | |
|                 <li>Improved destroy function, added them to the examples.</li> | |
|                 <li>Nodes now have bounding boxes that are used for zoomExtent.</li> | |
|                 <li>Made physics more stable (albeit a little slower).</li> | |
|                 <li>Added a check so only one 'activator' overlay is created on clickToUse.</li> | |
|                 <li>Made global color options for edges overrule the inheritColors.</li> | |
|                 <li>Improved cleaning up of the physics configuration on destroy and in options.</li> | |
|                 <li>Made nodes who lost their group revert back to default color.</li> | |
|                 <li>Changed group behaviour, groups now extend the options, not replace. This allows partial defines of | |
|                     color. | |
|                 </li> | |
|                 <li>Fixed bug where box shaped nodes did not use hover color.</li> | |
|                 <li>Fixed Locales docs.</li> | |
|                 <li>When hovering over a node that does not have a title, the title of one of the connected edges that | |
|                     HAS a title is no longer shown. | |
|                 </li> | |
|                 <li>Fixed error in repulsion physics model.</li> | |
|                 <li>Improved physics handling for smoother network simulation.</li> | |
|                 <li>Fixed infinite loop when an image can not be found and no brokenImage is provided.</li> | |
|                 <li>Added getBoundingBox method.</li> | |
|                 <li>Community fix for SVG images in IE11, thanks @dponch!</li> | |
|                 <li>Fixed repeating stabilized event when the network is already stabilized.</li> | |
|                 <li>Added circularImages, thanks for the contribution @brendon1982!</li> | |
|             </ul> | |
| 
 | |
|             <h3> | |
|                 <a class="anchor" href="#graph2d" aria-hidden="true"><span class="octicon octicon-link"></span></a>Graph2d | |
|             </h3> | |
| 
 | |
|             <ul class="task-list"> | |
|                 <li>Fixed round-off errors of zero on the y-axis.</li> | |
|                 <li>added show major/minor lines options to dataAxis.</li> | |
|                 <li>Fixed adapting to width and height changes.</li> | |
|                 <li>Added a check so only one 'activator' overlay is created on clickToUse.</li> | |
|                 <li>DataAxis width option now draws correctly.</li> | |
|             </ul> | |
| 
 | |
|             <h3> | |
|                 <a class="anchor" href="#timeline" aria-hidden="true"><span class="octicon octicon-link"></span></a>Timeline | |
|             </h3> | |
| 
 | |
|             <ul class="task-list"> | |
|                 <li>Implemented support for styling of the vertical grid.</li> | |
|                 <li>Support for custom date formatting of the labels on the time axis.</li> | |
|                 <li>added show major/minor lines options to timeline.</li> | |
|                 <li>Added a check so only one 'activator' overlay is created on clickToUse.</li> | |
|             </ul> | |
| 
 | |
|             <h3> | |
|                 <a class="anchor" href="#graph3d" aria-hidden="true"><span class="octicon octicon-link"></span></a>Graph3d | |
|             </h3> | |
| 
 | |
|             <ul class="task-list"> | |
|                 <li>Fixed mouse coordinates for tooltips.</li> | |
|             </ul> | |
| 
 | |
|         </div> | |
|     </div> | |
|     <br/> | |
|     <br/> | |
|     <br/> | |
|     <br/> | |
|     <br/> | |
| </div> | |
| 
 | |
| <!-- Bootstrap core JavaScript | |
| ================================================== --> | |
| <!-- Placed at the end of the document so the pages load faster --> | |
| <script src="./js/jquery.min.js"></script> | |
| <script src="./js/bootstrap.min.js"></script> | |
| <!-- IE10 viewport hack for Surface/desktop Windows 8 bug --> | |
| <script src="./js/ie10-viewport-bug-workaround.js"></script> | |
| 
 |