'use strict';'require view';'require dom';'require fs';'require ui';'require uci';return view.extend({handleCommand:function(exec,args){var buttons=document.querySelectorAll('.diag-action > .cbi-button');for(var i=0;i<buttons.length;i++)
buttons[i].setAttribute('disabled','true');return fs.exec(exec,args).then(function(res){var out=document.querySelector('.command-output');out.style.display='';dom.content(out,[res.stdout||'',res.stderr||'']);}).catch(function(err){ui.addNotification(null,E('p',[err]))}).finally(function(){for(var i=0;i<buttons.length;i++)
buttons[i].removeAttribute('disabled');});},handlePing:function(ev,cmd){var exec=cmd||'ping',addr=ev.currentTarget.parentNode.previousSibling.value,args=(exec=='ping')?['-4','-c','5','-W','1',addr]:['-6','-c','5',addr];return this.handleCommand(exec,args);},handleTraceroute:function(ev,cmd){var exec=cmd||'traceroute',addr=ev.currentTarget.parentNode.previousSibling.value,args=(exec=='traceroute')?['-4','-q','1','-w','1','-n',addr]:['-q','1','-w','2','-n',addr];return this.handleCommand(exec,args);},handleNslookup:function(ev,cmd){var addr=ev.currentTarget.parentNode.previousSibling.value;return this.handleCommand('nslookup',[addr]);},load:function(){return Promise.all([L.resolveDefault(fs.stat('/bin/ping6'),{}),L.resolveDefault(fs.stat('/usr/bin/ping6'),{}),L.resolveDefault(fs.stat('/bin/traceroute6'),{}),L.resolveDefault(fs.stat('/usr/bin/traceroute6'),{}),uci.load('luci')]);},render:function(res){var has_ping6=res[0].path||res[1].path,has_traceroute6=res[2].path||res[3].path,dns_host=uci.get('luci','diag','dns')||'openwrt.org',ping_host=uci.get('luci','diag','ping')||'openwrt.org',route_host=uci.get('luci','diag','route')||'openwrt.org';return E([],[E('h2',{},[_('Network Utilities')]),E('table',{'class':'table'},[E('tr',{'class':'tr'},[E('td',{'class':'td left'},[E('input',{'style':'margin:5px 0','type':'text','value':ping_host}),E('span',{'class':'diag-action'},[has_ping6?new ui.ComboButton('ping',{'ping':'%s %s'.format(_('IPv4'),_('Ping')),'ping6':'%s %s'.format(_('IPv6'),_('Ping')),},{'click':ui.createHandlerFn(this,'handlePing'),'classes':{'ping':'btn cbi-button cbi-button-action','ping6':'btn cbi-button cbi-button-action'}}).render():E('button',{'class':'cbi-button cbi-button-action','click':ui.createHandlerFn(this,'handlePing')},[_('Ping')])])]),E('td',{'class':'td left'},[E('input',{'style':'margin:5px 0','type':'text','value':route_host}),E('span',{'class':'diag-action'},[has_traceroute6?new ui.ComboButton('traceroute',{'traceroute':'%s %s'.format(_('IPv4'),_('Traceroute')),'traceroute6':'%s %s'.format(_('IPv6'),_('Traceroute')),},{'click':ui.createHandlerFn(this,'handleTraceroute'),'classes':{'traceroute':'btn cbi-button cbi-button-action','traceroute6':'btn cbi-button cbi-button-action'}}).render():E('button',{'class':'cbi-button cbi-button-action','click':ui.createHandlerFn(this,'handleTraceroute')},[_('Traceroute')])])]),E('td',{'class':'td left'},[E('input',{'style':'margin:5px 0','type':'text','value':dns_host}),E('span',{'class':'diag-action'},[E('button',{'class':'cbi-button cbi-button-action','click':ui.createHandlerFn(this,'handleNslookup')},[_('Nslookup')])])])])]),E('pre',{'class':'command-output','style':'display:none'})]);},handleSaveApply:null,handleSave:null,handleReset:null});