Browse files

Code optimization, reordering and improvement. Files are being re-ord…

…ered.
  • Loading branch information...
1 parent 29ac5f4 commit 4977c9ba03e5f5655058d9270acddc0b3dbd2a0d nemesisdesign committed Sep 13, 2011
Showing with 584 additions and 19,582 deletions.
  1. +0 −11 .gitignore
  2. +50 −29 media/css/base.css
  3. +0 −92 media/js/addnode_overlay.js
  4. +5 −5 media/js/compressed/nodeshot.js
  5. +0 −343 media/js/gmap.js
  6. +0 −3 media/js/javascriptrrd-0.5.0/CVS/Entries
  7. +0 −1 media/js/javascriptrrd-0.5.0/CVS/Repository
  8. +0 −1 media/js/javascriptrrd-0.5.0/CVS/Root
  9. +0 −1 media/js/javascriptrrd-0.5.0/CVS/Tag
  10. +0 −1 media/js/javascriptrrd-0.5.0/data/CVS/Entries
  11. +0 −1 media/js/javascriptrrd-0.5.0/data/CVS/Repository
  12. +0 −1 media/js/javascriptrrd-0.5.0/data/CVS/Root
  13. +0 −1 media/js/javascriptrrd-0.5.0/data/CVS/Tag
  14. +0 −8 media/js/javascriptrrd-0.5.0/data/example_rrds/CVS/Entries
  15. +0 −1 media/js/javascriptrrd-0.5.0/data/example_rrds/CVS/Repository
  16. +0 −1 media/js/javascriptrrd-0.5.0/data/example_rrds/CVS/Root
  17. +0 −1 media/js/javascriptrrd-0.5.0/data/example_rrds/CVS/Tag
  18. BIN media/js/javascriptrrd-0.5.0/data/example_rrds/example1.rrd
  19. BIN media/js/javascriptrrd-0.5.0/data/example_rrds/example2.rrd
  20. BIN media/js/javascriptrrd-0.5.0/data/example_rrds/example3.rrd
  21. BIN media/js/javascriptrrd-0.5.0/data/example_rrds/example4.rrd
  22. BIN media/js/javascriptrrd-0.5.0/data/example_rrds/example4_s1.rrd
  23. BIN media/js/javascriptrrd-0.5.0/data/example_rrds/example4_s2.rrd
  24. BIN media/js/javascriptrrd-0.5.0/data/example_rrds/example4_s3.rrd
  25. +0 −5 media/js/javascriptrrd-0.5.0/doc/CVS/Entries
  26. +0 −1 media/js/javascriptrrd-0.5.0/doc/CVS/Repository
  27. +0 −1 media/js/javascriptrrd-0.5.0/doc/CVS/Root
  28. +0 −1 media/js/javascriptrrd-0.5.0/doc/CVS/Tag
  29. +0 −5 media/js/javascriptrrd-0.5.0/doc/DESCRIPTION.txt
  30. +0 −8 media/js/javascriptrrd-0.5.0/doc/INSTALL.txt
  31. +0 −24 media/js/javascriptrrd-0.5.0/doc/LICENSE.txt
  32. +0 −22 media/js/javascriptrrd-0.5.0/doc/README.txt
  33. +0 −8 media/js/javascriptrrd-0.5.0/doc/lib/CVS/Entries
  34. +0 −1 media/js/javascriptrrd-0.5.0/doc/lib/CVS/Repository
  35. +0 −1 media/js/javascriptrrd-0.5.0/doc/lib/CVS/Root
  36. +0 −1 media/js/javascriptrrd-0.5.0/doc/lib/CVS/Tag
  37. +0 −240 media/js/javascriptrrd-0.5.0/doc/lib/binaryXHR_js.html
  38. +0 −56 media/js/javascriptrrd-0.5.0/doc/lib/index.html
  39. +0 −402 media/js/javascriptrrd-0.5.0/doc/lib/rrdFile_js.html
  40. +0 −149 media/js/javascriptrrd-0.5.0/doc/lib/rrdFlotMatrix_js.html
  41. +0 −650 media/js/javascriptrrd-0.5.0/doc/lib/rrdFlotSupport_js.html
  42. +0 −130 media/js/javascriptrrd-0.5.0/doc/lib/rrdFlot_js.html
  43. +0 −77 media/js/javascriptrrd-0.5.0/doc/lib/rrdMultiFile_js.html
  44. +0 −1,024 media/js/javascriptrrd-0.5.0/flot/API.txt
  45. +0 −71 media/js/javascriptrrd-0.5.0/flot/FAQ.txt
  46. +0 −22 media/js/javascriptrrd-0.5.0/flot/LICENSE.txt
  47. +0 −15 media/js/javascriptrrd-0.5.0/flot/Makefile
  48. +0 −340 media/js/javascriptrrd-0.5.0/flot/NEWS.txt
  49. +0 −105 media/js/javascriptrrd-0.5.0/flot/PLUGINS.txt
  50. +0 −81 media/js/javascriptrrd-0.5.0/flot/README.txt
  51. +0 −143 media/js/javascriptrrd-0.5.0/flot/examples/ajax.html
  52. +0 −75 media/js/javascriptrrd-0.5.0/flot/examples/annotating.html
  53. BIN media/js/javascriptrrd-0.5.0/flot/examples/arrow-down.gif
  54. BIN media/js/javascriptrrd-0.5.0/flot/examples/arrow-left.gif
  55. BIN media/js/javascriptrrd-0.5.0/flot/examples/arrow-right.gif
  56. BIN media/js/javascriptrrd-0.5.0/flot/examples/arrow-up.gif
  57. +0 −38 media/js/javascriptrrd-0.5.0/flot/examples/basic.html
  58. +0 −4 media/js/javascriptrrd-0.5.0/flot/examples/data-eu-gdp-growth-1.json
  59. +0 −4 media/js/javascriptrrd-0.5.0/flot/examples/data-eu-gdp-growth-2.json
  60. +0 −4 media/js/javascriptrrd-0.5.0/flot/examples/data-eu-gdp-growth-3.json
  61. +0 −4 media/js/javascriptrrd-0.5.0/flot/examples/data-eu-gdp-growth-4.json
  62. +0 −4 media/js/javascriptrrd-0.5.0/flot/examples/data-eu-gdp-growth-5.json
  63. +0 −4 media/js/javascriptrrd-0.5.0/flot/examples/data-eu-gdp-growth.json
  64. +0 −4 media/js/javascriptrrd-0.5.0/flot/examples/data-japan-gdp-growth.json
  65. +0 −4 media/js/javascriptrrd-0.5.0/flot/examples/data-usa-gdp-growth.json
  66. +0 −39 media/js/javascriptrrd-0.5.0/flot/examples/dual-axis.html
  67. +0 −75 media/js/javascriptrrd-0.5.0/flot/examples/graph-types.html
  68. BIN media/js/javascriptrrd-0.5.0/flot/examples/hs-2004-27-a-large_web.jpg
  69. +0 −45 media/js/javascriptrrd-0.5.0/flot/examples/image.html
  70. +0 −43 media/js/javascriptrrd-0.5.0/flot/examples/index.html
  71. +0 −93 media/js/javascriptrrd-0.5.0/flot/examples/interacting.html
  72. +0 −6 media/js/javascriptrrd-0.5.0/flot/examples/layout.css
  73. +0 −118 media/js/javascriptrrd-0.5.0/flot/examples/navigate.html
  74. +0 −114 media/js/javascriptrrd-0.5.0/flot/examples/selection.html
  75. +0 −65 media/js/javascriptrrd-0.5.0/flot/examples/setting-options.html
  76. +0 −77 media/js/javascriptrrd-0.5.0/flot/examples/stacking.html
  77. +0 −54 media/js/javascriptrrd-0.5.0/flot/examples/thresholding.html
  78. +0 −71 media/js/javascriptrrd-0.5.0/flot/examples/time.html
  79. +0 −95 media/js/javascriptrrd-0.5.0/flot/examples/tracking.html
  80. +0 −98 media/js/javascriptrrd-0.5.0/flot/examples/turning-series.html
  81. +0 −90 media/js/javascriptrrd-0.5.0/flot/examples/visitors.html
  82. +0 −98 media/js/javascriptrrd-0.5.0/flot/examples/zooming.html
  83. +0 −1,427 media/js/javascriptrrd-0.5.0/flot/excanvas.js
  84. +0 −1 media/js/javascriptrrd-0.5.0/flot/excanvas.min.js
  85. +0 −174 media/js/javascriptrrd-0.5.0/flot/jquery.colorhelpers.js
  86. +0 −1 media/js/javascriptrrd-0.5.0/flot/jquery.colorhelpers.min.js
  87. +0 −156 media/js/javascriptrrd-0.5.0/flot/jquery.flot.crosshair.js
  88. +0 −1 media/js/javascriptrrd-0.5.0/flot/jquery.flot.crosshair.min.js
  89. +0 −237 media/js/javascriptrrd-0.5.0/flot/jquery.flot.image.js
  90. +0 −1 media/js/javascriptrrd-0.5.0/flot/jquery.flot.image.min.js
  91. +0 −2,119 media/js/javascriptrrd-0.5.0/flot/jquery.flot.js
  92. +0 −1 media/js/javascriptrrd-0.5.0/flot/jquery.flot.min.js
  93. +0 −272 media/js/javascriptrrd-0.5.0/flot/jquery.flot.navigate.js
  94. +0 −1 media/js/javascriptrrd-0.5.0/flot/jquery.flot.navigate.min.js
  95. +0 −299 media/js/javascriptrrd-0.5.0/flot/jquery.flot.selection.js
  96. +0 −1 media/js/javascriptrrd-0.5.0/flot/jquery.flot.selection.min.js
  97. +0 −152 media/js/javascriptrrd-0.5.0/flot/jquery.flot.stack.js
  98. +0 −1 media/js/javascriptrrd-0.5.0/flot/jquery.flot.stack.min.js
  99. +0 −103 media/js/javascriptrrd-0.5.0/flot/jquery.flot.threshold.js
  100. +0 −1 media/js/javascriptrrd-0.5.0/flot/jquery.flot.threshold.min.js
  101. +0 −4,376 media/js/javascriptrrd-0.5.0/flot/jquery.js
  102. +0 −19 media/js/javascriptrrd-0.5.0/flot/jquery.min.js
  103. +0 −2 media/js/javascriptrrd-0.5.0/src/CVS/Entries
  104. +0 −1 media/js/javascriptrrd-0.5.0/src/CVS/Repository
  105. +0 −1 media/js/javascriptrrd-0.5.0/src/CVS/Root
  106. +0 −1 media/js/javascriptrrd-0.5.0/src/CVS/Tag
  107. +0 −6 media/js/javascriptrrd-0.5.0/src/examples/CVS/Entries
  108. +0 −1 media/js/javascriptrrd-0.5.0/src/examples/CVS/Repository
  109. +0 −1 media/js/javascriptrrd-0.5.0/src/examples/CVS/Root
  110. +0 −1 media/js/javascriptrrd-0.5.0/src/examples/CVS/Tag
  111. +0 −196 media/js/javascriptrrd-0.5.0/src/examples/rrdContent.html
  112. +0 −136 media/js/javascriptrrd-0.5.0/src/examples/rrdHeaderInfo.html
  113. +0 −109 media/js/javascriptrrd-0.5.0/src/examples/rrdJFlot.html
  114. +0 −142 media/js/javascriptrrd-0.5.0/src/examples/rrdJFlotTwo.html
  115. +0 −128 media/js/javascriptrrd-0.5.0/src/examples/rrdMatrixFlot.html
  116. +0 −8 media/js/javascriptrrd-0.5.0/src/lib/CVS/Entries
  117. +0 −1 media/js/javascriptrrd-0.5.0/src/lib/CVS/Repository
  118. +0 −1 media/js/javascriptrrd-0.5.0/src/lib/CVS/Root
  119. +0 −1 media/js/javascriptrrd-0.5.0/src/lib/CVS/Tag
  120. +0 −234 media/js/javascriptrrd-0.5.0/src/lib/binaryXHR.js
  121. +0 −408 media/js/javascriptrrd-0.5.0/src/lib/rrdFile.js
  122. +0 −242 media/js/javascriptrrd-0.5.0/src/lib/rrdFilter.js
  123. +0 −415 media/js/javascriptrrd-0.5.0/src/lib/rrdFlot.js
  124. +0 −487 media/js/javascriptrrd-0.5.0/src/lib/rrdFlotMatrix.js
  125. +0 −398 media/js/javascriptrrd-0.5.0/src/lib/rrdFlotSupport.js
  126. +0 −173 media/js/javascriptrrd-0.5.0/src/lib/rrdMultiFile.js
  127. +0 −169 media/js/jquery-ui-form.js
  128. +113 −406 media/js/jquery-ui.js
  129. +0 −191 media/js/jquery.formset.js
  130. +4 −16 media/js/jquery.js
  131. 0 media/js/{jstree → }/jquery.jstree.js
  132. BIN media/js/jquery.metadata.2.1.zip
  133. +7 −6 media/js/jquery.progressbar.js
  134. +0 −173 media/js/jquery.progressbar/demo.php
  135. +0 −173 media/js/jquery.progressbar/demo.txt
  136. BIN media/js/jquery.progressbar/images/progressbar.gif
  137. BIN media/js/jquery.progressbar/images/progressbg_black.gif
  138. BIN media/js/jquery.progressbar/images/progressbg_green.gif
  139. BIN media/js/jquery.progressbar/images/progressbg_orange.gif
  140. BIN media/js/jquery.progressbar/images/progressbg_red.gif
  141. BIN media/js/jquery.progressbar/images/progressbg_yellow.gif
  142. +0 −19 media/js/jquery.progressbar/js/jquery.js
  143. +0 −188 media/js/jquery.progressbar/js/jquery.progressbar.js
  144. +0 −20 media/js/jquery.progressbar/js/jquery.progressbar.min.js
  145. +0 −184 media/js/jquery.tablesorter.pager.js
  146. +114 −62 media/js/nodeshot.js
  147. +0 −69 media/js/rrd.js
  148. 0 media/js/{jstree → }/themes/apple/bg.jpg
  149. 0 media/js/{jstree → }/themes/apple/d.png
  150. 0 media/js/{jstree/themes/classic → themes/apple}/dot_for_ie.gif
  151. 0 media/js/{jstree → }/themes/apple/style.css
  152. 0 media/js/{jstree/themes/default → themes/apple}/throbber.gif
  153. 0 media/js/{jstree → }/themes/classic/d.png
  154. 0 media/js/{jstree/themes/apple → themes/classic}/dot_for_ie.gif
  155. 0 media/js/{jstree → }/themes/classic/style.css
  156. 0 media/js/{jstree/themes/default-rtl → themes/classic}/throbber.gif
  157. 0 media/js/{jstree → }/themes/default-rtl/d.gif
  158. 0 media/js/{jstree → }/themes/default-rtl/d.png
  159. 0 media/js/{jstree → }/themes/default-rtl/dots.gif
  160. 0 media/js/{jstree → }/themes/default-rtl/style.css
  161. 0 media/js/{jstree/themes/classic → themes/default-rtl}/throbber.gif
  162. 0 media/js/{jstree → }/themes/default/d.gif
  163. 0 media/js/{jstree → }/themes/default/d.png
  164. 0 media/js/{jstree → }/themes/default/style.css
  165. 0 media/js/{jstree/themes/apple → themes/default}/throbber.gif
  166. 0 nodeshot/__init__.py
  167. +8 −6 nodeshot/admin.py
  168. 0 { → nodeshot}/scripts/__init__.py
  169. +1 −0 nodeshot/scripts/appunti_launch.txt
  170. 0 { → nodeshot}/scripts/ninuxstats/create_rrd_image.sh
  171. 0 { → nodeshot}/scripts/ninuxstats/update_all_rrd.sh
  172. 0 { → nodeshot}/scripts/ninuxstats/update_rrd.sh
  173. +1 −1 { → nodeshot}/scripts/read_olsr_topology.py
  174. +12 −10 { → nodeshot}/scripts/snmp.py
  175. 0 { → nodeshot}/scripts/snmp.sh
  176. +65 −0 nodeshot/settings.py
  177. +139 −0 nodeshot/templates/admin/index.html
  178. +32 −34 nodeshot/templates/index.html
  179. +2 −2 nodeshot/templates/overview.html
  180. +3 −0 nodeshot/templates/tab3.html
  181. +3 −0 nodeshot/templates/tab4.html
  182. +2 −0 nodeshot/urls.py
  183. +23 −7 nodeshot/views.py
View
11 .gitignore
@@ -1,11 +0,0 @@
-*.pyc
-__DOC
-nodeshot/migrations
-nodeshot.komodoproject
-.git_sephiroth6/
-monitor.py
-settings.py
-import_wnmap.py
-media/admin
-debug_toolbar
-django.wsgi
View
79 media/css/base.css
@@ -17,6 +17,56 @@ article, aside, figure, footer, header, hgroup, menu, nav, section { display:blo
html, body { height: 100% }
+#nodeshot-mask{
+ position:fixed;
+ top:0;
+ left:0;
+ width:100%;
+ height:100%;
+ background:#000;
+ z-index:10;
+ display:none
+}
+
+#nodeshot-modal{
+ position: absolute;
+ padding: 15px 25px;
+ top:30%;
+ left:30%;
+ width:400px;
+ background:#000;
+ color:#fff;
+ font:normal 13px/25px Arial, sans-serif;
+ border:1px solid #fff;
+ border-radius:3px;
+ -moz-border-radius:3px;
+ z-index:20;
+ display:none
+}
+#nodeshot-ajaxloader{ position: absolute; top: -9999px; z-index: 100 }
+#nodeshot-overlay{ position:absolute;top:0;left:0;width:100%;height:100%;z-index:11 }
+
+#nodeshot-mask.initial{
+ display: block;
+ position: absolute;
+ background: rgba(0,0,0,0.7);
+ z-index:998;
+}
+#loading{
+ position: absolute;
+ top:0;
+ left:0;
+ width:100%;
+ height:100%;
+ background: transparent url(../images/ajax-loader.gif) no-repeat scroll center center;
+ z-index:999;
+ text-align: center;
+}
+#nodeshot-mask noscript{
+ color: red;
+ font-weight: bold;
+}
+
#container{
margin: 0 auto;
height: 100%;
@@ -407,35 +457,6 @@ h3 {
.field-wrapper big{ font-weight: bold }
.field-wrapper{ margin: 0 0 5px !important }
-#nodeshot-modal-mask{
- position:fixed;
- top:0;
- left:0;
- width:100%;
- height:100%;
- background:#000;
- z-index:10;
- display:none
-}
-
-#nodeshot-modal{
- position: absolute;
- padding: 15px 25px;
- top:30%;
- left:30%;
- width:400px;
- background:#000;
- color:#fff;
- font:normal 13px/25px Arial, sans-serif;
- border:1px solid #fff;
- border-radius:3px;
- -moz-border-radius:3px;
- z-index:20;
- display:none
-}
-#nodeshot-ajaxloader{ position: absolute; top: -9999px; z-index: 100 }
-#nodeshot-overlay{ position:absolute;top:0;left:0;width:100%;height:100%;z-index:11 }
-
#other-controls input{ position:relative; bottom:-1px; margin-right:5px }
#other-controls label, #other-controls a{ cursor: pointer }
#aside ul{ list-style: outside none }
View
92 media/js/addnode_overlay.js
@@ -1,92 +0,0 @@
-/* All the stuff related to the creation of a new node */
-
-
-$(function() {
- var name = $( "#name" ),
- email = $( "#email" ),
- password = $( "#password" ),
- allFields = $( [] ).add( name ).add( email ).add( password ),
- tips = $( ".validateTips" );
-
- $('#add-node-dialog-form #numberofradio').change(function() {
- $('#radio-configuration').empty();
- for(var i=1; i<=parseInt( $('select#numberofradio').val() ) ; i++) {
- $('#radio-configuration').append('<label for="owner">' + i + ') Configurazione del nodo</label><label for="owner" class="form-tips">Nella forma (IPv4,IPv6,MAC_ADDRESS,WIRELESS_MODE,[SSID]), ad esempio (172.16.177.1,,03:08:FA:99:00:02,ap,ninux.org)</label>'+
- '<input type="text" owner="owner" id="owner" class="text ui-widget-content ui-corner-all" />'
- );
- }
- } );
-
- function updateTips( t ) {
- tips
- .text( t )
- .addClass( "ui-state-highlight" );
- setTimeout(function() {
- tips.removeClass( "ui-state-highlight", 1500 );
- }, 500 );
- }
-
- function checkLength( o, n, min, max ) {
- if ( o.val().length > max || o.val().length < min ) {
- o.addClass( "ui-state-error" );
- updateTips( "Length of " + n + " must be between " +
- min + " and " + max + "." );
- return false;
- } else {
- return true;
- }
- }
-
- function checkRegexp( o, regexp, n ) {
- if ( !( regexp.test( o.val() ) ) ) {
- o.addClass( "ui-state-error" );
- updateTips( n );
- return false;
- } else {
- return true;
- }
- }
-
- $( "#add-node-dialog-form" ).dialog({
- autoOpen: false,
- height: 600,
- width: 450,
- modal: true,
- buttons: {
- "Aggiungi Nodo": function() {
- var bValid = true;
- allFields.removeClass( "ui-state-error" );
-
- bValid = bValid && checkLength( name, "username", 3, 16 );
- bValid = bValid && checkLength( email, "email", 6, 80 );
- bValid = bValid && checkLength( password, "password", 5, 16 );
-
- bValid = bValid && checkRegexp( name, /^[a-z]([0-9a-z_])+$/i, "Username may consist of a-z, 0-9, underscores, begin with a letter." );
- // From jquery.validate.js (by joern), contributed by Scott Gonzalez: http://projects.scottsplayground.com/email_address_validation/
- bValid = bValid && checkRegexp( email, /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i, "eg. ui@jquery.com" );
- bValid = bValid && checkRegexp( password, /^([0-9a-zA-Z])+$/, "Password field only allow : a-z 0-9" );
-
- if ( bValid ) {
- $( "#users tbody" ).append( "<tr>" +
- "<td>" + name.val() + "</td>" +
- "<td>" + email.val() + "</td>" +
- "<td>" + password.val() + "</td>" +
- "</tr>" );
- $( this ).dialog( "close" );
- }
- },
- "Annulla": function() {
- $( this ).dialog( "close" );
- }
- },
- close: function() {
- allFields.val( "" ).removeClass( "ui-state-error" );
- }
- });
-
-
-});
-
-function insertNodeInfo(){
- $( "#add-node-dialog-form" ).dialog( "open" );
-}
View
10 media/js/compressed/nodeshot.js
@@ -14,17 +14,17 @@ if(c=="map")nodeshot.gmap.goToNode(nodeshot.nodes[nodeshot.status_choices[b.item
"click",function(a){nodeshot.gmap.newNodeMarker(a.latLng)})})},initChoices:function(){this.$choices.buttonset();document.getElementById("radio1").checked=!0;document.getElementById("radio2").checked=!1;document.getElementById("radio3").checked=!1;document.getElementById("radio4").checked=!1;this.$choices.buttonset("refresh");this.$choices.find("input").change(function(){var a=this.value;a=="map"?(nodeshot.layout.$infoTable&&nodeshot.infoTab.unload(),nodeshot.overlay.addMask(0.7),nodeshot.overlay.showLoading(),
nodeshot.layout.$content.html('<div id="map_canvas"></div><div id="side-links"></div>'),nodeshot.gmap.init(),nodeshot.remember()):a=="info"?(nodeshot.gmap.unload(),nodeshot.overlay.addMask(0.7),nodeshot.overlay.showLoading(),nodeshot.layout.$content.load(nodeshot.url.index+"info_tab",function(){nodeshot.infoTab.init();nodeshot.layout.setFullScreen();nodeshot.overlay.removeMask();nodeshot.overlay.hideLoading()})):a=="olsr"?nodeshot.layout.$content.html("<img src='http://tuscolomesh.ninux.org/images/topology.png' width='100%' height='700px' />"):
a=="vpn"&&nodeshot.layout.$content.html("<img src='http://zioproto.ninux.org/download/file.png' width='100%' height='700px' />")})},initLinkQuality:function(){nodeshot.layout.$linkQuality.find("input").change(function(){$.cookie("nodeshot_link_quality",this.id,{expires:365,path:nodeshot.url.index});nodeshot.gmap.removeMarkers("active");nodeshot.gmap.drawNodes("active")})},initPotential:function(){nodeshot.layout.$potential.change(function(){this.checked?($.cookie("nodeshot_potential_nodes","true",
-{expires:365,path:nodeshot.url.index}),nodeshot.gmap.drawNodes(nodeshot.status_choices.p)):($.cookie("nodeshot_potential_nodes","false",{expires:365,path:nodeshot.url.index}),nodeshot.gmap.removeMarkers(nodeshot.status_choices.p))})},initNodeTree:function(){this.$nodeTree.jstree({json_data:{ajax:{url:nodeshot.url.index+"node_list.json",data:function(a){return{id:a.attr?a.attr("id"):0}}}},themes:{theme:"classic"},plugins:["themes","json_data"]})}},overlay:{addMask:function(a,b){if(document.getElementById("nodeshot-modal-mask")!=
-null)return!1;a||(a=0.5);$("body").append('<div id="nodeshot-modal-mask"></div>');var c=$("#nodeshot-modal-mask");c.css({opacity:0,display:"block"}).animate({opacity:a},500);b&&c.click(function(){nodeshot.overlay.removeMask();nodeshot.layout.$dialog&&nodeshot.dialog.close()})},removeMask:function(){var a=$("#nodeshot-modal-mask");if(a.length<1)return!1;a.fadeOut(500,function(){a.remove()})},appendLoading:function(){$("body").append('<img src="'+nodeshot.url.media+'images/ajax-loader.gif" alt="" id="nodeshot-ajaxloader" />');
+{expires:365,path:nodeshot.url.index}),nodeshot.gmap.drawNodes(nodeshot.status_choices.p)):($.cookie("nodeshot_potential_nodes","false",{expires:365,path:nodeshot.url.index}),nodeshot.gmap.removeMarkers(nodeshot.status_choices.p))})},initNodeTree:function(){this.$nodeTree.jstree({json_data:{ajax:{url:nodeshot.url.index+"node_list.json",data:function(a){return{id:a.attr?a.attr("id"):0}}}},themes:{theme:"classic"},plugins:["themes","json_data"]})}},overlay:{addMask:function(a,b){if(document.getElementById("nodeshot-mask")!=
+null)return!1;a||(a=0.5);$("body").append('<div id="nodeshot-mask"></div>');var c=$("#nodeshot-mask");c.css({opacity:0,display:"block"}).animate({opacity:a},500);b&&c.click(function(){nodeshot.overlay.removeMask();nodeshot.layout.$dialog&&nodeshot.dialog.close()})},removeMask:function(){var a=$("#nodeshot-mask");if(a.length<1)return!1;a.fadeOut(500,function(){a.remove()})},appendLoading:function(){$("body").append('<img src="'+nodeshot.url.media+'images/ajax-loader.gif" alt="" id="nodeshot-ajaxloader" />');
nodeshot.layout.$loading=$("#nodeshot-ajaxloader")},showLoading:function(){nodeshot.layout.$loading.css({left:nodeshot.layout.horizontalCenter(nodeshot.layout.$loading),top:nodeshot.layout.verticalCenter(nodeshot.layout.$loading)})},hideLoading:function(){nodeshot.layout.$loading.css("top","-9999px")},open:function(a,b){this.hideLoading();nodeshot.layout.$overlay&&nodeshot.layout.$overlay.remove();nodeshot.layout.$body.append('<div id="nodeshot-overlay"></div>');nodeshot.layout.$overlay=$("#nodeshot-overlay");
nodeshot.layout.$overlay.html(a);nodeshot.layout.$overlayInner=$("#nodeshot-overlay-inner");this.initClose();this.centerVertically();nodeshot.layout.setFullScreen();b&&(nodeshot.layout.$overlay.click(function(){nodeshot.overlay.close()}),nodeshot.layout.$overlayInner.click(function(){return!1}))},initClose:function(){nodeshot.layout.$overlayInner.prepend('<a class="close"></a>');nodeshot.layout.$overlayInner.find(".close").click(function(){nodeshot.overlay.close()})},centerVertically:function(a,b){var c=
nodeshot.layout.verticalCenter(nodeshot.layout.$overlayInner);c<0&&(c=10);a?nodeshot.layout.$overlayInner.animate({"margin-top":c},b):nodeshot.layout.$overlayInner.css("margin-top",c)},bindCancelButton:function(){$("#cancel").click(function(){nodeshot.overlay.close()})},bindSubmitForm:function(a){$("#nodeshot-form").submit(function(b){form=$(this);b.preventDefault();if(!nodeshot.sending)a(form),nodeshot.sending=!0})},close:function(){nodeshot.overlay.removeMask();nodeshot.layout.$overlay.remove();
nodeshot.layout.$overlay=!1;nodeshot.layout.$overlayInner=!1;nodeshot.layout.setFullScreen();if(nodeshot.gmap.clickListener)google.maps.event.removeListener(nodeshot.gmap.clickListener),nodeshot.gmap.clickListener=null;nodeshot.gmap.addressMarker&&nodeshot.gmap.removeAddressMarker()}},dialog:{open:function(a,b){$("body").append('<div id="nodeshot-modal"><div id="nodeshot-modal-message">'+a+'</div><a class="button green" id="nodeshot-modal-close">ok</a></div>');nodeshot.layout.$dialog=$("#nodeshot-modal");
nodeshot.overlay.addMask(0.5,!0);nodeshot.layout.$dialog.css({opacity:0,display:"block",left:nodeshot.layout.horizontalCenter(nodeshot.layout.$dialog),top:nodeshot.layout.verticalCenter(nodeshot.layout.$dialog)}).animate({opacity:1},500);nodeshot.layout.$body.bind("keyup",function(a){a=a.keyCode?a.keyCode:a.which;if(a==13||a==27)nodeshot.dialog.close(b),nodeshot.layout.$body.unbind("keyup")});$("#nodeshot-modal-close").click(function(){nodeshot.dialog.close(b)})},close:function(a){nodeshot.layout.$dialog.fadeOut(500,
-function(){nodeshot.layout.$dialog.remove();nodeshot.layout.$dialog=!1});nodeshot.overlay.removeMask();a&&a()}},contact:{init:function(a){nodeshot.overlay.addMask(0.7);nodeshot.overlay.showLoading();$.get(a,function(b){nodeshot.overlay.hideLoading();nodeshot.overlay.open(b);nodeshot.overlay.bindCancelButton();nodeshot.overlay.bindSubmitForm(function(b){nodeshot.contact.submit(a,b)})})},submit:function(a,b){nodeshot.overlay.showLoading();$("#nodeshot-modal-mask").css({zIndex:11,opacity:0.7});nodeshot.layout.$overlay.css("z-index",
-"10");var c=b.serialize();$.post(a,c,function(b){nodeshot.overlay.hideLoading();$(b).find("#success").length<1?($("#nodeshot-modal-mask").css({zIndex:10,opacity:0.5}),nodeshot.layout.$overlay.css("z-index","11"),nodeshot.layout.$overlay.html(b),nodeshot.layout.$overlay=$("#nodeshot-overlay"),nodeshot.layout.$overlayInner=$("#nodeshot-overlay-inner"),nodeshot.overlay.centerVertically(),nodeshot.overlay.initClose(),nodeshot.overlay.bindCancelButton(),nodeshot.overlay.bindSubmitForm(function(b){nodeshot.contact.submit(a,
+function(){nodeshot.layout.$dialog.remove();nodeshot.layout.$dialog=!1});nodeshot.overlay.removeMask();a&&a()}},contact:{init:function(a){nodeshot.overlay.addMask(0.7);nodeshot.overlay.showLoading();$.get(a,function(b){nodeshot.overlay.hideLoading();nodeshot.overlay.open(b);nodeshot.overlay.bindCancelButton();nodeshot.overlay.bindSubmitForm(function(b){nodeshot.contact.submit(a,b)})})},submit:function(a,b){nodeshot.overlay.showLoading();$("#nodeshot-mask").css({zIndex:11,opacity:0.7});nodeshot.layout.$overlay.css("z-index",
+"10");var c=b.serialize();$.post(a,c,function(b){nodeshot.overlay.hideLoading();$(b).find("#success").length<1?($("#nodeshot-mask").css({zIndex:10,opacity:0.5}),nodeshot.layout.$overlay.css("z-index","11"),nodeshot.layout.$overlay.html(b),nodeshot.layout.$overlay=$("#nodeshot-overlay"),nodeshot.layout.$overlayInner=$("#nodeshot-overlay-inner"),nodeshot.overlay.centerVertically(),nodeshot.overlay.initClose(),nodeshot.overlay.bindCancelButton(),nodeshot.overlay.bindSubmitForm(function(b){nodeshot.contact.submit(a,
b)})):$("#nodeshot-overlay-inner").fadeOut(500,function(){nodeshot.dialog.open("Messaggio inviato con successo.",nodeshot.overlay.close)});nodeshot.sending=!1});return!1},link:function(){$("#contact-link").click(function(a){a.preventDefault();nodeshot.contact.init(this.href)})}},node:{add:function(){nodeshot.overlay.addMask();nodeshot.overlay.showLoading();$.get(nodeshot.url.index+"node/add/",function(a){nodeshot.overlay.open(a);nodeshot.gmap.newMarker&&($("#id_lat").val(nodeshot.gmap.newMarker.getPosition().lat()),
-$("#id_lng").val(nodeshot.gmap.newMarker.getPosition().lng()),nodeshot.gmap.removeNewMarker());nodeshot.overlay.bindCancelButton();nodeshot.overlay.bindSubmitForm(function(a){nodeshot.node.submit(a)})})},submit:function(a){nodeshot.overlay.showLoading();$("#nodeshot-modal-mask").css({zIndex:11,opacity:0.7});nodeshot.layout.$overlay.css("z-index","10");a=a.serialize();$.post(nodeshot.url.index+"node/add/",a,function(a){nodeshot.overlay.hideLoading();a.length>=10?($("#nodeshot-modal-mask").css({zIndex:10,
+$("#id_lng").val(nodeshot.gmap.newMarker.getPosition().lng()),nodeshot.gmap.removeNewMarker());nodeshot.overlay.bindCancelButton();nodeshot.overlay.bindSubmitForm(function(a){nodeshot.node.submit(a)})})},submit:function(a){nodeshot.overlay.showLoading();$("#nodeshot-mask").css({zIndex:11,opacity:0.7});nodeshot.layout.$overlay.css("z-index","10");a=a.serialize();$.post(nodeshot.url.index+"node/add/",a,function(a){nodeshot.overlay.hideLoading();a.length>=10?($("#nodeshot-mask").css({zIndex:10,
opacity:0.5}),nodeshot.layout.$overlay.css("z-index","11"),nodeshot.layout.$overlay.html(a),nodeshot.layout.$overlay=$("#nodeshot-overlay"),nodeshot.layout.$overlayInner=$("#nodeshot-overlay-inner"),nodeshot.overlay.centerVertically(),nodeshot.overlay.initClose(),nodeshot.overlay.bindCancelButton(),nodeshot.overlay.bindSubmitForm(function(a){nodeshot.node.submit(a)})):nodeshot.layout.$overlayInner.fadeOut(500,function(){nodeshot.dialog.open("Grazie per aver inserito un nuovo nodo potenziale, ti abbiamo inviato un'email con il link di conferma.",
nodeshot.overlay.close)});nodeshot.layout.setFullScreen();nodeshot.sending=!1})},bindChangePassword:function(){$("#change-password").click(function(){var a=$(this),b=$("#id_new_password");a.data("info")==void 0||a.data("info").status==0?(a.data("info",{text:a.text(),status:1}),a.text("annulla"),$("#id_new_password2").val(""),$("#id_fake_password").hide(),b.val("").show(500),$("#verify-password").show(500)):(a.text(a.data("info").text),$("#id_new_password2").val(""),$("#id_fake_password").show(500),
b.val("").hide(),$("#verify-password").hide(),a.data("info").status=0)});$("#non-field-errors").length>0&&$("#change-password").click()}},advanced:{init:function(){nodeshot.advanced.firstTimeLoadingTab=!0;$("#advanced-info").tabs({fx:{opacity:"toggle",height:"toggle",duration:400},show:function(){nodeshot.advanced.firstTimeLoadingTab?(nodeshot.overlay.centerVertically(),nodeshot.advanced.firstTimeLoadingTab=!1):nodeshot.overlay.centerVertically(!0,400)}});$(".toggle-info","#advanced-info").toggle(function(){var a=
View
343 media/js/gmap.js
@@ -1,343 +0,0 @@
-
-//var map;
-//var nodeshot.gmap.geocoder;
-//var markersArray = {
-// 'active' : [],
-// 'potential': [],
-// 'activeListeners': [],
-// 'potentialListeners': [],
-// 'hotspot': [],
-// 'hotspotListeners': [],
-// 'links': []
-//};
-//var nodeshot.gmap.newMarker;
-//var nodeshot.gmap.newMarkerListener;
-//var clickListener;
-//var infoWindow = new google.maps.InfoWindow;
-
-
-//function draw_nodes(status) {
-// // shortcut to the object we need
-// var data = nodeshot.nodes[status];
-// // marker icon depends on the status (green = active, blue = hotspot, orange = potential)
-// var image = nodeshot.url.media+'images/marker_'+status+'.png';
-//
-// for(var node in data) {
-// // save marker in current node object
-// var latlng = new google.maps.LatLng(data[node].lat, data[node].lng);
-// data[node].marker = new google.maps.Marker({
-// position: latlng,
-// map: nodeshot.gmap.map,
-// title: data[node].name,
-// icon: image
-// });
-// data[node].marker.slug = data[node].slug;
-// // show marker on gmap
-// data[node].marker.setMap(nodeshot.gmap.map);
-// // add event listener
-// data[node].listener = google.maps.event.addListener(data[node].marker, 'click', clickMarker(data[node].marker, data[node]));
-// }
-// // draw links if status is active
-// if (status == status_choices.a) {
-// // cache length for upcount while loop
-// var len = nodes.links.length;
-// var ilen = len;
-// // determine which link quality calculation method we should use
-// var quality = nodeshot.layout.$linkQuality.find('input:checked').val();
-// // this is performant on modern browsers
-// while(--len){
-// // shortcut to link
-// var link = nodes.links[ilen-len];
-// // draw link from ... to ...
-// /*
-// writing
-// quality = 'dbm';
-// link[quality]
-// is the same as writing
-// link.dbm
-// */
-// draw_link(link.from_lat, link.from_lng, link.to_lat, link.to_lng, link[quality]);
-// }
-// }
-//}
-
-//function remove_markers(status) {
-// // loop over nodes with the specified status and remove them from gmap
-// for(var node in nodeshot.nodes[status]){
-// // remove from gmap
-// nodeshot.nodes[status][node].marker.setMap(null);
-// // remove listener
-// google.maps.event.removeListener(nodeshot.nodes[status][node].listener);
-// }
-//}
-
-//function getNodeState(nodeSlug) {
-// // repeat action for each possible status
-// for(var status in status_choices){
-// // loop over nodes with that status
-// for (var i = 0; i < nodes[status].length; i++){
-// // if node is found
-// if (nodes[status][i].slug == nodeSlug){
-// // return status
-// return status_choices[status];
-// }
-// }
-// }
-// //for (var i = 0; i < nodes.active.length; i++){
-// // if (nodes.active[i].slug == nodeSlug){
-// // return 'a';
-// // }
-// //}
-// //for (var i = 0; i < nodes.hotspot.length; i++){
-// // if (nodes.hotspot[i].slug == nodeSlug){
-// // return 'h';
-// // }
-// //}
-// //for (var i = 0; i < nodes.potential.length; i++){
-// // if (nodes.potential[i].slug == nodeSlug){
-// // return 'p';
-// // }
-// //}
-// return 'n';
-//}
-
-
-
-
-//function findMarker(node) {
-// // if destination is a potential node and $potential is unchecked show potential nodes
-// nodeshot.gmap.check$potential(nodeshot.status_choices[node.status]);
-// // return google.maps.Marker object
-// return node.marker;
-//}
-//
-//function mapGoTo(node) {
-// // get google.maps.Marker object
-// var marker = findMarker(node);
-// if (marker) {
-// // trigger click event
-// google.maps.event.trigger(marker, 'click');
-// // center gmap
-// nodeshot.gmap.map.panTo(marker.getPosition());
-// // zoom a little bit
-// nodeshot.gmap.map.setZoom(13);
-// } else {
-// // node not found
-// nodeshot.dialog.open('Il nodo non esiste.');
-// }
-//}
-//
-///* remove the new marker (if exists) */
-//function removeNewMarker(){
-// if (nodeshot.gmap.newMarker){
-// nodeshot.gmap.newMarker.setMap(null);
-// }
-// if (nodeshot.gmap.newMarkerListener){
-// google.maps.event.removeListener(nodeshot.gmap.newMarkerListener);
-// }
-// nodeshot.gmap.newMarker = null;
-// nodeshot.gmap.newMarkerListener = null;
-//}
-//
-//function newNodeMarker(location) {
-// removeNewMarker();
-// var marker = new google.maps.Marker({
-// position: location,
-// map: nodeshot.gmap.map,
-// icon: nodeshot.url.media+'images/marker_new.png'
-// });
-// var contentString = '<div id="confirm-new"><h2>Mi hai posizionato bene?</h2>'+
-// '<a href="javascript:nodeshot.node.add()" class="green">Si</a>'+
-// '<a href="javascript:removeNewMarker()" class="red">No</a></div>'
-//
-// nodeshot.gmap.infoWindow = new google.maps.InfoWindow({
-// content: contentString
-// });
-// //map.setCenter(location);
-// nodeshot.gmap.infoWindow.open(nodeshot.gmap.map,marker);
-// nodeshot.gmap.newMarkerListener = google.maps.event.addListener(marker, 'click', function() {
-// nodeshot.gmap.infoWindow.open(nodeshot.gmap.map,marker);
-// });
-// nodeshot.gmap.newMarker = marker;
-//}
-
-
-
-//function clickMarker(marker, node) {
-// return function() {
-// // if overlay is open
-// if(nodeshot.layout.$overlay){
-// // close it first
-// nodeshot.overlay.close();
-// }
-// nodeshot.overlay.addMask(0.7);
-// nodeshot.overlay.showLoading();
-// $.get(nodeshot.url.index+'node/info/'+node.id+'/', function(data) {
-// // remove listener in case it has already been set
-// if(nodeshot.gmap.infoWindow.domready){
-// google.maps.event.removeListener(nodeshot.gmap.infoWindow.domready);
-// }
-// // add listener to domready of infowindows - it will be triggered when the infoWindow is ready
-// nodeshot.gmap.infoWindow.domready = google.maps.event.addListener(nodeshot.gmap.infoWindow, 'domready', function(){
-// $(".tabs").tabs({
-// // save height of first tab for comparison
-// create: function(e, ui){
-// // cache $(this)
-// $this = $(this);
-// // save height of active tab in nodeshot object
-// nodeshot.tab0Height = $this.find('.ui-tabs-panel').eq($this.tabs('option', 'selected')).height();
-// },
-// // change height of tab if tab is shorter
-// show: function(e, ui){
-// // cache object
-// $this = $(this);
-// // if distance tab
-// if($this.tabs('option', 'selected')===1){
-// // cache object
-// var tab = $this.find('.ui-tabs-panel').eq(1);
-// // save this height
-// nodeshot.tab1Height = tab.height();
-// // compare and if first tab was higher set the same height
-// if(nodeshot.tab0Height > nodeshot.tab1Height){
-// tab.height(nodeshot.tab0Height);
-// }
-// }
-// },
-// // advanced tab
-// select: function(e, ui){
-// if(ui.tab.id=='advanced-link'){
-// nodeshot.overlay.addMask(0.8, true);
-// nodeshot.overlay.showLoading();
-// $.get($(ui.tab).attr('data-url'), function(data) {
-// // open overlay, closeOnClick = true
-// nodeshot.overlay.open(data, true);
-// // init controls
-// nodeshot.advanced.init();
-// // we are not using $.live() for performance reasons
-// nodeshot.overlay.bindCancelButton();
-// // todo
-// });
-// }
-// return false
-// }
-// });
-// nodeshot.contact.link();
-// var search_input = $('#distance-search');
-// nodeshot.layout.bindFocusBlur(search_input);
-// // Implements the search function
-// search_input.autocomplete({
-// minLength: 3,
-// source: function(req, add) {
-// $.getJSON("search/"+req.term+'/', function(data) {
-// if (data != null && data.length > 0){
-// add(data);
-// }
-// else{
-// add("");
-// }
-// });
-// },
-// select: function(event, ui) {
-// nodeshot.distance.calculate({
-// // TODO: storing stuff in infowindow might not be necessary
-// from_name: nodeshot.gmap.infoWindow.node.name,
-// from_slug: nodeshot.gmap.infoWindow.node.slug,
-// from_lat: nodeshot.gmap.infoWindow.node.lat,
-// from_lng: nodeshot.gmap.infoWindow.node.lng,
-// to_name: ui.item.name,
-// to_slug: ui.item.value,
-// to_lat: ui.item.lat,
-// to_lng: ui.item.lng,
-// to_status: ui.item.status
-// });
-// search_input.val(ui.item.label)
-// return false;
-// }
-// });
-// $('#distance-select').change(function(){
-// // cache $(this)
-// $this = $(this);
-// // split values in array
-// var values = ($this.val()).split(';');
-// //// replace comma
-// var to_lat = (values[0]).replace(",",".");
-// var to_lng = (values[1]).replace(",",".");
-// var to_slug = values[2];
-// var to_status = values[3]
-// // calculate distance and add controls
-// nodeshot.distance.calculate({
-// from_name: nodeshot.gmap.infoWindow.node.name,
-// from_slug: nodeshot.gmap.infoWindow.node.slug,
-// from_lat: nodeshot.gmap.infoWindow.node.lat,
-// from_lng: nodeshot.gmap.infoWindow.node.lng,
-// to_name: $this.find('option[value="'+$this.val()+'"]').text(),
-// to_slug: to_slug,
-// to_lat: to_lat,
-// to_lng: to_lng,
-// to_status: to_status
-// });
-// });
-// nodeshot.layout.setFullScreen();
-// });
-// nodeshot.gmap.infoWindow.setContent(data);
-// nodeshot.gmap.infoWindow.maxWidth = 500;
-// nodeshot.gmap.infoWindow.open(nodeshot.gmap.map, marker);
-// nodeshot.overlay.hideLoading();
-// // remove mask only if there isn't any dialog
-// if(!nodeshot.layout.$dialog){
-// nodeshot.overlay.removeMask();
-// }
-// nodeshot.gmap.infoWindow.node = node;
-// });
-// };
-//}
-
-//function calc_distance(lat1, lon1, lat2, lon2, unit) {
-// var radlat1 = Math.PI * lat1/180;
-// var radlat2 = Math.PI * lat2/180;
-// var radlon1 = Math.PI * lon1/180;
-// var radlon2 = Math.PI * lon2/180;
-// var theta = lon1-lon2;
-// var radtheta = Math.PI * theta/180;
-// var dist = Math.sin(radlat1) * Math.sin(radlat2) + Math.cos(radlat1) * Math.cos(radlat2) * Math.cos(radtheta);
-// dist = Math.acos(dist);
-// dist = dist * 180/Math.PI;
-// dist = dist * 60 * 1.1515;
-// if (unit=="K") { dist = dist * 1.609344 };
-// if (unit=="N") { dist = dist * 0.8684 };
-// return dist;
-//}
-
-//function draw_link(from_lat, from_lng, to_lat, to_lng, quality) {
-// // init local var
-// var color;
-// // determine color depending on link quality
-// if (quality==1){
-// color = '#00ff00'; // Good
-// }
-// else if (quality==2){
-// color = '#ffff00'; // Medium
-// }
-// else if (quality==3){
-// color = '#ee0000'; // Bad
-// }
-// else if (quality==4){
-// color = '#5f0060'; // used for distance calculations
-// }
-// // draw link on gmap
-// var link = new google.maps.Polyline({
-// // coordinates
-// path: [new google.maps.LatLng(from_lat, from_lng),new google.maps.LatLng(to_lat, to_lng)],
-// // line features
-// strokeColor: color,
-// strokeOpacity: 0.4,
-// strokeWeight: 5
-// });
-// // show link on gmap
-// link.setMap(nodeshot.gmap.map);
-// if(quality==4){
-// return link;
-// }
-// return true;
-//}
-
View
3 media/js/javascriptrrd-0.5.0/CVS/Entries
@@ -1,3 +0,0 @@
-D/data////
-D/doc////
-D/src////
View
1 media/js/javascriptrrd-0.5.0/CVS/Repository
@@ -1 +0,0 @@
-v0
View
1 media/js/javascriptrrd-0.5.0/CVS/Root
@@ -1 +0,0 @@
-:pserver:anonymous@javascriptrrd.cvs.sourceforge.net:/cvsroot/javascriptrrd
View
1 media/js/javascriptrrd-0.5.0/CVS/Tag
@@ -1 +0,0 @@
-Tv0_5_0
View
1 media/js/javascriptrrd-0.5.0/data/CVS/Entries
@@ -1 +0,0 @@
-D/example_rrds////
View
1 media/js/javascriptrrd-0.5.0/data/CVS/Repository
@@ -1 +0,0 @@
-v0/data
View
1 media/js/javascriptrrd-0.5.0/data/CVS/Root
@@ -1 +0,0 @@
-:pserver:anonymous@javascriptrrd.cvs.sourceforge.net:/cvsroot/javascriptrrd
View
1 media/js/javascriptrrd-0.5.0/data/CVS/Tag
@@ -1 +0,0 @@
-Tv0_5_0
View
8 media/js/javascriptrrd-0.5.0/data/example_rrds/CVS/Entries
@@ -1,8 +0,0 @@
-/example1.rrd/1.1/Sun Feb 8 20:01:52 2009//Tv0_5_0
-/example2.rrd/1.1/Mon Feb 9 03:56:19 2009//Tv0_5_0
-/example3.rrd/1.1/Sat Feb 28 03:57:30 2009//Tv0_5_0
-/example4.rrd/1.1/Sun May 10 17:16:24 2009//Tv0_5_0
-/example4_s1.rrd/1.1/Sun May 10 17:16:24 2009//Tv0_5_0
-/example4_s2.rrd/1.1/Sun May 10 17:16:24 2009//Tv0_5_0
-/example4_s3.rrd/1.1/Sun May 10 17:16:24 2009//Tv0_5_0
-D
View
1 media/js/javascriptrrd-0.5.0/data/example_rrds/CVS/Repository
@@ -1 +0,0 @@
-v0/data/example_rrds
View
1 media/js/javascriptrrd-0.5.0/data/example_rrds/CVS/Root
@@ -1 +0,0 @@
-:pserver:anonymous@javascriptrrd.cvs.sourceforge.net:/cvsroot/javascriptrrd
View
1 media/js/javascriptrrd-0.5.0/data/example_rrds/CVS/Tag
@@ -1 +0,0 @@
-Nv0_5_0
View
BIN media/js/javascriptrrd-0.5.0/data/example_rrds/example1.rrd
Binary file not shown.
View
BIN media/js/javascriptrrd-0.5.0/data/example_rrds/example2.rrd
Binary file not shown.
View
BIN media/js/javascriptrrd-0.5.0/data/example_rrds/example3.rrd
Binary file not shown.
View
BIN media/js/javascriptrrd-0.5.0/data/example_rrds/example4.rrd
Binary file not shown.
View
BIN media/js/javascriptrrd-0.5.0/data/example_rrds/example4_s1.rrd
Binary file not shown.
View
BIN media/js/javascriptrrd-0.5.0/data/example_rrds/example4_s2.rrd
Binary file not shown.
View
BIN media/js/javascriptrrd-0.5.0/data/example_rrds/example4_s3.rrd
Binary file not shown.
View
5 media/js/javascriptrrd-0.5.0/doc/CVS/Entries
@@ -1,5 +0,0 @@
-/DESCRIPTION.txt/1.1/Sun Feb 8 00:38:40 2009//Tv0_5_0
-/INSTALL.txt/1.1/Sun Feb 8 00:38:40 2009//Tv0_5_0
-/LICENSE.txt/1.2/Fri Feb 26 02:08:58 2010//Tv0_5_0
-/README.txt/1.2/Sun May 10 17:23:53 2009//Tv0_5_0
-D/lib////
View
1 media/js/javascriptrrd-0.5.0/doc/CVS/Repository
@@ -1 +0,0 @@
-v0/doc
View
1 media/js/javascriptrrd-0.5.0/doc/CVS/Root
@@ -1 +0,0 @@
-:pserver:anonymous@javascriptrrd.cvs.sourceforge.net:/cvsroot/javascriptrrd
View
1 media/js/javascriptrrd-0.5.0/doc/CVS/Tag
@@ -1 +0,0 @@
-Nv0_5_0
View
5 media/js/javascriptrrd-0.5.0/doc/DESCRIPTION.txt
@@ -1,5 +0,0 @@
-javascriptRRD
-=============
-
-javascriptRRD is Javascript implementation of a client side RRD tool.
-
View
8 media/js/javascriptrrd-0.5.0/doc/INSTALL.txt
@@ -1,8 +0,0 @@
-javascriptRRD installation
-==========================
-
-Being Javascript an interpreted language, no compilation is needed.
-Just copy the files in the files located in the
-src/lib
-directory into a Web accessible location and use them.
-
View
24 media/js/javascriptrrd-0.5.0/doc/LICENSE.txt
@@ -1,24 +0,0 @@
-javascriptRRD is licensed under the MIT License
-[http://www.opensource.org/licenses/mit-license.php]
-
-Copyright (c) 2010 Frank Wuerthwein, fkw@ucsd.edu
- Igor Sfiligoi, isfiligoi@ucsd.edu
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-
View
22 media/js/javascriptrrd-0.5.0/doc/README.txt
@@ -1,22 +0,0 @@
-javascriptRRD
-=============
-
-javascriptRRD package contains a set of Javascript libraries
-that can be used for reading RRD archives from any Web browser.
-Mozilla, Internet Explorer and Safari havae been tested.
-
-Being Javascript an interpreted language, no compilation is needed.
-Just copy the files in the files located in the
-src/lib
-directory into a Web accessible location and use them.
-
-The
-src/examples/
-directory contain example Web pages that you can use as a template
-for writing your own Web Browser applications for accessing the
-RRD archives on your Web server.
-
-While the code itself tries to be self documenting, the
-doc/lib/
-directory contains more detailed information about the libraries.
-
View
8 media/js/javascriptrrd-0.5.0/doc/lib/CVS/Entries
@@ -1,8 +0,0 @@
-/binaryXHR_js.html/1.7/Sun May 10 17:31:33 2009//Tv0_5_0
-/index.html/1.2/Sun May 10 23:54:14 2009//Tv0_5_0
-/rrdFile_js.html/1.6/Thu Mar 12 00:23:03 2009//Tv0_5_0
-/rrdFlotMatrix_js.html/1.1/Sun May 10 23:48:22 2009//Tv0_5_0
-/rrdFlotSupport_js.html/1.8/Sun May 10 23:47:42 2009//Tv0_5_0
-/rrdFlot_js.html/1.4/Sun May 10 23:43:53 2009//Tv0_5_0
-/rrdMultiFile_js.html/1.1/Fri Feb 26 02:35:59 2010//Tv0_5_0
-D
View
1 media/js/javascriptrrd-0.5.0/doc/lib/CVS/Repository
@@ -1 +0,0 @@
-v0/doc/lib
View
1 media/js/javascriptrrd-0.5.0/doc/lib/CVS/Root
@@ -1 +0,0 @@
-:pserver:anonymous@javascriptrrd.cvs.sourceforge.net:/cvsroot/javascriptrrd
View
1 media/js/javascriptrrd-0.5.0/doc/lib/CVS/Tag
@@ -1 +0,0 @@
-Nv0_5_0
View
240 media/js/javascriptrrd-0.5.0/doc/lib/binaryXHR_js.html
@@ -1,240 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=utf-8">
- <TITLE>binaryXHR module</TITLE>
- <META NAME="GENERATOR" CONTENT="OpenOffice.org 3.0 (Linux)">
- <META NAME="CREATED" CONTENT="20090207;18445600">
- <META NAME="CHANGED" CONTENT="20090208;21102900">
- <META NAME="Info 1" CONTENT="">
- <META NAME="Info 2" CONTENT="">
- <META NAME="Info 3" CONTENT="">
- <META NAME="Info 4" CONTENT="">
- <STYLE TYPE="text/css">
- <!--
- @page { margin: 0.79in }
- TD P { margin-bottom: 0.08in }
- H1 { margin-bottom: 0.08in }
- H1.western { font-family: "Liberation Sans", sans-serif; font-size: 22pt }
- P { margin-bottom: 0.08in }
- TH P { margin-bottom: 0.08in }
- H2.heading-2-western { font-family: "Liberation Serif", serif; font-size: 16pt; font-weight: bold }
- A:link { so-language: zxx }
- -->
- </STYLE>
-</HEAD>
-<BODY LANG="en-US" DIR="LTR">
-<H1 CLASS="western">binaryXHR module</H1>
-<TABLE WIDTH=50% CELLPADDING=2 CELLSPACING=2>
- <TR>
- <TD>
- <HR>
- <P>The <A HREF="../../src/lib/binaryXHR.js">binaryXHR Javascript
- module</A> implements a set of functions and classes that can be
- used to retrieve binary files using the <A HREF="http://en.wikipedia.org/wiki/XMLHttpRequest">XMLHttpRequest</A>
- API.</P>
- <HR>
- </TD>
- </TR>
-</TABLE>
-<H2 CLASS="heading-2-western">Overview</H2>
-<P>This module provides two functions,
-<A HREF="#FetchBinaryURL">FetchBinaryURL</A> and
-<A HREF="#FetchBinaryURLAsync">FetchBinaryURLAsync</a>,
-that are wrappers around the
-<A HREF="http://en.wikipedia.org/wiki/XMLHttpRequest">XMLHttpRequest</A> API
-and return an object of type
-<A HREF="#BinaryFile">BinaryFile</A>.
-The first one implements a
-straight load, while the second one initiates an asynchronous
-operation handled by a callback function.</P>
-<P>The <A HREF="#BinaryFile">BinaryFile</A> class implements the methods needed to access the
-elements of the binary files, such as strings, integers and real
-numbers.
-</P>
-<P>Both the functions and the class internally handle the differences
-between different Web Browsers, so the user of this module does not
-need to worry about them.</P>
-<A NAME="FetchBinaryURL">
-<H2 CLASS="heading-2-western">Function FetchBinaryURL</H2>
-</A>
-<P>Load a binary file.</P>
-<P>Arguments:</P>
-<UL>
- <LI><P>url:string - URL from where to load the binary file.</P>
-</UL>
-<P>Output:</P>
-<UL>
- <LI><P>An object of type BinaryFile.</P>
-</UL>
-<A NAME="FetchBinaryURLAsync">
-<H2 CLASS="heading-2-western">Function FetchBinaryURLAsync</H2>
-</A>
-<P>Initiate an asynchronous binary load.</P>
-<P>Arguments:</P>
-<UL>
- <LI><P>url:string - URL from where to load the binary file.</P>
- <LI><P>callback:function(obj[,arg]) - Pointer to the function that will
- be called when the binary file has been loaded. <br>
- The function will be
- given one or two arguments; the first one is an object of type <A HREF="#BinaryFile">BinaryFile</A>.
- The second one is the argument described below, if available.</P>
- <LI><P>callback_arg:any (optional) - If present, it will be given as argument to the callback function.</P>
-</UL>
-<P>Output:</P>
-<UL>
- <LI><P>A reference to the <A HREF="http://www.w3.org/TR/XMLHttpRequest/">XMLHttpRequest</A> object.
- It may be used to verify the status of the load or to implement timeouts.<BR>
- The callback function will receive the loaded binary file.</P>
-</UL>
-<A NAME="BinaryFile">
-<H2 CLASS="heading-2-western">Class BinaryFile</H2>
-</A>
-<P>This class implements the methods needed to access the content of
-the binary file.</P>
-<DIV ALIGN=RIGHT>
- <TABLE WIDTH=90% BORDER=1>
- <COL WIDTH=25%>
- <COL WIDTH=75%>
- <THEAD>
- <TR VALIGN=TOP>
- <TH WIDTH=25%>
- <P ALIGN=LEFT>Method</P>
- </TH>
- <TH WIDTH=75%>
- <P ALIGN=LEFT>Description</P>
- </TH>
- </TR>
- </THEAD>
- <TBODY>
- <TR VALIGN=TOP>
- <TD WIDTH=25%>
- <P>getLength()</P>
- </TD>
- <TD WIDTH=75%>
- <P>Return the number of bytes held by the object.</P>
- </TD>
- </TR>
- <TR VALIGN=TOP>
- <TD WIDTH=25%>
- <P>getByteAt(idx)</P>
- </TD>
- <TD WIDTH=75%>
- <P>Return an 8 bit unsigned integer from offset <I>idx</I>.</P>
- </TD>
- </TR>
- <TR VALIGN=TOP>
- <TD WIDTH=25%>
- <P>getShortAt(idx)</P>
- </TD>
- <TD WIDTH=75%>
- <P>Return a 16 bit little endian unsigned integer from offset
- idx.
- </P>
- </TD>
- </TR>
- <TR VALIGN=TOP>
- <TD WIDTH=25%>
- <P>getLongAt(idx)</P>
- </TD>
- <TD WIDTH=75%>
- <P>Return a 32 bit little endian unsigned integer from offset
- idx.</P>
- </TD>
- </TR>
- <TR VALIGN=TOP>
- <TD WIDTH=25%>
- <P>getSByteAt(idx)</P>
- </TD>
- <TD WIDTH=75%>
- <P>Return an 8 bit signed integer from offset <I>idx</I>.</P>
- </TD>
- </TR>
- <TR VALIGN=TOP>
- <TD WIDTH=25%>
- <P>getSShortAt(idx)</P>
- </TD>
- <TD WIDTH=75%>
- <P>Return a 16 bit little endian signed integer from offset
- idx.
- </P>
- </TD>
- </TR>
- <TR VALIGN=TOP>
- <TD WIDTH=25%>
- <P>getSLongAt(idx)</P>
- </TD>
- <TD WIDTH=75%>
- <P>Return a 32 bit little endian signed integer from offset
- idx.</P>
- </TD>
- </TR>
- <TR VALIGN=TOP>
- <TD WIDTH=25%>
- <P>getDoubleAt(idx)</P>
- </TD>
- <TD WIDTH=75%>
- <P>Return a double float (64 bit little endian) from offset idx.</P>
- <P>Return <i>undefined</i> if the value is not a float or is infinity.</P>
- </TD>
- </TR>
- <TR VALIGN=TOP>
- <TD WIDTH=25%>
- <P>getFastDoubleAt(idx)</P>
- </TD>
- <TD WIDTH=75%>
- <P>Return a low resolution (20 bit mantissa) double flat
- obtained from the high 32 bits of the original little endian
- double float from offset idx.</P>
- <P>Return <i>undefined</i> if the value is not a float or is infinity.</P>
- </TD>
- </TR>
- <TR VALIGN=TOP>
- <TD WIDTH=25%>
- <P>getCharAt(idx)</P>
- </TD>
- <TD WIDTH=75%>
- <P>Get a character from offset idx.</P>
- </TD>
- </TR>
- <TR VALIGN=TOP>
- <TD WIDTH=25%>
- <P>getCStringAt(idx,maxlen)</P>
- </TD>
- <TD WIDTH=75%>
- <P>Get a zero terminated string of limited size from offset idx.
-
- </P>
- </TD>
- </TR>
- <TR VALIGN=TOP>
- <TD WIDTH=25%>
- <P>getStringAt(idx,len)</P>
- </TD>
- <TD WIDTH=75%>
- <P>Get a fixed length string from offset idx.</P>
- </TD>
- </TR>
- </TBODY>
- </TABLE>
-</DIV>
-<A NAME="InvalidBinaryFile">
-<H2 CLASS="heading-2-western">Exception class InvalidBinaryFile</H2>
-</A>
-<P>This is a helper exception class that can be thrown while loading the binary file.</P>
-<P><BR></P>
-<TABLE WIDTH=50%>
- <TR>
- <TD>
- <HR>
- <P>This module is part of the <A HREF="index.html">javascriptRRD
- package</A> hosted at <A HREF="http://javascript.sourceforge.net/">http://javascript.sourceforge.net</A>.
- <BR>It is licensed under the <A HREF="http://www.opensource.org/licenses/mit-license.php">MIT
- license</A>.
- </P>
- <HR>
- </TD>
- </TR>
-</TABLE>
-</BODY>
-</HTML>
View
56 media/js/javascriptrrd-0.5.0/doc/lib/index.html
@@ -1,56 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=utf-8">
- <TITLE>javascriptRRD libraries</TITLE>
- <META NAME="GENERATOR" CONTENT="OpenOffice.org 3.0 (Linux)">
- <META NAME="CREATED" CONTENT="0;0">
- <META NAME="CHANGED" CONTENT="20090209;19413900">
- <STYLE TYPE="text/css">
- <!--
- @page { margin: 0.79in }
- H1 { margin-bottom: 0.08in }
- H1.western { font-family: "Liberation Sans", sans-serif; font-size: 22pt }
- P { margin-bottom: 0.08in }
- A:link { so-language: zxx }
- -->
- </STYLE>
-</HEAD>
-<BODY LANG="en-US" DIR="LTR">
-<H1 CLASS="western">javascriptRRD libraries</H1>
-<P>The javascriptRRD package contains base two javascript modules:</P>
-<UL>
- <LI><P>The <A HREF="rrdFile_js.html">rrdFile module</A>, used to
- extract information from <A HREF="http://oss.oetiker.ch/rrdtool/">RRD
- archives</A> loaded as binary file objects.</P>
- <LI><P>The <A HREF="binaryXHR_js.html">binaryXHR module</A>, used to
- retrieve binary files using the <A HREF="http://en.wikipedia.org/wiki/XMLHttpRequest">XMLHttpRequest</A>
- API.</P>
-</UL>
-<P>Together they can be used to implement AJAX style applications.</P>
-<P>The package also provides two classes, based on
- <A HREF="http://code.google.com/p/flot/">JFlot</A>,
- that automate most of the graphing needs:</P>
-<UL>
- <LI><P>The <A HREF="rrdFlot_js.html">rrdFlot module</A> can be used to plot a single RRD file.<BR>
- See also the <A HREF="../../src/examples/rrdJFlot.html">rrdJFlot.html example</A>.</P>
- <LI><P>The <A HREF="rrdFlotMatrix_js.html">rrdFlotMatrix module</A> can be used to plot a list of RRD files.<BR>
- See also the <A HREF="../../src/examples/rrdMatrixFlot.html">rrdMatrixFlot.html example</A>.</P>
-</UL>
-
-<TABLE WIDTH=50% CELLPADDING=2 CELLSPACING=2>
- <TR>
- <TD>
- <HR>
- <P>The javascriptRRD package
- is hosted at <A HREF="http://javascript.sourceforge.net/">http://javascript.sourceforge.net</A>.
- <BR>It is licensed under the <A HREF="http://www.opensource.org/licenses/mit-license.php">MIT
- license</A>.
- </P>
- <HR>
- </TD>
- </TR>
-</TABLE>
-
-</BODY>
-</HTML>
View
402 media/js/javascriptrrd-0.5.0/doc/lib/rrdFile_js.html
@@ -1,402 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=utf-8">
- <TITLE>rrdFile module</TITLE>
- <META NAME="GENERATOR" CONTENT="OpenOffice.org 3.0 (Linux)">
- <META NAME="CREATED" CONTENT="20090209;18445600">
- <META NAME="CHANGED" CONTENT="20090209;19214700">
- <META NAME="Info 1" CONTENT="">
- <META NAME="Info 2" CONTENT="">
- <META NAME="Info 3" CONTENT="">
- <META NAME="Info 4" CONTENT="">
- <STYLE TYPE="text/css">
- <!--
- @page { margin: 0.79in }
- TD P { margin-bottom: 0.08in }
- H1 { margin-bottom: 0.08in }
- H1.western { font-family: "Liberation Sans", sans-serif; font-size: 22pt }
- P { margin-bottom: 0.08in }
- H2.heading-2-western { font-family: "Liberation Serif", serif; font-size: 16pt }
- TH P { margin-bottom: 0.08in }
- A:link { so-language: zxx }
- -->
- </STYLE>
-</HEAD>
-<BODY LANG="en-US" DIR="LTR">
-<H1 CLASS="western">rrdFile module</H1>
-<TABLE WIDTH=50% CELLPADDING=2 CELLSPACING=2>
- <TR>
- <TD>
- <HR>
- <P>The <A HREF="../../src/lib/rrdFile.js">rrdFile Javascript
- module</A> implements a set of classes that can be used to extract
- information from <A HREF="http://oss.oetiker.ch/rrdtool/">RRD
- archives</A> loaded as binary file objects.</P>
- <HR>
- </TD>
- </TR>
-</TABLE>
-<H2 CLASS="heading-2-western">Overview</H2>
-<P>The main class in this module is <A HREF="#RRDFile">RRDFile</A>.
-It interprets the given the binary file object and provides methods
-to decode the <A HREF="http://oss.oetiker.ch/rrdtool/">RRD</A>
-information.</P>
-<H2 CLASS="heading-2-western"><A NAME="RRDFile"></A>Class RRDFile</H2>
-<P>This is the main class of the package. It is also the only class
-the user ever needs to explicitly instantiate.</P>
-<P>The RRDFile constructor has a single argument:</P>
-<UL>
- <LI><P>A binary file object.</P>
- <P>Any object implementing an interface providing the following
- methods can be used:</P>
- <UL>
- <LI><P>getByteAt(idx) - Return a 8 bit unsigned integer at offset
- idx.</P>
- <LI><P>getLongAt(idx) - Return a 32 bit unsigned integer at offset
- idx.</P>
- <LI><P>getDoubleAt(idx) - Return a double float at offset idx.</P>
- <LI><P>getFastDoubleAt(idx) - Similar to getDoubleAt but with less
- precision.</P>
- <LI><P>getCStringAt(idx,maxsize) - Return a string of at most
- maxsize characters that was 0-terminated in the source.</P>
- </UL>
- <P>The <A HREF="binaryXHR_js.html">binaryXHR module</A>, provided
- with this package, provides the class <A HREF="binaryXHR_js.html#BinaryFile">BinaryFile</A>
- that implements this interface.</P>
-</UL>
-<P>If the binary file is not a proper <A HREF="http://oss.oetiker.ch/rrdtool/">RRD
-file</A>, an <A HREF="#InvalidRRD">InvalidRRD</A> exception will be
-thrown.</P>
-<P>This class also implements the following methods:</P>
-<DIV ALIGN=RIGHT>
- <TABLE WIDTH=90% BORDER=1 CELLPADDING=2 CELLSPACING=3>
- <COL WIDTH=51*>
- <COL WIDTH=205*>
- <THEAD>
- <TR VALIGN=TOP>
- <TH WIDTH=20%>
- <P ALIGN=LEFT>Method</P>
- </TH>
- <TH WIDTH=80%>
- <P ALIGN=LEFT>Description</P>
- </TH>
- </TR>
- </THEAD>
- <TBODY>
- <TR VALIGN=TOP>
- <TD WIDTH=20%>
- <P>getMinStep()</P>
- </TD>
- <TD WIDTH=80%>
- <P>Return the base <A HREF="http://oss.oetiker.ch/rrdtool/doc/rrdcreate.en.html#I__step__s_step__default__300_seconds_">interval
- in seconds</A> that was used to feed the RRD file.</P>
- </TD>
- </TR>
- <TR VALIGN=TOP>
- <TD WIDTH=20%>
- <P>getLastUpdate()</P>
- </TD>
- <TD WIDTH=80%>
- <P>Return the timestamp of the <A HREF="http://oss.oetiker.ch/rrdtool/doc/rrdlastupdate.en.html">last
- update</A>.</P>
- </TD>
- </TR>
- <TR VALIGN=TOP>
- <TD WIDTH=20%>
- <P>getNrDSs()</P>
- </TD>
- <TD WIDTH=80%>
- <P>Return the number of <A HREF="http://oss.oetiker.ch/rrdtool/doc/rrdcreate.en.html#IDS_ds_name_DST_dst_arguments">Data
- Sources</A> present in the RRD file.
- </P>
- </TD>
- </TR>
- <TR VALIGN=TOP>
- <TD WIDTH=20%>
- <P>getDSNames()</P>
- </TD>
- <TD WIDTH=80%>
- <P>Return the names of the <A HREF="http://oss.oetiker.ch/rrdtool/doc/rrdcreate.en.html#IDS_ds_name_DST_dst_arguments">Data
- Sources</A> present in the RRD file.
- </P>
- </TD>
- </TR>
- <TR VALIGN=TOP>
- <TD WIDTH=20%>
- <P>getDS(id)</P>
- </TD>
- <TD WIDTH=80%>
- <P>If id is a number, return an object of type <A HREF="#RRDDS">RRDDS</A> holding
- the information about the id-th <A HREF="http://oss.oetiker.ch/rrdtool/doc/rrdcreate.en.html#IDS_ds_name_DST_dst_arguments">Data
- Source</A>.</P>
- <P>If id is a string, return an object of type <A HREF="#RRDDS">RRDDS</A> holding
- the information about the <A HREF="http://oss.oetiker.ch/rrdtool/doc/rrdcreate.en.html#IDS_ds_name_DST_dst_arguments">Data
- Source</A> with the requested name.</P>
- </TD>
- </TR>
- <TR VALIGN=TOP>
- <TD WIDTH=20%>
- <P>getNrRRAs()</P>
- </TD>
- <TD WIDTH=80%>
- <P>Return the number of <A HREF="http://oss.oetiker.ch/rrdtool/doc/rrdcreate.en.html#IRRA_CF_cf_arguments">Round
- Robin Archives</A> present in the RRD file.</P>
- </TD>
- </TR>
- <TR VALIGN=TOP>
- <TD WIDTH=20%>
- <P>getRRAInfo(n)</P>
- </TD>
- <TD WIDTH=80%>
- <P>Return an object of type <A HREF="#RRDRRAInfo">RRDRRAInfo</A>
- holding the information about the n-th <A HREF="http://oss.oetiker.ch/rrdtool/doc/rrdcreate.en.html#IRRA_CF_cf_arguments">Round
- Robin Archive</A>.</P>
- </TD>
- </TR>
- <TR VALIGN=TOP>
- <TD WIDTH=20%>
- <P>getRRA(n)</P>
- </TD>
- <TD WIDTH=80%>
- <P>Return an object of type <A HREF="#RRDRRA">RRDRRA</A> that
- can be used to access the values stored in the n-th <A HREF="http://oss.oetiker.ch/rrdtool/doc/rrdcreate.en.html#IRRA_CF_cf_arguments">Round
- Robin Archive</A>.</P>
- </TD>
- </TR>
- </TBODY>
- </TABLE>
-</DIV>
-<H2 CLASS="heading-2-western"><A NAME="RRDDS"></A>Class RRDDS</H2>
-<P>This class implements the methods needed to access the information
-about a <A HREF="http://oss.oetiker.ch/rrdtool/doc/rrdcreate.en.html#IDS_ds_name_DST_dst_arguments">RRD
-Data Source</A>.</P>
-<DIV ALIGN=RIGHT>
- <TABLE WIDTH=90% BORDER=1 CELLPADDING=2 CELLSPACING=3>
- <COL WIDTH=51*>
- <COL WIDTH=205*>
- <THEAD>
- <TR VALIGN=TOP>
- <TH WIDTH=20%>
- <P ALIGN=LEFT>Method</P>
- </TH>
- <TH WIDTH=80%>
- <P ALIGN=LEFT>Description</P>
- </TH>
- </TR>
- </THEAD>
- <TBODY>
- <TR VALIGN=TOP>
- <TD WIDTH=20%>
- <P>getIdx()</P>
- </TD>
- <TD WIDTH=80%>
- <P>Return which DS it is in the RRD file.</P>
- </TD>
- </TR>
- <TR VALIGN=TOP>
- <TD WIDTH=20%>
- <P>getName()</P>
- </TD>
- <TD WIDTH=80%>
- <P>Return the name of the data source.</P>
- </TD>
- </TR>
- <TR VALIGN=TOP>
- <TD WIDTH=20%>
- <P>getType()</P>
- </TD>
- <TD WIDTH=80%>
- <P>Return the <A HREF="http://oss.oetiker.ch/rrdtool/doc/rrdcreate.en.html#IDS_ds_name_DST_dst_arguments">type</A>
- of the data source.</P>
- </TD>
- </TR>
- <TR VALIGN=TOP>
- <TD WIDTH=20%>
- <P>getMin()</P>
- </TD>
- <TD ROWSPAN=2 WIDTH=80%>
- <P>Return the minimum and maximum value the data source can
- contain.
- </P>
- <P>If either is not defined, <I>undefined</I> is returned.</P>
- </TD>
- </TR>
- <TR VALIGN=TOP>
- <TD WIDTH=20%>
- <P>getMax()</P>
- </TD>
- </TR>
- </TBODY>
- </TABLE>
-</DIV>
-<H2 CLASS="heading-2-western"><A NAME="RRDRRAInfo"></A>Class
-RRDRRAInfo</H2>
-<P>This class implements the methods needed to access the information
-about a <A HREF="http://oss.oetiker.ch/rrdtool/doc/rrdcreate.en.html#IRRA_CF_cf_arguments">Round
-Robin Archive</A>.</P>
-<DIV ALIGN=RIGHT>
- <TABLE WIDTH=90% BORDER=1 CELLPADDING=2 CELLSPACING=3>
- <COL WIDTH=52*>
- <COL WIDTH=204*>
- <THEAD>
- <TR VALIGN=TOP>
- <TH WIDTH=20%>
- <P ALIGN=LEFT>Method</P>
- </TH>
- <TH WIDTH=80%>
- <P ALIGN=LEFT>Description</P>
- </TH>
- </TR>
- </THEAD>
- <TBODY>
- <TR VALIGN=TOP>
- <TD WIDTH=20%>
- <P>getIdx()</P>
- </TD>
- <TD WIDTH=80%>
- <P>Return which RRA it is in the RRD file.</P>
- </TD>
- </TR>
- <TR VALIGN=TOP>
- <TD WIDTH=20%>
- <P>getNrRows()</P>
- </TD>
- <TD WIDTH=80%>
- <P>Return the number of rows in the RRA.</P>
- </TD>
- </TR>
- <TR VALIGN=TOP>
- <TD WIDTH=20%>
- <P>getStep()</P>
- </TD>
- <TD WIDTH=80%>
- <P>Return the number of seconds between rows.</P>
- </TD>
- </TR>
- <TR VALIGN=TOP>
- <TD WIDTH=20%>
- <P>getCFName()</P>
- </TD>
- <TD WIDTH=80%>
- <P>Return the <A HREF="http://oss.oetiker.ch/rrdtool/doc/rrdcreate.en.html#IRRA_CF_cf_arguments">Consolidation
- Function</A> used by the RRA.</P>
- </TD>
- </TR>
- <TR VALIGN=TOP>
- <TD WIDTH=20%>
- <P>getPdpPerRow()</P>
- </TD>
- <TD WIDTH=80%>
- <P>Return number of slots used for consolidation.</P>
- </TD>
- </TR>
- </TBODY>
- </TABLE>
-</DIV>
-<H2 CLASS="heading-2-western"><A NAME="RRDRRA"></A>Class RRDRRA</H2>
-<P>This class implements the methods needed to access the content of
-a <A HREF="http://oss.oetiker.ch/rrdtool/doc/rrdcreate.en.html#IRRA_CF_cf_arguments">Round
-Robin Archive</A>.</P>
-<DIV ALIGN=RIGHT>
- <TABLE WIDTH=90% BORDER=1 CELLPADDING=2 CELLSPACING=3>
- <COL WIDTH=52*>
- <COL WIDTH=204*>
- <THEAD>
- <TR VALIGN=TOP>
- <TH WIDTH=20%>
- <P ALIGN=LEFT>Method</P>
- </TH>
- <TH WIDTH=80%>
- <P ALIGN=LEFT>Description</P>
- </TH>
- </TR>
- </THEAD>
- <TBODY>
- <TR VALIGN=TOP>
- <TD WIDTH=20%>
- <P>getIdx()</P>
- </TD>
- <TD WIDTH=80%>
- <P>Return which RRA it is in the RRD file.</P>
- </TD>
- </TR>
- <TR VALIGN=TOP>
- <TD WIDTH=20%>
- <P>getCFName()</P>
- </TD>
- <TD WIDTH=80%>
- <P>Return the <A HREF="http://oss.oetiker.ch/rrdtool/doc/rrdcreate.en.html#IRRA_CF_cf_arguments">Consolidation
- Function</A> used by the RRA.</P>
- <P>The current implementation only supports
- AVERAGE,MAXIMUM,MINIMUM and LAST.<BR>Access to elements of any
- other CF is currently undefined.
- </P>
- </TD>
- </TR>
- <TR VALIGN=TOP>
- <TD WIDTH=20%>
- <P>getNrRows()</P>
- </TD>
- <TD WIDTH=80%>
- <P>Return the number of rows in the RRA.</P>
- </TD>
- </TR>
- <TR VALIGN=TOP>
- <TD WIDTH=20%>
- <P>getNrDSs()</P>
- </TD>
- <TD WIDTH=80%>
- <P>Return the number of <A HREF="http://oss.oetiker.ch/rrdtool/doc/rrdcreate.en.html#IDS_ds_name_DST_dst_arguments">Data
- Sources</A> present in the RRA.</P>
- </TD>
- </TR>
- <TR VALIGN=TOP>
- <TD WIDTH=20%>
- <P>getStep()</P>
- </TD>
- <TD WIDTH=80%>
- <P>Return the number of seconds between rows.</P>
- </TD>
- </TR>
- <TR VALIGN=TOP>
- <TD WIDTH=20%>
- <P>getEl(r,d)</P>
- </TD>
- <TD WIDTH=80%>
- <P>Return the value for the d-th DS in the r-th row.</P>
- </TD>
- </TR>
- <TR VALIGN=TOP>
- <TD WIDTH=20%>
- <P>getElFast(row,ds)</P>
- </TD>
- <TD WIDTH=80%>
- <P>Return the low-precision value for the d-th DS in the r-th
- row.</P>
- </TD>
- </TR>
- </TBODY>
- </TABLE>
-</DIV>
-<H2 CLASS="heading-2-western"><A NAME="InvalidRRD"></A>Exception
-class InvalidRRD</H2>
-<P>This is a helper exception class that can be thrown while
-interpreting the binary file object.</P>
-<P><BR><BR>
-</P>
-<TABLE WIDTH=50% CELLPADDING=2 CELLSPACING=2>
- <TR>
- <TD>
- <HR>
- <P>This module is part of the <A HREF="index.html">javascriptRRD
- package</A> hosted at <A HREF="http://javascript.sourceforge.net/">http://javascript.sourceforge.net</A>.
- <BR>It is licensed under the <A HREF="http://www.opensource.org/licenses/mit-license.php">MIT
- license</A>.
- </P>
- <HR>
- </TD>
- </TR>
-</TABLE>
-</BODY>
-</HTML>
View
149 media/js/javascriptrrd-0.5.0/doc/lib/rrdFlotMatrix_js.html
@@ -1,149 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=utf-8">
- <TITLE>rrdFlotMatrix module</TITLE>
- <META NAME="GENERATOR" CONTENT="OpenOffice.org 3.0 (Linux)">
- <META NAME="Info 1" CONTENT="">
- <META NAME="Info 2" CONTENT="">
- <META NAME="Info 3" CONTENT="">
- <META NAME="Info 4" CONTENT="">
- <STYLE TYPE="text/css">
- <!--
- @page { margin: 0.79in }
- TD P { margin-bottom: 0.08in }
- H1 { margin-bottom: 0.08in }
- H1.western { font-family: "Liberation Sans", sans-serif; font-size: 22pt }
- P { margin-bottom: 0.08in }
- H2.heading-2-western { font-family: "Liberation Serif", serif; font-size: 16pt }
- TH P { margin-bottom: 0.08in }
- A:link { so-language: zxx }
- -->
- </STYLE>
-</HEAD>
-<BODY LANG="en-US" DIR="LTR">
-<H1 CLASS="western">rrdFlotMatrix module</H1>
-<TABLE WIDTH=50% CELLPADDING=2 CELLSPACING=2>
- <TR>
- <TD>
- <HR>
- <P>The <A HREF="../../src/lib/rrdFlotMatrix.js">rrdFlotMatrix Javascript
- module</A> implements a class used to represents a DS from a list of similar
- <A HREF="http://oss.oetiker.ch/rrdtool/">RDD archives</A>
- as a <A HREF="http://code.google.com/p/flot/">Flot</A> plot.</P>
- <P>All RRDs must have the same step, the same DS names and the same number of RRAs.</P>
- <HR>
- </TD>
- </TR>
-</TABLE>
-<H2 CLASS="heading-2-western">Overview</H2>
-<P>This module provide a single class: <A HREF="#rrdFlotMatrix">rrdFlotMatrix</A>.</P>
-<P>Given a
-<A HREF="rrdFile_js.html#RRDFile">RRDFile</A> object, this class
-creates an interactive
-<A HREF="http://code.google.com/p/flot/">Flot</A> plot.</P>
-
-<P>In order to use this module, you also need to include:
-<UL>
- <LI><A HREF="rrdFlotSupport_js.html">rrdFlotSupport.js</A>
- <LI><A HREF="http://code.google.com/p/flot/">jquery.flot.js</A>
- <LI><A HREF="http://jquery.com/">jquery.js</A>
-</UL></P>
-
-<H2 CLASS="heading-2-western"><A NAME="rrdFlotMatrix"></A>Class rrdFlotMatrix</H2>
-<P>The rrdFlotMatrix constructor has two to five arguments:</P>
-<DIV ALIGN=RIGHT>
- <TABLE WIDTH=90% BORDER=1 CELLPADDING=2 CELLSPACING=3>
- <COL WIDTH=51*>
- <COL WIDTH=205*>
- <THEAD>
- <TR VALIGN=TOP>
- <TH WIDTH=20%>
- <P ALIGN=LEFT>Argument</P>
- </TH>
- <TH WIDTH=80%>
- <P ALIGN=LEFT>Description</P>
- </TH>
- </TR>
- </THEAD>
- <TBODY>
- <TR VALIGN=TOP>
- <TD WIDTH=20%>
- <P>html_id</P>
- </TD>
- <TD WIDTH=80%>
- <P>ID of a HTML element, possibly a DIV.</P>
- </TD>
- </TR>
- <TR VALIGN=TOP>
- <TD WIDTH=20%>
- <P>rrd_files</P>
- </TD>
- <TD WIDTH=80%>
- <P>A list of RRDs. Each element of the list contains a [rrd_id,rrd_file] pair.
- <ul>
- <li>rrd_id - Logical name for the RRD.
- <li>rrd_file -An object of type <A HREF="rrdFile_js.html#RRDFile">RRDFile</A> or equivalent.
- </ul>
- </P>
- </TD>
- </TR>
- <TR VALIGN=TOP>
- <TD WIDTH=20%>
- <P>ds_list (optional)</P>
- </TD>
- <TD WIDTH=80%>
- <P>A list of DSes. Each element of the list contains a [ds_id,ds_title] pair.
- <ul>
- <li>ds_id - Logical name for the DS (as accepted by
- <A HREF="rrdFile_js.html#RRDFile">RRDFile.getDS()</A>).
- <li>ds_title - Name to display to the user.
- </ul>
- </P>
- <P>If undefined, all the DS's of the RRD will be used.</P>
- </TD>
- </TR>
- <TR VALIGN=TOP>
- <TD WIDTH=20%>
- <P>graph_options (optional)</P>
- </TD>
- <TD WIDTH=80%>
- <P>Global graphing options. See
- <A HREF="http://code.google.com/p/flot/">Flot documentation</A>
- for more details.</P>
- <P>The recognized elements and the default values are:
-<PRE>
- graph_options = {
- legend: {position:"nw",noColumns:3},
- lines: { show:true },
- yaxis: { autoscaleMargin: 0.20},
- };
-</PRE></P>
- </TD>
- </TR>
- <TR VALIGN=TOP>
- <TD WIDTH=20%>
- <P>rrd_graph_options (optional)</P>
- </TD>
- <TD WIDTH=80%>
- <P>Dictionary of graphing options. This must be a dictionary of rrd_id.
- Each element of the dictionary contains graphing options. See
- <A HREF="http://code.google.com/p/flot/">Flot documentation</A>
- for more details.</P>
- <P>The recognized elements and the default values are:
-<PRE>
- {
- title: label or rrd_name // this is what is displayed in the checkboxes
- checked: true // boolean
- label: title or rrd_name // this is what is displayed in the legend
- color: rrd_index // see Flot docs for details
- lines: { show:true, fill: true, fillColor:color } // see Flot docs for details
- }
-</PRE></P>
- </TD>
- </TR>
- </TABLE>
-</DIV>
-<P>Once instatiated, the object will automatically draw the plot and handle user interaction.</P>
-</BODY>
-</HTML>
View
650 media/js/javascriptrrd-0.5.0/doc/lib/rrdFlotSupport_js.html
@@ -1,650 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=utf-8">
- <TITLE>rrdFlotSupport module</TITLE>
- <META NAME="GENERATOR" CONTENT="OpenOffice.org 3.0 (Linux)">
- <META NAME="Info 1" CONTENT="">
- <META NAME="Info 2" CONTENT="">
- <META NAME="Info 3" CONTENT="">
- <META NAME="Info 4" CONTENT="">
- <STYLE TYPE="text/css">
- <!--
- @page { margin: 0.79in }
- TD P { margin-bottom: 0.08in }
- H1 { margin-bottom: 0.08in }
- H1.western { font-family: "Liberation Sans", sans-serif; font-size: 22pt }
- P { margin-bottom: 0.08in }
- H2.heading-2-western { font-family: "Liberation Serif", serif; font-size: 16pt }
- TH P { margin-bottom: 0.08in }
- A:link { so-language: zxx }
- -->
- </STYLE>
-</HEAD>
-<BODY LANG="en-US" DIR="LTR">
-<H1 CLASS="western">rrdFlotSupport module</H1>
-<TABLE WIDTH=50% CELLPADDING=2 CELLSPACING=2>
- <TR>
- <TD>
- <HR>
- <P>The <A HREF="../../src/lib/rrdFlotSupport.js">rrdFlotSupport Javascript module</A>
- implements a set of commonly used functions an classes that may be used while plotting
- <A HREF="http://oss.oetiker.ch/rrdtool/">RRD files</A> with
- <A HREF="http://code.google.com/p/flot/">Flot</A>.</P>
- <HR>
- </TD>
- </TR>
-</TABLE>
-<H2 CLASS="heading-2-western">Overview</H2>
-<P>This module provides two types of support:
-<UL>
- <LI>Functions providing support in converting raw data into Flot-friendly format:
- <A HREF="#rrdDS2FlotSeries">rrdDS2FlotSeries</A>,
- <A HREF="#rrdRRA2FlotObj">rrdRRA2FlotObj</A>,
- <A HREF="#rrdRRAStackFlotObj">rrdRRAStackFlotObj</A> and
- <A HREF="#rrdRRAMultiStackFlotObj">rrdRRAMultiStackFlotObj</A>.
- <LI>A class providing support for handling the plotting:
- <A HREF="#rrdFlotSelection">rrdFlotSelection</A>.
-</UL>
-</P>
-<H2 CLASS="heading-2-western"><A NAME="rrdDS2FlotSeries"></A>Function rrdDS2FlotSeries</H2>
-<P>This function extracts a specific DS from a specific RRA and returns an object that
-contains the data in format flot expects.</P>
-<P>
-Input parameters:
-</P>
-<DIV ALIGN=RIGHT>
- <TABLE WIDTH=90% BORDER=1 CELLPADDING=2 CELLSPACING=3>
- <COL WIDTH=51*>
- <COL WIDTH=205*>
- <THEAD>
- <TR VALIGN=TOP>
- <TH WIDTH=20%>
- <P ALIGN=LEFT>Parameter</P>
- </TH>
- <TH WIDTH=80%>
- <P ALIGN=LEFT>Description</P>
- </TH>
- </TR>
- </THEAD>
- <TBODY>
- <TR VALIGN=TOP>
- <TD WIDTH=20%>
- <P>rrd_file</P>
- </TD>
- <TD WIDTH=80%>
- <P>An object of type <A HREF="rrdFile_js.html#RRDFile">RRDFile</A> or equivalent.</P>
- </TD>
- </TR>
- <TR VALIGN=TOP>
- <TD WIDTH=20%>
- <P>ds_id</P>
- </TD>
- <TD WIDTH=80%>
- <P>Identifier of the desired DS (as accepted by
- <A HREF="rrdFile_js.html#RRDFile">RRDFile.getDS()</A>).</P>
- </TD>
- </TR>
- <TR VALIGN=TOP>
- <TD WIDTH=20%>
- <P>rra_idx</P>
- </TD>
- <TD WIDTH=80%>
- <P>Index of the desired RRA.</P>
- </TD>
- </TR>
- <TR VALIGN=TOP>
- <TD WIDTH=20%>
- <P>want_rounding</P>
- </TD>
- <TD WIDTH=80%>
- <P>If not false, all timestamps will be truncated to the RRA step.</P>
- </TD>
- </TR>
- </TBODY>
- </TABLE>
-</DIV>
-<P>
-The output is an object containing:
-</P>
-<DIV ALIGN=RIGHT>
- <TABLE WIDTH=90% BORDER=1 CELLPADDING=2 CELLSPACING=3>
- <COL WIDTH=51*>
- <COL WIDTH=205*>
- <THEAD>
- <TR VALIGN=TOP>
- <TH WIDTH=20%>
- <P ALIGN=LEFT>Attribute</P>
- </TH>
- <TH WIDTH=80%>
- <P ALIGN=LEFT>Description</P>
- </TH>
- </TR>
- </THEAD>
- <TBODY>
- <TR VALIGN=TOP>
- <TD WIDTH=20%>
- <P>data</P>
- </TD>
- <TD WIDTH=80%>
- <P>A list of datapoints suitable to be fed to <A HREF="http://code.google.com/p/flot/">Flot</A>. Each element is a (Timestamp in ms, value) pair.<P>
- <P>An example of use with Flot:<BR>
-<PRE>
-var fd=rrdDS2FlotSeries(...);