1 line
9.5 KiB
JavaScript
1 line
9.5 KiB
JavaScript
|
|
import BaseSettingsView from"./../modules/viewmanager/basesettingsview.js";import loading from"./../modules/loading/loading.js";import globalize from"./../modules/common/globalize.js";import"./../modules/emby-elements/emby-input/emby-input.js";import"./../modules/emby-elements/emby-button/emby-button.js";import"./../modules/emby-elements/emby-checkbox/emby-checkbox.js";import"./../modules/emby-elements/emby-select/emby-select.js";import"./../modules/emby-elements/emby-premierecontainer/emby-premierecontainer.js";import formHelper from"./../modules/common/responsehelper.js";function showAlert(options){return Emby.importModule("./modules/common/dialogs/alert.js").then(function(alert){return alert(options)})}function onSubmit(e){let form=this,localAddress=form.querySelector(".txtLocalAddress").value,enableUpnp=form.querySelector(".chkEnableUpnp").checked;confirmSelections(localAddress,enableUpnp,function(){var validationResult=getValidationAlert(form);validationResult?showAlert(validationResult):validateHttps(form).then(function(){loading.show(),ApiClient.getServerConfiguration().then(function(config){config.LocalNetworkSubnets=form.querySelector(".txtLanNetworks").value.split(",").map(function(s){return s.trim()}).filter(function(s){return 0<s.length}),config.RemoteIPFilter=form.querySelector(".txtExternalAddressFilter").value.split(",").map(function(s){return s.trim()}).filter(function(s){return 0<s.length}),config.IsRemoteIPFilterBlacklist="blacklist"===form.querySelector(".selectExternalAddressFilterMode").value,config.PublicPort=form.querySelector(".txtPublicPort").value,config.PublicHttpsPort=form.querySelector(".txtPublicHttpsPort").value;var httpsMode=form.querySelector(".selectHttpsMode").value;"proxy"===httpsMode?(config.EnableHttps=!0,config.RequireHttps=!1,config.IsBehindProxy=!0):("required"===httpsMode?(config.EnableHttps=!0,config.RequireHttps=!0):(config.EnableHttps="enabled"===httpsMode,config.RequireHttps=!1),config.IsBehindProxy=!1),config.HttpsPortNumber=form.querySelector(".txtHttpsPort").value,config.HttpServerPortNumber=form.querySelector(".txtPortNumber").value,config.EnableUPnP=enableUpnp,config.SimultaneousStreamLimit=form.querySelector(".selectStreamLimit").value,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.ProxyHeaderMode=form.querySelector(".selectProxyHeaderMode").value||"AllAddresses",config.RemoteClientBitrateLimit=parseInt(1e6*parseFloat(form.querySelector(".txtRemoteClientBitrateLimit").value||"0")),config.LocalNetworkAddresses=localAddress?[localAddress]:[],ApiClient.updateServerConfiguration(config).then(formHelper.handleConfigurationSavedResponse,formHelper.handleErrorResponse)})})}),e.preventDefault()}function triggerChange(select){var evt=document.createEvent("HTMLEvents");evt.initEvent("change",!1,!0),select.dispatchEvent(evt)}function getValidationAlert(form){return form.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}function validateHttps(form){var certPath=form.querySelector(".txtCertificatePath").value||null,form=form.querySelector(".selectHttpsMode").value;return!("enabled"===form||"required"===form)||certPath?Promise.resolve():new Promise(function(resolve,reject){showAlert({text:globalize.translate("HttpsRequiresCert")}).then(reject,reject)})}function confirmSelections(localAddress,enableUpnp,callback){localAddress||!enableUpnp?showAlert({text:globalize.translate("SettingsWarning")}).then(callback):callback()}function isPortMapperPlugin(p){return p.Id.toLowerCase()==="96FA50A4-69CE-42AC-B6A3-EF6B3388CCB7".toLowerCase()}function fillStreamLimit(view){let html='<option value="0">'+globalize.translate("Unlimited")+"
|