define(["loading","libraryMenu","globalize","emby-checkbox","emby-select"],function(loading,libraryMenu,globalize){"use strict";functiononSubmit(e){varform=this,localAddress=form.querySelector("#txtLocalAddress").value,enableUpnp=form.querySelector("#chkEnableUpnp").checked;confirmSelections(localAddress,enableUpnp,function(){varvalidationResult=getValidationAlert(form);if(validationResult)returnvoidalertText(validationResult);validateHttps(form).then(function(){loading.show(),ApiClient.getServerConfiguration().then(function(config){config.LocalNetworkSubnets=form.querySelector("#txtLanNetworks").value.split(",").map(function(s){returns.trim()}).filter(function(s){returns.length>0}),config.RemoteIPFilter=form.querySelector("#txtExternalAddressFilter").value.split(",").map(function(s){returns.trim()}).filter(function(s){returns.length>0}),config.IsRemoteIPFilterBlacklist="blacklist"===form.querySelector("#selectExternalAddressFilterMode").value,config.PublicPort=form.querySelector("#txtPublicPort").value,config.PublicHttpsPort=form.querySelector("#txtPublicHttpsPort").value;varhttpsMode=form.querySelector("#selectHttpsMode").value;"proxy"===httpsMode?(config.EnableHttps=!0,config.RequireHttps=!1,config.IsBehindProxy=!0):"required"===httpsMode?(config.EnableHttps=!0,config.RequireHttps=!0,config.IsBehindProxy=!1):"enabled"===httpsMode?(config.EnableHttps=!0,config.RequireHttps=!1,config.IsBehindProxy=!1):(config.EnableHttps=!1,config.RequireHttps=!1,config.IsBehindProxy=!1),config.HttpsPortNumber=form.querySelector("#txtHttpsPort").value,config.HttpServerPortNumber=form.querySelector("#txtPortNumber").value,config.EnableUPnP=enableUpnp,config.WanDdns=form.querySelector("#txtDdns").value,config.EnableRemoteAccess=form.querySelector("#chkRemoteAccess").checked,config.CertificatePath=form.querySelector("#txtCertificatePath").value||null,config.CertificatePassword=form.querySelector("#txtCertPassword").value||null,config.LocalNetworkAddresses=localAddress?[localAddress]:[],ApiClient.updateServerConfiguration(config).then(Dashboard.processServerConfigurationUpdateResult,Dashboard.processErrorResponse)})})}),e.preventDefault()}functiontriggerChange(select){varevt=document.createEvent("HTMLEvents");evt.initEvent("change",!1,!0),select.dispatchEvent(evt)}functiongetValidationAlert(form){returnform.querySelector("#txtPublicPort").value===form.querySelector("#txtPublicHttpsPort").value?"The public http and https ports must be different.":form.querySelector("#txtPortNumber").value===form.querySelector("#txtHttpsPort").value?"The http and https ports must be different.":null}functionvalidateHttps(form){varcertPath=form.querySelector("#txtCertificatePath").value||null,httpsMode=form.querySelector("#selectHttpsMode").value;return"enabled"!==httpsMode&&"required"!==httpsMode||certPath?Promise.resolve():newPromise(function(resolve,reject){returnalertText({title:globalize.translate("TitleHostingSettings"),text:globalize.translate("HttpsRequiresCert")}).then(reject,reject)})}functionalertText(options){returnnewPromise(function(resolve,reject){require(["alert"],function(alert){alert(options).then(resolve,reject)})})}functionconfirmSelections(localAddress,enableUpnp,callback){localAddress||!enableUpnp?alertText({title:globalize.translate("TitleHostingSettings"),text:globalize.translate("SettingsWarning")}).then(callback):callback()}functiongetTabs(){return[{href:"dashboardhosting.html",name:globalize.translate("TabHosting")},{href:"serversecurity.html",name:globalize.translate("TabSecurity")}]}returnfunction(view,params){functionloadPage(page,config){page.querySelector("#txtPortNumber").value=config.HttpServerPortNumber,page.querySelector("#txtPublicPort").value=config.PublicPort,page.querySelector("#txtPublicHttpsPort").value=config.PublicHttpsPort,page.querySelector("#txtLocalAddress").value=config.LocalNetworkAddresses[0]||"",page.querySelector("#txtLanNetworks").value=(config.LocalNetworkSubnets||[]).join(", "),page.querySelector("#txtExternalAddressFilter").value=(config.RemoteIPFilter||[]).join(", "),page.query