diff --git a/httpdocs/css/ntopng.css b/httpdocs/css/ntopng.css index 7082baee08..73d72d9a51 100644 --- a/httpdocs/css/ntopng.css +++ b/httpdocs/css/ntopng.css @@ -338,6 +338,10 @@ tr.quotas > td { min-width: 7em; } +#chart1-flows td:last-child a:not(:first-child) { + margin-left: 5px; +} + /* NOTE: this is commented to avoid highliting overlapping line issues due to * curves interpolation. */ diff --git a/httpdocs/js/graph_utils.js b/httpdocs/js/graph_utils.js index 4737b9bd78..60aa632846 100644 --- a/httpdocs/js/graph_utils.js +++ b/httpdocs/js/graph_utils.js @@ -782,6 +782,10 @@ var graph_old_view = null; var graph_old_has_nindex = null; var graph_old_nindex_query = null; +function tsQueryToTags(ts_query) { + return ts_query.split(",").reduce(function(params, value) { var v = value.split(":"); params[v[0]] = v[1]; return params; }, {}); +} + function updateGraphsTableView(view, graph_params, has_nindex, nindex_query, per_page) { if(view) { graph_old_view = view; @@ -796,7 +800,7 @@ function updateGraphsTableView(view, graph_params, has_nindex, nindex_query, per var graph_table = $("#chart1-flows"); nindex_query = nindex_query + "&begin_time_clause=" + graph_params.epoch_begin + "&end_time_clause=" + graph_params.epoch_end var nindex_buttons = ""; - var params_obj = graph_params.ts_query.split(",").reduce(function(params, value) { var v = value.split(":"); params[v[0]] = v[1]; return params; }, {}); + var params_obj = tsQueryToTags(graph_params.ts_query); // TODO localize @@ -831,10 +835,10 @@ function updateGraphsTableView(view, graph_params, has_nindex, nindex_query, per }; }); - columns.unshift({ - title: "", + columns.push({ + title: i18n.actions, field: "drilldown", - css: {width: "1%", "white-space": "nowrap"}, + css: {width: "1%", "white-space": "nowrap", "text-align": "center"}, }); /* Force reinstantiation */ @@ -866,7 +870,7 @@ function updateGraphsTableView(view, graph_params, has_nindex, nindex_query, per /* Remove the drilldown column if no drilldown is available */ if(!has_drilldown) - $("table td:first-child, th:first-child", graph_table).remove(); + $("table td:last-child, th:last-child", graph_table).remove(); if(data && data.stats && data.stats.loading_time) { $("#flows-load-time").html(data.stats.loading_time); diff --git a/httpdocs/js/ntop.min.js b/httpdocs/js/ntop.min.js index e36e2d9480..7a98359cc8 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,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;chart.is_zoomed=current_zoom_level>0||has_initial_zoom();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*6;if(cur_interval=Date.now()){params.epoch_begin=params.epoch_end-max_interval}else{params.epoch_begin=Math.floor(epoch-max_interval/2);params.epoch_end=Math.floor(epoch+max_interval/2)}is_max_zoom=true;chart.zoomType(null)}else if(cur_interval>max_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(first_load)initial_range=[params.epoch_begin,params.epoch_end];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(Math.min(params.epoch_end*1e3,$.now())));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{var flows_dt=$("#chart1-flows");if(flows_dt.data("datatable"))updateGraphsTableView(null,params)}if(typeof on_load_callback==="function")on_load_callback(chart);return true}}var graph_old_view=null;var graph_old_has_nindex=null;var graph_old_nindex_query=null;function updateGraphsTableView(view,graph_params,has_nindex,nindex_query,per_page){if(view){graph_old_view=view;graph_old_has_nindex=has_nindex;graph_old_nindex_query=nindex_query}else{view=graph_old_view;has_nindex=graph_old_has_nindex;nindex_query=graph_old_nindex_query}var graph_table=$("#chart1-flows");nindex_query=nindex_query+"&begin_time_clause="+graph_params.epoch_begin+"&end_time_clause="+graph_params.epoch_end;var nindex_buttons="";var params_obj=graph_params.ts_query.split(",").reduce(function(params,value){var v=value.split(":");params[v[0]]=v[1];return params},{});if(!params_obj.host){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 columns=view.columns.map(function(col){return{title:col[1],field:col[0],css:{textAlign:col[2],width:col[3]},hidden:col[4]?true:false}});columns.unshift({title:"",field:"drilldown",css:{width:"1%","white-space":"nowrap"}});graph_table.removeData("datatable");graph_table.html("");graph_table.datatable({title:"",url:url,perPage:per_page,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)$("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 draw_processes_graph(http_prefix,graph_div_id,host){var links;var nodes={};var url=http_prefix+"/lua/get_processes_graph_data.lua?host="+host;d3.json(url,function(error,json){if(error)return console.warn(error);links=json;var _link;links.forEach(function(link){if(link.source_pid==-1){_link=http_prefix+"/lua/host_details.lua?host="+link.source}else{_link=http_prefix+"/lua/process_details.lua?pid="+link.source_pid+"&pid_name="+link.source_name+"&host="+host+"&page=flows"}link.source=nodes[link.source]||(nodes[link.source]={name:link.source_name,num:link.source,link:_link,type:link.source_type,pid:link.source_pid});if(link.target_pid==-1){_link=http_prefix+"/lua/host_details.lua?host="+link.target}else{_link=http_prefix+"/lua/process_details.lua?pid="+link.target_pid+"&pid_name="+link.target_name+"&host="+host+"&page=flows"}link.target=nodes[link.target]||(nodes[link.target]={name:link.target_name,num:link.target,link:_link,type:link.target_type,pid:link.target_pid})});var width=960,height=500,arrow_size=6;var color=d3.scale.category10();color["proc"]="red";color["host"]="lightsteelblue";var force=d3.layout.force().nodes(d3.values(nodes)).links(links).size([width,height]).linkDistance(120).charge(-400).on("tick",tick).start();var svg=d3.select("#"+graph_div_id).append("svg").attr("id","ebpf_graph").attr("width",width).attr("height",height);svg.append("defs").selectAll("marker").data(["proc2proc","proc2host","host2proc","host2host"]).enter().append("marker").attr("id",function(d){return d}).attr("viewBox","0 -5 10 10").attr("refX",15).attr("refY",-1.5).attr("markerWidth",arrow_size).attr("markerHeight",arrow_size).attr("orient","auto").append("path").attr("d","M0,-5L10,0L0,5");var path=svg.append("g").selectAll("path").data(force.links()).enter().append("path").attr("class",function(d){return"link "+d.type}).attr("marker-end",function(d){return"url(#"+d.type+")"});var circle=svg.append("g").selectAll("circle").data(force.nodes()).enter().append("circle").attr("class","ebpf_circle").attr("r",8).style("fill",function(d){return color[d.type]}).call(force.drag).on("dblclick",function(d){window.location.href=d.link});var text=svg.append("g").selectAll("text").data(force.nodes()).enter().append("text").attr("class","ebpf_text").attr("x",12).attr("y",".31em").text(function(d){if(d.pid>=0)return d.name+" [pid: "+d.pid+"]";else{return d.name}});function tick(){path.attr("d",linkArc);circle.attr("transform",transform);text.attr("transform",transform)}function linkArc(d){var dx=d.target.x-d.source.x,dy=d.target.y-d.source.y,dr=Math.sqrt(dx*dx+dy*dy);return"M"+d.source.x+","+d.source.y+"A"+dr+","+dr+" 0 0,1 "+d.target.x+","+d.target.y}function transform(d){return"translate("+d.x+","+d.y+")"}})}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,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;chart.is_zoomed=current_zoom_level>0||has_initial_zoom();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*6;if(cur_interval=Date.now()){params.epoch_begin=params.epoch_end-max_interval}else{params.epoch_begin=Math.floor(epoch-max_interval/2);params.epoch_end=Math.floor(epoch+max_interval/2)}is_max_zoom=true;chart.zoomType(null)}else if(cur_interval>max_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(first_load)initial_range=[params.epoch_begin,params.epoch_end];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(Math.min(params.epoch_end*1e3,$.now())));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{var flows_dt=$("#chart1-flows");if(flows_dt.data("datatable"))updateGraphsTableView(null,params)}if(typeof on_load_callback==="function")on_load_callback(chart);return true}}var graph_old_view=null;var graph_old_has_nindex=null;var graph_old_nindex_query=null;function tsQueryToTags(ts_query){return ts_query.split(",").reduce(function(params,value){var v=value.split(":");params[v[0]]=v[1];return params},{})}function updateGraphsTableView(view,graph_params,has_nindex,nindex_query,per_page){if(view){graph_old_view=view;graph_old_has_nindex=has_nindex;graph_old_nindex_query=nindex_query}else{view=graph_old_view;has_nindex=graph_old_has_nindex;nindex_query=graph_old_nindex_query}var graph_table=$("#chart1-flows");nindex_query=nindex_query+"&begin_time_clause="+graph_params.epoch_begin+"&end_time_clause="+graph_params.epoch_end;var nindex_buttons="";var params_obj=tsQueryToTags(graph_params.ts_query);if(!params_obj.host){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 columns=view.columns.map(function(col){return{title:col[1],field:col[0],css:{textAlign:col[2],width:col[3]},hidden:col[4]?true:false}});columns.push({title:i18n.actions,field:"drilldown",css:{width:"1%","white-space":"nowrap","text-align":"center"}});graph_table.removeData("datatable");graph_table.html("");graph_table.datatable({title:"",url:url,perPage:per_page,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)$("table td:last-child, th:last-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 draw_processes_graph(http_prefix,graph_div_id,host){var links;var nodes={};var url=http_prefix+"/lua/get_processes_graph_data.lua?host="+host;d3.json(url,function(error,json){if(error)return console.warn(error);links=json;var _link;links.forEach(function(link){if(link.source_pid==-1){_link=http_prefix+"/lua/host_details.lua?host="+link.source}else{_link=http_prefix+"/lua/process_details.lua?pid="+link.source_pid+"&pid_name="+link.source_name+"&host="+host+"&page=flows"}link.source=nodes[link.source]||(nodes[link.source]={name:link.source_name,num:link.source,link:_link,type:link.source_type,pid:link.source_pid});if(link.target_pid==-1){_link=http_prefix+"/lua/host_details.lua?host="+link.target}else{_link=http_prefix+"/lua/process_details.lua?pid="+link.target_pid+"&pid_name="+link.target_name+"&host="+host+"&page=flows"}link.target=nodes[link.target]||(nodes[link.target]={name:link.target_name,num:link.target,link:_link,type:link.target_type,pid:link.target_pid})});var width=960,height=500,arrow_size=6;var color=d3.scale.category10();color["proc"]="red";color["host"]="lightsteelblue";var force=d3.layout.force().nodes(d3.values(nodes)).links(links).size([width,height]).linkDistance(120).charge(-400).on("tick",tick).start();var svg=d3.select("#"+graph_div_id).append("svg").attr("id","ebpf_graph").attr("width",width).attr("height",height);svg.append("defs").selectAll("marker").data(["proc2proc","proc2host","host2proc","host2host"]).enter().append("marker").attr("id",function(d){return d}).attr("viewBox","0 -5 10 10").attr("refX",15).attr("refY",-1.5).attr("markerWidth",arrow_size).attr("markerHeight",arrow_size).attr("orient","auto").append("path").attr("d","M0,-5L10,0L0,5");var path=svg.append("g").selectAll("path").data(force.links()).enter().append("path").attr("class",function(d){return"link "+d.type}).attr("marker-end",function(d){return"url(#"+d.type+")"});var circle=svg.append("g").selectAll("circle").data(force.nodes()).enter().append("circle").attr("class","ebpf_circle").attr("r",8).style("fill",function(d){return color[d.type]}).call(force.drag).on("dblclick",function(d){window.location.href=d.link});var text=svg.append("g").selectAll("text").data(force.nodes()).enter().append("text").attr("class","ebpf_text").attr("x",12).attr("y",".31em").text(function(d){if(d.pid>=0)return d.name+" [pid: "+d.pid+"]";else{return d.name}});function tick(){path.attr("d",linkArc);circle.attr("transform",transform);text.attr("transform",transform)}function linkArc(d){var dx=d.target.x-d.source.x,dy=d.target.y-d.source.y,dr=Math.sqrt(dx*dx+dy*dy);return"M"+d.source.x+","+d.source.y+"A"+dr+","+dr+" 0 0,1 "+d.target.x+","+d.target.y}function transform(d){return"translate("+d.x+","+d.y+")"}})}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 0cbbb2f8cb..eac0047f45 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","ebpf_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","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","is_zoomed","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_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","new_end","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","flows_dt","updateGraphsTableView","graph_old_view","graph_old_has_nindex","graph_old_nindex_query","view","graph_params","has_nindex","nindex_query","per_page","graph_table","nindex_buttons","params_obj","ts_query","reduce","nindex_view","col","title","field","hidden","unshift","white-space","removeData","datatable","perPage","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","draw_processes_graph","graph_div_id","links","_link","source_pid","source_name","source_type","pid","target_pid","target_name","target_type","arrow_size","category10","linkDistance","charge","tick","svg","selectAll","enter","path","circle","style","drag","href","linkArc","transform","dx","dy","dr","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","ebpf_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","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","is_zoomed","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_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","new_end","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","flows_dt","updateGraphsTableView","graph_old_view","graph_old_has_nindex","graph_old_nindex_query","tsQueryToTags","ts_query","reduce","view","graph_params","has_nindex","nindex_query","per_page","graph_table","nindex_buttons","params_obj","nindex_view","col","title","field","hidden","i18n","actions","white-space","text-align","removeData","datatable","perPage","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","draw_processes_graph","graph_div_id","links","_link","source_pid","source_name","source_type","pid","target_pid","target_name","target_type","arrow_size","category10","linkDistance","charge","tick","svg","selectAll","enter","path","circle","style","drag","href","linkArc","transform","dx","dy","dr","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 diff --git a/scripts/lua/inc/menu.lua b/scripts/lua/inc/menu.lua index ae90bedbd4..452a4b2fc8 100644 --- a/scripts/lua/inc/menu.lua +++ b/scripts/lua/inc/menu.lua @@ -16,6 +16,7 @@ print[[ "change_number_of_rows": "]] print(i18n("change_number_of_rows")) print[[", "no_data_available": "]] print(i18n("no_data_available")) print[[", "showing_x_to_y_rows": "]] print(i18n("showing_x_to_y_rows", {x="{0}", y="{1}", tot="{2}"})) print[[", + "actions": "]] print(i18n("actions")) print[[", }; var http_prefix = "]] print(ntop.getHttpPrefix()) print[[";