From db4235e2f893a79fb703d9d23c09f616ac1ee473 Mon Sep 17 00:00:00 2001 From: BaronGreenback Date: Sat, 10 Oct 2020 13:20:41 +0100 Subject: [PATCH] Add files via upload For use with https://github.com/jellyfin/jellyfin/pull/4124 --- src/controllers/dashboard/networking.html | 202 ++++++++++++++++++++++ src/controllers/dashboard/networking.js | 88 +++++++--- 2 files changed, 268 insertions(+), 22 deletions(-) create mode 100644 src/controllers/dashboard/networking.html diff --git a/src/controllers/dashboard/networking.html b/src/controllers/dashboard/networking.html new file mode 100644 index 0000000000..0102cd5ab8 --- /dev/null +++ b/src/controllers/dashboard/networking.html @@ -0,0 +1,202 @@ +
+
+
+
+
+
+

${TabNetworking}

+ ${Help} +
+ +
+

${HeaderServerAddressSettings}

+ +
+ +
${LabelLocalHttpServerPortNumberHelp}
+
+ +
+ +
${LabelEnableHttpsHelp}
+
+ +
+ +
${LabelHttpsPortHelp}
+
+ +
+ +
${LabelBaseUrlHelp}
+
+ +
+ +
${LabelBindToLocalNetworkAddressHelp}
+
+ +
+ +
${LanNetworksHelp}
+
+ +
+ +
${KnownProxiesHelp}
+
+
+ +
+

${HeaderHttpsSettings}

+ +
+ +
${LabelRequireHttpsHelp}
+
+ +
+
+
+ +
+ +
+
${LabelCustomCertificatePathHelp}
+
+ +
+ +
${LabelCertificatePasswordHelp}
+
+
+ +
+

${HeaderRemoteAccessSettings}

+ +
+ +
${AllowRemoteAccessHelp}
+
+
+ +
${AllowedRemoteAddressesHelp}
+
+
+ +
+ +
+ +
${LabelEnableAutomaticPortMapHelp}
+
+
+ +
${LabelCreateHttpPortMapHelp}
+
+
+ +
${LabelPublicHttpPortHelp}
+
+
+ +
${LabelPublicHttpsPortHelp}
+
+
+ +
+

${HeaderNetworking}

+
+ +
${LabelEnableIP4Help}
+
+
+ +
${LabelEnableIP6Help}
+
+
+ + +
+

${HeaderAutoDiscovery}

+
+ +
${LabelAutomaticDiscoveryHelp}
+
+
+ +
+

${HeaderPortRanges}

+ +
+ +
${LabelPublishedServerUriHelp}
+
+
+ +
${LabelUDPPortRangeHelp}
+
+
+ +
${LabelHDHomerunPortRangeHelp}
+
+
+ +
+

${HeaderDebugging}

+
+ +
${LabelEnableSSDPTracingHelp}
+
+
+ +
${LabelSSDPTracingFilterHelp}
+
+
+ +
${LabelAutoDiscoveryTracingHelp}
+
+
+
+
+ +
+
+
+
+
diff --git a/src/controllers/dashboard/networking.js b/src/controllers/dashboard/networking.js index 4ddde7f24c..8d9b9fa531 100644 --- a/src/controllers/dashboard/networking.js +++ b/src/controllers/dashboard/networking.js @@ -1,12 +1,16 @@ -define(['loading', 'libraryMenu', 'globalize', 'emby-checkbox', 'emby-select'], function (loading, libraryMenu, globalize) { - 'use strict'; +import loading from 'loading'; +import globalize from 'globalize'; +import 'emby-checkbox'; +import 'emby-select'; + +/* eslint-disable indent */ function onSubmit(e) { - var form = this; - var localAddress = form.querySelector('#txtLocalAddress').value; - var enableUpnp = form.querySelector('#chkEnableUpnp').checked; + const form = this; + const localAddress = form.querySelector('#txtLocalAddress').value; + const enableUpnp = form.querySelector('#chkEnableUpnp').checked; confirmSelections(localAddress, enableUpnp, function () { - var validationResult = getValidationAlert(form); + const validationResult = getValidationAlert(form); if (validationResult) { showAlertText(validationResult); @@ -15,7 +19,7 @@ define(['loading', 'libraryMenu', 'globalize', 'emby-checkbox', 'emby-select'], validateHttps(form).then(function () { loading.show(); - ApiClient.getServerConfiguration().then(function (config) { + ApiClient.getNamedConfiguration('network').then(function (config) { config.LocalNetworkSubnets = form.querySelector('#txtLanNetworks').value.split(',').map(function (s) { return s.trim(); }).filter(function (s) { @@ -26,7 +30,24 @@ define(['loading', 'libraryMenu', 'globalize', 'emby-checkbox', 'emby-select'], }).filter(function (s) { return s.length > 0; }); - config.IsRemoteIPFilterBlacklist = 'blacklist' === form.querySelector('#selectExternalAddressFilterMode').value; + config.KnownProxies = form.querySelector('#txtKnownProxies').value.split(',').map(function (s) { + return s.trim(); + }).filter(function (s) { + return s.length > 0; + }); + config.LocalNetworkAddresses = form.querySelector('#txtLocalAddress').value.split(',').map(function (s) { + return s.trim(); + }).filter(function (s) { + return s.length > 0; + }); + + config.PublishedServerUriBySubnet = form.querySelector('#txtPublishedServer').value.split(',').map(function (s) { + return s.trim(); + }).filter(function (s) { + return s.length > 0; + }); + + config.IsRemoteIPFilterBlacklist = form.querySelector('#selectExternalAddressFilterMode').value === 'blacklist'; config.PublicPort = form.querySelector('#txtPublicPort').value; config.PublicHttpsPort = form.querySelector('#txtPublicHttpsPort').value; config.HttpServerPortNumber = form.querySelector('#txtPortNumber').value; @@ -38,8 +59,18 @@ define(['loading', 'libraryMenu', 'globalize', 'emby-checkbox', 'emby-select'], 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); + + config.UPnPCreateHttpPortMap = form.querySelector('#chkCreateHttpPortMap').checked; + config.AutoDiscovery = form.querySelector('#chkAutodiscovery').checked; + config.AutoDiscoveryTracing = form.querySelector('#chkAutodiscoveryTracing').checked; + config.EnableIP6 = form.querySelector('#chkEnableIP6').checked; + config.EnableIP4 = form.querySelector('#chkEnableIP4').checked; + config.UPnPCreateHttpPortMap = form.querySelector('#chkCreateHttpPortMap').checked; + config.UDPPortRange = form.querySelector('#txtUDPPortRange').value || null; + config.HDHomerunPortRange = form.querySelector('#txtHDHomerunPortRange').checked || null; + config.EnableSSDPTracing = form.querySelector('#chkEnableSSDPTracing').checked; + config.SSDPTracingFilter = form.querySelector('#txtSSDPTracingFilter').value || null; + ApiClient.updateNamedConfiguration('network', config).then(Dashboard.processServerConfigurationUpdateResult, Dashboard.processErrorResponse); }); }); }); @@ -47,7 +78,7 @@ define(['loading', 'libraryMenu', 'globalize', 'emby-checkbox', 'emby-select'], } function triggerChange(select) { - var evt = document.createEvent('HTMLEvents'); + const evt = document.createEvent('HTMLEvents'); evt.initEvent('change', false, true); select.dispatchEvent(evt); } @@ -65,8 +96,8 @@ define(['loading', 'libraryMenu', 'globalize', 'emby-checkbox', 'emby-select'], } function validateHttps(form) { - var certPath = form.querySelector('#txtCertificatePath').value || null; - var httpsEnabled = form.querySelector('#chkEnableHttps').checked; + const certPath = form.querySelector('#txtCertificatePath').value || null; + const httpsEnabled = form.querySelector('#chkEnableHttps').checked; if (httpsEnabled && !certPath) { return showAlertText({ @@ -80,7 +111,7 @@ define(['loading', 'libraryMenu', 'globalize', 'emby-checkbox', 'emby-select'], function showAlertText(options) { return new Promise(function (resolve, reject) { - require(['alert'], function (alert) { + import('alert').then(({default: alert}) => { alert(options).then(resolve, reject); }); }); @@ -97,25 +128,37 @@ define(['loading', 'libraryMenu', 'globalize', 'emby-checkbox', 'emby-select'], } } - return function (view, params) { + export default function (view, params) { function loadPage(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('#txtKnownProxies').value = (config.KnownProxies || []).join(', '); page.querySelector('#txtExternalAddressFilter').value = (config.RemoteIPFilter || []).join(', '); page.querySelector('#selectExternalAddressFilterMode').value = config.IsRemoteIPFilterBlacklist ? 'blacklist' : 'whitelist'; - page.querySelector('#chkRemoteAccess').checked = null == config.EnableRemoteAccess || config.EnableRemoteAccess; + page.querySelector('#chkRemoteAccess').checked = config.EnableRemoteAccess == null || config.EnableRemoteAccess; page.querySelector('#txtHttpsPort').value = config.HttpsPortNumber; page.querySelector('#chkEnableHttps').checked = config.EnableHttps; page.querySelector('#chkRequireHttps').checked = config.RequireHttps; page.querySelector('#txtBaseUrl').value = config.BaseUrl || ''; - var txtCertificatePath = page.querySelector('#txtCertificatePath'); + const txtCertificatePath = page.querySelector('#txtCertificatePath'); txtCertificatePath.value = config.CertificatePath || ''; page.querySelector('#txtCertPassword').value = config.CertificatePassword || ''; page.querySelector('#chkEnableUpnp').checked = config.EnableUPnP; triggerChange(page.querySelector('#chkRemoteAccess')); + form.querySelector('#chkCreateHttpPortMap').checked = config.UPnPCreateHttpPortMap; + form.querySelector('#chkAutodiscovery').checked = config.AutoDiscovery; + form.querySelector('#chkAutodiscoveryTracing').checked = config.AutoDiscoveryTracing; + form.querySelector('#chkEnableIP6').checked = config.EnableIP6; + form.querySelector('#chkEnableIP4').checked = config.EnableIP4; + form.querySelector('#chkCreateHttpPortMap').checked = config.UPnPCreateHttpPortMap; + form.querySelector('#txtUDPPortRange').value = config.UDPPortRange; + form.querySelector('#txtHDHomerunPortRange').checked = config.HDHomerunPortRange; + form.querySelector('#chkEnableSSDPTracing').checked = config.EnableSSDPTracing; + form.querySelector('#txtSSDPTracingFilter').value = config.SSDPTracingFilter; + loading.hide(); } @@ -135,8 +178,8 @@ define(['loading', 'libraryMenu', 'globalize', 'emby-checkbox', 'emby-select'], } }); view.querySelector('#btnSelectCertPath').addEventListener('click', function () { - require(['directorybrowser'], function (directoryBrowser) { - var picker = new directoryBrowser(); + import('directorybrowser').then(({default: directoryBrowser}) => { + const picker = new directoryBrowser(); picker.show({ includeFiles: true, includeDirectories: true, @@ -154,9 +197,10 @@ define(['loading', 'libraryMenu', 'globalize', 'emby-checkbox', 'emby-select'], view.querySelector('.dashboardHostingForm').addEventListener('submit', onSubmit); view.addEventListener('viewshow', function (e) { loading.show(); - ApiClient.getServerConfiguration().then(function (config) { + ApiClient.getNamedConfiguration('network').then(function (config) { loadPage(view, config); }); }); - }; -}); + } + +/* eslint-enable indent */