treewide: always include cbi.js
[project/luci.git] / modules / luci-mod-admin-full / luasrc / view / admin_status / bandwidth.htm
index b7594bfd45c8aa6f20074d7c7c25ac71ebc58926..935e8d2b7260b827db601914eac2dd8237b242aa 100644 (file)
@@ -19,7 +19,6 @@
 
 <%+header%>
 
-<script type="text/javascript" src="<%=resource%>/cbi.js"></script>
 <script type="text/javascript">//<![CDATA[
        var bwxhr = new XHR();
 
@@ -59,6 +58,8 @@
        var label_scale;
 
 
+       Math.log2 = Math.log2 || function(x) { return Math.log(x) * Math.LOG2E; };
+
        function bandwidth_label(bytes, br)
        {
                var uby = '<%:kB/s%>';
                                        var text = G.createElementNS('http://www.w3.org/2000/svg', 'text');
                                                text.setAttribute('x', i + 5);
                                                text.setAttribute('y', 15);
-                                               text.setAttribute('style', 'fill:#999999; font-size:9pt');
+                                               text.setAttribute('style', 'fill:#999999; font-size:9pt; font-family:sans-serif');
                                                text.appendChild(G.createTextNode(Math.round((width - i) / step / 60) + 'm'));
 
                                        label_25.parentNode.appendChild(line);
                                                data_rx_avg = (data_rx_avg / Math.max(data_rx.length, 1));
                                                data_tx_avg = (data_tx_avg / Math.max(data_tx.length, 1));
 
+                                               var size = Math.floor(Math.log2(data_max)),
+                                                   div = Math.pow(2, size - (size % 10)),
+                                                   mult = data_max / div,
+                                                   mult = (mult < 5) ? 2 : ((mult < 50) ? 10 : ((mult < 500) ? 100 : 1000));
+
+                                               data_max = data_max + (mult * div) - (data_max % (mult * div));
+
                                                /* remember current timestamp, calculate horizontal scale */
                                                data_stamp = data[data.length-1][TIME];
-                                               data_scale = height / (data_max * 1.1);
-
+                                               data_scale = height / data_max;
 
                                                /* plot data */
                                                var pt_rx = '0,' + height;
                                                line_rx.setAttribute('points', pt_rx);
                                                line_tx.setAttribute('points', pt_tx);
 
-                                               label_25.firstChild.data = bandwidth_label(1.1 * 0.25 * data_max);
-                                               label_50.firstChild.data = bandwidth_label(1.1 * 0.50 * data_max);
-                                               label_75.firstChild.data = bandwidth_label(1.1 * 0.75 * data_max);
+                                               label_25.firstChild.data = bandwidth_label(0.25 * data_max);
+                                               label_50.firstChild.data = bandwidth_label(0.50 * data_max);
+                                               label_75.firstChild.data = bandwidth_label(0.75 * data_max);
 
                                                label_rx_cur.innerHTML = bandwidth_label(data_rx[data_rx.length-1], true);
                                                label_tx_cur.innerHTML = bandwidth_label(data_tx[data_tx.length-1], true);