diff --git a/httpdocs/js/graph_utils.js b/httpdocs/js/graph_utils.js index 951242ab1f..4c25316108 100644 --- a/httpdocs/js/graph_utils.js +++ b/httpdocs/js/graph_utils.js @@ -456,11 +456,10 @@ function attachStackedChartCallback(chart, schema_name, chart_id, zoom_reset_id, return false; } - if(is_user_zoom) { - var epoch = params.epoch_begin + (params.epoch_end - params.epoch_begin) / 2; - params.epoch_begin = Math.floor(epoch - max_interval / 2); - params.epoch_end = Math.ceil(epoch + max_interval / 2); - } + /* Ensure that a minimal number of points is available */ + var epoch = params.epoch_begin + (params.epoch_end - params.epoch_begin) / 2; + params.epoch_begin = Math.floor(epoch - max_interval / 2); + params.epoch_end = Math.ceil(epoch + max_interval / 2); is_max_zoom = true; chart.zoomType(null); // disable zoom diff --git a/httpdocs/js/ntop.min.js b/httpdocs/js/ntop.min.js index a5951cd0d3..e9e215d36f 100644 --- a/httpdocs/js/ntop.min.js +++ b/httpdocs/js/ntop.min.js @@ -1,2 +1,2 @@ -(function(){"use strict";var root=this;var Springy;if(typeof exports!=="undefined"){Springy=exports}else{Springy=root.Springy={}}var Graph=Springy.Graph=function(){this.nodeSet={};this.nodes=[];this.edges=[];this.adjacency={};this.nextNodeId=0;this.nextEdgeId=0;this.eventListeners=[]};var Node=Springy.Node=function(id,data){this.id=id;this.data=data!==undefined?data:{}};var Edge=Springy.Edge=function(id,source,target,data){this.id=id;this.source=source;this.target=target;this.data=data!==undefined?data:{}};Graph.prototype.addNode=function(node){if(!(node.id in this.nodeSet)){this.nodes.push(node)}this.nodeSet[node.id]=node;this.notify();return node};Graph.prototype.addNodes=function(){for(var i=0;i=0;i--){if(this.nodes[i].id===node.id){this.nodes.splice(i,1)}}this.detachNode(node)};Graph.prototype.detachNode=function(node){var tmpEdges=this.edges.slice();tmpEdges.forEach(function(e){if(e.source.id===node.id||e.target.id===node.id){this.removeEdge(e)}},this);this.notify()};Graph.prototype.removeEdge=function(edge){for(var i=this.edges.length-1;i>=0;i--){if(this.edges[i].id===edge.id){this.edges.splice(i,1)}}for(var x in this.adjacency){for(var y in this.adjacency[x]){var edges=this.adjacency[x][y];for(var j=edges.length-1;j>=0;j--){if(this.adjacency[x][y][j].id===edge.id){this.adjacency[x][y].splice(j,1)}}if(this.adjacency[x][y].length==0){delete this.adjacency[x][y]}}if(isEmpty(this.adjacency[x])){delete this.adjacency[x]}}this.notify()};Graph.prototype.merge=function(data){var nodes=[];data.nodes.forEach(function(n){nodes.push(this.addNode(new Node(n.id,n.data)))},this);data.edges.forEach(function(e){var from=nodes[e.from];var to=nodes[e.to];var id=e.directed?id=e.type+"-"+from.id+"-"+to.id:from.idtopright.x){topright.x=point.p.x}if(point.p.y>topright.y){topright.y=point.p.y}});var padding=topright.subtract(bottomleft).multiply(.07);return{bottomleft:bottomleft.subtract(padding),topright:topright.add(padding)}};var Vector=Springy.Vector=function(x,y){this.x=x;this.y=y};Vector.random=function(){return new Vector(10*(Math.random()-.5),10*(Math.random()-.5))};Vector.prototype.add=function(v2){return new Vector(this.x+v2.x,this.y+v2.y)};Vector.prototype.subtract=function(v2){return new Vector(this.x-v2.x,this.y-v2.y)};Vector.prototype.multiply=function(n){return new Vector(this.x*n,this.y*n)};Vector.prototype.divide=function(n){return new Vector(this.x/n||0,this.y/n||0)};Vector.prototype.magnitude=function(){return Math.sqrt(this.x*this.x+this.y*this.y)};Vector.prototype.normal=function(){return new Vector(-this.y,this.x)};Vector.prototype.normalise=function(){return this.divide(this.magnitude())};Layout.ForceDirected.Point=function(position,mass){this.p=position;this.m=mass;this.v=new Vector(0,0);this.a=new Vector(0,0)};Layout.ForceDirected.Point.prototype.applyForce=function(force){this.a=this.a.add(force.divide(this.m))};Layout.ForceDirected.Spring=function(point1,point2,length,k){this.point1=point1;this.point2=point2;this.length=length;this.k=k};var Renderer=Springy.Renderer=function(layout,clear,drawEdge,drawNode,onRenderStop,onRenderStart){this.layout=layout;this.clear=clear;this.drawEdge=drawEdge;this.drawNode=drawNode;this.onRenderStop=onRenderStop;this.onRenderStart=onRenderStart;this.layout.graph.addGraphListener(this)};Renderer.prototype.graphChanged=function(e){this.start()};Renderer.prototype.start=function(done){var t=this;this.layout.start(function render(){t.clear();t.layout.eachEdge(function(edge,spring){t.drawEdge(edge,spring.point1.p,spring.point2.p)});t.layout.eachNode(function(node,point){t.drawNode(node,point.p)})},this.onRenderStart,this.onRenderStop)};Renderer.prototype.stop=function(){this.layout.stop()};if(!Array.prototype.forEach){Array.prototype.forEach=function(callback,thisArg){var T,k;if(this==null){throw new TypeError(" this is null or not defined")}var O=Object(this);var len=O.length>>>0;if({}.toString.call(callback)!="[object Function]"){throw new TypeError(callback+" is not a function")}if(thisArg){T=thisArg}k=0;while(kMath.PI/2||angle<-Math.PI/2)){displacement=8;angle+=Math.PI}var textPos=s1.add(s2).divide(2).add(normal.multiply(displacement));ctx.translate(textPos.x,textPos.y);ctx.rotate(angle);ctx.fillText(text,0,-2);ctx.restore()}},function drawNode(node,p){var s=toScreen(p);ctx.save();var paddingX=6;var paddingY=6;var contentWidth=node.getWidth();var contentHeight=node.getHeight();var boxWidth=contentWidth+paddingX;var boxHeight=contentHeight+paddingY;ctx.clearRect(s.x-boxWidth/2,s.y-boxHeight/2,boxWidth,boxHeight);if(selected!==null&&selected.node!==null&&selected.node.id===node.id){ctx.fillStyle="#FFFFE0"}else if(nearest!==null&&nearest.node!==null&&nearest.node.id===node.id){ctx.fillStyle="#EEEEEE"}else{ctx.fillStyle="#FFFFFF"}ctx.fillRect(s.x-boxWidth/2,s.y-boxHeight/2,boxWidth,boxHeight);if(node.data.image==undefined){ctx.textAlign="left";ctx.textBaseline="top";ctx.font=node.data.font!==undefined?node.data.font:nodeFont;ctx.fillStyle="#000000";var text=node.data.label!==undefined?node.data.label:node.id;ctx.fillText(text,s.x-contentWidth/2,s.y-contentHeight/2);if(node.data.ip!==undefined){ctx.textBaseline="top";ctx.textAlign="center";ctx.font="8px Verdana, sans-serif";ctx.fillStyle="#000000";ctx.fillText(node.data.ip,s.x,s.y+contentHeight/2)}}else{var src=node.data.image.src;if(src in nodeImages){if(nodeImages[src].loaded){ctx.drawImage(nodeImages[src].object,s.x-contentWidth/2,s.y-contentHeight/2,contentWidth,contentHeight);if(node.data.ip!==undefined){ctx.textBaseline="top";ctx.textAlign="center";ctx.font="8px Verdana, sans-serif";ctx.fillStyle="#000000";ctx.fillText(node.data.ip,s.x,s.y+contentHeight/2)}}}else{nodeImages[src]={};var img=new Image;nodeImages[src].object=img;img.addEventListener("load",function(){nodeImages[src].loaded=true});img.src=src}}ctx.restore()});renderer.start();function intersect_line_line(p1,p2,p3,p4){var denom=(p4.y-p3.y)*(p2.x-p1.x)-(p4.x-p3.x)*(p2.y-p1.y);if(denom===0){return false}var ua=((p4.x-p3.x)*(p1.y-p3.y)-(p4.y-p3.y)*(p1.x-p3.x))/denom;var ub=((p2.x-p1.x)*(p1.y-p3.y)-(p2.y-p1.y)*(p1.x-p3.x))/denom;if(ua<0||ua>1||ub<0||ub>1){return false}return new Springy.Vector(p1.x+ua*(p2.x-p1.x),p1.y+ua*(p2.y-p1.y))}function intersect_line_box(p1,p2,p3,w,h){var tl={x:p3.x,y:p3.y};var tr={x:p3.x+w,y:p3.y};var bl={x:p3.x,y:p3.y+h};var br={x:p3.x+w,y:p3.y+h};var result;if(result=intersect_line_line(p1,p2,tl,tr)){return result}if(result=intersect_line_line(p1,p2,tr,br)){return result}if(result=intersect_line_line(p1,p2,br,bl)){return result}if(result=intersect_line_line(p1,p2,bl,tl)){return result}return false}return this}})();function datatableRemoveEmptyRow(table){$("tbody tr.emptyRow",$(table)).remove()}function datatableAddEmptyRow(table,empty_str){var columns=$("thead th",$(table)).filter(function(){return $(this).css("display")!="none"}).length;$("tbody",$(table)).html(''+empty_str+"")}function datatableGetNumDisplayedItems(table){return $("tr:not(.emptyRow)",$(table)).length-1}function datatableIsEmpty(table){return datatableGetNumDisplayedItems(table)==0}function datatableGetByForm(form){return $("table",$("#dt-top-details",$(form)).parent())}function datatableUndoAddRow(new_row,empty_str,bt_to_enable,callback_str){if(bt_to_enable)$(bt_to_enable).removeAttr("disabled");var form=$(new_row).closest("form");$(new_row).remove();aysUpdateForm(form);var dt=datatableGetByForm(form);if(datatableIsEmpty(dt))datatableAddEmptyRow(dt,empty_str);if(callback_str)window[callback_str](new_row)}function datatableForEachRow(table,callbacks){$("tr:not(:first)",table).each(function(row_i){if(typeof callbacks==="function"){callbacks.bind(this)(row_i)}else{var i;for(i=0;i'+label+"")}function datatableAddDeleteButtonCallback(td_idx,callback_str,label){datatableAddButtonCallback.bind(this)(td_idx,label,"label-danger",callback_str,"javascript:void(0)")}function datatableAddActionButtonCallback(td_idx,callback_str,label){datatableAddButtonCallback.bind(this)(td_idx,label,"label-info",callback_str,"javascript:void(0)")}function datatableAddLinkButtonCallback(td_idx,link,label){datatableAddButtonCallback.bind(this)(td_idx,label,"label-info","",link)}function datatableMakeSelectUnique(tr_obj,added_rows_prefix,options){options=paramsExtend({on_change:$.noop,selector_fn:function(obj){return obj.find("select").first()}},options);function datatableForeachSelectOtherThan(this_select,added_rows_prefix,selector_fn,callback){$("[id^="+added_rows_prefix+"]").each(function(){var other=selector_fn($(this));if(other[0]!=this_select[0])callback(other)})}function datatableOptionChangeStatus(option_obj,enable){if(enable){option_obj.removeAttr("disabled")}else{var select_obj=option_obj.closest("select");var should_reset=select_obj.val()==option_obj.val();option_obj.attr("disabled","disabled");if(should_reset){var new_val=select_obj.find("option:not([disabled])").first().val();select_obj.val(new_val);select_obj.attr("data-old-val",new_val)}}}function datatableOnSelectEntryChange(added_rows_prefix,selector_fn,change_callback){var old_value=$(this).attr("data-old-val")||"";var new_value=$(this).val()||"";var others=[];if(old_value==new_value)old_value="";datatableForeachSelectOtherThan($(this),added_rows_prefix,selector_fn,function(other){datatableOptionChangeStatus(other.find("option[value='"+old_value+"']"),true);datatableOptionChangeStatus(other.find("option[value='"+new_value+"']"),false);others.push(other)});change_callback($(this),old_value,new_value,others,datatableOptionChangeStatus);$(this).attr("data-old-val",new_value)}function datatableOnAddSelectEntry(select_obj,added_rows_prefix,selector_fn){select_obj.val("");datatableForeachSelectOtherThan(select_obj,added_rows_prefix,selector_fn,function(other){other.trigger("change")});var new_sel=select_obj.find("option:not([disabled])").first();var new_val=new_sel.val();select_obj.val(new_val);select_obj.trigger("change")}var select=options.selector_fn(tr_obj);select.on("change",function(){datatableOnSelectEntryChange.bind(this)(added_rows_prefix,options.selector_fn,options.on_change)});select.on("remove",function(){$(this).val("").trigger("change")});datatableOnAddSelectEntry(select,added_rows_prefix,options.selector_fn)}function datatableOrderedInsert(table,td_idx,to_insert,to_insert_val,cmp_fn){var cmp_fn=cmp_fn||function(a,b){return b-a};var inserted=false;datatableForEachRow(table,function(){if(inserted)return;var tr=$(this);var cmp_val=parseInt($("td:nth-child("+td_idx+")",tr).html());if(!isNaN(cmp_val)&&cmp_fn(cmp_val,to_insert_val)<0){tr.before(to_insert);inserted=true}});if(!inserted)$(table).append(to_insert)}function datatableIsLastPage(table){var lastpage=$("#dt-bottom-details .pagination li:nth-last-child(3)",$(table));return!(lastpage.length==1&&lastpage.hasClass("active")==false)}function aysHandleForm(form_selector,options){if(!form_selector)form_selector="form";if(form_selector==="form"){form_selector='form:not([data-ays-ignore="true"])'}var default_options={submit_selector:'button[type="submit"]:not([data-ays-ignore="true"])',on_dirty_callback:$.noop,on_clean_callback:$.noop,handle_submit_buttons:true,handle_datatable:false,handle_tabs:false,disable_on_dirty:"",ays_options:{}};var o=$.extend(true,{},default_options,options);o.form_selector=form_selector;$(function(){$(o.form_selector).areYouSure(o.ays_options);if(o.handle_submit_buttons)$(o.form_selector).find(o.submit_selector).attr("disabled","disabled");$(o.form_selector).on("dirty.areYouSure",function(){if(o.handle_submit_buttons)$(this).find(o.submit_selector).removeAttr("disabled");if(o.handle_datatable){$(this).find("a.dropdown-toggle").attr("disabled","disabled");$(this).find("ul.pagination a").css("pointer-events","none").css("cursor","default")}if(o.handle_tabs){$(".nav-tabs").find("a").each(function(){if(!$(this).closest("li").hasClass("active"))$(this).removeAttr("data-toggle").closest("li").addClass("disabled")})}$(o.disable_on_dirty).addClass("disabled");o.on_dirty_callback.bind(this)()});$(o.form_selector).on("clean.areYouSure",function(){if(o.handle_submit_buttons)$(this).find(o.submit_selector).attr("disabled","disabled");if(o.handle_datatable){$(this).find("a.dropdown-toggle").removeAttr("disabled");$(this).find("ul.pagination a").css("pointer-events","").css("cursor","")}if(o.handle_tabs){$(".nav-tabs").find("a").each(function(){$(this).attr("data-toggle","tab").closest("li").removeClass("disabled")})}$(o.disable_on_dirty).removeClass("disabled");o.on_clean_callback.bind(this)()})})}function aysResetForm(form_selector){$(form_selector).trigger("reinitialize.areYouSure")}function aysUpdateForm(form_selector){$(form_selector).trigger("rescan.areYouSure")}function aysRecheckForm(form_selector){$(form_selector).trigger("checkform.areYouSure")}function aysGetDirty(form_selector,fields_selector){fields_selector=fields_selector||":input:not(input[type=submit]):not(input[type=button])";var getValue=function($field){if($field.hasClass("ays-ignore")||$field.hasClass("aysIgnore")||$field.attr("data-ays-ignore")||$field.attr("name")===undefined){return null}if($field.is(":disabled")){return"ays-disabled"}var val;var type=$field.attr("type");if($field.is("select")){type="select"}switch(type){case"checkbox":case"radio":val=$field.is(":checked");break;case"select":val="";$field.find("option").each(function(o){var $option=$(this);if($option.is(":selected")){val+=$option.val()}});break;default:val=$field.val()}return val};var isFieldDirty=function($field){var origValue=$field.data("ays-orig");var curValue=getValue($field);var dirty=undefined!==origValue&&origValue!=curValue;return{dirty:dirty,origValue:origValue,curValue:curValue}};var l=[];$(form_selector).find(fields_selector).each(function(){var dirty_status=isFieldDirty($(this));if(dirty_status.dirty){dirty_status.input=$(this);l.push(dirty_status)}});return l}function is_good_ipv4(ipv4){if(/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])$/.test(ipv4)){return true}else{return false}}function is_good_ipv6(ipv6){if(/^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\:){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$|^\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?\s*$/.test(ipv6)){return true}else{return false}}function isNumeric(value){return/^\d+$/.test(value)}function is_mac_address(what){return/^([0-9A-Fa-f]{2}:){5}([0-9A-Fa-f]{2})$/.test(what)}function is_network_mask(what,optional_mask){var elems=what.split("/");var mask=null;var ip_addr;if(elems.length!=2){if(!optional_mask)return null;else ip_addr=what}else{ip_addr=elems[0];if(!isNumeric(elems[1]))return null;mask=parseInt(elems[1]);if(mask<0)return null}if(is_good_ipv4(ip_addr)){if(mask===null)mask=32;else if(mask>32)return null;return{type:"ipv4",address:ip_addr,mask:mask}}else if(is_good_ipv6(elems[0])){if(mask===null)mask=128;else if(mask>128)return false;return{type:"ipv6",address:ip_addr,mask:mask}}return null}function fbits(bits){var sizes=["bps","Kbit/s","Mbit/s","Gbit/s","Tbit/s"];if(bits<.005)return"0";var bits_log1000=Math.log(bits)/Math.log(1e3);var i=parseInt(Math.floor(bits_log1000));if(i<0||isNaN(i)){i=0}else if(i>=sizes.length){return"> "+sizes[sizes.length-1]}if(i<=1){return Math.round(bits/Math.pow(1e3,i)*100)/100+" "+sizes[i]}else{var ret=parseFloat(bits/Math.pow(1e3,i)).toFixed(2);if(ret%1==0)ret=Math.round(ret);return ret+" "+sizes[i]}}function fbits_from_bytes(bytes){return fbits(bytes*8)}function fpackets(pps){var sizes=["pps","Kpps","Mpps","Gpps","Tpps"];if(pps<.005)return"0";var res=scaleValue(pps,sizes,1e3);return Math.round(res[0]*100)/100+" "+res[1]}function fflows(fps){var sizes=["fps","Kfps","Mfps","Gfps","Tfps"];if(fps<.005)return"0";var res=scaleValue(fps,sizes,1e3);return Math.round(res[0]*100)/100+" "+res[1]}function fint(value){var x=Math.round(value);return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g,",")}function fdate(when){var epoch=when*1e3;var d=new Date(epoch);return d}function capitaliseFirstLetter(string){return string.charAt(0).toUpperCase()+string.slice(1)}String.prototype.startsWith=function(string){return this.indexOf(string)===0};function get_trend(actual,before){if(before===undefined||actual==before){return''}else{return''}}function getOSIcon(name){var icon="";if(name.search("Linux")!=-1||name.search("Ubuntu")!=-1)icon=" ";else if(name.search("Android")!=-1)icon=" ";else if(name.search("Windows")!=-1||name.search("Win32")!=-1||name.search("MSIE")!=-1)icon=" ";else if(name.search("iPhone")!=-1||name.search("iPad")!=-1||name.search("OS X")!=-1)icon=" ";return icon}function abbreviateString(str,len){if(!str)return"";if(str.length=0&&bytes=kilobyte&&bytes=megabyte&&bytes=gigabyte&&bytes=terabyte)return(bytes/terabyte).toFixed(precision)+" TB";else return bytes.toFixed(precision)+" Bytes"}String.prototype.capitalizeSingleWord=function(){var uc=this.toUpperCase();if(uc=="ASN"||uc=="OS")return uc;else return this.charAt(0).toUpperCase()+this.slice(1)};String.prototype.capitalize=function(){var res=this.split(" ");for(var i in res){res[i]=res[i].capitalizeSingleWord()}return res.join(" ")};function drawTrend(current,last,withColor){if(current==last){return''}else if(current>last){return'"}else{return''}}function toggleAllTabs(enabled){if(enabled===true)$("#historical-tabs-container").find("li").removeClass("disabled").find("a").attr("data-toggle","tab");else $("#historical-tabs-container").find("li").addClass("disabled").find("a").removeAttr("data-toggle")}function disableAllDropdownsAndTabs(){$("select").each(function(){$(this).prop("disabled",true)});toggleAllTabs(false)}function enableAllDropdownsAndTabs(){$("select").each(function(){$(this).prop("disabled",false)});toggleAllTabs(true)}function capitalize(s){return s&&s[0].toUpperCase()+s.slice(1)}function addCommas(nStr){nStr+="";var x=nStr.split(".");var x1=x[0];var x2=x.length>1?"."+x[1]:"";var rgx=/(\d+)(\d{3})/;while(rgx.test(x1)){x1=x1.replace(rgx,"$1"+","+"$2")}return x1+x2}function scaleValue(val,sizes,scale){if(val==0)return[0,sizes[0]];var i=parseInt(Math.floor(Math.log(val)/Math.log(scale)));if(i<0||isNaN(i)){i=0}else if(i>=sizes.length)i=sizes.length-1;return[val/Math.pow(scale,i),sizes[i]]}function formatValue(val){var sizes=["","K","M","G","T"];var res=scaleValue(val,sizes,1e3);return Math.round(res[0])+res[1]}function formatPackets(n){return addCommas(n.toFixed(0))+" Pkts"}function formatFlows(n){return addCommas(n.toFixed(0))+" Flows"}function fmillis(value){var x=Math.round(value);var res=scaleValue(x,["ms","s"],1e3);return res[0]+" "+res[1]}function bytesToVolume(bytes){var sizes=["Bytes","KB","MB","GB","TB"];if(bytes==0)return"0 Bytes";var res=scaleValue(bytes,sizes,1024);return res[0].toFixed(2)+" "+res[1]}function bytesToVolumeAndLabel(bytes){var sizes=["Bytes","KB","MB","GB","TB"];if(bytes==0)return"0 Bytes";var i=parseInt(Math.floor(Math.log(bytes)/Math.log(1024)));return[(bytes/Math.pow(1024,i)).toFixed(2),sizes[i]]}function bitsToSize(bits,factor){factor=factor||1e3;var sizes=["bit/s","kbit/s","Mbit/s","Gbit/s","Tbit/s"];if(bits==0)return"0 bps";var res=scaleValue(bits,sizes,factor);return res[0].toFixed(2)+" "+res[1]}function secondsToTime(seconds){if(seconds<1){return"< 1 sec"}var days=Math.floor(seconds/86400);var hours=Math.floor(seconds/3600-days*24);var minutes=Math.floor(seconds/60-days*1440-hours*60);var sec=seconds%60;var msg="",msg_array=[];if(days>0){years=Math.floor(days/365);if(years>0){days=days%365;msg=years+" year";if(years>1){msg+="s"}msg_array.push(msg);msg=""}msg=days+" day";if(days>1){msg+="s"}msg_array.push(msg);msg=""}if(hours>0){if(hours<10){msg="0"}msg+=hours+":"}if(minutes<10){msg+="0"}msg+=minutes+":";if(sec<10){msg+="0"}msg+=sec;msg_array.push(msg);return msg_array.join(", ")}Date.prototype.format=function(format){var o={"M+":this.getMonth()+1,"d+":this.getDate(),"h+":this.getHours(),"m+":this.getMinutes(),"s+":this.getSeconds(),"q+":Math.floor((this.getMonth()+3)/3),S:this.getMilliseconds()};if(/(y+)/.test(format))format=format.replace(RegExp.$1,(this.getFullYear()+"").substr(4-RegExp.$1.length));for(var k in o)if(new RegExp("("+k+")").test(format))format=format.replace(RegExp.$1,RegExp.$1.length==1?o[k]:("00"+o[k]).substr((""+o[k]).length));return format};function epoch2Seen(epoch){var d=new Date(epoch*1e3);var tdiff=Math.floor((new Date).getTime()/1e3-epoch);return d.format("dd/MM/yyyy hh:mm:ss")+" ["+secondsToTime(tdiff)+" ago]"}function graphGetXAxisTicksFormat(diff_epoch){var tickFormat;if(diff_epoch<=86400){tickFormat="%H:%M:%S"}else if(diff_epoch<=2*86400){tickFormat="%b %e, %H:%M:%S"}else{tickFormat="%b %e"}return tickFormat}function paramsExtend(defaults,override){return $.extend({},defaults,override)}function paramsToForm(form,params){form=$(form);for(var k in params){if(params.hasOwnProperty(k)){var input=$('');input.appendTo(form)}}return form}function paramsPairsEncode(params){var i=0;var res={};for(var k in params){res["key_"+i]=k;res["val_"+i]=params[k];i=i+1}return res}jQuery.fn.extend({disable:function(state){return this.each(function(){var $this=$(this);if($this.is("input, button, textarea, select"))this.disabled=state;else $this.toggleClass("disabled",state)})}});function hostkey2hostInfo(host_key){var info;var hostinfo=[];host_key=host_key.replace(/____/g,":");host_key=host_key.replace(/___/g,"/");host_key=host_key.replace(/__/g,".");info=host_key.split("@");return info}function handle_tab_state(nav_object,default_tab){$("a",nav_object).click(function(e){e.preventDefault()});$(" > li > a",nav_object).on("shown.bs.tab",function(e){var id=$(e.target).attr("href").substr(1);if(history.replaceState){history.replaceState(null,null,"#"+id)}else{window.location.hash=id}});var hash=window.location.hash;if(!hash)hash="#"+default_tab;$('a[href="'+hash+'"]',nav_object).tab("show")}String.prototype.sformat=function(){var args=arguments;return this.replace(/{(\d+)}/g,function(match,number){return typeof args[number]!="undefined"?args[number]:match})};if(typeof String.prototype.contains==="undefined"){String.prototype.contains=function(s){return this.indexOf(s)!==-1}}function makeFindHostBeforeSubmitCallback(http_prefix){return function(form,data){if(data.type=="mac"){form.attr("action",http_prefix+"/lua/mac_details.lua")}else if(data.type=="snmp"){form.attr("action",http_prefix+"/lua/pro/enterprise/snmp_interface_details.lua");$("").attr({type:"hidden",id:"snmp_port_idx",name:"snmp_port_idx",value:data.snmp_port_idx}).appendTo(form)}else{form.attr("action",http_prefix+"/lua/host_details.lua")}return true}}function tstampToDateString(html_tag,format,tdiff){tdiff=tdiff||0;var timestamp=parseInt(html_tag.html())+tdiff;var localized=d3.time.format(format)(new Date(timestamp*1e3));html_tag.html(localized).removeClass("hidden");return localized}function cleanCustomHostUrl(host){return host.replace(/^http:\/\//gi,"").replace(/^https:\/\//gi,"").replace(/^www\./gi,"").replace(/[^0-9a-zA-Z\.\/_-]/gi,"")}function parseQuery(queryString){var query={};var pairs=(queryString[0]==="?"?queryString.substr(1):queryString).split("&");for(var i=0;icount){console.error("points mismatch: serie '"+getSerieLabel(schema_name,series[i])+"' has "+data.length+" points, expected "+count);rv=false}else if(data.length.1)return res}function buildTimeArray(start_time,end_time,step){var arr=[];for(var t=start_time;t$.now())$("#btn-jump-time-ahead").addClass("disabled");else $("#btn-jump-time-ahead").removeClass("disabled")}function attachStackedChartCallback(chart,schema_name,chart_id,zoom_reset_id,flows_dt,params,step,align_step,show_all_smooth,initial_range){var pending_request=null;var d3_sel=d3.select(chart_id);var $chart=$(chart_id);var $zoom_reset=$(zoom_reset_id);var $graph_zoom=$("#graph_zoom");var max_interval=findActualStep(step,params.epoch_begin)*8;var initial_interval=params.epoch_end-params.epoch_begin;var is_max_zoom=initial_interval<=max_interval;var url=http_prefix+"/lua/get_ts.lua";var first_load=true;var first_time_loaded=true;var datetime_format="dd/MM/yyyy hh:mm:ss";var max_over_total_ratio=3;var spinner=$('');$chart.parent().css("position","relative");var chart_colors_full=["#69B87F","#94CFA4","#B3DEB6","#E5F1A6","#FFFCC6","#FEDEA5","#FFB97B","#FF8D6D","#E27B85"];var chart_colors_min=["#7CC28F","#FCD384","#FD977B"];var update_chart_data=function(new_data){d3_sel.datum([]).call(chart);d3_sel.datum(new_data).transition().call(chart);nv.utils.windowResize(chart.update);pending_request=null;spinner.remove()};function isLegendDisabled(key,default_val){if(typeof localStorage!=="undefined"){var val=localStorage.getItem("chart_series.disabled."+key);if(val!=null)return val==="true"}return default_val}chart.legend.dispatch.on("legendClick",function(d,i){if(typeof localStorage!=="undefined")localStorage.setItem("chart_series.disabled."+d.legend_key,!d.disabled?true:false)});chart.dispatch.on("zoom",function(e){var cur_zoom=[params.epoch_begin,params.epoch_end];var t_start=Math.floor(e.xDomain[0]);var t_end=Math.ceil(e.xDomain[1]);var old_zoomed=chart.is_zoomed;var is_user_zoom=typeof e.is_user_zoom!=="undefined"?e.is_user_zoom:true;chart.is_zoomed=true;if(chart.updateStackedChart(t_start,t_end,false,is_user_zoom)){if(is_user_zoom||e.push_state){current_zoom_level+=1;var url=getHistoryParameters({epoch_begin:t_start,epoch_end:t_end});history.pushState({zoom_level:current_zoom_level,range:[t_start,t_end]},"",url)}chart.fixChartButtons()}else chart.is_zoomed=old_zoomed});function updateZoom(zoom,is_user_zoom,force){var t_start=zoom[0];var t_end=zoom[1];chart.updateStackedChart(t_start,t_end,false,is_user_zoom,null,force);chart.fixChartButtons()}$chart.on("dblclick",function(){if(current_zoom_level){history.back()}});$zoom_reset.on("click",function(){if(current_zoom_level){history.go(-current_zoom_level)}});window.addEventListener("popstate",function(e){var zoom=initial_range;if(e.state){zoom=e.state.range;current_zoom_level=e.state.zoom_level}else current_zoom_level=0;updateZoom(zoom,true,true)});chart.fixChartButtons=function(){if(current_zoom_level>0||has_initial_zoom()){$graph_zoom.find(".btn-warning:not(.custom-zoom-btn)").addClass("initial-zoom-sel").removeClass("btn-warning");$graph_zoom.find(".custom-zoom-btn").css("visibility","visible");var zoom_link=$graph_zoom.find(".custom-zoom-btn input");var link=zoom_link.val().replace(/&epoch_begin=.*/,"");link+="&epoch_begin="+params.epoch_begin+"&epoch_end="+params.epoch_end;zoom_link.val(link)}else{$graph_zoom.find(".initial-zoom-sel").addClass("btn-warning");$graph_zoom.find(".custom-zoom-btn").css("visibility","hidden");chart.is_zoomed=false}fixJumpButtons(params.epoch_end);if(current_zoom_level>0)$zoom_reset.show();else $zoom_reset.hide()};var old_start,old_end,old_interval;chart.updateStackedChart=function(tstart,tend,no_spinner,is_user_zoom,on_load_callback,force_update){if(tstart)params.epoch_begin=tstart;if(tend)params.epoch_end=tend;var cur_interval=params.epoch_end-params.epoch_begin;var actual_step=findActualStep(step,params.epoch_begin);max_interval=actual_step*8;if(cur_intervalmax_interval){is_max_zoom=false;chart.zoomType("x")}old_interval=cur_interval;if(!first_load||has_initial_zoom()||force_update)align_step=null;fixTimeRange(chart,params,align_step,actual_step);if(old_start==params.epoch_begin&&old_end==params.epoch_end)return false;old_start=params.epoch_begin;old_end=params.epoch_end;if(pending_request)pending_request.abort();else if(!no_spinner)spinner.appendTo($chart.parent());$("#period_begin").data("DateTimePicker").date(new Date(params.epoch_begin*1e3));$("#period_end").data("DateTimePicker").date(new Date(params.epoch_end*1e3));pending_request=$.get(url,params,function(data){if(!data||!data.series||!data.series.length||!checkSeriesConsinstency(schema_name,data.count,data.series)){update_chart_data([]);return}var res=[];var series=data.series;var total_serie;var color_i=0;var chart_colors=series.length<=chart_colors_min.length?chart_colors_min:chart_colors_full;for(var j=0;jmax_over_total_ratio)is_disabled=true;res.push({key:capitaliseFirstLetter(key),yAxis:1,values:values,type:"line",classed:"line-dashed line-animated",color:"#7E91A0",legend_key:key,disabled:is_disabled})}}if(!data.no_trend&&has_full_data&&total_serie.length>=3){var num_smoothed_points=Math.max(Math.floor(total_serie.length/5),3);var smooth_functions={trend:[graph_i18n.trend,"#62ADF6",smooth,num_smoothed_points],ema:["EMA","#F96BFF",exponentialMovingAverageArray,{periods:num_smoothed_points}],sma:["SMA","#A900FF",simpleMovingAverageArray,{periods:num_smoothed_points}],rsi:["RSI cur vs past","#00FF5D",relativeStrengthIndexArray,{periods:num_smoothed_points}]};function add_smoothed_serie(fn_to_use){var options=smooth_functions[fn_to_use];var smoothed;if(fn_to_use=="rsi"){if(!past_serie)return;var delta_serie=[];for(var i=0;i0){var aligned;if(fn_to_use!="ema"&&fn_to_use!="sma"&&fn_to_use!="rsi"){var scale=d3.max(total_serie)/max_val;var scaled=$.map(smoothed,function(x){return x*scale});aligned=upsampleSerie(scaled,data.count)}else{var remaining=data.count-smoothed.length;var to_fill=remaining0||enabled_series.length==0){for(var i=0;i0){chart.legend.updateState(false)}update_chart_data(res);first_time_loaded=false}).fail(function(xhr,status,error){if(xhr.statusText=="abort"){return}console.error("Error while retrieving the timeseries data ["+status+"]: "+error);update_chart_data([])});if(first_load){first_load=false}else{if(flows_dt.data("datatable"))flows_dt.data("datatable").render()}if(typeof on_load_callback==="function")on_load_callback(chart);return true}}function updateGraphsTableView(graph_table,view,graph_params,has_nindex,nindex_query){nindex_query=nindex_query+"&begin_time_clause="+graph_params.epoch_begin+"&end_time_clause="+graph_params.epoch_end;nindex_buttons='
";nindex_buttons+='
";if(view.columns){var url=http_prefix+(view.nindex_view?"/lua/enterprise/get_nindex_flows.lua":"/lua/enterprise/get_ts_table.lua");var params_obj=graph_params.ts_query.split(",").reduce(function(params,value){var v=value.split(":");params[v[0]]=v[1];return params},{});var added_drilldown=false;var columns=view.columns.map(function(col){return{title:col[1],field:col[0],css:{textAlign:col[2],width:col[3]}}});if(has_nindex){columns.unshift({title:"",field:"drilldown",css:{width:"1%"}});added_drilldown=true}graph_table.removeData("datatable");graph_table.html("");graph_table.datatable({title:"",url:url,post:function(){var params=$.extend({},graph_params);delete params.ts_compare;delete params.initial_point;params.limit=1;params.detail_view=view.id;return params},loadingYOffset:40,columns:columns,buttons:view.nindex_view?[nindex_buttons]:[],tableCallback:function(){var data=this.resultset;var stats_div=$("#chart1-flows-stats");var has_drilldown=data&&data.data.some(function(row){return row.drilldown});if(!has_drilldown&&added_drilldown)$("table td:first-child, th:first-child",graph_table).remove();if(data&&data.stats&&data.stats.loading_time){$("#flows-load-time").html(data.stats.loading_time);$("#flows-processed-records").html(data.stats.num_records_processed);stats_div.show()}else stats_div.hide()},rowCallback:function(row,row_data){if(typeof row_data.tags==="object"&&(params_obj.category&&row_data.tags.category===params_obj.category||params_obj.protocol&&row_data.tags.protocol===params_obj.protocol)){row.addClass("info")}return row}})}}function makeUniqueValidator(items_function){return function(field){var cmp_name=field.val();var count=0;if(!cmp_name)return true;items_function(field).each(function(){var name=$(this).val();if(name==cmp_name)count=count+1});return count==1}}function memberValueValidator(input){var member=input.val();if(member==="")return true;return is_mac_address(member)||is_network_mask(member,true)}function makePasswordPatternValidator(pattern){return function passwordPatternValidator(input){if(!input.val())return true;return $(input).val().match(pattern)}}function passwordMatchValidator(input){var other_input=$(input).closest("form").find("[data-passwordmatch]").not(input);if(!input.val()||!other_input.val())return true;return other_input.val()===input.val()}function poolnameValidator(input){if(!input.val())return true;return $(input).val().match(/^[a-z0-9_]*$/)}function passwordMatchRecheck(form){var items=$(form).find("[data-passwordmatch]");var not_empty=0;items.each(function(){if($(this).val()!="")not_empty++});if(not_empty==items.length)items.trigger("input")}function hostOrMacValidator(input){var host=input.val();if(host==="")return true;return is_mac_address(host)||is_good_ipv4(host)||is_good_ipv6(host)} +(function(){"use strict";var root=this;var Springy;if(typeof exports!=="undefined"){Springy=exports}else{Springy=root.Springy={}}var Graph=Springy.Graph=function(){this.nodeSet={};this.nodes=[];this.edges=[];this.adjacency={};this.nextNodeId=0;this.nextEdgeId=0;this.eventListeners=[]};var Node=Springy.Node=function(id,data){this.id=id;this.data=data!==undefined?data:{}};var Edge=Springy.Edge=function(id,source,target,data){this.id=id;this.source=source;this.target=target;this.data=data!==undefined?data:{}};Graph.prototype.addNode=function(node){if(!(node.id in this.nodeSet)){this.nodes.push(node)}this.nodeSet[node.id]=node;this.notify();return node};Graph.prototype.addNodes=function(){for(var i=0;i=0;i--){if(this.nodes[i].id===node.id){this.nodes.splice(i,1)}}this.detachNode(node)};Graph.prototype.detachNode=function(node){var tmpEdges=this.edges.slice();tmpEdges.forEach(function(e){if(e.source.id===node.id||e.target.id===node.id){this.removeEdge(e)}},this);this.notify()};Graph.prototype.removeEdge=function(edge){for(var i=this.edges.length-1;i>=0;i--){if(this.edges[i].id===edge.id){this.edges.splice(i,1)}}for(var x in this.adjacency){for(var y in this.adjacency[x]){var edges=this.adjacency[x][y];for(var j=edges.length-1;j>=0;j--){if(this.adjacency[x][y][j].id===edge.id){this.adjacency[x][y].splice(j,1)}}if(this.adjacency[x][y].length==0){delete this.adjacency[x][y]}}if(isEmpty(this.adjacency[x])){delete this.adjacency[x]}}this.notify()};Graph.prototype.merge=function(data){var nodes=[];data.nodes.forEach(function(n){nodes.push(this.addNode(new Node(n.id,n.data)))},this);data.edges.forEach(function(e){var from=nodes[e.from];var to=nodes[e.to];var id=e.directed?id=e.type+"-"+from.id+"-"+to.id:from.idtopright.x){topright.x=point.p.x}if(point.p.y>topright.y){topright.y=point.p.y}});var padding=topright.subtract(bottomleft).multiply(.07);return{bottomleft:bottomleft.subtract(padding),topright:topright.add(padding)}};var Vector=Springy.Vector=function(x,y){this.x=x;this.y=y};Vector.random=function(){return new Vector(10*(Math.random()-.5),10*(Math.random()-.5))};Vector.prototype.add=function(v2){return new Vector(this.x+v2.x,this.y+v2.y)};Vector.prototype.subtract=function(v2){return new Vector(this.x-v2.x,this.y-v2.y)};Vector.prototype.multiply=function(n){return new Vector(this.x*n,this.y*n)};Vector.prototype.divide=function(n){return new Vector(this.x/n||0,this.y/n||0)};Vector.prototype.magnitude=function(){return Math.sqrt(this.x*this.x+this.y*this.y)};Vector.prototype.normal=function(){return new Vector(-this.y,this.x)};Vector.prototype.normalise=function(){return this.divide(this.magnitude())};Layout.ForceDirected.Point=function(position,mass){this.p=position;this.m=mass;this.v=new Vector(0,0);this.a=new Vector(0,0)};Layout.ForceDirected.Point.prototype.applyForce=function(force){this.a=this.a.add(force.divide(this.m))};Layout.ForceDirected.Spring=function(point1,point2,length,k){this.point1=point1;this.point2=point2;this.length=length;this.k=k};var Renderer=Springy.Renderer=function(layout,clear,drawEdge,drawNode,onRenderStop,onRenderStart){this.layout=layout;this.clear=clear;this.drawEdge=drawEdge;this.drawNode=drawNode;this.onRenderStop=onRenderStop;this.onRenderStart=onRenderStart;this.layout.graph.addGraphListener(this)};Renderer.prototype.graphChanged=function(e){this.start()};Renderer.prototype.start=function(done){var t=this;this.layout.start(function render(){t.clear();t.layout.eachEdge(function(edge,spring){t.drawEdge(edge,spring.point1.p,spring.point2.p)});t.layout.eachNode(function(node,point){t.drawNode(node,point.p)})},this.onRenderStart,this.onRenderStop)};Renderer.prototype.stop=function(){this.layout.stop()};if(!Array.prototype.forEach){Array.prototype.forEach=function(callback,thisArg){var T,k;if(this==null){throw new TypeError(" this is null or not defined")}var O=Object(this);var len=O.length>>>0;if({}.toString.call(callback)!="[object Function]"){throw new TypeError(callback+" is not a function")}if(thisArg){T=thisArg}k=0;while(kMath.PI/2||angle<-Math.PI/2)){displacement=8;angle+=Math.PI}var textPos=s1.add(s2).divide(2).add(normal.multiply(displacement));ctx.translate(textPos.x,textPos.y);ctx.rotate(angle);ctx.fillText(text,0,-2);ctx.restore()}},function drawNode(node,p){var s=toScreen(p);ctx.save();var paddingX=6;var paddingY=6;var contentWidth=node.getWidth();var contentHeight=node.getHeight();var boxWidth=contentWidth+paddingX;var boxHeight=contentHeight+paddingY;ctx.clearRect(s.x-boxWidth/2,s.y-boxHeight/2,boxWidth,boxHeight);if(selected!==null&&selected.node!==null&&selected.node.id===node.id){ctx.fillStyle="#FFFFE0"}else if(nearest!==null&&nearest.node!==null&&nearest.node.id===node.id){ctx.fillStyle="#EEEEEE"}else{ctx.fillStyle="#FFFFFF"}ctx.fillRect(s.x-boxWidth/2,s.y-boxHeight/2,boxWidth,boxHeight);if(node.data.image==undefined){ctx.textAlign="left";ctx.textBaseline="top";ctx.font=node.data.font!==undefined?node.data.font:nodeFont;ctx.fillStyle="#000000";var text=node.data.label!==undefined?node.data.label:node.id;ctx.fillText(text,s.x-contentWidth/2,s.y-contentHeight/2);if(node.data.ip!==undefined){ctx.textBaseline="top";ctx.textAlign="center";ctx.font="8px Verdana, sans-serif";ctx.fillStyle="#000000";ctx.fillText(node.data.ip,s.x,s.y+contentHeight/2)}}else{var src=node.data.image.src;if(src in nodeImages){if(nodeImages[src].loaded){ctx.drawImage(nodeImages[src].object,s.x-contentWidth/2,s.y-contentHeight/2,contentWidth,contentHeight);if(node.data.ip!==undefined){ctx.textBaseline="top";ctx.textAlign="center";ctx.font="8px Verdana, sans-serif";ctx.fillStyle="#000000";ctx.fillText(node.data.ip,s.x,s.y+contentHeight/2)}}}else{nodeImages[src]={};var img=new Image;nodeImages[src].object=img;img.addEventListener("load",function(){nodeImages[src].loaded=true});img.src=src}}ctx.restore()});renderer.start();function intersect_line_line(p1,p2,p3,p4){var denom=(p4.y-p3.y)*(p2.x-p1.x)-(p4.x-p3.x)*(p2.y-p1.y);if(denom===0){return false}var ua=((p4.x-p3.x)*(p1.y-p3.y)-(p4.y-p3.y)*(p1.x-p3.x))/denom;var ub=((p2.x-p1.x)*(p1.y-p3.y)-(p2.y-p1.y)*(p1.x-p3.x))/denom;if(ua<0||ua>1||ub<0||ub>1){return false}return new Springy.Vector(p1.x+ua*(p2.x-p1.x),p1.y+ua*(p2.y-p1.y))}function intersect_line_box(p1,p2,p3,w,h){var tl={x:p3.x,y:p3.y};var tr={x:p3.x+w,y:p3.y};var bl={x:p3.x,y:p3.y+h};var br={x:p3.x+w,y:p3.y+h};var result;if(result=intersect_line_line(p1,p2,tl,tr)){return result}if(result=intersect_line_line(p1,p2,tr,br)){return result}if(result=intersect_line_line(p1,p2,br,bl)){return result}if(result=intersect_line_line(p1,p2,bl,tl)){return result}return false}return this}})();function datatableRemoveEmptyRow(table){$("tbody tr.emptyRow",$(table)).remove()}function datatableAddEmptyRow(table,empty_str){var columns=$("thead th",$(table)).filter(function(){return $(this).css("display")!="none"}).length;$("tbody",$(table)).html(''+empty_str+"")}function datatableGetNumDisplayedItems(table){return $("tr:not(.emptyRow)",$(table)).length-1}function datatableIsEmpty(table){return datatableGetNumDisplayedItems(table)==0}function datatableGetByForm(form){return $("table",$("#dt-top-details",$(form)).parent())}function datatableUndoAddRow(new_row,empty_str,bt_to_enable,callback_str){if(bt_to_enable)$(bt_to_enable).removeAttr("disabled");var form=$(new_row).closest("form");$(new_row).remove();aysUpdateForm(form);var dt=datatableGetByForm(form);if(datatableIsEmpty(dt))datatableAddEmptyRow(dt,empty_str);if(callback_str)window[callback_str](new_row)}function datatableForEachRow(table,callbacks){$("tr:not(:first)",table).each(function(row_i){if(typeof callbacks==="function"){callbacks.bind(this)(row_i)}else{var i;for(i=0;i'+label+"")}function datatableAddDeleteButtonCallback(td_idx,callback_str,label){datatableAddButtonCallback.bind(this)(td_idx,label,"label-danger",callback_str,"javascript:void(0)")}function datatableAddActionButtonCallback(td_idx,callback_str,label){datatableAddButtonCallback.bind(this)(td_idx,label,"label-info",callback_str,"javascript:void(0)")}function datatableAddLinkButtonCallback(td_idx,link,label){datatableAddButtonCallback.bind(this)(td_idx,label,"label-info","",link)}function datatableMakeSelectUnique(tr_obj,added_rows_prefix,options){options=paramsExtend({on_change:$.noop,selector_fn:function(obj){return obj.find("select").first()}},options);function datatableForeachSelectOtherThan(this_select,added_rows_prefix,selector_fn,callback){$("[id^="+added_rows_prefix+"]").each(function(){var other=selector_fn($(this));if(other[0]!=this_select[0])callback(other)})}function datatableOptionChangeStatus(option_obj,enable){if(enable){option_obj.removeAttr("disabled")}else{var select_obj=option_obj.closest("select");var should_reset=select_obj.val()==option_obj.val();option_obj.attr("disabled","disabled");if(should_reset){var new_val=select_obj.find("option:not([disabled])").first().val();select_obj.val(new_val);select_obj.attr("data-old-val",new_val)}}}function datatableOnSelectEntryChange(added_rows_prefix,selector_fn,change_callback){var old_value=$(this).attr("data-old-val")||"";var new_value=$(this).val()||"";var others=[];if(old_value==new_value)old_value="";datatableForeachSelectOtherThan($(this),added_rows_prefix,selector_fn,function(other){datatableOptionChangeStatus(other.find("option[value='"+old_value+"']"),true);datatableOptionChangeStatus(other.find("option[value='"+new_value+"']"),false);others.push(other)});change_callback($(this),old_value,new_value,others,datatableOptionChangeStatus);$(this).attr("data-old-val",new_value)}function datatableOnAddSelectEntry(select_obj,added_rows_prefix,selector_fn){select_obj.val("");datatableForeachSelectOtherThan(select_obj,added_rows_prefix,selector_fn,function(other){other.trigger("change")});var new_sel=select_obj.find("option:not([disabled])").first();var new_val=new_sel.val();select_obj.val(new_val);select_obj.trigger("change")}var select=options.selector_fn(tr_obj);select.on("change",function(){datatableOnSelectEntryChange.bind(this)(added_rows_prefix,options.selector_fn,options.on_change)});select.on("remove",function(){$(this).val("").trigger("change")});datatableOnAddSelectEntry(select,added_rows_prefix,options.selector_fn)}function datatableOrderedInsert(table,td_idx,to_insert,to_insert_val,cmp_fn){var cmp_fn=cmp_fn||function(a,b){return b-a};var inserted=false;datatableForEachRow(table,function(){if(inserted)return;var tr=$(this);var cmp_val=parseInt($("td:nth-child("+td_idx+")",tr).html());if(!isNaN(cmp_val)&&cmp_fn(cmp_val,to_insert_val)<0){tr.before(to_insert);inserted=true}});if(!inserted)$(table).append(to_insert)}function datatableIsLastPage(table){var lastpage=$("#dt-bottom-details .pagination li:nth-last-child(3)",$(table));return!(lastpage.length==1&&lastpage.hasClass("active")==false)}function aysHandleForm(form_selector,options){if(!form_selector)form_selector="form";if(form_selector==="form"){form_selector='form:not([data-ays-ignore="true"])'}var default_options={submit_selector:'button[type="submit"]:not([data-ays-ignore="true"])',on_dirty_callback:$.noop,on_clean_callback:$.noop,handle_submit_buttons:true,handle_datatable:false,handle_tabs:false,disable_on_dirty:"",ays_options:{}};var o=$.extend(true,{},default_options,options);o.form_selector=form_selector;$(function(){$(o.form_selector).areYouSure(o.ays_options);if(o.handle_submit_buttons)$(o.form_selector).find(o.submit_selector).attr("disabled","disabled");$(o.form_selector).on("dirty.areYouSure",function(){if(o.handle_submit_buttons)$(this).find(o.submit_selector).removeAttr("disabled");if(o.handle_datatable){$(this).find("a.dropdown-toggle").attr("disabled","disabled");$(this).find("ul.pagination a").css("pointer-events","none").css("cursor","default")}if(o.handle_tabs){$(".nav-tabs").find("a").each(function(){if(!$(this).closest("li").hasClass("active"))$(this).removeAttr("data-toggle").closest("li").addClass("disabled")})}$(o.disable_on_dirty).addClass("disabled");o.on_dirty_callback.bind(this)()});$(o.form_selector).on("clean.areYouSure",function(){if(o.handle_submit_buttons)$(this).find(o.submit_selector).attr("disabled","disabled");if(o.handle_datatable){$(this).find("a.dropdown-toggle").removeAttr("disabled");$(this).find("ul.pagination a").css("pointer-events","").css("cursor","")}if(o.handle_tabs){$(".nav-tabs").find("a").each(function(){$(this).attr("data-toggle","tab").closest("li").removeClass("disabled")})}$(o.disable_on_dirty).removeClass("disabled");o.on_clean_callback.bind(this)()})})}function aysResetForm(form_selector){$(form_selector).trigger("reinitialize.areYouSure")}function aysUpdateForm(form_selector){$(form_selector).trigger("rescan.areYouSure")}function aysRecheckForm(form_selector){$(form_selector).trigger("checkform.areYouSure")}function aysGetDirty(form_selector,fields_selector){fields_selector=fields_selector||":input:not(input[type=submit]):not(input[type=button])";var getValue=function($field){if($field.hasClass("ays-ignore")||$field.hasClass("aysIgnore")||$field.attr("data-ays-ignore")||$field.attr("name")===undefined){return null}if($field.is(":disabled")){return"ays-disabled"}var val;var type=$field.attr("type");if($field.is("select")){type="select"}switch(type){case"checkbox":case"radio":val=$field.is(":checked");break;case"select":val="";$field.find("option").each(function(o){var $option=$(this);if($option.is(":selected")){val+=$option.val()}});break;default:val=$field.val()}return val};var isFieldDirty=function($field){var origValue=$field.data("ays-orig");var curValue=getValue($field);var dirty=undefined!==origValue&&origValue!=curValue;return{dirty:dirty,origValue:origValue,curValue:curValue}};var l=[];$(form_selector).find(fields_selector).each(function(){var dirty_status=isFieldDirty($(this));if(dirty_status.dirty){dirty_status.input=$(this);l.push(dirty_status)}});return l}function is_good_ipv4(ipv4){if(/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])$/.test(ipv4)){return true}else{return false}}function is_good_ipv6(ipv6){if(/^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\:){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$|^\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?\s*$/.test(ipv6)){return true}else{return false}}function isNumeric(value){return/^\d+$/.test(value)}function is_mac_address(what){return/^([0-9A-Fa-f]{2}:){5}([0-9A-Fa-f]{2})$/.test(what)}function is_network_mask(what,optional_mask){var elems=what.split("/");var mask=null;var ip_addr;if(elems.length!=2){if(!optional_mask)return null;else ip_addr=what}else{ip_addr=elems[0];if(!isNumeric(elems[1]))return null;mask=parseInt(elems[1]);if(mask<0)return null}if(is_good_ipv4(ip_addr)){if(mask===null)mask=32;else if(mask>32)return null;return{type:"ipv4",address:ip_addr,mask:mask}}else if(is_good_ipv6(elems[0])){if(mask===null)mask=128;else if(mask>128)return false;return{type:"ipv6",address:ip_addr,mask:mask}}return null}function fbits(bits){var sizes=["bps","Kbit/s","Mbit/s","Gbit/s","Tbit/s"];if(bits<.005)return"0";var bits_log1000=Math.log(bits)/Math.log(1e3);var i=parseInt(Math.floor(bits_log1000));if(i<0||isNaN(i)){i=0}else if(i>=sizes.length){return"> "+sizes[sizes.length-1]}if(i<=1){return Math.round(bits/Math.pow(1e3,i)*100)/100+" "+sizes[i]}else{var ret=parseFloat(bits/Math.pow(1e3,i)).toFixed(2);if(ret%1==0)ret=Math.round(ret);return ret+" "+sizes[i]}}function fbits_from_bytes(bytes){return fbits(bytes*8)}function fpackets(pps){var sizes=["pps","Kpps","Mpps","Gpps","Tpps"];if(pps<.005)return"0";var res=scaleValue(pps,sizes,1e3);return Math.round(res[0]*100)/100+" "+res[1]}function fflows(fps){var sizes=["fps","Kfps","Mfps","Gfps","Tfps"];if(fps<.005)return"0";var res=scaleValue(fps,sizes,1e3);return Math.round(res[0]*100)/100+" "+res[1]}function fint(value){var x=Math.round(value);return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g,",")}function fdate(when){var epoch=when*1e3;var d=new Date(epoch);return d}function capitaliseFirstLetter(string){return string.charAt(0).toUpperCase()+string.slice(1)}String.prototype.startsWith=function(string){return this.indexOf(string)===0};function get_trend(actual,before){if(before===undefined||actual==before){return''}else{return''}}function getOSIcon(name){var icon="";if(name.search("Linux")!=-1||name.search("Ubuntu")!=-1)icon=" ";else if(name.search("Android")!=-1)icon=" ";else if(name.search("Windows")!=-1||name.search("Win32")!=-1||name.search("MSIE")!=-1)icon=" ";else if(name.search("iPhone")!=-1||name.search("iPad")!=-1||name.search("OS X")!=-1)icon=" ";return icon}function abbreviateString(str,len){if(!str)return"";if(str.length=0&&bytes=kilobyte&&bytes=megabyte&&bytes=gigabyte&&bytes=terabyte)return(bytes/terabyte).toFixed(precision)+" TB";else return bytes.toFixed(precision)+" Bytes"}String.prototype.capitalizeSingleWord=function(){var uc=this.toUpperCase();if(uc=="ASN"||uc=="OS")return uc;else return this.charAt(0).toUpperCase()+this.slice(1)};String.prototype.capitalize=function(){var res=this.split(" ");for(var i in res){res[i]=res[i].capitalizeSingleWord()}return res.join(" ")};function drawTrend(current,last,withColor){if(current==last){return''}else if(current>last){return'"}else{return''}}function toggleAllTabs(enabled){if(enabled===true)$("#historical-tabs-container").find("li").removeClass("disabled").find("a").attr("data-toggle","tab");else $("#historical-tabs-container").find("li").addClass("disabled").find("a").removeAttr("data-toggle")}function disableAllDropdownsAndTabs(){$("select").each(function(){$(this).prop("disabled",true)});toggleAllTabs(false)}function enableAllDropdownsAndTabs(){$("select").each(function(){$(this).prop("disabled",false)});toggleAllTabs(true)}function capitalize(s){return s&&s[0].toUpperCase()+s.slice(1)}function addCommas(nStr){nStr+="";var x=nStr.split(".");var x1=x[0];var x2=x.length>1?"."+x[1]:"";var rgx=/(\d+)(\d{3})/;while(rgx.test(x1)){x1=x1.replace(rgx,"$1"+","+"$2")}return x1+x2}function scaleValue(val,sizes,scale){if(val==0)return[0,sizes[0]];var i=parseInt(Math.floor(Math.log(val)/Math.log(scale)));if(i<0||isNaN(i)){i=0}else if(i>=sizes.length)i=sizes.length-1;return[val/Math.pow(scale,i),sizes[i]]}function formatValue(val){var sizes=["","K","M","G","T"];var res=scaleValue(val,sizes,1e3);return Math.round(res[0])+res[1]}function formatPackets(n){return addCommas(n.toFixed(0))+" Pkts"}function formatFlows(n){return addCommas(n.toFixed(0))+" Flows"}function fmillis(value){var x=Math.round(value);var res=scaleValue(x,["ms","s"],1e3);return res[0]+" "+res[1]}function bytesToVolume(bytes){var sizes=["Bytes","KB","MB","GB","TB"];if(bytes==0)return"0 Bytes";var res=scaleValue(bytes,sizes,1024);return res[0].toFixed(2)+" "+res[1]}function bytesToVolumeAndLabel(bytes){var sizes=["Bytes","KB","MB","GB","TB"];if(bytes==0)return"0 Bytes";var i=parseInt(Math.floor(Math.log(bytes)/Math.log(1024)));return[(bytes/Math.pow(1024,i)).toFixed(2),sizes[i]]}function bitsToSize(bits,factor){factor=factor||1e3;var sizes=["bit/s","kbit/s","Mbit/s","Gbit/s","Tbit/s"];if(bits==0)return"0 bps";var res=scaleValue(bits,sizes,factor);return res[0].toFixed(2)+" "+res[1]}function secondsToTime(seconds){if(seconds<1){return"< 1 sec"}var days=Math.floor(seconds/86400);var hours=Math.floor(seconds/3600-days*24);var minutes=Math.floor(seconds/60-days*1440-hours*60);var sec=seconds%60;var msg="",msg_array=[];if(days>0){years=Math.floor(days/365);if(years>0){days=days%365;msg=years+" year";if(years>1){msg+="s"}msg_array.push(msg);msg=""}msg=days+" day";if(days>1){msg+="s"}msg_array.push(msg);msg=""}if(hours>0){if(hours<10){msg="0"}msg+=hours+":"}if(minutes<10){msg+="0"}msg+=minutes+":";if(sec<10){msg+="0"}msg+=sec;msg_array.push(msg);return msg_array.join(", ")}Date.prototype.format=function(format){var o={"M+":this.getMonth()+1,"d+":this.getDate(),"h+":this.getHours(),"m+":this.getMinutes(),"s+":this.getSeconds(),"q+":Math.floor((this.getMonth()+3)/3),S:this.getMilliseconds()};if(/(y+)/.test(format))format=format.replace(RegExp.$1,(this.getFullYear()+"").substr(4-RegExp.$1.length));for(var k in o)if(new RegExp("("+k+")").test(format))format=format.replace(RegExp.$1,RegExp.$1.length==1?o[k]:("00"+o[k]).substr((""+o[k]).length));return format};function epoch2Seen(epoch){var d=new Date(epoch*1e3);var tdiff=Math.floor((new Date).getTime()/1e3-epoch);return d.format("dd/MM/yyyy hh:mm:ss")+" ["+secondsToTime(tdiff)+" ago]"}function graphGetXAxisTicksFormat(diff_epoch){var tickFormat;if(diff_epoch<=86400){tickFormat="%H:%M:%S"}else if(diff_epoch<=2*86400){tickFormat="%b %e, %H:%M:%S"}else{tickFormat="%b %e"}return tickFormat}function paramsExtend(defaults,override){return $.extend({},defaults,override)}function paramsToForm(form,params){form=$(form);for(var k in params){if(params.hasOwnProperty(k)){var input=$('');input.appendTo(form)}}return form}function paramsPairsEncode(params){var i=0;var res={};for(var k in params){res["key_"+i]=k;res["val_"+i]=params[k];i=i+1}return res}jQuery.fn.extend({disable:function(state){return this.each(function(){var $this=$(this);if($this.is("input, button, textarea, select"))this.disabled=state;else $this.toggleClass("disabled",state)})}});function hostkey2hostInfo(host_key){var info;var hostinfo=[];host_key=host_key.replace(/____/g,":");host_key=host_key.replace(/___/g,"/");host_key=host_key.replace(/__/g,".");info=host_key.split("@");return info}function handle_tab_state(nav_object,default_tab){$("a",nav_object).click(function(e){e.preventDefault()});$(" > li > a",nav_object).on("shown.bs.tab",function(e){var id=$(e.target).attr("href").substr(1);if(history.replaceState){history.replaceState(null,null,"#"+id)}else{window.location.hash=id}});var hash=window.location.hash;if(!hash)hash="#"+default_tab;$('a[href="'+hash+'"]',nav_object).tab("show")}String.prototype.sformat=function(){var args=arguments;return this.replace(/{(\d+)}/g,function(match,number){return typeof args[number]!="undefined"?args[number]:match})};if(typeof String.prototype.contains==="undefined"){String.prototype.contains=function(s){return this.indexOf(s)!==-1}}function makeFindHostBeforeSubmitCallback(http_prefix){return function(form,data){if(data.type=="mac"){form.attr("action",http_prefix+"/lua/mac_details.lua")}else if(data.type=="snmp"){form.attr("action",http_prefix+"/lua/pro/enterprise/snmp_interface_details.lua");$("").attr({type:"hidden",id:"snmp_port_idx",name:"snmp_port_idx",value:data.snmp_port_idx}).appendTo(form)}else{form.attr("action",http_prefix+"/lua/host_details.lua")}return true}}function tstampToDateString(html_tag,format,tdiff){tdiff=tdiff||0;var timestamp=parseInt(html_tag.html())+tdiff;var localized=d3.time.format(format)(new Date(timestamp*1e3));html_tag.html(localized).removeClass("hidden");return localized}function cleanCustomHostUrl(host){return host.replace(/^http:\/\//gi,"").replace(/^https:\/\//gi,"").replace(/^www\./gi,"").replace(/[^0-9a-zA-Z\.\/_-]/gi,"")}function parseQuery(queryString){var query={};var pairs=(queryString[0]==="?"?queryString.substr(1):queryString).split("&");for(var i=0;icount){console.error("points mismatch: serie '"+getSerieLabel(schema_name,series[i])+"' has "+data.length+" points, expected "+count);rv=false}else if(data.length.1)return res}function buildTimeArray(start_time,end_time,step){var arr=[];for(var t=start_time;t$.now())$("#btn-jump-time-ahead").addClass("disabled");else $("#btn-jump-time-ahead").removeClass("disabled")}function attachStackedChartCallback(chart,schema_name,chart_id,zoom_reset_id,flows_dt,params,step,align_step,show_all_smooth,initial_range){var pending_request=null;var d3_sel=d3.select(chart_id);var $chart=$(chart_id);var $zoom_reset=$(zoom_reset_id);var $graph_zoom=$("#graph_zoom");var max_interval=findActualStep(step,params.epoch_begin)*8;var initial_interval=params.epoch_end-params.epoch_begin;var is_max_zoom=initial_interval<=max_interval;var url=http_prefix+"/lua/get_ts.lua";var first_load=true;var first_time_loaded=true;var datetime_format="dd/MM/yyyy hh:mm:ss";var max_over_total_ratio=3;var spinner=$('');$chart.parent().css("position","relative");var chart_colors_full=["#69B87F","#94CFA4","#B3DEB6","#E5F1A6","#FFFCC6","#FEDEA5","#FFB97B","#FF8D6D","#E27B85"];var chart_colors_min=["#7CC28F","#FCD384","#FD977B"];var update_chart_data=function(new_data){d3_sel.datum([]).call(chart);d3_sel.datum(new_data).transition().call(chart);nv.utils.windowResize(chart.update);pending_request=null;spinner.remove()};function isLegendDisabled(key,default_val){if(typeof localStorage!=="undefined"){var val=localStorage.getItem("chart_series.disabled."+key);if(val!=null)return val==="true"}return default_val}chart.legend.dispatch.on("legendClick",function(d,i){if(typeof localStorage!=="undefined")localStorage.setItem("chart_series.disabled."+d.legend_key,!d.disabled?true:false)});chart.dispatch.on("zoom",function(e){var cur_zoom=[params.epoch_begin,params.epoch_end];var t_start=Math.floor(e.xDomain[0]);var t_end=Math.ceil(e.xDomain[1]);var old_zoomed=chart.is_zoomed;var is_user_zoom=typeof e.is_user_zoom!=="undefined"?e.is_user_zoom:true;chart.is_zoomed=true;if(chart.updateStackedChart(t_start,t_end,false,is_user_zoom)){if(is_user_zoom||e.push_state){current_zoom_level+=1;var url=getHistoryParameters({epoch_begin:t_start,epoch_end:t_end});history.pushState({zoom_level:current_zoom_level,range:[t_start,t_end]},"",url)}chart.fixChartButtons()}else chart.is_zoomed=old_zoomed});function updateZoom(zoom,is_user_zoom,force){var t_start=zoom[0];var t_end=zoom[1];chart.updateStackedChart(t_start,t_end,false,is_user_zoom,null,force);chart.fixChartButtons()}$chart.on("dblclick",function(){if(current_zoom_level){history.back()}});$zoom_reset.on("click",function(){if(current_zoom_level){history.go(-current_zoom_level)}});window.addEventListener("popstate",function(e){var zoom=initial_range;if(e.state){zoom=e.state.range;current_zoom_level=e.state.zoom_level}else current_zoom_level=0;updateZoom(zoom,true,true)});chart.fixChartButtons=function(){if(current_zoom_level>0||has_initial_zoom()){$graph_zoom.find(".btn-warning:not(.custom-zoom-btn)").addClass("initial-zoom-sel").removeClass("btn-warning");$graph_zoom.find(".custom-zoom-btn").css("visibility","visible");var zoom_link=$graph_zoom.find(".custom-zoom-btn input");var link=zoom_link.val().replace(/&epoch_begin=.*/,"");link+="&epoch_begin="+params.epoch_begin+"&epoch_end="+params.epoch_end;zoom_link.val(link)}else{$graph_zoom.find(".initial-zoom-sel").addClass("btn-warning");$graph_zoom.find(".custom-zoom-btn").css("visibility","hidden");chart.is_zoomed=false}fixJumpButtons(params.epoch_end);if(current_zoom_level>0)$zoom_reset.show();else $zoom_reset.hide()};var old_start,old_end,old_interval;chart.updateStackedChart=function(tstart,tend,no_spinner,is_user_zoom,on_load_callback,force_update){if(tstart)params.epoch_begin=tstart;if(tend)params.epoch_end=tend;var cur_interval=params.epoch_end-params.epoch_begin;var actual_step=findActualStep(step,params.epoch_begin);max_interval=actual_step*8;if(cur_intervalmax_interval){is_max_zoom=false;chart.zoomType("x")}old_interval=cur_interval;if(!first_load||has_initial_zoom()||force_update)align_step=null;fixTimeRange(chart,params,align_step,actual_step);if(old_start==params.epoch_begin&&old_end==params.epoch_end)return false;old_start=params.epoch_begin;old_end=params.epoch_end;if(pending_request)pending_request.abort();else if(!no_spinner)spinner.appendTo($chart.parent());$("#period_begin").data("DateTimePicker").date(new Date(params.epoch_begin*1e3));$("#period_end").data("DateTimePicker").date(new Date(params.epoch_end*1e3));pending_request=$.get(url,params,function(data){if(!data||!data.series||!data.series.length||!checkSeriesConsinstency(schema_name,data.count,data.series)){update_chart_data([]);return}var res=[];var series=data.series;var total_serie;var color_i=0;var chart_colors=series.length<=chart_colors_min.length?chart_colors_min:chart_colors_full;for(var j=0;jmax_over_total_ratio)is_disabled=true;res.push({key:capitaliseFirstLetter(key),yAxis:1,values:values,type:"line",classed:"line-dashed line-animated",color:"#7E91A0",legend_key:key,disabled:is_disabled})}}if(!data.no_trend&&has_full_data&&total_serie.length>=3){var num_smoothed_points=Math.max(Math.floor(total_serie.length/5),3);var smooth_functions={trend:[graph_i18n.trend,"#62ADF6",smooth,num_smoothed_points],ema:["EMA","#F96BFF",exponentialMovingAverageArray,{periods:num_smoothed_points}],sma:["SMA","#A900FF",simpleMovingAverageArray,{periods:num_smoothed_points}],rsi:["RSI cur vs past","#00FF5D",relativeStrengthIndexArray,{periods:num_smoothed_points}]};function add_smoothed_serie(fn_to_use){var options=smooth_functions[fn_to_use];var smoothed;if(fn_to_use=="rsi"){if(!past_serie)return;var delta_serie=[];for(var i=0;i0){var aligned;if(fn_to_use!="ema"&&fn_to_use!="sma"&&fn_to_use!="rsi"){var scale=d3.max(total_serie)/max_val;var scaled=$.map(smoothed,function(x){return x*scale});aligned=upsampleSerie(scaled,data.count)}else{var remaining=data.count-smoothed.length;var to_fill=remaining0||enabled_series.length==0){for(var i=0;i0){chart.legend.updateState(false)}update_chart_data(res);first_time_loaded=false}).fail(function(xhr,status,error){if(xhr.statusText=="abort"){return}console.error("Error while retrieving the timeseries data ["+status+"]: "+error);update_chart_data([])});if(first_load){first_load=false}else{if(flows_dt.data("datatable"))flows_dt.data("datatable").render()}if(typeof on_load_callback==="function")on_load_callback(chart);return true}}function updateGraphsTableView(graph_table,view,graph_params,has_nindex,nindex_query){nindex_query=nindex_query+"&begin_time_clause="+graph_params.epoch_begin+"&end_time_clause="+graph_params.epoch_end;nindex_buttons='
";nindex_buttons+='
";if(view.columns){var url=http_prefix+(view.nindex_view?"/lua/enterprise/get_nindex_flows.lua":"/lua/enterprise/get_ts_table.lua");var params_obj=graph_params.ts_query.split(",").reduce(function(params,value){var v=value.split(":");params[v[0]]=v[1];return params},{});var added_drilldown=false;var columns=view.columns.map(function(col){return{title:col[1],field:col[0],css:{textAlign:col[2],width:col[3]}}});if(has_nindex){columns.unshift({title:"",field:"drilldown",css:{width:"1%"}});added_drilldown=true}graph_table.removeData("datatable");graph_table.html("");graph_table.datatable({title:"",url:url,post:function(){var params=$.extend({},graph_params);delete params.ts_compare;delete params.initial_point;params.limit=1;params.detail_view=view.id;return params},loadingYOffset:40,columns:columns,buttons:view.nindex_view?[nindex_buttons]:[],tableCallback:function(){var data=this.resultset;var stats_div=$("#chart1-flows-stats");var has_drilldown=data&&data.data.some(function(row){return row.drilldown});if(!has_drilldown&&added_drilldown)$("table td:first-child, th:first-child",graph_table).remove();if(data&&data.stats&&data.stats.loading_time){$("#flows-load-time").html(data.stats.loading_time);$("#flows-processed-records").html(data.stats.num_records_processed);stats_div.show()}else stats_div.hide()},rowCallback:function(row,row_data){if(typeof row_data.tags==="object"&&(params_obj.category&&row_data.tags.category===params_obj.category||params_obj.protocol&&row_data.tags.protocol===params_obj.protocol)){row.addClass("info")}return row}})}}function makeUniqueValidator(items_function){return function(field){var cmp_name=field.val();var count=0;if(!cmp_name)return true;items_function(field).each(function(){var name=$(this).val();if(name==cmp_name)count=count+1});return count==1}}function memberValueValidator(input){var member=input.val();if(member==="")return true;return is_mac_address(member)||is_network_mask(member,true)}function makePasswordPatternValidator(pattern){return function passwordPatternValidator(input){if(!input.val())return true;return $(input).val().match(pattern)}}function passwordMatchValidator(input){var other_input=$(input).closest("form").find("[data-passwordmatch]").not(input);if(!input.val()||!other_input.val())return true;return other_input.val()===input.val()}function poolnameValidator(input){if(!input.val())return true;return $(input).val().match(/^[a-z0-9_]*$/)}function passwordMatchRecheck(form){var items=$(form).find("[data-passwordmatch]");var not_empty=0;items.each(function(){if($(this).val()!="")not_empty++});if(not_empty==items.length)items.trigger("input")}function hostOrMacValidator(input){var host=input.val();if(host==="")return true;return is_mac_address(host)||is_good_ipv4(host)||is_good_ipv6(host)} //# sourceMappingURL=ntop.min.js.map \ No newline at end of file diff --git a/httpdocs/js/ntop.min.js.map b/httpdocs/js/ntop.min.js.map index 10b240030d..b75d43d8de 100644 --- a/httpdocs/js/ntop.min.js.map +++ b/httpdocs/js/ntop.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["springy-ntop.js","springyui-ntop.js","datatable_utils.js","ays_utils.js","ntopng_utils.js","graph_utils.js","ntopng_validators.js"],"names":["root","this","Springy","exports","Graph","nodeSet","nodes","edges","adjacency","nextNodeId","nextEdgeId","eventListeners","Node","id","data","undefined","Edge","source","target","prototype","addNode","node","push","notify","addNodes","i","arguments","length","name","label","addEdge","edge","exists","forEach","e","addEdges","node1","TypeError","node2","attr","newEdge","addNodes2","addEdges2","attributes","newNode","loadJSON","json","String","JSON","parse","apply","getEdges","removeNode","splice","detachNode","tmpEdges","slice","removeEdge","x","y","j","isEmpty","merge","n","from","to","type","filterNodes","fn","tmpNodes","filterEdges","addGraphListener","obj","graphChanged","Layout","ForceDirected","graph","stiffness","repulsion","damping","nodePoints","edgeSprings","point","mass","Point","Vector","random","spring","existingSpring","Spring","point1","point2","eachNode","callback","t","call","eachEdge","eachSpring","applyCoulombsLaw","n1","n2","d","p","subtract","distance","magnitude","direction","normalise","applyForce","multiply","divide","applyHookesLaw","displacement","k","attractToCentre","updateVelocity","timestep","v","add","a","updatePosition","totalEnergy","energy","speed","m","__bind","me","requestAnimationFrame","webkitRequestAnimationFrame","mozRequestAnimationFrame","oRequestAnimationFrame","msRequestAnimationFrame","element","setTimeout","start","render","onRenderStop","onRenderStart","_started","_stop","step","stop","nearest","pos","min","getBoundingBox","bottomleft","topright","padding","Math","v2","sqrt","normal","position","force","Renderer","layout","clear","drawEdge","drawNode","done","Array","thisArg","T","O","Object","len","toString","kValue","hasOwnProperty","jQuery","springy","params","nodeFont","edgeFont","nodeSelected","nodeImages","edgeLabelsUpright","canvas","ctx","getContext","currentBB","targetBB","adjust","toScreen","size","sx","width","sy","height","fromScreen","s","px","py","selected","dragged","mousedown","offset","pageX","left","pageY","top","renderer","dblclick","ondoubleclick","mousemove","window","bind","getTextWidth","text","_width","save","font","measureText","restore","getTextHeight","getImageWidth","image","src","object","getImageHeight","getHeight","loaded","getWidth","clearRect","p1","p2","x1","y1","x2","y2","total","spacing","paddingX","paddingY","s1","s2","boxWidth","boxHeight","intersection","intersect_line_box","stroke","color","arrowWidth","arrowLength","weight","lineWidth","max","directional","lineEnd","strokeStyle","beginPath","moveTo","lineTo","fillStyle","translate","rotate","atan2","closePath","fill","textAlign","textBaseline","angle","PI","textPos","fillText","contentWidth","contentHeight","fillRect","ip","drawImage","img","Image","addEventListener","intersect_line_line","p3","p4","denom","ua","ub","w","h","tl","tr","bl","br","result","datatableRemoveEmptyRow","table","$","remove","datatableAddEmptyRow","empty_str","columns","filter","css","html","datatableGetNumDisplayedItems","datatableIsEmpty","datatableGetByForm","form","parent","datatableUndoAddRow","new_row","bt_to_enable","callback_str","removeAttr","closest","aysUpdateForm","dt","datatableForEachRow","callbacks","each","row_i","datatableAddButtonCallback","td_idx","bs_class","link","append","datatableAddDeleteButtonCallback","datatableAddActionButtonCallback","datatableAddLinkButtonCallback","datatableMakeSelectUnique","tr_obj","added_rows_prefix","options","paramsExtend","on_change","noop","selector_fn","find","first","datatableForeachSelectOtherThan","this_select","other","datatableOptionChangeStatus","option_obj","enable","select_obj","should_reset","val","new_val","datatableOnSelectEntryChange","change_callback","old_value","new_value","others","datatableOnAddSelectEntry","trigger","new_sel","select","on","datatableOrderedInsert","to_insert","to_insert_val","cmp_fn","b","inserted","cmp_val","parseInt","isNaN","before","datatableIsLastPage","lastpage","hasClass","aysHandleForm","form_selector","default_options","submit_selector","on_dirty_callback","on_clean_callback","handle_submit_buttons","handle_datatable","handle_tabs","disable_on_dirty","ays_options","o","extend","areYouSure","addClass","removeClass","aysResetForm","aysRecheckForm","aysGetDirty","fields_selector","getValue","$field","is","$option","isFieldDirty","origValue","curValue","dirty","l","dirty_status","input","is_good_ipv4","ipv4","test","is_good_ipv6","ipv6","isNumeric","value","is_mac_address","what","is_network_mask","optional_mask","elems","split","mask","ip_addr","address","fbits","bits","sizes","bits_log1000","log","floor","round","pow","ret","parseFloat","toFixed","fbits_from_bytes","bytes","fpackets","pps","res","scaleValue","fflows","fps","fint","replace","fdate","when","epoch","Date","capitaliseFirstLetter","string","charAt","toUpperCase","startsWith","indexOf","get_trend","actual","getOSIcon","icon","search","abbreviateString","str","substring","bytesToSize","precision","kilobyte","megabyte","gigabyte","terabyte","capitalizeSingleWord","uc","capitalize","join","drawTrend","current","last","withColor","toggleAllTabs","enabled","disableAllDropdownsAndTabs","prop","enableAllDropdownsAndTabs","addCommas","nStr","rgx","scale","formatValue","formatPackets","formatFlows","fmillis","bytesToVolume","bytesToVolumeAndLabel","bitsToSize","factor","secondsToTime","seconds","days","hours","minutes","sec","msg","msg_array","years","format","M+","getMonth","d+","getDate","h+","getHours","m+","getMinutes","s+","getSeconds","q+","S","getMilliseconds","RegExp","$1","getFullYear","substr","epoch2Seen","tdiff","getTime","graphGetXAxisTicksFormat","diff_epoch","tickFormat","defaults","override","paramsToForm","appendTo","paramsPairsEncode","disable","state","$this","disabled","toggleClass","hostkey2hostInfo","host_key","info","hostinfo","handle_tab_state","nav_object","default_tab","click","preventDefault","history","replaceState","location","hash","tab","sformat","args","match","number","contains","makeFindHostBeforeSubmitCallback","http_prefix","snmp_port_idx","tstampToDateString","html_tag","timestamp","localized","d3","time","cleanCustomHostUrl","host","parseQuery","queryString","query","pairs","pair","decodeURIComponent","getHistoryParameters","cur_params","new_params","new_query","param","baseUrl","protocol","pathname","schema_2_label","data_2_label","graph_i18n","initLabelMaps","_schema_2_label","_data_2_label","_graph_i18n","getSerieLabel","schema","serie","data_label","new_label","tags","category","device","if_index","ext_label","port","profile","traffic_volume","traffic","getValueFormatter","series","makeFlatLineValues","tstart","tstep","num","values","checkSeriesConsinstency","schema_name","count","rv","console","error","upsampleSerie","num_points","intervals","lerp","v0","v1","index","prev_i","next_i","ceil","buildTotalSerie","data_series","transpose","map","g","sum","arrayToNvSerie","serie_data","buildOtherSerie","total_serie","visual_total","warn","max_val","buildTimeArray","start_time","end_time","arr","fixTimeRange","chart","align_step","actual_step","epoch_end","epoch_begin","frame","align","tick_step","resolution","fmt","range_params","range","limit","xAxis","tickValues","findActualStep","raw_step","supported_steps","retention","now_ts","now","delta","partial","aggregation_dp","tframe","retention_dp","has_initial_zoom","current_zoom_level","fixJumpButtons","duration","attachStackedChartCallback","chart_id","zoom_reset_id","flows_dt","show_all_smooth","initial_range","pending_request","d3_sel","$chart","$zoom_reset","$graph_zoom","max_interval","initial_interval","is_max_zoom","url","first_load","first_time_loaded","datetime_format","max_over_total_ratio","spinner","chart_colors_full","chart_colors_min","update_chart_data","new_data","datum","transition","nv","utils","windowResize","update","isLegendDisabled","key","default_val","localStorage","getItem","legend","dispatch","setItem","legend_key","cur_zoom","t_start","xDomain","t_end","old_zoomed","is_zoomed","is_user_zoom","updateStackedChart","push_state","pushState","zoom_level","fixChartButtons","updateZoom","zoom","back","go","zoom_link","show","hide","old_start","old_end","old_interval","tend","no_spinner","on_load_callback","force_update","cur_interval","zoomType","abort","date","get","color_i","chart_colors","yAxis","axis","has_full_data","additional_series","other_serie","past_serie","ratio_over_total","is_disabled","classed","no_trend","num_smoothed_points","smooth_functions","trend","smooth","ema","exponentialMovingAverageArray","periods","sma","simpleMovingAverageArray","rsi","relativeStrengthIndexArray","add_smoothed_serie","fn_to_use","smoothed","delta_serie","aligned","scaled","remaining","to_fill","yDomainRatioY2","formatter1","value_formatter","tot_formatter","stats_formatter","yAxis1","yAxis1_formatter","second_axis_series","formatter2","value_formatter2","yAxis2","yAxis2_formatter","stats_table","stats","statistics","average","avg","total_cell","average_cell","min_cell","max_cell","perc_cell","min_val","min_val_idx","max_val_idx","enabled_series","updateState","fail","xhr","status","statusText","updateGraphsTableView","graph_table","view","graph_params","has_nindex","nindex_query","nindex_buttons","nindex_view","params_obj","ts_query","reduce","added_drilldown","col","title","field","unshift","removeData","datatable","post","ts_compare","initial_point","detail_view","loadingYOffset","buttons","tableCallback","resultset","stats_div","has_drilldown","some","row","drilldown","loading_time","num_records_processed","rowCallback","row_data","makeUniqueValidator","items_function","cmp_name","memberValueValidator","member","makePasswordPatternValidator","pattern","passwordPatternValidator","passwordMatchValidator","other_input","not","poolnameValidator","passwordMatchRecheck","items","not_empty","hostOrMacValidator"],"mappings":"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"} \ No newline at end of file +{"version":3,"sources":["springy-ntop.js","springyui-ntop.js","datatable_utils.js","ays_utils.js","ntopng_utils.js","graph_utils.js","ntopng_validators.js"],"names":["root","this","Springy","exports","Graph","nodeSet","nodes","edges","adjacency","nextNodeId","nextEdgeId","eventListeners","Node","id","data","undefined","Edge","source","target","prototype","addNode","node","push","notify","addNodes","i","arguments","length","name","label","addEdge","edge","exists","forEach","e","addEdges","node1","TypeError","node2","attr","newEdge","addNodes2","addEdges2","attributes","newNode","loadJSON","json","String","JSON","parse","apply","getEdges","removeNode","splice","detachNode","tmpEdges","slice","removeEdge","x","y","j","isEmpty","merge","n","from","to","type","filterNodes","fn","tmpNodes","filterEdges","addGraphListener","obj","graphChanged","Layout","ForceDirected","graph","stiffness","repulsion","damping","nodePoints","edgeSprings","point","mass","Point","Vector","random","spring","existingSpring","Spring","point1","point2","eachNode","callback","t","call","eachEdge","eachSpring","applyCoulombsLaw","n1","n2","d","p","subtract","distance","magnitude","direction","normalise","applyForce","multiply","divide","applyHookesLaw","displacement","k","attractToCentre","updateVelocity","timestep","v","add","a","updatePosition","totalEnergy","energy","speed","m","__bind","me","requestAnimationFrame","webkitRequestAnimationFrame","mozRequestAnimationFrame","oRequestAnimationFrame","msRequestAnimationFrame","element","setTimeout","start","render","onRenderStop","onRenderStart","_started","_stop","step","stop","nearest","pos","min","getBoundingBox","bottomleft","topright","padding","Math","v2","sqrt","normal","position","force","Renderer","layout","clear","drawEdge","drawNode","done","Array","thisArg","T","O","Object","len","toString","kValue","hasOwnProperty","jQuery","springy","params","nodeFont","edgeFont","nodeSelected","nodeImages","edgeLabelsUpright","canvas","ctx","getContext","currentBB","targetBB","adjust","toScreen","size","sx","width","sy","height","fromScreen","s","px","py","selected","dragged","mousedown","offset","pageX","left","pageY","top","renderer","dblclick","ondoubleclick","mousemove","window","bind","getTextWidth","text","_width","save","font","measureText","restore","getTextHeight","getImageWidth","image","src","object","getImageHeight","getHeight","loaded","getWidth","clearRect","p1","p2","x1","y1","x2","y2","total","spacing","paddingX","paddingY","s1","s2","boxWidth","boxHeight","intersection","intersect_line_box","stroke","color","arrowWidth","arrowLength","weight","lineWidth","max","directional","lineEnd","strokeStyle","beginPath","moveTo","lineTo","fillStyle","translate","rotate","atan2","closePath","fill","textAlign","textBaseline","angle","PI","textPos","fillText","contentWidth","contentHeight","fillRect","ip","drawImage","img","Image","addEventListener","intersect_line_line","p3","p4","denom","ua","ub","w","h","tl","tr","bl","br","result","datatableRemoveEmptyRow","table","$","remove","datatableAddEmptyRow","empty_str","columns","filter","css","html","datatableGetNumDisplayedItems","datatableIsEmpty","datatableGetByForm","form","parent","datatableUndoAddRow","new_row","bt_to_enable","callback_str","removeAttr","closest","aysUpdateForm","dt","datatableForEachRow","callbacks","each","row_i","datatableAddButtonCallback","td_idx","bs_class","link","append","datatableAddDeleteButtonCallback","datatableAddActionButtonCallback","datatableAddLinkButtonCallback","datatableMakeSelectUnique","tr_obj","added_rows_prefix","options","paramsExtend","on_change","noop","selector_fn","find","first","datatableForeachSelectOtherThan","this_select","other","datatableOptionChangeStatus","option_obj","enable","select_obj","should_reset","val","new_val","datatableOnSelectEntryChange","change_callback","old_value","new_value","others","datatableOnAddSelectEntry","trigger","new_sel","select","on","datatableOrderedInsert","to_insert","to_insert_val","cmp_fn","b","inserted","cmp_val","parseInt","isNaN","before","datatableIsLastPage","lastpage","hasClass","aysHandleForm","form_selector","default_options","submit_selector","on_dirty_callback","on_clean_callback","handle_submit_buttons","handle_datatable","handle_tabs","disable_on_dirty","ays_options","o","extend","areYouSure","addClass","removeClass","aysResetForm","aysRecheckForm","aysGetDirty","fields_selector","getValue","$field","is","$option","isFieldDirty","origValue","curValue","dirty","l","dirty_status","input","is_good_ipv4","ipv4","test","is_good_ipv6","ipv6","isNumeric","value","is_mac_address","what","is_network_mask","optional_mask","elems","split","mask","ip_addr","address","fbits","bits","sizes","bits_log1000","log","floor","round","pow","ret","parseFloat","toFixed","fbits_from_bytes","bytes","fpackets","pps","res","scaleValue","fflows","fps","fint","replace","fdate","when","epoch","Date","capitaliseFirstLetter","string","charAt","toUpperCase","startsWith","indexOf","get_trend","actual","getOSIcon","icon","search","abbreviateString","str","substring","bytesToSize","precision","kilobyte","megabyte","gigabyte","terabyte","capitalizeSingleWord","uc","capitalize","join","drawTrend","current","last","withColor","toggleAllTabs","enabled","disableAllDropdownsAndTabs","prop","enableAllDropdownsAndTabs","addCommas","nStr","rgx","scale","formatValue","formatPackets","formatFlows","fmillis","bytesToVolume","bytesToVolumeAndLabel","bitsToSize","factor","secondsToTime","seconds","days","hours","minutes","sec","msg","msg_array","years","format","M+","getMonth","d+","getDate","h+","getHours","m+","getMinutes","s+","getSeconds","q+","S","getMilliseconds","RegExp","$1","getFullYear","substr","epoch2Seen","tdiff","getTime","graphGetXAxisTicksFormat","diff_epoch","tickFormat","defaults","override","paramsToForm","appendTo","paramsPairsEncode","disable","state","$this","disabled","toggleClass","hostkey2hostInfo","host_key","info","hostinfo","handle_tab_state","nav_object","default_tab","click","preventDefault","history","replaceState","location","hash","tab","sformat","args","match","number","contains","makeFindHostBeforeSubmitCallback","http_prefix","snmp_port_idx","tstampToDateString","html_tag","timestamp","localized","d3","time","cleanCustomHostUrl","host","parseQuery","queryString","query","pairs","pair","decodeURIComponent","getHistoryParameters","cur_params","new_params","new_query","param","baseUrl","protocol","pathname","schema_2_label","data_2_label","graph_i18n","initLabelMaps","_schema_2_label","_data_2_label","_graph_i18n","getSerieLabel","schema","serie","data_label","new_label","tags","category","device","if_index","ext_label","port","profile","traffic_volume","traffic","getValueFormatter","series","makeFlatLineValues","tstart","tstep","num","values","checkSeriesConsinstency","schema_name","count","rv","console","error","upsampleSerie","num_points","intervals","lerp","v0","v1","index","prev_i","next_i","ceil","buildTotalSerie","data_series","transpose","map","g","sum","arrayToNvSerie","serie_data","buildOtherSerie","total_serie","visual_total","warn","max_val","buildTimeArray","start_time","end_time","arr","fixTimeRange","chart","align_step","actual_step","epoch_end","epoch_begin","frame","align","tick_step","resolution","fmt","range_params","range","limit","xAxis","tickValues","findActualStep","raw_step","supported_steps","retention","now_ts","now","delta","partial","aggregation_dp","tframe","retention_dp","has_initial_zoom","current_zoom_level","fixJumpButtons","duration","attachStackedChartCallback","chart_id","zoom_reset_id","flows_dt","show_all_smooth","initial_range","pending_request","d3_sel","$chart","$zoom_reset","$graph_zoom","max_interval","initial_interval","is_max_zoom","url","first_load","first_time_loaded","datetime_format","max_over_total_ratio","spinner","chart_colors_full","chart_colors_min","update_chart_data","new_data","datum","transition","nv","utils","windowResize","update","isLegendDisabled","key","default_val","localStorage","getItem","legend","dispatch","setItem","legend_key","cur_zoom","t_start","xDomain","t_end","old_zoomed","is_zoomed","is_user_zoom","updateStackedChart","push_state","pushState","zoom_level","fixChartButtons","updateZoom","zoom","back","go","zoom_link","show","hide","old_start","old_end","old_interval","tend","no_spinner","on_load_callback","force_update","cur_interval","zoomType","abort","date","get","color_i","chart_colors","yAxis","axis","has_full_data","additional_series","other_serie","past_serie","ratio_over_total","is_disabled","classed","no_trend","num_smoothed_points","smooth_functions","trend","smooth","ema","exponentialMovingAverageArray","periods","sma","simpleMovingAverageArray","rsi","relativeStrengthIndexArray","add_smoothed_serie","fn_to_use","smoothed","delta_serie","aligned","scaled","remaining","to_fill","yDomainRatioY2","formatter1","value_formatter","tot_formatter","stats_formatter","yAxis1","yAxis1_formatter","second_axis_series","formatter2","value_formatter2","yAxis2","yAxis2_formatter","stats_table","stats","statistics","average","avg","total_cell","average_cell","min_cell","max_cell","perc_cell","min_val","min_val_idx","max_val_idx","enabled_series","updateState","fail","xhr","status","statusText","updateGraphsTableView","graph_table","view","graph_params","has_nindex","nindex_query","nindex_buttons","nindex_view","params_obj","ts_query","reduce","added_drilldown","col","title","field","unshift","removeData","datatable","post","ts_compare","initial_point","detail_view","loadingYOffset","buttons","tableCallback","resultset","stats_div","has_drilldown","some","row","drilldown","loading_time","num_records_processed","rowCallback","row_data","makeUniqueValidator","items_function","cmp_name","memberValueValidator","member","makePasswordPatternValidator","pattern","passwordPatternValidator","passwordMatchValidator","other_input","not","poolnameValidator","passwordMatchRecheck","items","not_empty","hostOrMacValidator"],"mappings":"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"} \ No newline at end of file