From e5facb83d576a52bf2db5beefcba138b68b42482 Mon Sep 17 00:00:00 2001 From: gabryon99 Date: Mon, 3 Aug 2020 20:27:33 +0200 Subject: [PATCH] unifying toast stsyle between lua and js --- httpdocs/js/ntop.min.js | 2 +- httpdocs/js/ntop.min.js.map | 2 +- httpdocs/js/utils/alert-notifications-utils.js | 9 ++++++--- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/httpdocs/js/ntop.min.js b/httpdocs/js/ntop.min.js index 7393d7a99b..e7fc73e80c 100644 --- a/httpdocs/js/ntop.min.js +++ b/httpdocs/js/ntop.min.js @@ -1,2 +1,2 @@ -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").removeClass("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,"badge-danger",callback_str,"javascript:void(0)")}function datatableAddActionButtonCallback(td_idx,callback_str,label){datatableAddButtonCallback.bind(this)(td_idx,label,"badge-info",callback_str,"javascript:void(0)")}function datatableAddLinkButtonCallback(td_idx,link,label){datatableAddButtonCallback.bind(this)(td_idx,label,"badge-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 datatableGetColumn(table,id_key,id_value){var res=table.data("datatable").resultset.data.filter(function(item){return item[id_key]===id_value});if(res)return res[0]}function datatableGetColumnIndex(table,column_key){var index=table.data("datatable").options.columns.findIndex(function(item){return item.field===column_key});return index}function datatableInitRefreshRows(table,column_id,refresh_interval,trend_columns){var $dt=table.data("datatable");var rows=$dt.resultset.data;var old_timer=table.data("dt-rr-timer");var old_req=table.data("dt-rr-ajax");trend_columns=trend_columns||{};if(old_timer){clearInterval(old_timer);table.removeData("dt-rr-timer")}if(old_req){old_req.abort();table.removeData("dt-rr-ajax")}var ids=[];var id_to_row={};for(var row in rows){var data=rows[row];if(data[column_id]){var data_id=data[column_id];id_to_row[data_id]=row;ids.push(data_id)}}if(!ids)return false;var params={custom_hosts:ids.join(",")};var url=$dt.options.url;var first_load=true;var _process_result=function(result){if(typeof result==="string")result=JSON.parse(result);if(!result){console.error("Bad JSON result");return}for(var row in result.data){var data=result.data[row];var data_id=data[column_id];if(data_id&&id_to_row[data_id]){var row_idx=id_to_row[data_id];var row_html=$dt.rows[row_idx];var row_tds=$("td",row_html);for(var key in data){var col_idx=datatableGetColumnIndex(table,key);var cell=row_tds[col_idx];var $cell=$(cell);var old_val=$cell.data("dt-rr-cur-val")||$(cell).html();var trend_value_formatter=trend_columns[key];var new_val=data[key];var arrows="";if(trend_value_formatter){if(parseFloat(new_val)!=new_val)console.warn("Invalid number: "+new_val);if(!first_load)arrows=" "+drawTrend(parseFloat(new_val),parseFloat(old_val));$cell.data("dt-rr-cur-val",new_val);new_val=trend_value_formatter(new_val)}$(cell).html(new_val!=0?new_val+arrows:"")}}}first_load=false;table.removeData("dt-rr-ajax")};table.data("dt-rr-timer",setInterval(function(){var old_req=table.data("dt-rr-ajax");if(old_req)return;table.data("dt-rr-ajax",$.ajax({type:"GET",url:url,data:params,cache:false,success:_process_result}))},refresh_interval));_process_result($dt.resultset)}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}var NTOPNG_MIN_VISUAL_VALUE=.005;const REGEXES={ipv4:"^(?:(?: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])$",ipv6:"^(([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|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[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|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[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|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[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|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[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|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[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|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[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|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:)))(%.+)?s*$",domainName:"^(([a-zA-Z]|[a-zA-Z][a-zA-Z0-9-]*[a-zA-Z0-9]).)*([A-Za-z]|[A-Za-z][A-Za-z0-9-]*[A-Za-z0-9])$",macAddress:"^([0-9A-Fa-f]{2}:){5}([0-9A-Fa-f]{2})$",username:"^(?=[a-zA-Z0-9._]{3,20}$)(?!.*[_.]{2})[^_.].*[^_.]$",email:"^[a-z0-9._%+-]+@[a-z0-9.-]+.[a-z]{2,4}$",https:"^https?://.+$"};function init_data_patterns(){$(`input[data-pattern]`).each(function(){const data_pattern=$(this).data("pattern");if(!data_pattern)return;const pattern=data_pattern.split("|").map(p=>REGEXES[p]).join("|");$(this).attr("pattern",pattern);$(this).removeAttr("data-pattern")})}function is_good_ipv4(ipv4){return new RegExp(REGEXES.ipv4).test(ipv4)}function is_good_ipv6(ipv6){return new RegExp(REGEXES.ipv6).test(ipv6)}function is_mac_address(mac){return new RegExp(REGEXES.macAddress).test(mac)}function isNumeric(value){return/^\d+$/.test(value)}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){const sizes=["bit/s","Kbit/s","Mbit/s","Gbit/s","Tbit/s"];if(typeof bits==="undefined")return"-";if(bits==0)return"0";if(bits>0&&bits=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 export_rate(eps){if(typeof eps==="undefined")return"-";var sizes=["exp/s","Kexp/s"];if(eps==0)return"0";if(eps>0&&eps0&&exports0&&pps0&&pps0&&fps0&&mps'}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,decimals){if(val==0)return[0,sizes[0]];let factor=decimals?10*decimals:10;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[Math.round(val/Math.pow(scale,i)*factor)/factor,sizes[i]]}function formatValue(val){var sizes=["","K","M","G","T"];if(val==0)return"0";if(val>0&&val0&&value0&&bytes0&&bits0){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 _add_find_host_link(form,name,data){$("").attr({type:"hidden",id:name,name:name,value:data}).appendTo(form)}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=="network"){form.attr("action",http_prefix+"/lua/hosts_stats.lua");_add_find_host_link(form,"network",data.network)}else if(data.type=="snmp"){form.attr("action",http_prefix+"/lua/pro/enterprise/snmp_interface_details.lua");_add_find_host_link(form,"snmp_port_idx",data.snmp_port_idx);_add_find_host_link(form,"page","layer_2")}else if(data.type=="snmp_device"){form.attr("action",http_prefix+"/lua/pro/enterprise/snmp_device_details.lua")}else if(data.type=="asn"){form.attr("action",http_prefix+"/lua/hosts_stats.lua");_add_find_host_link(form,"asn",data.asn)}else{form.attr("action",http_prefix+"/lua/host_details.lua");_add_find_host_link(form,"mode","restore")}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 noHtml(s){return s.replace(/<[^>]+>/g,"")}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;i{if(check_status_code(xhr.status,xhr.statusText,$("#import-error"))){$button.removeAttr("disabled");return}if(!d.success){$("#import-error").text(d.error).show();$button.removeAttr("disabled");params.reset_csrf(d.csrf)}else{location.reload()}}).fail(({status:status,statusText:statusText})=>{check_status_code(status,statusText,$("#import-error"));$button.removeAttr("disabled")})}};reader.readAsText(file,"UTF-8")}});$("#import-modal").on("submit","form",function(e){e.preventDefault();$("#btn-import").trigger("click")})}function serializeFormArray(serializedArray){const serialized={};serializedArray.forEach(obj=>{if(obj.name.includes("[]")){return}else{serialized[obj.name]=obj.value}});return serialized}function cleanForm(formSelector){$(formSelector).find("input,select,textarea").each(function(i,input){$(this).removeClass(`is-valid`).removeClass(`is-invalid`)});$(formSelector)[0].reset()}const fetchWithTimeout=(uri,options={},time=5e3)=>{const controller=new AbortController;const config={...options,signal:controller.signal};const timeout=setTimeout(()=>{controller.abort()},time);return fetch(uri,config).then(response=>{if(!response.ok){throw new Error(`${response.status}: ${response.statusText}`)}return response}).catch(error=>{if(error.name==="AbortError"){throw new Error("Response timed out")}})};$(document).ready(function(){init_data_patterns()});var schema_2_label={};var data_2_label={};var graph_i18n={};function initLabelMaps(_schema_2_label,_data_2_label,_graph_i18n){schema_2_label=_schema_2_label;data_2_label=_data_2_label;graph_i18n=_graph_i18n}function getSerieLabel(schema,serie,visualization,serie_index){var data_label=serie.label;var new_label=data_2_label[data_label];if(visualization&&visualization.metrics_labels&&visualization.metrics_labels[serie_index])return visualization.metrics_labels[serie_index];if(serie.ext_label)return serie.ext_label;else if(schema=="top:local_senders"||schema=="top:local_receivers"){if(serie.ext_label)return serie.ext_label;else return serie.tags.host}else if(schema.startsWith("top:")){if(serie.tags.protocol)return serie.tags.protocol;else if(serie.tags.category)return serie.tags.category;else if(serie.tags.l4proto)return serie.tags.l4proto;else if(serie.tags.dscp_class)return serie.tags.dscp_class;else if(serie.tags.device&&serie.tags.if_index){if(serie.ext_label!="")return serie.ext_label;else return"("+serie.tags.if_index+")"}else if(serie.tags.device&&serie.tags.port)return serie.tags.port;else if(serie.tags.exporter&&serie.tags.ifname)return serie.tags.ifname;else if(serie.tags.profile)return serie.tags.profile;else if(serie.tags.user_script)return serie.tags.user_script;else if(serie.tags.command)return serie.tags.command.substring(4).toUpperCase()}else if(data_label!="bytes"){if(serie.tags.protocol)return serie.tags.protocol+" ("+new_label+")";else if(serie.tags.category)return serie.tags.category+" ("+new_label+")";else if(serie.tags.device&&serie.tags.if_index)return serie.ext_label+" ("+new_label+")";else if(serie.tags.device&&serie.tags.port)return serie.tags.port+" ("+new_label+")"}else{if(serie.tags.protocol)return serie.tags.protocol;else if(serie.tags.category)return serie.tags.category;else if(serie.tags.profile)return serie.tags.profile;else if(data_label=="bytes"){if(schema.contains("volume"))return graph_i18n.traffic_volume;else return graph_i18n.traffic}}if(schema_2_label[schema])return capitaliseFirstLetter(schema_2_label[schema]);if(new_label)return capitaliseFirstLetter(new_label);return capitaliseFirstLetter(data_label)}function getValueFormatter(schema,metric_type,series,custom_formatter,stats){if(series&&series.length&&series[0].label){if(custom_formatter){var formatters=[];if(typeof custom_formatter!="object")custom_formatter=[custom_formatter];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 showQuerySlow(){$("#query-slow-alert").show()}function hideQuerySlow(){$("#query-slow-alert").hide()}function chart_data_sum(series){return series.reduce(function(acc,x){return acc+x.values.reduce(function(acc,pt){return acc+pt[1]||0},0)},0)}function redrawExtraLines(chart,chart_id,extra_lines){d3.selectAll(chart_id+" line.extra-line").remove();if(extra_lines.length>0){var xValueScale=chart.xAxis.scale();var yValueScale=chart.yAxis1.scale();var g=d3.select(chart_id+" .stack1Wrap");for(var i=0;i0||has_initial_zoom();let extra_lines=[];let unreachable_timestamps={};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 split_directions_colors=["#69B87F","#FF7C00","#FF4700"];function format_unreachable(formatter){return function(y,d){if(d&&unreachable_timestamps[d[0]])return i18n.unreachable_host;return formatter(y)}}var num_ticks_y1=null;var num_ticks_y2=null;var domain_y1=null;var domain_y2=null;var first_run=true;var update_chart_data=function(new_data){d3_sel.datum([]).call(chart);d3_sel.datum(new_data);d3_sel.transition().duration(500).call(chart);if(first_run){num_ticks_y1=chart.yAxis1.ticks();num_ticks_y2=chart.yAxis2.ticks();domain_y1=chart.yDomain1();domain_y2=chart.yDomain2();first_run=false}if(metric_type==="gauge"){var cur_domain_y1=chart.yAxis1.scale().domain();var cur_domain_y2=chart.yAxis2.scale().domain();cur_domain_y1=cur_domain_y1[1]-cur_domain_y1[0];cur_domain_y2=cur_domain_y2[1]-cur_domain_y2[0];if(chart.yAxis1.tickFormat()!=ffloat)chart.yAxis1.ticks(Math.min(cur_domain_y1,num_ticks_y1));if(chart.yAxis2.tickFormat()!=ffloat)chart.yAxis2.ticks(Math.min(cur_domain_y2,num_ticks_y2))}var y1_sum=chart_data_sum(new_data.filter(function(x){return x.yAxis==1}));var y2_sum=chart_data_sum(new_data.filter(function(x){return x.yAxis==2}));if(y1_sum==0)chart.yDomain1([0,1]);else chart.yDomain1(domain_y1);if(y2_sum==0)chart.yDomain2([0,1]);else chart.yDomain2(domain_y2);d3_sel.call(chart);nv.utils.windowResize(function(){chart.update();redrawExtraLines(chart,chart_id,extra_lines)});redrawExtraLines(chart,chart_id,extra_lines);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){manual_trigger_extra_series[d.legend_key]=true;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.zoom_in=function(){var cur_interval=params.epoch_end-params.epoch_begin;if(cur_interval>60){var delta=cur_interval/4;$("#period_begin").datetimepicker("date",new Date((params.epoch_begin+delta)*1e3));$("#period_end").datetimepicker("date",new Date((params.epoch_end-delta)*1e3));updateChartFromPickers()}};chart.zoom_out=function(){var cur_interval=params.epoch_end-params.epoch_begin;var delta=cur_interval/2;$("#period_begin").datetimepicker("date",new Date((params.epoch_begin-delta)*1e3));$("#period_end").datetimepicker("date",new Date((params.epoch_end+delta)*1e3));updateChartFromPickers()};$chart.on("dblclick",function(event){if($(event.target).hasClass("nv-legend-text"))return;chart.zoom_out()});$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");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_begin,params.epoch_end);if(current_zoom_level>0)$zoom_reset.show();else $zoom_reset.hide()};function checkQueryCompleted(){var flows_dt=$("#chart1-flows");var wait_num_queries=ts_table_shown&&$("#chart1-flows").css("display")!=="none"?2:1;query_completed+=1;if(query_completed>=wait_num_queries){if(query_timer){clearInterval(query_timer);query_timer=null}hideQuerySlow()}}chart.queryWasAborted=function(){return query_was_aborted};chart.abortQuery=function(){query_was_aborted=true;if(pending_chart_request){pending_chart_request.abort();chart.noData(i18n.query_was_aborted);update_chart_data([])}if(pending_table_request)pending_table_request.abort();if(query_timer){clearInterval(query_timer);query_timer=null}hideQuerySlow()};chart.tableRequestCompleted=function(){checkQueryCompleted();pending_table_request=null};chart.getDataUrl=function(){var data_params=jQuery.extend({},params);delete data_params.zoom;delete data_params.ts_compare;data_params.extended=1;return url+"?"+$.param(data_params,true)};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;const series_formatted_labels={};const now=Date.now()/1e3;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=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&&!force_update)return false;old_start=params.epoch_begin;old_end=params.epoch_end;if(pending_table_request)pending_table_request.abort();if(pending_chart_request)pending_chart_request.abort();else if(!no_spinner)spinner.appendTo($chart.parent());$("#period_begin").datetimepicker("date",new Date(params.epoch_begin*1e3));$("#period_end").datetimepicker("date",new Date(Math.min(params.epoch_end*1e3,$.now())));if(query_timer)clearInterval(query_timer);query_timer=setInterval(showQuerySlow,seconds_before_query_slow*1e3);query_completed=0;query_was_aborted=false;chart.noData(i18n.no_data_available);hideQuerySlow();var req_params=$.extend({},params);if(!canCompareBackwards(req_params.epoch_begin,req_params.epoch_end))delete req_params.ts_compare;if(visualization.show_unreachable)req_params.no_fill=1;pending_chart_request=$.get(url,req_params,function(data){if(data&&data.error)chart.noData(data.error);if(!data||!data.series||!data.series.length||!checkSeriesConsinstency(schema_name,data.count,data.series)){update_chart_data([]);return}var tick_step=Math.ceil(chart.tick_step/data.step)*data.step;chart.xAxis.tickValues(buildTimeArray(data.start,data.start+data.count*data.step,tick_step));chart.xAxis.tickFormat(function(d){return d3.time.format(chart.x_fmt)(new Date(d*1e3))});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_cmp_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(visualization&&visualization.extra_series){for(var i=0;imax_line_over_total_ratio)is_disabled=true;res.push({key:serie.label,yAxis:serie.axis||1,values:arrayToNvSerie(upsampleSerie([serie.value],data.count),data.start,data.step),type:serie.type||"line",color:serie.color||"red",classed:serie.class,legend_key:serie.label,disabled:is_disabled})}}if(!data.no_trend&&has_full_data&&total_serie.length>=3){var num_smoothed_points=Math.min(Math.max(Math.floor(total_serie.length/5),3),12);var smooth_functions={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){var ref_serie=res[0].values;let tok=ref_serie[0][0];let was_unreachable=false;unreachable_timestamps={};for(var i=0;inow&&now0)serie[serie.length]=[now,serie[serie.length-1][1]]}}var enabled_series=res.filter(function(d){return d.disabled!==true});if(second_axis_series.length>0||enabled_series.length==0){for(var i=0;i0){chart.legend.updateState(false)}update_chart_data(res);first_time_loaded=false;if(data.source_aggregation)$("#data-aggr-dropdown > button > span:first").html(data.source_aggregation)}).fail(function(xhr,status,error){if(xhr.statusText=="abort"){return}console.error("Error while retrieving the timeseries data ["+status+"]: "+error);chart.noData(error);update_chart_data([])}).always(function(data,status,xhr){checkQueryCompleted();pending_chart_request=null});if(first_load){first_load=false;$(function(){var flows_dt=$("#chart1-flows").data("datatable");if(flows_dt)pending_table_request=flows_dt.pendingRequest})}else{var flows_dt=$("#chart1-flows");if(ts_table_shown){updateGraphsTableView(null,params);if($("#chart1-flows").css("display")!=="none")pending_table_request=flows_dt.data("datatable").pendingRequest}}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 pos=value.indexOf(":");if(pos!=-1){var k=value.slice(0,pos);var v=value.slice(pos+1);params[k]=v}return params},{})}function recheckGraphTableEntries(){var table_view=graph_table_views;var tdiff=graph_params.epoch_end-graph_params.epoch_begin;var reset_selection=false;$("#chart1-flows").show();$("#graphs-table-selector").show();for(view_id in table_view){var view=table_view[view_id];var elem=$("#"+view.html_id);if(tdiff<=view.min_step){if(graph_old_view.id===view_id)reset_selection=true;elem.hide()}else elem.show()}var items_ul=$("#graphs-table-active-view").closest(".btn-group").find("ul:first");items_ul.find("li.dropdown-header").each(function(idx,e){var next_item=$(e).nextAll("li").filter(function(idx,e){return $(e).css("display")!=="none"||!$(e).attr("data-view-id")}).first();var divider=$(e).nextAll(".divider").first();if(!next_item.attr("data-view-id")){$(e).hide();divider.hide()}else{$(e).show();divider.show()}});if(reset_selection){var first_view=items_ul.find("li[data-view-id]").filter(function(idx,e){return $(e).css("display")!=="none"}).first();if(first_view.length)setActiveGraphsTableView(first_view.attr("data-view-id"));else{$("#chart1-flows").hide();$("#graphs-table-selector").hide()}return false}return true}function updateGraphsTableView(view,graph_params,has_nindex,nindex_query,per_page){if(view)graph_old_view=view;if(!recheckGraphTableEntries(graph_params)){return}if(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/pro/get_nindex_flows.lua":"/lua/pro/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"}});var old_dt=graph_table.data("datatable");if(old_dt&&old_dt.pendingRequest)old_dt.pendingRequest.abort();graph_table.removeData("datatable");graph_table.html("");graph_table.datatable({title:"",url:url,perPage:per_page,noResultsMessage:function(){if(ts_chart.queryWasAborted())return i18n.query_was_aborted;else return i18n.no_results_found},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;ts_chart.tableRequestCompleted();if(!data){return}if(data.currentPage>1)graph_table.data("has_interaction",true);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)}function ipAddressValidator(input){var host=input.val();if(host==="")return true;return is_good_ipv4(host)||is_good_ipv6(host)}const INDEX_SEARCH_COLUMN=3;$.fn.dataTable.ext.buttons.filterScripts={className:"filter-scripts-button",init:function(dt,node,config){const button_id=config.attr.id;$(node).removeClass("btn").removeClass("btn-secondary");const button_text=$(node).html();let count=0;if(button_id=="all-scripts"){count=dt.data().length}else if(button_id=="enabled-scripts"){dt.data().each(d=>{const parsed=d.is_enabled;if(parsed)count+=1})}else if(button_id=="disabled-scripts"){dt.data().each(d=>{const parsed=d.is_enabled;if(!parsed)count+=1})}$(node).html(`${button_text} (${count})`)},action:function(e,dt,node,config){const button_id=config.attr.id;$("#all-scripts, #enabled-scripts, #disabled-scripts").removeClass("active");if(button_id=="all-scripts"){dt.columns(INDEX_SEARCH_COLUMN).search("").draw();window.history.replaceState(undefined,undefined,"#all")}else if(button_id=="enabled-scripts"){dt.columns(INDEX_SEARCH_COLUMN).search("true").draw();window.history.replaceState(undefined,undefined,"#enabled")}else if(button_id=="disabled-scripts"){dt.columns(INDEX_SEARCH_COLUMN).search("false").draw();window.history.replaceState(undefined,undefined,"#disabled")}$(`span[data-toggle='popover']`).popover({trigger:"manual",html:true,animation:false}).on("mouseenter",function(){let self=this;$(this).popover("show");$(".popover").on("mouseleave",function(){$(self).popover("hide")})}).on("mouseleave",function(){let self=this;setTimeout(function(){if(!$(".popover:hover").length){$(self).popover("hide")}},50)});$(`#${button_id}`).addClass("active")}};const registerServiceWorker=()=>{if("serviceWorker"in navigator){navigator.serviceWorker.register("/sw.js")}};const NOTIFICATION_DEBUG=false;class PushNotificationBuilder{constructor(title="Hello World"){this.title=title;this.options={};this.options.actions=[];this.options.icon="/img/icons/icon-128x128.png";this.options.badge="/img/icons/icon-72x72.png"}setTitle(title){this.title=title;return this}setBody(body){this.options.body=body;return this}setIcon(icon){this.options.icon=icon;return this}setLang(lang){this.options.lang=lang;return this}setRequireInteraction(interaction){this.options.requireInteraction=interaction;return this}setTimestamp(timestamp){this.options.timestamp=timestamp;return this}setOnClick(callback){this.callback=callback;return this}build(){const n=new Notification(this.title,this.options);if(this.callback){n.onclick=this.callback}return n}}class NotificationManager{static enableNotification(){try{Notification.requestPermission(status=>{if(NOTIFICATION_DEBUG)console.info(status)})}catch(err){console.error("Something went wrong! ☹️",err)}}static push(pushNotification={title:"Hello World",options:{}}){if(!pushNotification)throw"The notification object cannot be null!";if(NotificationManager.canReceiveNotification){(async()=>{try{const registration=await navigator.serviceWorker.getRegistration();registration.showNotification(pushNotification.title,pushNotification.options)}catch(err){console.error(err)}})()}}static get canReceiveNotification(){return NotificationManager.permissionNotification=="granted"}static get permissionNotification(){return Notification.permission}}(function($){let modal_id_ctr=0;class ModalHandler{constructor(element,options){if(typeof options.csrf==="undefined")throw"ModalHandler: Missing CSRF token!";this.element=element;this.dialog=$(element).closest(".modal");this.options=options;this.csrf=options.csrf;this.dontDisableSubmit=options.dontDisableSubmit;this.observer=new MutationObserver(list=>{this.bindFormValidation()});this.observer.observe(this.element[0],{childList:true,subtree:true});const submitButton=$(this.element).find(`[type='submit']`);if(submitButton.length==0)throw"The submit button was not found inside the form!";this.cleanFormOnModalClose()}cleanFormOnModalClose(){const self=this;$(this.element).parents(".modal").on("hidden.bs.modal",function(){self.cleanForm()})}fillFormModal(){return this.options.loadFormData()}invokeModalInit(){const self=this;this.options.onModalInit(this.fillFormModal());$(this.element).parents(".modal").on("show.bs.modal",function(){self.options.onModalShow()});this.delegateResetButton()}delegateSubmit(){this.bindFormValidation();const self=this;this.submitHandler=function(e){if(!self.options.isSyncRequest){e.preventDefault();e.stopPropagation();self.makeRequest()}else{aysResetForm(self.form_sel)}};$(this.element).on("submit",this.submitHandler)}bindFormValidation(){$(this.element).find(`input,select,textarea`).each(function(i,input){const $input=$(this);function checkValidation(insertError){const $parent=$input.parent();let $error=$parent.find(`.invalid-feedback`);if($error.length==0)$error=$(``);if(!input.validity.valid&&input.validationMessage){$input.addClass("is-invalid");$error.text(input.validationMessage);if(insertError)$parent.append($error)}else{$input.removeClass("is-invalid");$error.remove()}}$(this).off("input").on("input",function(e){if(!$input.attr("formnovalidate"))checkValidation(false)});$(this).off("invalid").on("invalid",function(e){e.preventDefault();if(!$input.attr("formnovalidate"))checkValidation(true)})})}cleanForm(){$(this.element).find("input,textarea,select").each(function(i,input){$(this).removeClass(`is-valid`).removeClass(`is-invalid`)});$(this.element)[0].reset()}makeRequest(){const submitButton=$(this.element).find(`[type='submit']`);let dataToSend=this.options.beforeSumbit();dataToSend.csrf=this.csrf;dataToSend=$.extend(dataToSend,this.options.submitOptions);submitButton.attr("disabled","disabled");let request;const self=this;if(self.options.method=="post"){request=$.ajax({url:this.options.endpoint,data:JSON.stringify(dataToSend),method:self.options.method,dataType:"json",contentType:"application/json; charset=utf-8"})}else{request=$.get(this.options.endpoint,dataToSend)}request.done(function(response,textStatus){if(self.options.resetAfterSubmit)self.cleanForm();self.options.onSubmitSuccess(response,dataToSend,self);$(self.element).off("submit",self.submitHandler);self.delegateSubmit();if(!self.dontDisableSubmit)aysResetForm(self.form_sel)}).fail(function(jqxhr,textStatus,errorThrown){self.options.onSubmitError(dataToSend,textStatus,errorThrown)}).always(function(d){submitButton.removeAttr("disabled")})}delegateResetButton(){const self=this;const resetButton=$(this.element).find(`[type='reset']`);if(resetButton.length==0)return;const defaultValues=serializeFormArray($(this.element).serializeArray());resetButton.click(function(e){e.preventDefault();$(self.element).find("input:visible,select").each(function(i,input){const key=$(input).attr("name");$(input).val(defaultValues[key]).removeClass("is-invalid").removeClass("is-valid")})})}}$.fn.modalHandler=function(args){if(this.length!=1)throw new Error("Only a form element can by initialized!");const options=$.extend({csrf:"",endpoint:"",resetAfterSubmit:true,dontDisableSubmit:false,isSyncRequest:false,method:"get",loadFormData:function(){},onModalInit:function(loadedData){},onModalShow:function(){},beforeSumbit:function(){return{}},onSubmitSuccess:function(response){},onSubmitError:function(sent,textStatus,errorThrown){},onModalReset:function(defaultData){}},args);const mh=new ModalHandler(this,options);mh.delegateSubmit();return mh}})(jQuery);jQuery.fn.dataTableExt.sErrMode="console";jQuery.fn.dataTableExt.formatSecondsToHHMMSS=((data,type,row)=>{if(isNaN(data))return data;if(type=="display")return secondsToTime(data);return data});class DataTableUtils{static getStdDatatableConfig(dtButtons=[],dom="<'d-flex'<'mr-auto'l><'dt-search'f>B>rtip"){return{dom:dom,pagingType:"full_numbers",lengthMenu:[[10,25,50,-1],[10,25,50,`${i18n.all}`]],language:{info:i18n.showing_x_to_y_rows,search:i18n.script_search,infoFiltered:"",paginate:{previous:"<",next:">",first:"«",last:"»"}},saveState:true,buttons:{buttons:dtButtons,dom:{button:{className:"btn btn-link"},container:{className:"border-left ml-1 float-right"}}}}}static setAjaxConfig(config,url,dataSrc="",method="get",params={}){config.ajax={url:url,type:method,dataSrc:dataSrc,data:function(d){return $.extend({},d,params)}};return config}static extendConfig(config,extension){if(extension.hasFilters){extension.stateSaveCallback=function(settings,data){localStorage.setItem("DataTables_"+settings.sInstance,JSON.stringify(data))};extension.stateLoadCallback=function(settings){return JSON.parse(localStorage.getItem("DataTables_"+settings.sInstance))};extension.stateSaveParams=function(settings,data){$("[data-filter]").each(function(){const activeFilter=$(this).find(`li.active`).data("filter-key");if(!activeFilter)return;if(!data.filters)data.filters={};data.filters[$(this).data("filter")]=activeFilter})}}return $.extend({},config,extension)}static addFilterDropdown(title,filters=[],columnIndex,filterID,tableAPI){const createEntry=(val,key,callback)=>{const $entry=$(``);$entry.click(function(e){if($dropdownTitle.parent().find(`i.fas`).length==0){$dropdownTitle.parent().prepend(``)}$dropdownTitle.text($entry.text());$dropdownTitle.attr(`data-filter-key`,key);$menuContainer.find("li").removeClass(`active`);$entry.addClass(`active`);if(callback)callback(e)});return $entry};const filterKey=title.toLowerCase().split(" ").join("_");const dropdownId=`${filterKey}-filter-menu`;const $dropdownContainer=$(``);const $dropdownButton=$(``);const $dropdownTitle=$(`${title}`);$dropdownButton.append($dropdownTitle);const $menuContainer=$(``);for(let filter of filters){const $entry=createEntry(filter.label,filter.key,e=>{if(filter.callback){filter.callback()}tableAPI.column(columnIndex).search(filter.regex,true,false).draw()});$menuContainer.append($entry)}const $allEntry=createEntry(i18n.all,"all",e=>{$dropdownTitle.parent().find("i.fas.fa-filter").remove();$dropdownTitle.html(`${title}`).removeAttr(`data-filter-key`);tableAPI.columns(columnIndex).search("").draw(true)});$(filterID).prepend($dropdownContainer.append($dropdownButton,$menuContainer.prepend($allEntry)));DataTableUtils.setCurrentFilter(tableAPI,filterKey)}static setCurrentFilter(tableAPI,filterKey){if(!tableAPI.state)return;if(!tableAPI.state.loaded())return;if(!tableAPI.state.loaded().filters)return;const filters=tableAPI.state.loaded().filters;if(!filters)return;const filter=filters[filterKey];if(!filter)return;const $entry=$(`#${filterKey}-filter-menu li[data-filter-key='${filter}']`).addClass("active");if(filter!="all")$(`#${filterKey}-filter-menu button`).prepend(``).find(`span`).html($entry.text());tableAPI.state.save()}static secondsToHHMMSS(seconds){const padZeroes=n=>`${n}`.padStart(2,"0");const sec=seconds%60;const mins=Math.floor(seconds/60)%60;const hours=Math.floor(seconds/3600);return`${padZeroes(hours)}:${padZeroes(mins)}:${padZeroes(sec)}`}}const alertNotifications={};let alertNotificationUtilsId=0;class AlertNotification{constructor({title:title,body:body,link:link,delay:delay=0,id:id,style:style}={}){this.title=title;this.body=body;this.link=link;this.delay=delay;this.id=id;this.style=style}render(){const self=this;const $toast=$(``);if(this.delay!==0){$toast.data("autohide",true);$toast.data("delay",this.delay)}else{$toast.data("autohide",false)}$toast.data("notification-id",this.id);const $toastHeader=$(`
\n ${this.title}\n
`);const $toastBody=$(`
${this.body}
`);if(this.link!=undefined&&this.link!=""){const $anchor=$(`Click!`);$toastBody.append($anchor)}$toast.append($toastHeader,$toastBody);$toast.toast("show");$toast.on("hidden.bs.toast",function(){AlertNotificationUtils.hideAlert(self.id)});this.$element=$toast;return $toast}updateBody(body){if(this.$element==undefined)throw"[AlertNotification] :: The notification has not been rendered yet!";this.$element.find(".toast-body span").text(body)}destroy(){this.$element.toast("dispose");this.$element.empty()}}class AlertNotificationUtils{static initAlerts(){$(`.toast.alert-notification`).each(function(){const noScope=$(this).data("notificationNoScope");const pages=noScope==""||noScope==undefined?[]:noScope.split(";");if(pages.length>0&&pages.some(page=>location.href.contains(page))){$(this).remove()}$(this).toast("show")})}static hideAlert(notificationId){if(!notificationId){console.warn("[AlertNotificationUtils] :: The notification id cannot be null!");return}if(!(notificationId in alertNotifications)){console.warn("[AlertNotificationUtils] :: The notification hasn't been found!");return}alertNotifications[notificationId].destroy();delete alertNotifications[notificationId]}static updateNotification(notificationId,body){if(!(notificationId in alertNotifications)){throw"[AlertNotificationUtils] :: The notification was not found!"}alertNotifications[notificationId].updateBody(body)}static showAlert(option){const styles={warning:{bg:"warning",text:"text-dark",icon:"fa-exclamation-circle"},info:{bg:"info",text:"text-white",icon:"fa-info-circle"},success:{bg:"success",text:"text-white",icon:"fa-check-circle"},error:{bg:"danger",text:"text-white",icon:"fa-times-circle"}};const style=styles[option.level]||styles.warning;if(option.id===undefined)throw"[AlertNotificationUtils] :: An AlertNotification must have an in id!";if(option.id in alertNotifications)return;if(option.title===undefined)throw"[AlertNotificationUtils]:: An AlertNotification must have a title!";if(option.body===undefined)throw"[AlertNotificationUtils]:: An AlertNotification must have a body!";option.style=style;const notification=new AlertNotification(option);$(`#main-container`).prepend(notification.render());alertNotifications[option.id]=notification;return notification}static bindClosingEvent(){$(".toast.alert-notification[data-notification-id]").on("hidden.bs.toast",function(){$.post(`${http_prefix}/lua/handler_alert_notification.lua`,{notification_id:$(this).data("notificationId"),action:`disposed`})})}} +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").removeClass("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,"badge-danger",callback_str,"javascript:void(0)")}function datatableAddActionButtonCallback(td_idx,callback_str,label){datatableAddButtonCallback.bind(this)(td_idx,label,"badge-info",callback_str,"javascript:void(0)")}function datatableAddLinkButtonCallback(td_idx,link,label){datatableAddButtonCallback.bind(this)(td_idx,label,"badge-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 datatableGetColumn(table,id_key,id_value){var res=table.data("datatable").resultset.data.filter(function(item){return item[id_key]===id_value});if(res)return res[0]}function datatableGetColumnIndex(table,column_key){var index=table.data("datatable").options.columns.findIndex(function(item){return item.field===column_key});return index}function datatableInitRefreshRows(table,column_id,refresh_interval,trend_columns){var $dt=table.data("datatable");var rows=$dt.resultset.data;var old_timer=table.data("dt-rr-timer");var old_req=table.data("dt-rr-ajax");trend_columns=trend_columns||{};if(old_timer){clearInterval(old_timer);table.removeData("dt-rr-timer")}if(old_req){old_req.abort();table.removeData("dt-rr-ajax")}var ids=[];var id_to_row={};for(var row in rows){var data=rows[row];if(data[column_id]){var data_id=data[column_id];id_to_row[data_id]=row;ids.push(data_id)}}if(!ids)return false;var params={custom_hosts:ids.join(",")};var url=$dt.options.url;var first_load=true;var _process_result=function(result){if(typeof result==="string")result=JSON.parse(result);if(!result){console.error("Bad JSON result");return}for(var row in result.data){var data=result.data[row];var data_id=data[column_id];if(data_id&&id_to_row[data_id]){var row_idx=id_to_row[data_id];var row_html=$dt.rows[row_idx];var row_tds=$("td",row_html);for(var key in data){var col_idx=datatableGetColumnIndex(table,key);var cell=row_tds[col_idx];var $cell=$(cell);var old_val=$cell.data("dt-rr-cur-val")||$(cell).html();var trend_value_formatter=trend_columns[key];var new_val=data[key];var arrows="";if(trend_value_formatter){if(parseFloat(new_val)!=new_val)console.warn("Invalid number: "+new_val);if(!first_load)arrows=" "+drawTrend(parseFloat(new_val),parseFloat(old_val));$cell.data("dt-rr-cur-val",new_val);new_val=trend_value_formatter(new_val)}$(cell).html(new_val!=0?new_val+arrows:"")}}}first_load=false;table.removeData("dt-rr-ajax")};table.data("dt-rr-timer",setInterval(function(){var old_req=table.data("dt-rr-ajax");if(old_req)return;table.data("dt-rr-ajax",$.ajax({type:"GET",url:url,data:params,cache:false,success:_process_result}))},refresh_interval));_process_result($dt.resultset)}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}var NTOPNG_MIN_VISUAL_VALUE=.005;const REGEXES={ipv4:"^(?:(?: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])$",ipv6:"^(([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|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[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|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[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|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[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|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[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|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[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|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[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|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:)))(%.+)?s*$",domainName:"^(([a-zA-Z]|[a-zA-Z][a-zA-Z0-9-]*[a-zA-Z0-9]).)*([A-Za-z]|[A-Za-z][A-Za-z0-9-]*[A-Za-z0-9])$",macAddress:"^([0-9A-Fa-f]{2}:){5}([0-9A-Fa-f]{2})$",username:"^(?=[a-zA-Z0-9._]{3,20}$)(?!.*[_.]{2})[^_.].*[^_.]$",email:"^[a-z0-9._%+-]+@[a-z0-9.-]+.[a-z]{2,4}$",https:"^https?://.+$"};function init_data_patterns(){$(`input[data-pattern]`).each(function(){const data_pattern=$(this).data("pattern");if(!data_pattern)return;const pattern=data_pattern.split("|").map(p=>REGEXES[p]).join("|");$(this).attr("pattern",pattern);$(this).removeAttr("data-pattern")})}function is_good_ipv4(ipv4){return new RegExp(REGEXES.ipv4).test(ipv4)}function is_good_ipv6(ipv6){return new RegExp(REGEXES.ipv6).test(ipv6)}function is_mac_address(mac){return new RegExp(REGEXES.macAddress).test(mac)}function isNumeric(value){return/^\d+$/.test(value)}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){const sizes=["bit/s","Kbit/s","Mbit/s","Gbit/s","Tbit/s"];if(typeof bits==="undefined")return"-";if(bits==0)return"0";if(bits>0&&bits=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 export_rate(eps){if(typeof eps==="undefined")return"-";var sizes=["exp/s","Kexp/s"];if(eps==0)return"0";if(eps>0&&eps0&&exports0&&pps0&&pps0&&fps0&&mps'}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,decimals){if(val==0)return[0,sizes[0]];let factor=decimals?10*decimals:10;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[Math.round(val/Math.pow(scale,i)*factor)/factor,sizes[i]]}function formatValue(val){var sizes=["","K","M","G","T"];if(val==0)return"0";if(val>0&&val0&&value0&&bytes0&&bits0){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 _add_find_host_link(form,name,data){$("").attr({type:"hidden",id:name,name:name,value:data}).appendTo(form)}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=="network"){form.attr("action",http_prefix+"/lua/hosts_stats.lua");_add_find_host_link(form,"network",data.network)}else if(data.type=="snmp"){form.attr("action",http_prefix+"/lua/pro/enterprise/snmp_interface_details.lua");_add_find_host_link(form,"snmp_port_idx",data.snmp_port_idx);_add_find_host_link(form,"page","layer_2")}else if(data.type=="snmp_device"){form.attr("action",http_prefix+"/lua/pro/enterprise/snmp_device_details.lua")}else if(data.type=="asn"){form.attr("action",http_prefix+"/lua/hosts_stats.lua");_add_find_host_link(form,"asn",data.asn)}else{form.attr("action",http_prefix+"/lua/host_details.lua");_add_find_host_link(form,"mode","restore")}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 noHtml(s){return s.replace(/<[^>]+>/g,"")}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;i{if(check_status_code(xhr.status,xhr.statusText,$("#import-error"))){$button.removeAttr("disabled");return}if(!d.success){$("#import-error").text(d.error).show();$button.removeAttr("disabled");params.reset_csrf(d.csrf)}else{location.reload()}}).fail(({status:status,statusText:statusText})=>{check_status_code(status,statusText,$("#import-error"));$button.removeAttr("disabled")})}};reader.readAsText(file,"UTF-8")}});$("#import-modal").on("submit","form",function(e){e.preventDefault();$("#btn-import").trigger("click")})}function serializeFormArray(serializedArray){const serialized={};serializedArray.forEach(obj=>{if(obj.name.includes("[]")){return}else{serialized[obj.name]=obj.value}});return serialized}function cleanForm(formSelector){$(formSelector).find("input,select,textarea").each(function(i,input){$(this).removeClass(`is-valid`).removeClass(`is-invalid`)});$(formSelector)[0].reset()}const fetchWithTimeout=(uri,options={},time=5e3)=>{const controller=new AbortController;const config={...options,signal:controller.signal};const timeout=setTimeout(()=>{controller.abort()},time);return fetch(uri,config).then(response=>{if(!response.ok){throw new Error(`${response.status}: ${response.statusText}`)}return response}).catch(error=>{if(error.name==="AbortError"){throw new Error("Response timed out")}})};$(document).ready(function(){init_data_patterns()});var schema_2_label={};var data_2_label={};var graph_i18n={};function initLabelMaps(_schema_2_label,_data_2_label,_graph_i18n){schema_2_label=_schema_2_label;data_2_label=_data_2_label;graph_i18n=_graph_i18n}function getSerieLabel(schema,serie,visualization,serie_index){var data_label=serie.label;var new_label=data_2_label[data_label];if(visualization&&visualization.metrics_labels&&visualization.metrics_labels[serie_index])return visualization.metrics_labels[serie_index];if(serie.ext_label)return serie.ext_label;else if(schema=="top:local_senders"||schema=="top:local_receivers"){if(serie.ext_label)return serie.ext_label;else return serie.tags.host}else if(schema.startsWith("top:")){if(serie.tags.protocol)return serie.tags.protocol;else if(serie.tags.category)return serie.tags.category;else if(serie.tags.l4proto)return serie.tags.l4proto;else if(serie.tags.dscp_class)return serie.tags.dscp_class;else if(serie.tags.device&&serie.tags.if_index){if(serie.ext_label!="")return serie.ext_label;else return"("+serie.tags.if_index+")"}else if(serie.tags.device&&serie.tags.port)return serie.tags.port;else if(serie.tags.exporter&&serie.tags.ifname)return serie.tags.ifname;else if(serie.tags.profile)return serie.tags.profile;else if(serie.tags.user_script)return serie.tags.user_script;else if(serie.tags.command)return serie.tags.command.substring(4).toUpperCase()}else if(data_label!="bytes"){if(serie.tags.protocol)return serie.tags.protocol+" ("+new_label+")";else if(serie.tags.category)return serie.tags.category+" ("+new_label+")";else if(serie.tags.device&&serie.tags.if_index)return serie.ext_label+" ("+new_label+")";else if(serie.tags.device&&serie.tags.port)return serie.tags.port+" ("+new_label+")"}else{if(serie.tags.protocol)return serie.tags.protocol;else if(serie.tags.category)return serie.tags.category;else if(serie.tags.profile)return serie.tags.profile;else if(data_label=="bytes"){if(schema.contains("volume"))return graph_i18n.traffic_volume;else return graph_i18n.traffic}}if(schema_2_label[schema])return capitaliseFirstLetter(schema_2_label[schema]);if(new_label)return capitaliseFirstLetter(new_label);return capitaliseFirstLetter(data_label)}function getValueFormatter(schema,metric_type,series,custom_formatter,stats){if(series&&series.length&&series[0].label){if(custom_formatter){var formatters=[];if(typeof custom_formatter!="object")custom_formatter=[custom_formatter];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 showQuerySlow(){$("#query-slow-alert").show()}function hideQuerySlow(){$("#query-slow-alert").hide()}function chart_data_sum(series){return series.reduce(function(acc,x){return acc+x.values.reduce(function(acc,pt){return acc+pt[1]||0},0)},0)}function redrawExtraLines(chart,chart_id,extra_lines){d3.selectAll(chart_id+" line.extra-line").remove();if(extra_lines.length>0){var xValueScale=chart.xAxis.scale();var yValueScale=chart.yAxis1.scale();var g=d3.select(chart_id+" .stack1Wrap");for(var i=0;i0||has_initial_zoom();let extra_lines=[];let unreachable_timestamps={};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 split_directions_colors=["#69B87F","#FF7C00","#FF4700"];function format_unreachable(formatter){return function(y,d){if(d&&unreachable_timestamps[d[0]])return i18n.unreachable_host;return formatter(y)}}var num_ticks_y1=null;var num_ticks_y2=null;var domain_y1=null;var domain_y2=null;var first_run=true;var update_chart_data=function(new_data){d3_sel.datum([]).call(chart);d3_sel.datum(new_data);d3_sel.transition().duration(500).call(chart);if(first_run){num_ticks_y1=chart.yAxis1.ticks();num_ticks_y2=chart.yAxis2.ticks();domain_y1=chart.yDomain1();domain_y2=chart.yDomain2();first_run=false}if(metric_type==="gauge"){var cur_domain_y1=chart.yAxis1.scale().domain();var cur_domain_y2=chart.yAxis2.scale().domain();cur_domain_y1=cur_domain_y1[1]-cur_domain_y1[0];cur_domain_y2=cur_domain_y2[1]-cur_domain_y2[0];if(chart.yAxis1.tickFormat()!=ffloat)chart.yAxis1.ticks(Math.min(cur_domain_y1,num_ticks_y1));if(chart.yAxis2.tickFormat()!=ffloat)chart.yAxis2.ticks(Math.min(cur_domain_y2,num_ticks_y2))}var y1_sum=chart_data_sum(new_data.filter(function(x){return x.yAxis==1}));var y2_sum=chart_data_sum(new_data.filter(function(x){return x.yAxis==2}));if(y1_sum==0)chart.yDomain1([0,1]);else chart.yDomain1(domain_y1);if(y2_sum==0)chart.yDomain2([0,1]);else chart.yDomain2(domain_y2);d3_sel.call(chart);nv.utils.windowResize(function(){chart.update();redrawExtraLines(chart,chart_id,extra_lines)});redrawExtraLines(chart,chart_id,extra_lines);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){manual_trigger_extra_series[d.legend_key]=true;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.zoom_in=function(){var cur_interval=params.epoch_end-params.epoch_begin;if(cur_interval>60){var delta=cur_interval/4;$("#period_begin").datetimepicker("date",new Date((params.epoch_begin+delta)*1e3));$("#period_end").datetimepicker("date",new Date((params.epoch_end-delta)*1e3));updateChartFromPickers()}};chart.zoom_out=function(){var cur_interval=params.epoch_end-params.epoch_begin;var delta=cur_interval/2;$("#period_begin").datetimepicker("date",new Date((params.epoch_begin-delta)*1e3));$("#period_end").datetimepicker("date",new Date((params.epoch_end+delta)*1e3));updateChartFromPickers()};$chart.on("dblclick",function(event){if($(event.target).hasClass("nv-legend-text"))return;chart.zoom_out()});$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");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_begin,params.epoch_end);if(current_zoom_level>0)$zoom_reset.show();else $zoom_reset.hide()};function checkQueryCompleted(){var flows_dt=$("#chart1-flows");var wait_num_queries=ts_table_shown&&$("#chart1-flows").css("display")!=="none"?2:1;query_completed+=1;if(query_completed>=wait_num_queries){if(query_timer){clearInterval(query_timer);query_timer=null}hideQuerySlow()}}chart.queryWasAborted=function(){return query_was_aborted};chart.abortQuery=function(){query_was_aborted=true;if(pending_chart_request){pending_chart_request.abort();chart.noData(i18n.query_was_aborted);update_chart_data([])}if(pending_table_request)pending_table_request.abort();if(query_timer){clearInterval(query_timer);query_timer=null}hideQuerySlow()};chart.tableRequestCompleted=function(){checkQueryCompleted();pending_table_request=null};chart.getDataUrl=function(){var data_params=jQuery.extend({},params);delete data_params.zoom;delete data_params.ts_compare;data_params.extended=1;return url+"?"+$.param(data_params,true)};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;const series_formatted_labels={};const now=Date.now()/1e3;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=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&&!force_update)return false;old_start=params.epoch_begin;old_end=params.epoch_end;if(pending_table_request)pending_table_request.abort();if(pending_chart_request)pending_chart_request.abort();else if(!no_spinner)spinner.appendTo($chart.parent());$("#period_begin").datetimepicker("date",new Date(params.epoch_begin*1e3));$("#period_end").datetimepicker("date",new Date(Math.min(params.epoch_end*1e3,$.now())));if(query_timer)clearInterval(query_timer);query_timer=setInterval(showQuerySlow,seconds_before_query_slow*1e3);query_completed=0;query_was_aborted=false;chart.noData(i18n.no_data_available);hideQuerySlow();var req_params=$.extend({},params);if(!canCompareBackwards(req_params.epoch_begin,req_params.epoch_end))delete req_params.ts_compare;if(visualization.show_unreachable)req_params.no_fill=1;pending_chart_request=$.get(url,req_params,function(data){if(data&&data.error)chart.noData(data.error);if(!data||!data.series||!data.series.length||!checkSeriesConsinstency(schema_name,data.count,data.series)){update_chart_data([]);return}var tick_step=Math.ceil(chart.tick_step/data.step)*data.step;chart.xAxis.tickValues(buildTimeArray(data.start,data.start+data.count*data.step,tick_step));chart.xAxis.tickFormat(function(d){return d3.time.format(chart.x_fmt)(new Date(d*1e3))});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_cmp_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(visualization&&visualization.extra_series){for(var i=0;imax_line_over_total_ratio)is_disabled=true;res.push({key:serie.label,yAxis:serie.axis||1,values:arrayToNvSerie(upsampleSerie([serie.value],data.count),data.start,data.step),type:serie.type||"line",color:serie.color||"red",classed:serie.class,legend_key:serie.label,disabled:is_disabled})}}if(!data.no_trend&&has_full_data&&total_serie.length>=3){var num_smoothed_points=Math.min(Math.max(Math.floor(total_serie.length/5),3),12);var smooth_functions={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){var ref_serie=res[0].values;let tok=ref_serie[0][0];let was_unreachable=false;unreachable_timestamps={};for(var i=0;inow&&now0)serie[serie.length]=[now,serie[serie.length-1][1]]}}var enabled_series=res.filter(function(d){return d.disabled!==true});if(second_axis_series.length>0||enabled_series.length==0){for(var i=0;i0){chart.legend.updateState(false)}update_chart_data(res);first_time_loaded=false;if(data.source_aggregation)$("#data-aggr-dropdown > button > span:first").html(data.source_aggregation)}).fail(function(xhr,status,error){if(xhr.statusText=="abort"){return}console.error("Error while retrieving the timeseries data ["+status+"]: "+error);chart.noData(error);update_chart_data([])}).always(function(data,status,xhr){checkQueryCompleted();pending_chart_request=null});if(first_load){first_load=false;$(function(){var flows_dt=$("#chart1-flows").data("datatable");if(flows_dt)pending_table_request=flows_dt.pendingRequest})}else{var flows_dt=$("#chart1-flows");if(ts_table_shown){updateGraphsTableView(null,params);if($("#chart1-flows").css("display")!=="none")pending_table_request=flows_dt.data("datatable").pendingRequest}}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 pos=value.indexOf(":");if(pos!=-1){var k=value.slice(0,pos);var v=value.slice(pos+1);params[k]=v}return params},{})}function recheckGraphTableEntries(){var table_view=graph_table_views;var tdiff=graph_params.epoch_end-graph_params.epoch_begin;var reset_selection=false;$("#chart1-flows").show();$("#graphs-table-selector").show();for(view_id in table_view){var view=table_view[view_id];var elem=$("#"+view.html_id);if(tdiff<=view.min_step){if(graph_old_view.id===view_id)reset_selection=true;elem.hide()}else elem.show()}var items_ul=$("#graphs-table-active-view").closest(".btn-group").find("ul:first");items_ul.find("li.dropdown-header").each(function(idx,e){var next_item=$(e).nextAll("li").filter(function(idx,e){return $(e).css("display")!=="none"||!$(e).attr("data-view-id")}).first();var divider=$(e).nextAll(".divider").first();if(!next_item.attr("data-view-id")){$(e).hide();divider.hide()}else{$(e).show();divider.show()}});if(reset_selection){var first_view=items_ul.find("li[data-view-id]").filter(function(idx,e){return $(e).css("display")!=="none"}).first();if(first_view.length)setActiveGraphsTableView(first_view.attr("data-view-id"));else{$("#chart1-flows").hide();$("#graphs-table-selector").hide()}return false}return true}function updateGraphsTableView(view,graph_params,has_nindex,nindex_query,per_page){if(view)graph_old_view=view;if(!recheckGraphTableEntries(graph_params)){return}if(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/pro/get_nindex_flows.lua":"/lua/pro/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"}});var old_dt=graph_table.data("datatable");if(old_dt&&old_dt.pendingRequest)old_dt.pendingRequest.abort();graph_table.removeData("datatable");graph_table.html("");graph_table.datatable({title:"",url:url,perPage:per_page,noResultsMessage:function(){if(ts_chart.queryWasAborted())return i18n.query_was_aborted;else return i18n.no_results_found},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;ts_chart.tableRequestCompleted();if(!data){return}if(data.currentPage>1)graph_table.data("has_interaction",true);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)}function ipAddressValidator(input){var host=input.val();if(host==="")return true;return is_good_ipv4(host)||is_good_ipv6(host)}const INDEX_SEARCH_COLUMN=3;$.fn.dataTable.ext.buttons.filterScripts={className:"filter-scripts-button",init:function(dt,node,config){const button_id=config.attr.id;$(node).removeClass("btn").removeClass("btn-secondary");const button_text=$(node).html();let count=0;if(button_id=="all-scripts"){count=dt.data().length}else if(button_id=="enabled-scripts"){dt.data().each(d=>{const parsed=d.is_enabled;if(parsed)count+=1})}else if(button_id=="disabled-scripts"){dt.data().each(d=>{const parsed=d.is_enabled;if(!parsed)count+=1})}$(node).html(`${button_text} (${count})`)},action:function(e,dt,node,config){const button_id=config.attr.id;$("#all-scripts, #enabled-scripts, #disabled-scripts").removeClass("active");if(button_id=="all-scripts"){dt.columns(INDEX_SEARCH_COLUMN).search("").draw();window.history.replaceState(undefined,undefined,"#all")}else if(button_id=="enabled-scripts"){dt.columns(INDEX_SEARCH_COLUMN).search("true").draw();window.history.replaceState(undefined,undefined,"#enabled")}else if(button_id=="disabled-scripts"){dt.columns(INDEX_SEARCH_COLUMN).search("false").draw();window.history.replaceState(undefined,undefined,"#disabled")}$(`span[data-toggle='popover']`).popover({trigger:"manual",html:true,animation:false}).on("mouseenter",function(){let self=this;$(this).popover("show");$(".popover").on("mouseleave",function(){$(self).popover("hide")})}).on("mouseleave",function(){let self=this;setTimeout(function(){if(!$(".popover:hover").length){$(self).popover("hide")}},50)});$(`#${button_id}`).addClass("active")}};const registerServiceWorker=()=>{if("serviceWorker"in navigator){navigator.serviceWorker.register("/sw.js")}};const NOTIFICATION_DEBUG=false;class PushNotificationBuilder{constructor(title="Hello World"){this.title=title;this.options={};this.options.actions=[];this.options.icon="/img/icons/icon-128x128.png";this.options.badge="/img/icons/icon-72x72.png"}setTitle(title){this.title=title;return this}setBody(body){this.options.body=body;return this}setIcon(icon){this.options.icon=icon;return this}setLang(lang){this.options.lang=lang;return this}setRequireInteraction(interaction){this.options.requireInteraction=interaction;return this}setTimestamp(timestamp){this.options.timestamp=timestamp;return this}setOnClick(callback){this.callback=callback;return this}build(){const n=new Notification(this.title,this.options);if(this.callback){n.onclick=this.callback}return n}}class NotificationManager{static enableNotification(){try{Notification.requestPermission(status=>{if(NOTIFICATION_DEBUG)console.info(status)})}catch(err){console.error("Something went wrong! ☹️",err)}}static push(pushNotification={title:"Hello World",options:{}}){if(!pushNotification)throw"The notification object cannot be null!";if(NotificationManager.canReceiveNotification){(async()=>{try{const registration=await navigator.serviceWorker.getRegistration();registration.showNotification(pushNotification.title,pushNotification.options)}catch(err){console.error(err)}})()}}static get canReceiveNotification(){return NotificationManager.permissionNotification=="granted"}static get permissionNotification(){return Notification.permission}}(function($){let modal_id_ctr=0;class ModalHandler{constructor(element,options){if(typeof options.csrf==="undefined")throw"ModalHandler: Missing CSRF token!";this.element=element;this.dialog=$(element).closest(".modal");this.options=options;this.csrf=options.csrf;this.dontDisableSubmit=options.dontDisableSubmit;this.observer=new MutationObserver(list=>{this.bindFormValidation()});this.observer.observe(this.element[0],{childList:true,subtree:true});const submitButton=$(this.element).find(`[type='submit']`);if(submitButton.length==0)throw"The submit button was not found inside the form!";this.cleanFormOnModalClose()}cleanFormOnModalClose(){const self=this;$(this.element).parents(".modal").on("hidden.bs.modal",function(){self.cleanForm()})}fillFormModal(){return this.options.loadFormData()}invokeModalInit(){const self=this;this.options.onModalInit(this.fillFormModal());$(this.element).parents(".modal").on("show.bs.modal",function(){self.options.onModalShow()});this.delegateResetButton()}delegateSubmit(){this.bindFormValidation();const self=this;this.submitHandler=function(e){if(!self.options.isSyncRequest){e.preventDefault();e.stopPropagation();self.makeRequest()}else{aysResetForm(self.form_sel)}};$(this.element).on("submit",this.submitHandler)}bindFormValidation(){$(this.element).find(`input,select,textarea`).each(function(i,input){const $input=$(this);function checkValidation(insertError){const $parent=$input.parent();let $error=$parent.find(`.invalid-feedback`);if($error.length==0)$error=$(``);if(!input.validity.valid&&input.validationMessage){$input.addClass("is-invalid");$error.text(input.validationMessage);if(insertError)$parent.append($error)}else{$input.removeClass("is-invalid");$error.remove()}}$(this).off("input").on("input",function(e){if(!$input.attr("formnovalidate"))checkValidation(false)});$(this).off("invalid").on("invalid",function(e){e.preventDefault();if(!$input.attr("formnovalidate"))checkValidation(true)})})}cleanForm(){$(this.element).find("input,textarea,select").each(function(i,input){$(this).removeClass(`is-valid`).removeClass(`is-invalid`)});$(this.element)[0].reset()}makeRequest(){const submitButton=$(this.element).find(`[type='submit']`);let dataToSend=this.options.beforeSumbit();dataToSend.csrf=this.csrf;dataToSend=$.extend(dataToSend,this.options.submitOptions);submitButton.attr("disabled","disabled");let request;const self=this;if(self.options.method=="post"){request=$.ajax({url:this.options.endpoint,data:JSON.stringify(dataToSend),method:self.options.method,dataType:"json",contentType:"application/json; charset=utf-8"})}else{request=$.get(this.options.endpoint,dataToSend)}request.done(function(response,textStatus){if(self.options.resetAfterSubmit)self.cleanForm();self.options.onSubmitSuccess(response,dataToSend,self);$(self.element).off("submit",self.submitHandler);self.delegateSubmit();if(!self.dontDisableSubmit)aysResetForm(self.form_sel)}).fail(function(jqxhr,textStatus,errorThrown){self.options.onSubmitError(dataToSend,textStatus,errorThrown)}).always(function(d){submitButton.removeAttr("disabled")})}delegateResetButton(){const self=this;const resetButton=$(this.element).find(`[type='reset']`);if(resetButton.length==0)return;const defaultValues=serializeFormArray($(this.element).serializeArray());resetButton.click(function(e){e.preventDefault();$(self.element).find("input:visible,select").each(function(i,input){const key=$(input).attr("name");$(input).val(defaultValues[key]).removeClass("is-invalid").removeClass("is-valid")})})}}$.fn.modalHandler=function(args){if(this.length!=1)throw new Error("Only a form element can by initialized!");const options=$.extend({csrf:"",endpoint:"",resetAfterSubmit:true,dontDisableSubmit:false,isSyncRequest:false,method:"get",loadFormData:function(){},onModalInit:function(loadedData){},onModalShow:function(){},beforeSumbit:function(){return{}},onSubmitSuccess:function(response){},onSubmitError:function(sent,textStatus,errorThrown){},onModalReset:function(defaultData){}},args);const mh=new ModalHandler(this,options);mh.delegateSubmit();return mh}})(jQuery);jQuery.fn.dataTableExt.sErrMode="console";jQuery.fn.dataTableExt.formatSecondsToHHMMSS=((data,type,row)=>{if(isNaN(data))return data;if(type=="display")return secondsToTime(data);return data});class DataTableUtils{static getStdDatatableConfig(dtButtons=[],dom="<'d-flex'<'mr-auto'l><'dt-search'f>B>rtip"){return{dom:dom,pagingType:"full_numbers",lengthMenu:[[10,25,50,-1],[10,25,50,`${i18n.all}`]],language:{info:i18n.showing_x_to_y_rows,search:i18n.script_search,infoFiltered:"",paginate:{previous:"<",next:">",first:"«",last:"»"}},saveState:true,buttons:{buttons:dtButtons,dom:{button:{className:"btn btn-link"},container:{className:"border-left ml-1 float-right"}}}}}static setAjaxConfig(config,url,dataSrc="",method="get",params={}){config.ajax={url:url,type:method,dataSrc:dataSrc,data:function(d){return $.extend({},d,params)}};return config}static extendConfig(config,extension){if(extension.hasFilters){extension.stateSaveCallback=function(settings,data){localStorage.setItem("DataTables_"+settings.sInstance,JSON.stringify(data))};extension.stateLoadCallback=function(settings){return JSON.parse(localStorage.getItem("DataTables_"+settings.sInstance))};extension.stateSaveParams=function(settings,data){$("[data-filter]").each(function(){const activeFilter=$(this).find(`li.active`).data("filter-key");if(!activeFilter)return;if(!data.filters)data.filters={};data.filters[$(this).data("filter")]=activeFilter})}}return $.extend({},config,extension)}static addFilterDropdown(title,filters=[],columnIndex,filterID,tableAPI){const createEntry=(val,key,callback)=>{const $entry=$(``);$entry.click(function(e){if($dropdownTitle.parent().find(`i.fas`).length==0){$dropdownTitle.parent().prepend(``)}$dropdownTitle.text($entry.text());$dropdownTitle.attr(`data-filter-key`,key);$menuContainer.find("li").removeClass(`active`);$entry.addClass(`active`);if(callback)callback(e)});return $entry};const filterKey=title.toLowerCase().split(" ").join("_");const dropdownId=`${filterKey}-filter-menu`;const $dropdownContainer=$(``);const $dropdownButton=$(``);const $dropdownTitle=$(`${title}`);$dropdownButton.append($dropdownTitle);const $menuContainer=$(``);for(let filter of filters){const $entry=createEntry(filter.label,filter.key,e=>{if(filter.callback){filter.callback()}tableAPI.column(columnIndex).search(filter.regex,true,false).draw()});$menuContainer.append($entry)}const $allEntry=createEntry(i18n.all,"all",e=>{$dropdownTitle.parent().find("i.fas.fa-filter").remove();$dropdownTitle.html(`${title}`).removeAttr(`data-filter-key`);tableAPI.columns(columnIndex).search("").draw(true)});$(filterID).prepend($dropdownContainer.append($dropdownButton,$menuContainer.prepend($allEntry)));DataTableUtils.setCurrentFilter(tableAPI,filterKey)}static setCurrentFilter(tableAPI,filterKey){if(!tableAPI.state)return;if(!tableAPI.state.loaded())return;if(!tableAPI.state.loaded().filters)return;const filters=tableAPI.state.loaded().filters;if(!filters)return;const filter=filters[filterKey];if(!filter)return;const $entry=$(`#${filterKey}-filter-menu li[data-filter-key='${filter}']`).addClass("active");if(filter!="all")$(`#${filterKey}-filter-menu button`).prepend(``).find(`span`).html($entry.text());tableAPI.state.save()}static secondsToHHMMSS(seconds){const padZeroes=n=>`${n}`.padStart(2,"0");const sec=seconds%60;const mins=Math.floor(seconds/60)%60;const hours=Math.floor(seconds/3600);return`${padZeroes(hours)}:${padZeroes(mins)}:${padZeroes(sec)}`}}const alertNotifications={};let alertNotificationUtilsId=0;class AlertNotification{constructor({title:title,body:body,link:link,delay:delay=0,id:id,style:style}={}){this.title=title;this.body=body;this.link=link;this.delay=delay;this.id=id;this.style=style}render(){const self=this;const $toast=$(``);if(this.delay!==0){$toast.data("autohide",true);$toast.data("delay",this.delay)}else{$toast.data("autohide",false)}$toast.data("notification-id",this.id);const $toastHeader=$(`
\n ${this.title}\n \n
`);const $toastBody=$(`
${this.body}
`);if(this.action&&this.action.link!=undefined&&this.action.link!=""){const $anchor=$(`${this.action.label}`);$toastBody.append($anchor)}$toast.append($toastHeader,$toastBody);$toast.toast("show");$toast.on("hidden.bs.toast",function(){AlertNotificationUtils.hideAlert(self.id)});this.$element=$toast;return $toast}updateBody(body){if(this.$element==undefined)throw"[AlertNotification] :: The notification has not been rendered yet!";this.$element.find(".toast-body span").text(body)}destroy(){this.$element.toast("dispose");this.$element.empty()}}class AlertNotificationUtils{static initAlerts(){$(`.toast.alert-notification`).each(function(){const noScope=$(this).data("notificationNoScope");const pages=noScope==""||noScope==undefined?[]:noScope.split(";");if(pages.length>0&&pages.some(page=>location.href.contains(page))){$(this).remove()}$(this).toast("show")})}static hideAlert(notificationId){if(!notificationId){console.warn("[AlertNotificationUtils] :: The notification id cannot be null!");return}if(!(notificationId in alertNotifications)){console.warn("[AlertNotificationUtils] :: The notification hasn't been found!");return}alertNotifications[notificationId].destroy();delete alertNotifications[notificationId]}static updateNotification(notificationId,body){if(!(notificationId in alertNotifications)){throw"[AlertNotificationUtils] :: The notification was not found!"}alertNotifications[notificationId].updateBody(body)}static showAlert(option){const styles={warning:{bg:"warning",text:"text-dark",icon:"fa-exclamation-circle"},info:{bg:"info",text:"text-white",icon:"fa-info-circle"},success:{bg:"success",text:"text-white",icon:"fa-check-circle"},error:{bg:"danger",text:"text-white",icon:"fa-times-circle"}};const style=styles[option.level]||styles.warning;if(option.id===undefined)throw"[AlertNotificationUtils] :: An AlertNotification must have an in id!";if(option.id in alertNotifications)return;if(option.title===undefined)throw"[AlertNotificationUtils]:: An AlertNotification must have a title!";if(option.body===undefined)throw"[AlertNotificationUtils]:: An AlertNotification must have a body!";option.style=style;const notification=new AlertNotification(option);$(`#main-container`).prepend(notification.render());alertNotifications[option.id]=notification;return notification}static bindClosingEvent(){$(".toast.alert-notification[data-notification-id]").on("hidden.bs.toast",function(){$.post(`${http_prefix}/lua/handler_alert_notification.lua`,{notification_id:$(this).data("notificationId"),action:`disposed`})})}} //# 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 5d8452cbcb..f34e330948 100644 --- a/httpdocs/js/ntop.min.js.map +++ b/httpdocs/js/ntop.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["datatable_utils.js","ays_utils.js","ntopng_utils.js","graph_utils.js","ebpf_utils.js","ntopng_validators.js","plugin-script-datatable.js","main.js","notification-daemon.js","utils/modal-utils.js","utils/datatable-utils.js","utils/alert-notifications-utils.js"],"names":["datatableRemoveEmptyRow","table","$","remove","datatableAddEmptyRow","empty_str","columns","filter","this","css","length","html","datatableGetNumDisplayedItems","datatableIsEmpty","datatableGetByForm","form","parent","datatableUndoAddRow","new_row","bt_to_enable","callback_str","removeAttr","removeClass","closest","aysUpdateForm","dt","window","datatableForEachRow","callbacks","each","row_i","bind","i","datatableAddButtonCallback","td_idx","label","bs_class","link","append","datatableAddDeleteButtonCallback","datatableAddActionButtonCallback","datatableAddLinkButtonCallback","datatableMakeSelectUnique","tr_obj","added_rows_prefix","options","paramsExtend","on_change","noop","selector_fn","obj","find","first","datatableForeachSelectOtherThan","this_select","callback","other","datatableOptionChangeStatus","option_obj","enable","select_obj","should_reset","val","attr","new_val","datatableOnSelectEntryChange","change_callback","old_value","new_value","others","push","datatableOnAddSelectEntry","trigger","new_sel","select","on","datatableOrderedInsert","to_insert","to_insert_val","cmp_fn","a","b","inserted","tr","cmp_val","parseInt","isNaN","before","datatableIsLastPage","lastpage","hasClass","datatableGetColumn","id_key","id_value","res","data","resultset","item","datatableGetColumnIndex","column_key","index","findIndex","field","datatableInitRefreshRows","column_id","refresh_interval","trend_columns","$dt","rows","old_timer","old_req","clearInterval","removeData","abort","ids","id_to_row","row","data_id","params","custom_hosts","join","url","first_load","_process_result","result","JSON","parse","console","error","row_idx","row_html","row_tds","key","col_idx","cell","$cell","old_val","trend_value_formatter","arrows","parseFloat","warn","drawTrend","setInterval","ajax","type","cache","success","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","aysResetForm","aysRecheckForm","aysGetDirty","fields_selector","getValue","$field","undefined","is","$option","isFieldDirty","origValue","curValue","dirty","l","dirty_status","input","NTOPNG_MIN_VISUAL_VALUE","REGEXES","ipv4","ipv6","domainName","macAddress","username","email","https","init_data_patterns","data_pattern","pattern","split","map","p","is_good_ipv4","RegExp","test","is_good_ipv6","is_mac_address","mac","isNumeric","value","is_network_mask","what","optional_mask","elems","mask","ip_addr","address","fbits","bits","sizes","bits_log1000","Math","log","floor","round","pow","ret","toFixed","export_rate","eps","scaleValue","exports_format","exports","exports_label","i18n","toLowerCase","fbits_from_bytes","bytes","fpackets","pps","fpoints","fflows","fps","fmsgs","mps","falerts","aps","fint","x","toString","replace","ffloat","fpercent","fdate","when","epoch","d","Date","capitaliseFirstLetter","string","charAt","toUpperCase","slice","String","prototype","startsWith","indexOf","get_trend","actual","getOSIcon","name","icon","search","abbreviateString","str","len","substring","bytesToSize","precision","kilobyte","megabyte","gigabyte","terabyte","capitalizeSingleWord","uc","capitalize","current","last","withColor","toggleAllTabs","enabled","disableAllDropdownsAndTabs","prop","enableAllDropdownsAndTabs","s","addCommas","nStr","x1","x2","rgx","scale","decimals","factor","formatValue","formatPackets","n","formatPoints","formatFlows","formatMessages","fmillis","bytesToVolume","bytesToVolumeAndLabel","bitsToSize","secondsToTime","seconds","days","hours","minutes","sec","msg","msg_array","years","format","M+","getMonth","d+","getDate","h+","getHours","m+","getMinutes","s+","getSeconds","q+","S","getMilliseconds","$1","getFullYear","substr","k","epoch2Seen","tdiff","getTime","graphGetXAxisTicksFormat","diff_epoch","tickFormat","defaults","override","paramsToForm","hasOwnProperty","appendTo","paramsPairsEncode","jQuery","fn","disable","state","$this","disabled","toggleClass","hostkey2hostInfo","host_key","info","hostinfo","handle_tab_state","nav_object","default_tab","click","e","preventDefault","id","target","history","replaceState","location","hash","tab","sformat","args","arguments","match","number","contains","_add_find_host_link","makeFindHostBeforeSubmitCallback","http_prefix","network","snmp_port_idx","asn","tstampToDateString","html_tag","timestamp","localized","d3","time","noHtml","cleanCustomHostUrl","host","parseQuery","queryString","query","pairs","pair","decodeURIComponent","getHistoryParameters","cur_params","new_params","new_query","param","baseUrl","protocol","pathname","check_status_code","status_code","status_text","$error_label","is_different","text","request_failed_message","show","alert","importModalHelper","load_config_xhr","hide","off","$button","file","files","no_file","reader","FileReader","onload","json_conf","invalid_file","done","status","xhr","statusText","reset_csrf","csrf","reload","fail","readAsText","serializeFormArray","serializedArray","serialized","forEach","includes","cleanForm","formSelector","reset","fetchWithTimeout","uri","controller","AbortController","config","signal","timeout","setTimeout","fetch","then","response","ok","Error","catch","document","ready","schema_2_label","data_2_label","graph_i18n","initLabelMaps","_schema_2_label","_data_2_label","_graph_i18n","getSerieLabel","schema","serie","visualization","serie_index","data_label","new_label","metrics_labels","ext_label","tags","category","l4proto","dscp_class","device","if_index","port","exporter","ifname","profile","user_script","command","traffic_volume","traffic","getValueFormatter","metric_type","series","custom_formatter","stats","formatters","as_counter","max_val","makeFlatLineValues","tstart","tstep","num","t","values","checkSeriesConsinstency","schema_name","count","rv","upsampleSerie","num_points","intervals","lerp","v0","v1","prev_i","next_i","min","ceil","v","buildTotalSerie","data_series","transpose","g","sum","arrayToNvSerie","serie_data","start","step","buildOtherSerie","total_serie","visual_total","max","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","x_fmt","findActualStep","raw_step","supported_steps","retention","now_ts","now","delta","partial","aggregation_dp","tframe","retention_dp","has_initial_zoom","current_zoom_level","canCompareBackwards","jump_duration","current_duration","fixJumpButtons","duration","showQuerySlow","hideQuerySlow","chart_data_sum","reduce","acc","pt","redrawExtraLines","chart_id","extra_lines","selectAll","xValueScale","xAxis","yValueScale","yAxis1","style","attachStackedChartCallback","zoom_reset_id","show_all_smooth","initial_range","ts_table_shown","pending_chart_request","pending_table_request","d3_sel","$chart","$zoom_reset","$graph_zoom","max_interval","initial_interval","is_max_zoom","first_time_loaded","manual_trigger_extra_series","datetime_format","max_cmp_over_total_ratio","max_line_over_total_ratio","query_timer","seconds_before_query_slow","query_completed","query_was_aborted","last_known_t","visualization_options","is_zoomed","unreachable_timestamps","spinner","chart_colors_full","chart_colors_min","split_directions_colors","format_unreachable","formatter","y","num_ticks_y1","num_ticks_y2","domain_y1","domain_y2","first_run","update_chart_data","new_data","datum","call","transition","ticks","yAxis2","yDomain1","yDomain2","cur_domain_y1","domain","cur_domain_y2","y1_sum","yAxis","y2_sum","nv","utils","windowResize","update","isLegendDisabled","default_val","localStorage","getItem","legend","dispatch","legend_key","setItem","cur_zoom","t_start","xDomain","t_end","old_zoomed","is_user_zoom","updateStackedChart","push_state","pushState","zoom_level","fixChartButtons","updateZoom","zoom","force","zoom_in","cur_interval","datetimepicker","updateChartFromPickers","zoom_out","event","go","addEventListener","zoom_link","checkQueryCompleted","flows_dt","wait_num_queries","queryWasAborted","abortQuery","noData","tableRequestCompleted","getDataUrl","data_params","ts_compare","extended","old_start","old_end","old_interval","tend","no_spinner","on_load_callback","force_update","series_formatted_labels","new_end","zoomType","no_data_available","req_params","show_unreachable","no_fill","get","tickValues","color_i","chart_colors","j","current_step","serie_type","serie_color","split_directions","axis","color","has_full_data","additional_series","total","other_serie","past_serie","ratio_over_total","is_disabled","classed","extra_series","class","no_trend","num_smoothed_points","smooth_functions","rsi","relativeStrengthIndexArray","periods","add_smoothed_serie","fn_to_use","smoothed","delta_serie","aligned","scaled","remaining","to_fill","splice","yDomainRatioY2","ref_serie","tok","was_unreachable","is_unreachable","tval","tlast","formatter1","value_formatter","statistics","tot_formatter","stats_formatter","yAxis1_formatter","second_axis_series","formatter2","value_formatter2","yAxis2_formatter","stats_table","average","avg","total_cell","average_cell","min_cell","max_cell","perc_cell","min_val","min_val_idx","max_val_idx","perc_val","by_serie","enabled_series","updateState","source_aggregation","always","pendingRequest","updateGraphsTableView","graph_old_view","graph_old_has_nindex","graph_old_nindex_query","tsQueryToTags","ts_query","pos","recheckGraphTableEntries","table_view","graph_table_views","graph_params","reset_selection","view_id","view","elem","html_id","min_step","items_ul","idx","next_item","nextAll","divider","first_view","setActiveGraphsTableView","has_nindex","nindex_query","per_page","graph_table","nindex_buttons","params_obj","nindex_view","col","title","textAlign","width","hidden","actions","white-space","text-align","old_dt","datatable","perPage","noResultsMessage","ts_chart","no_results_found","post","initial_point","detail_view","loadingYOffset","buttons","tableCallback","currentPage","stats_div","has_drilldown","some","drilldown","loading_time","num_records_processed","rowCallback","row_data","draw_processes_graph","graph_div_id","links","nodes","json","_link","source_pid","source","source_name","source_type","pid","target_pid","target_name","target_type","height","arrow_size","category10","layout","size","linkDistance","charge","tick","svg","enter","path","circle","drag","href","linkArc","transform","dx","dy","dr","sqrt","makeUniqueValidator","items_function","cmp_name","memberValueValidator","member","makePasswordPatternValidator","passwordPatternValidator","passwordMatchValidator","other_input","not","poolnameValidator","passwordMatchRecheck","items","not_empty","hostOrMacValidator","ipAddressValidator","INDEX_SEARCH_COLUMN","dataTable","ext","filterScripts","className","init","node","button_id","button_text","parsed","is_enabled","action","draw","popover","animation","self","registerServiceWorker","navigator","serviceWorker","register","NOTIFICATION_DEBUG","PushNotificationBuilder","[object Object]","badge","body","lang","interaction","requireInteraction","Notification","onclick","NotificationManager","requestPermission","err","pushNotification","canReceiveNotification","registration","getRegistration","showNotification","permissionNotification","permission","modal_id_ctr","ModalHandler","element","dialog","dontDisableSubmit","observer","MutationObserver","list","bindFormValidation","observe","childList","subtree","submitButton","cleanFormOnModalClose","parents","loadFormData","onModalInit","fillFormModal","onModalShow","delegateResetButton","submitHandler","isSyncRequest","stopPropagation","makeRequest","form_sel","$input","checkValidation","insertError","$parent","$error","validity","valid","validationMessage","dataToSend","beforeSumbit","submitOptions","request","method","endpoint","stringify","dataType","contentType","textStatus","resetAfterSubmit","onSubmitSuccess","delegateSubmit","jqxhr","errorThrown","onSubmitError","resetButton","defaultValues","serializeArray","modalHandler","loadedData","sent","onModalReset","defaultData","mh","dataTableExt","sErrMode","formatSecondsToHHMMSS","DataTableUtils","dtButtons","dom","pagingType","lengthMenu","all","language","showing_x_to_y_rows","script_search","infoFiltered","paginate","previous","next","saveState","button","container","dataSrc","extension","hasFilters","stateSaveCallback","settings","sInstance","stateLoadCallback","stateSaveParams","activeFilter","filters","columnIndex","filterID","tableAPI","createEntry","$entry","$dropdownTitle","prepend","$menuContainer","filterKey","dropdownId","$dropdownContainer","$dropdownButton","column","regex","$allEntry","setCurrentFilter","loaded","save","padZeroes","padStart","mins","alertNotifications","alertNotificationUtilsId","AlertNotification","delay","$toast","$toastHeader","bg","$toastBody","$anchor","toast","AlertNotificationUtils","hideAlert","$element","empty","noScope","pages","page","notificationId","destroy","updateBody","option","styles","warning","level","notification","render","notification_id"],"mappings":"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"} \ No newline at end of file +{"version":3,"sources":["datatable_utils.js","ays_utils.js","ntopng_utils.js","graph_utils.js","ebpf_utils.js","ntopng_validators.js","plugin-script-datatable.js","main.js","notification-daemon.js","utils/modal-utils.js","utils/datatable-utils.js","utils/alert-notifications-utils.js"],"names":["datatableRemoveEmptyRow","table","$","remove","datatableAddEmptyRow","empty_str","columns","filter","this","css","length","html","datatableGetNumDisplayedItems","datatableIsEmpty","datatableGetByForm","form","parent","datatableUndoAddRow","new_row","bt_to_enable","callback_str","removeAttr","removeClass","closest","aysUpdateForm","dt","window","datatableForEachRow","callbacks","each","row_i","bind","i","datatableAddButtonCallback","td_idx","label","bs_class","link","append","datatableAddDeleteButtonCallback","datatableAddActionButtonCallback","datatableAddLinkButtonCallback","datatableMakeSelectUnique","tr_obj","added_rows_prefix","options","paramsExtend","on_change","noop","selector_fn","obj","find","first","datatableForeachSelectOtherThan","this_select","callback","other","datatableOptionChangeStatus","option_obj","enable","select_obj","should_reset","val","attr","new_val","datatableOnSelectEntryChange","change_callback","old_value","new_value","others","push","datatableOnAddSelectEntry","trigger","new_sel","select","on","datatableOrderedInsert","to_insert","to_insert_val","cmp_fn","a","b","inserted","tr","cmp_val","parseInt","isNaN","before","datatableIsLastPage","lastpage","hasClass","datatableGetColumn","id_key","id_value","res","data","resultset","item","datatableGetColumnIndex","column_key","index","findIndex","field","datatableInitRefreshRows","column_id","refresh_interval","trend_columns","$dt","rows","old_timer","old_req","clearInterval","removeData","abort","ids","id_to_row","row","data_id","params","custom_hosts","join","url","first_load","_process_result","result","JSON","parse","console","error","row_idx","row_html","row_tds","key","col_idx","cell","$cell","old_val","trend_value_formatter","arrows","parseFloat","warn","drawTrend","setInterval","ajax","type","cache","success","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","aysResetForm","aysRecheckForm","aysGetDirty","fields_selector","getValue","$field","undefined","is","$option","isFieldDirty","origValue","curValue","dirty","l","dirty_status","input","NTOPNG_MIN_VISUAL_VALUE","REGEXES","ipv4","ipv6","domainName","macAddress","username","email","https","init_data_patterns","data_pattern","pattern","split","map","p","is_good_ipv4","RegExp","test","is_good_ipv6","is_mac_address","mac","isNumeric","value","is_network_mask","what","optional_mask","elems","mask","ip_addr","address","fbits","bits","sizes","bits_log1000","Math","log","floor","round","pow","ret","toFixed","export_rate","eps","scaleValue","exports_format","exports","exports_label","i18n","toLowerCase","fbits_from_bytes","bytes","fpackets","pps","fpoints","fflows","fps","fmsgs","mps","falerts","aps","fint","x","toString","replace","ffloat","fpercent","fdate","when","epoch","d","Date","capitaliseFirstLetter","string","charAt","toUpperCase","slice","String","prototype","startsWith","indexOf","get_trend","actual","getOSIcon","name","icon","search","abbreviateString","str","len","substring","bytesToSize","precision","kilobyte","megabyte","gigabyte","terabyte","capitalizeSingleWord","uc","capitalize","current","last","withColor","toggleAllTabs","enabled","disableAllDropdownsAndTabs","prop","enableAllDropdownsAndTabs","s","addCommas","nStr","x1","x2","rgx","scale","decimals","factor","formatValue","formatPackets","n","formatPoints","formatFlows","formatMessages","fmillis","bytesToVolume","bytesToVolumeAndLabel","bitsToSize","secondsToTime","seconds","days","hours","minutes","sec","msg","msg_array","years","format","M+","getMonth","d+","getDate","h+","getHours","m+","getMinutes","s+","getSeconds","q+","S","getMilliseconds","$1","getFullYear","substr","k","epoch2Seen","tdiff","getTime","graphGetXAxisTicksFormat","diff_epoch","tickFormat","defaults","override","paramsToForm","hasOwnProperty","appendTo","paramsPairsEncode","jQuery","fn","disable","state","$this","disabled","toggleClass","hostkey2hostInfo","host_key","info","hostinfo","handle_tab_state","nav_object","default_tab","click","e","preventDefault","id","target","history","replaceState","location","hash","tab","sformat","args","arguments","match","number","contains","_add_find_host_link","makeFindHostBeforeSubmitCallback","http_prefix","network","snmp_port_idx","asn","tstampToDateString","html_tag","timestamp","localized","d3","time","noHtml","cleanCustomHostUrl","host","parseQuery","queryString","query","pairs","pair","decodeURIComponent","getHistoryParameters","cur_params","new_params","new_query","param","baseUrl","protocol","pathname","check_status_code","status_code","status_text","$error_label","is_different","text","request_failed_message","show","alert","importModalHelper","load_config_xhr","hide","off","$button","file","files","no_file","reader","FileReader","onload","json_conf","invalid_file","done","status","xhr","statusText","reset_csrf","csrf","reload","fail","readAsText","serializeFormArray","serializedArray","serialized","forEach","includes","cleanForm","formSelector","reset","fetchWithTimeout","uri","controller","AbortController","config","signal","timeout","setTimeout","fetch","then","response","ok","Error","catch","document","ready","schema_2_label","data_2_label","graph_i18n","initLabelMaps","_schema_2_label","_data_2_label","_graph_i18n","getSerieLabel","schema","serie","visualization","serie_index","data_label","new_label","metrics_labels","ext_label","tags","category","l4proto","dscp_class","device","if_index","port","exporter","ifname","profile","user_script","command","traffic_volume","traffic","getValueFormatter","metric_type","series","custom_formatter","stats","formatters","as_counter","max_val","makeFlatLineValues","tstart","tstep","num","t","values","checkSeriesConsinstency","schema_name","count","rv","upsampleSerie","num_points","intervals","lerp","v0","v1","prev_i","next_i","min","ceil","v","buildTotalSerie","data_series","transpose","g","sum","arrayToNvSerie","serie_data","start","step","buildOtherSerie","total_serie","visual_total","max","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","x_fmt","findActualStep","raw_step","supported_steps","retention","now_ts","now","delta","partial","aggregation_dp","tframe","retention_dp","has_initial_zoom","current_zoom_level","canCompareBackwards","jump_duration","current_duration","fixJumpButtons","duration","showQuerySlow","hideQuerySlow","chart_data_sum","reduce","acc","pt","redrawExtraLines","chart_id","extra_lines","selectAll","xValueScale","xAxis","yValueScale","yAxis1","style","attachStackedChartCallback","zoom_reset_id","show_all_smooth","initial_range","ts_table_shown","pending_chart_request","pending_table_request","d3_sel","$chart","$zoom_reset","$graph_zoom","max_interval","initial_interval","is_max_zoom","first_time_loaded","manual_trigger_extra_series","datetime_format","max_cmp_over_total_ratio","max_line_over_total_ratio","query_timer","seconds_before_query_slow","query_completed","query_was_aborted","last_known_t","visualization_options","is_zoomed","unreachable_timestamps","spinner","chart_colors_full","chart_colors_min","split_directions_colors","format_unreachable","formatter","y","num_ticks_y1","num_ticks_y2","domain_y1","domain_y2","first_run","update_chart_data","new_data","datum","call","transition","ticks","yAxis2","yDomain1","yDomain2","cur_domain_y1","domain","cur_domain_y2","y1_sum","yAxis","y2_sum","nv","utils","windowResize","update","isLegendDisabled","default_val","localStorage","getItem","legend","dispatch","legend_key","setItem","cur_zoom","t_start","xDomain","t_end","old_zoomed","is_user_zoom","updateStackedChart","push_state","pushState","zoom_level","fixChartButtons","updateZoom","zoom","force","zoom_in","cur_interval","datetimepicker","updateChartFromPickers","zoom_out","event","go","addEventListener","zoom_link","checkQueryCompleted","flows_dt","wait_num_queries","queryWasAborted","abortQuery","noData","tableRequestCompleted","getDataUrl","data_params","ts_compare","extended","old_start","old_end","old_interval","tend","no_spinner","on_load_callback","force_update","series_formatted_labels","new_end","zoomType","no_data_available","req_params","show_unreachable","no_fill","get","tickValues","color_i","chart_colors","j","current_step","serie_type","serie_color","split_directions","axis","color","has_full_data","additional_series","total","other_serie","past_serie","ratio_over_total","is_disabled","classed","extra_series","class","no_trend","num_smoothed_points","smooth_functions","rsi","relativeStrengthIndexArray","periods","add_smoothed_serie","fn_to_use","smoothed","delta_serie","aligned","scaled","remaining","to_fill","splice","yDomainRatioY2","ref_serie","tok","was_unreachable","is_unreachable","tval","tlast","formatter1","value_formatter","statistics","tot_formatter","stats_formatter","yAxis1_formatter","second_axis_series","formatter2","value_formatter2","yAxis2_formatter","stats_table","average","avg","total_cell","average_cell","min_cell","max_cell","perc_cell","min_val","min_val_idx","max_val_idx","perc_val","by_serie","enabled_series","updateState","source_aggregation","always","pendingRequest","updateGraphsTableView","graph_old_view","graph_old_has_nindex","graph_old_nindex_query","tsQueryToTags","ts_query","pos","recheckGraphTableEntries","table_view","graph_table_views","graph_params","reset_selection","view_id","view","elem","html_id","min_step","items_ul","idx","next_item","nextAll","divider","first_view","setActiveGraphsTableView","has_nindex","nindex_query","per_page","graph_table","nindex_buttons","params_obj","nindex_view","col","title","textAlign","width","hidden","actions","white-space","text-align","old_dt","datatable","perPage","noResultsMessage","ts_chart","no_results_found","post","initial_point","detail_view","loadingYOffset","buttons","tableCallback","currentPage","stats_div","has_drilldown","some","drilldown","loading_time","num_records_processed","rowCallback","row_data","draw_processes_graph","graph_div_id","links","nodes","json","_link","source_pid","source","source_name","source_type","pid","target_pid","target_name","target_type","height","arrow_size","category10","layout","size","linkDistance","charge","tick","svg","enter","path","circle","drag","href","linkArc","transform","dx","dy","dr","sqrt","makeUniqueValidator","items_function","cmp_name","memberValueValidator","member","makePasswordPatternValidator","passwordPatternValidator","passwordMatchValidator","other_input","not","poolnameValidator","passwordMatchRecheck","items","not_empty","hostOrMacValidator","ipAddressValidator","INDEX_SEARCH_COLUMN","dataTable","ext","filterScripts","className","init","node","button_id","button_text","parsed","is_enabled","action","draw","popover","animation","self","registerServiceWorker","navigator","serviceWorker","register","NOTIFICATION_DEBUG","PushNotificationBuilder","[object Object]","badge","body","lang","interaction","requireInteraction","Notification","onclick","NotificationManager","requestPermission","err","pushNotification","canReceiveNotification","registration","getRegistration","showNotification","permissionNotification","permission","modal_id_ctr","ModalHandler","element","dialog","dontDisableSubmit","observer","MutationObserver","list","bindFormValidation","observe","childList","subtree","submitButton","cleanFormOnModalClose","parents","loadFormData","onModalInit","fillFormModal","onModalShow","delegateResetButton","submitHandler","isSyncRequest","stopPropagation","makeRequest","form_sel","$input","checkValidation","insertError","$parent","$error","validity","valid","validationMessage","dataToSend","beforeSumbit","submitOptions","request","method","endpoint","stringify","dataType","contentType","textStatus","resetAfterSubmit","onSubmitSuccess","delegateSubmit","jqxhr","errorThrown","onSubmitError","resetButton","defaultValues","serializeArray","modalHandler","loadedData","sent","onModalReset","defaultData","mh","dataTableExt","sErrMode","formatSecondsToHHMMSS","DataTableUtils","dtButtons","dom","pagingType","lengthMenu","all","language","showing_x_to_y_rows","script_search","infoFiltered","paginate","previous","next","saveState","button","container","dataSrc","extension","hasFilters","stateSaveCallback","settings","sInstance","stateLoadCallback","stateSaveParams","activeFilter","filters","columnIndex","filterID","tableAPI","createEntry","$entry","$dropdownTitle","prepend","$menuContainer","filterKey","dropdownId","$dropdownContainer","$dropdownButton","column","regex","$allEntry","setCurrentFilter","loaded","save","padZeroes","padStart","mins","alertNotifications","alertNotificationUtilsId","AlertNotification","delay","$toast","$toastHeader","bg","$toastBody","$anchor","toast","AlertNotificationUtils","hideAlert","$element","empty","noScope","pages","page","notificationId","destroy","updateBody","option","styles","warning","level","notification","render","notification_id"],"mappings":"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"} \ No newline at end of file diff --git a/httpdocs/js/utils/alert-notifications-utils.js b/httpdocs/js/utils/alert-notifications-utils.js index d4a73c6857..894ef4fdfa 100644 --- a/httpdocs/js/utils/alert-notifications-utils.js +++ b/httpdocs/js/utils/alert-notifications-utils.js @@ -29,11 +29,14 @@ class AlertNotification { const $toastHeader = $(`
${this.title} +
`); - const $toastBody = $(`
${this.body}
`); + const $toastBody = $(`
${this.body}
`); - if (this.link != undefined && this.link != "") { - const $anchor = $(`Click!`); + if (this.action && this.action.link != undefined && this.action.link != "") { + const $anchor = $(`${this.action.label}`); $toastBody.append($anchor); }