mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
Merge pull request #3770 from negulici-r-barnabas/master
This commit is contained in:
commit
8956cc2766
6 changed files with 103 additions and 31 deletions
44
package-lock.json
generated
44
package-lock.json
generated
|
@ -2586,12 +2586,12 @@
|
||||||
"integrity": "sha512-xQVJw+lZUg4U1TmLS80reBECfPtpCgRF8hhUSvUUQM9g68OvINyUU3K2yqRH+8tomGpghiRaIcr/bUJ83e0veA=="
|
"integrity": "sha512-xQVJw+lZUg4U1TmLS80reBECfPtpCgRF8hhUSvUUQM9g68OvINyUU3K2yqRH+8tomGpghiRaIcr/bUJ83e0veA=="
|
||||||
},
|
},
|
||||||
"node_modules/@jellyfin/sdk": {
|
"node_modules/@jellyfin/sdk": {
|
||||||
"version": "0.0.0-unstable.202212091849",
|
"version": "0.0.0-unstable.202302070552",
|
||||||
"resolved": "https://registry.npmjs.org/@jellyfin/sdk/-/sdk-0.0.0-unstable.202212091849.tgz",
|
"resolved": "https://registry.npmjs.org/@jellyfin/sdk/-/sdk-0.0.0-unstable.202302070552.tgz",
|
||||||
"integrity": "sha512-ATxFc1qSrwSUKJZLR8vW/XXk9EPuSEgBmvQGGakL7CMC92LFUEaJknfR661xH5WOGavrQARPN4kiHALM7IfkKA==",
|
"integrity": "sha512-hwrHLLFPTCEcrMywpLWwgGKEDKBjgu3o+ruMV3qCG7uAmKAQq48kuaZ818rJD+LjWBjBIUixnLJq1qUlHsgc+A==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"axios": "1.2.0",
|
"axios": "1.2.6",
|
||||||
"compare-versions": "5.0.1"
|
"compare-versions": "5.0.3"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@jridgewell/gen-mapping": {
|
"node_modules/@jridgewell/gen-mapping": {
|
||||||
|
@ -4086,9 +4086,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/axios": {
|
"node_modules/axios": {
|
||||||
"version": "1.2.0",
|
"version": "1.2.6",
|
||||||
"resolved": "https://registry.npmjs.org/axios/-/axios-1.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/axios/-/axios-1.2.6.tgz",
|
||||||
"integrity": "sha512-zT7wZyNYu3N5Bu0wuZ6QccIf93Qk1eV8LOewxgjOZFd2DenOs98cJ7+Y6703d0wkaXGY6/nZd4EweJaHz9uzQw==",
|
"integrity": "sha512-rC/7F08XxZwjMV4iuWv+JpD3E0Ksqg9nac4IIg6RwNuF0JTeWoCo/mBNG54+tNhhI11G3/VDRbdDQTs9hGp4pQ==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"follow-redirects": "^1.15.0",
|
"follow-redirects": "^1.15.0",
|
||||||
"form-data": "^4.0.0",
|
"form-data": "^4.0.0",
|
||||||
|
@ -4923,9 +4923,9 @@
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/compare-versions": {
|
"node_modules/compare-versions": {
|
||||||
"version": "5.0.1",
|
"version": "5.0.3",
|
||||||
"resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-5.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-5.0.3.tgz",
|
||||||
"integrity": "sha512-v8Au3l0b+Nwkp4G142JcgJFh1/TUhdxut7wzD1Nq1dyp5oa3tXaqb03EXOAB6jS4gMlalkjAUPZBMiAfKUixHQ=="
|
"integrity": "sha512-4UZlZP8Z99MGEY+Ovg/uJxJuvoXuN4M6B3hKaiackiHrgzQFEe3diJi1mf1PNHbFujM7FvLrK2bpgIaImbtZ1A=="
|
||||||
},
|
},
|
||||||
"node_modules/component-emitter": {
|
"node_modules/component-emitter": {
|
||||||
"version": "1.3.0",
|
"version": "1.3.0",
|
||||||
|
@ -20831,12 +20831,12 @@
|
||||||
"integrity": "sha512-xQVJw+lZUg4U1TmLS80reBECfPtpCgRF8hhUSvUUQM9g68OvINyUU3K2yqRH+8tomGpghiRaIcr/bUJ83e0veA=="
|
"integrity": "sha512-xQVJw+lZUg4U1TmLS80reBECfPtpCgRF8hhUSvUUQM9g68OvINyUU3K2yqRH+8tomGpghiRaIcr/bUJ83e0veA=="
|
||||||
},
|
},
|
||||||
"@jellyfin/sdk": {
|
"@jellyfin/sdk": {
|
||||||
"version": "0.0.0-unstable.202212091849",
|
"version": "0.0.0-unstable.202302070552",
|
||||||
"resolved": "https://registry.npmjs.org/@jellyfin/sdk/-/sdk-0.0.0-unstable.202212091849.tgz",
|
"resolved": "https://registry.npmjs.org/@jellyfin/sdk/-/sdk-0.0.0-unstable.202302070552.tgz",
|
||||||
"integrity": "sha512-ATxFc1qSrwSUKJZLR8vW/XXk9EPuSEgBmvQGGakL7CMC92LFUEaJknfR661xH5WOGavrQARPN4kiHALM7IfkKA==",
|
"integrity": "sha512-hwrHLLFPTCEcrMywpLWwgGKEDKBjgu3o+ruMV3qCG7uAmKAQq48kuaZ818rJD+LjWBjBIUixnLJq1qUlHsgc+A==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"axios": "1.2.0",
|
"axios": "1.2.6",
|
||||||
"compare-versions": "5.0.1"
|
"compare-versions": "5.0.3"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@jridgewell/gen-mapping": {
|
"@jridgewell/gen-mapping": {
|
||||||
|
@ -22007,9 +22007,9 @@
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"axios": {
|
"axios": {
|
||||||
"version": "1.2.0",
|
"version": "1.2.6",
|
||||||
"resolved": "https://registry.npmjs.org/axios/-/axios-1.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/axios/-/axios-1.2.6.tgz",
|
||||||
"integrity": "sha512-zT7wZyNYu3N5Bu0wuZ6QccIf93Qk1eV8LOewxgjOZFd2DenOs98cJ7+Y6703d0wkaXGY6/nZd4EweJaHz9uzQw==",
|
"integrity": "sha512-rC/7F08XxZwjMV4iuWv+JpD3E0Ksqg9nac4IIg6RwNuF0JTeWoCo/mBNG54+tNhhI11G3/VDRbdDQTs9hGp4pQ==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"follow-redirects": "^1.15.0",
|
"follow-redirects": "^1.15.0",
|
||||||
"form-data": "^4.0.0",
|
"form-data": "^4.0.0",
|
||||||
|
@ -22658,9 +22658,9 @@
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"compare-versions": {
|
"compare-versions": {
|
||||||
"version": "5.0.1",
|
"version": "5.0.3",
|
||||||
"resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-5.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-5.0.3.tgz",
|
||||||
"integrity": "sha512-v8Au3l0b+Nwkp4G142JcgJFh1/TUhdxut7wzD1Nq1dyp5oa3tXaqb03EXOAB6jS4gMlalkjAUPZBMiAfKUixHQ=="
|
"integrity": "sha512-4UZlZP8Z99MGEY+Ovg/uJxJuvoXuN4M6B3hKaiackiHrgzQFEe3diJi1mf1PNHbFujM7FvLrK2bpgIaImbtZ1A=="
|
||||||
},
|
},
|
||||||
"component-emitter": {
|
"component-emitter": {
|
||||||
"version": "1.3.0",
|
"version": "1.3.0",
|
||||||
|
|
|
@ -79,6 +79,7 @@
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<br />
|
<br />
|
||||||
<div>
|
<div>
|
||||||
<button is="emby-button" type="submit" class="raised button-submit block">
|
<button is="emby-button" type="submit" class="raised button-submit block">
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
import 'jquery';
|
import 'jquery';
|
||||||
|
|
||||||
import loading from '../../components/loading/loading';
|
import loading from '../../components/loading/loading';
|
||||||
import globalize from '../../scripts/globalize';
|
import globalize from '../../scripts/globalize';
|
||||||
import '../../elements/emby-checkbox/emby-checkbox';
|
import '../../elements/emby-checkbox/emby-checkbox';
|
||||||
|
@ -35,6 +36,7 @@ import alert from '../../components/alert';
|
||||||
config.MetadataPath = $('#txtMetadataPath', form).val();
|
config.MetadataPath = $('#txtMetadataPath', form).val();
|
||||||
config.MetadataNetworkPath = $('#txtMetadataNetworkPath', form).val();
|
config.MetadataNetworkPath = $('#txtMetadataNetworkPath', form).val();
|
||||||
config.QuickConnectAvailable = form.querySelector('#chkQuickConnectAvailable').checked;
|
config.QuickConnectAvailable = form.querySelector('#chkQuickConnectAvailable').checked;
|
||||||
|
|
||||||
ApiClient.updateServerConfiguration(config).then(function() {
|
ApiClient.updateServerConfiguration(config).then(function() {
|
||||||
ApiClient.getNamedConfiguration(brandingConfigKey).then(function(brandingConfig) {
|
ApiClient.getNamedConfiguration(brandingConfigKey).then(function(brandingConfig) {
|
||||||
brandingConfig.LoginDisclaimer = form.querySelector('#txtLoginDisclaimer').value;
|
brandingConfig.LoginDisclaimer = form.querySelector('#txtLoginDisclaimer').value;
|
||||||
|
|
|
@ -1,10 +1,35 @@
|
||||||
|
import { ImageResolution } from '@jellyfin/sdk/lib/generated-client/models/image-resolution';
|
||||||
|
|
||||||
import 'jquery';
|
import 'jquery';
|
||||||
|
|
||||||
import loading from '../../components/loading/loading';
|
import loading from '../../components/loading/loading';
|
||||||
import libraryMenu from '../../scripts/libraryMenu';
|
import libraryMenu from '../../scripts/libraryMenu';
|
||||||
import globalize from '../../scripts/globalize';
|
import globalize from '../../scripts/globalize';
|
||||||
import '../../components/listview/listview.scss';
|
|
||||||
import Dashboard from '../../utils/dashboard';
|
import Dashboard from '../../utils/dashboard';
|
||||||
|
|
||||||
|
import '../../components/listview/listview.scss';
|
||||||
|
|
||||||
|
function populateImageResolutionOptions(select) {
|
||||||
|
let html = '';
|
||||||
|
[
|
||||||
|
{
|
||||||
|
name: globalize.translate('ResolutionMatchSource'),
|
||||||
|
value: ImageResolution.MatchSource
|
||||||
|
},
|
||||||
|
{ name: '2160p', value: ImageResolution.P2160 },
|
||||||
|
{ name: '1440p', value: ImageResolution.P1440 },
|
||||||
|
{ name: '1080p', value: ImageResolution.P1080 },
|
||||||
|
{ name: '720p', value: ImageResolution.P720 },
|
||||||
|
{ name: '480p', value: ImageResolution.P480 },
|
||||||
|
{ name: '360p', value: ImageResolution.P360 },
|
||||||
|
{ name: '240p', value: ImageResolution.P240 },
|
||||||
|
{ name: '144p', value: ImageResolution.P144 }
|
||||||
|
].forEach(({ value, name }) => {
|
||||||
|
html += `<option value="${value}">${name}</option>`;
|
||||||
|
});
|
||||||
|
select.innerHTML = html;
|
||||||
|
}
|
||||||
|
|
||||||
/* eslint-disable indent */
|
/* eslint-disable indent */
|
||||||
|
|
||||||
function populateLanguages(select) {
|
function populateLanguages(select) {
|
||||||
|
@ -32,11 +57,21 @@ import Dashboard from '../../utils/dashboard';
|
||||||
}
|
}
|
||||||
|
|
||||||
function loadPage(page) {
|
function loadPage(page) {
|
||||||
const promises = [ApiClient.getServerConfiguration(), populateLanguages(page.querySelector('#selectLanguage')), populateCountries(page.querySelector('#selectCountry'))];
|
const promises = [
|
||||||
|
ApiClient.getServerConfiguration(),
|
||||||
|
populateLanguages(page.querySelector('#selectLanguage')),
|
||||||
|
populateCountries(page.querySelector('#selectCountry'))
|
||||||
|
];
|
||||||
|
|
||||||
|
populateImageResolutionOptions(page.querySelector('#txtChapterImageResolution'));
|
||||||
|
|
||||||
Promise.all(promises).then(function(responses) {
|
Promise.all(promises).then(function(responses) {
|
||||||
const config = responses[0];
|
const config = responses[0];
|
||||||
page.querySelector('#selectLanguage').value = config.PreferredMetadataLanguage || '';
|
page.querySelector('#selectLanguage').value = config.PreferredMetadataLanguage || '';
|
||||||
page.querySelector('#selectCountry').value = config.MetadataCountryCode || '';
|
page.querySelector('#selectCountry').value = config.MetadataCountryCode || '';
|
||||||
|
page.querySelector('#valDummyChapterDuration').value = config.DummyChapterDuration || '';
|
||||||
|
page.querySelector('#valDummyChapterCount').value = config.DummyChapterCount || '';
|
||||||
|
page.querySelector('#txtChapterImageResolution').value = config.ChapterImageResolution || '';
|
||||||
loading.hide();
|
loading.hide();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -47,6 +82,9 @@ import Dashboard from '../../utils/dashboard';
|
||||||
ApiClient.getServerConfiguration().then(function(config) {
|
ApiClient.getServerConfiguration().then(function(config) {
|
||||||
config.PreferredMetadataLanguage = form.querySelector('#selectLanguage').value;
|
config.PreferredMetadataLanguage = form.querySelector('#selectLanguage').value;
|
||||||
config.MetadataCountryCode = form.querySelector('#selectCountry').value;
|
config.MetadataCountryCode = form.querySelector('#selectCountry').value;
|
||||||
|
config.DummyChapterDuration = form.querySelector('#valDummyChapterDuration').value;
|
||||||
|
config.DummyChapterCount = form.querySelector('#valDummyChapterCount').value;
|
||||||
|
config.ChapterImageResolution = form.querySelector('#txtChapterImageResolution').value;
|
||||||
ApiClient.updateServerConfiguration(config).then(Dashboard.processServerConfigurationUpdateResult);
|
ApiClient.updateServerConfiguration(config).then(Dashboard.processServerConfigurationUpdateResult);
|
||||||
});
|
});
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -5,19 +5,42 @@
|
||||||
<div class="content-primary">
|
<div class="content-primary">
|
||||||
|
|
||||||
<form class="metadataImagesConfigurationForm">
|
<form class="metadataImagesConfigurationForm">
|
||||||
<h2 style="margin-top:0;">${HeaderPreferredMetadataLanguage}</h2>
|
<div class="verticalSection">
|
||||||
|
<h2 style="margin-top:0;">${HeaderPreferredMetadataLanguage}</h2>
|
||||||
|
|
||||||
<p style="margin:1.5em 0;">${DefaultMetadataLangaugeDescription}</p>
|
<p style="margin:1.5em 0;">${DefaultMetadataLangaugeDescription}</p>
|
||||||
|
|
||||||
<div class="selectContainer">
|
<div class="selectContainer">
|
||||||
<select is="emby-select" id="selectLanguage" required="required" label="${LabelLanguage}"></select>
|
<select is="emby-select" id="selectLanguage" required="required" label="${LabelLanguage}"></select>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="selectContainer">
|
||||||
|
<select is="emby-select" id="selectCountry" required="required" label="${LabelCountry}"></select>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="selectContainer">
|
<div class="verticalSection">
|
||||||
<select is="emby-select" id="selectCountry" required="required" label="${LabelCountry}"></select>
|
<h2>${HeaderDummyChapter}</h2>
|
||||||
|
<div class="inputContainer">
|
||||||
|
<input is="emby-input" type="number" id="valDummyChapterDuration" label="${LabelDummyChapterDuration}" min="1"></input>
|
||||||
|
<div class="fieldDescription">${LabelDummyChapterDurationHelp}</div>
|
||||||
|
</div>
|
||||||
|
<div class="inputContainer">
|
||||||
|
<input is="emby-input" type="number" id="valDummyChapterCount" label="${LabelDummyChapterCount}" min="1"></input>
|
||||||
|
<div class="fieldDescription">${LabelDummyChapterCountHelp}</div>
|
||||||
|
</div>
|
||||||
|
<div class="selectContainer">
|
||||||
|
<select is="emby-select" id="txtChapterImageResolution" label="${LabelChapterImageResolution}"></select>
|
||||||
|
<div class="fieldDescription">
|
||||||
|
<div>${LabelChapterImageResolutionHelp}</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<br />
|
<br />
|
||||||
<div><button is="emby-button" type="submit" class="raised button-submit block"><span>${Save}</span></button></div>
|
<div>
|
||||||
|
<button is="emby-button" type="submit" class="raised button-submit block"><span>${Save}</span></button>
|
||||||
|
</div>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -360,6 +360,7 @@
|
||||||
"HeaderDirectPlayProfile": "Direct Playback Profile",
|
"HeaderDirectPlayProfile": "Direct Playback Profile",
|
||||||
"HeaderDirectPlayProfileHelp": "Add direct playback profiles to indicate which formats the device can handle natively.",
|
"HeaderDirectPlayProfileHelp": "Add direct playback profiles to indicate which formats the device can handle natively.",
|
||||||
"HeaderDownloadSync": "Download & Sync",
|
"HeaderDownloadSync": "Download & Sync",
|
||||||
|
"HeaderDummyChapter": "Chapter Images",
|
||||||
"HeaderDVR": "DVR",
|
"HeaderDVR": "DVR",
|
||||||
"HeaderEasyPinCode": "Easy PIN Code",
|
"HeaderEasyPinCode": "Easy PIN Code",
|
||||||
"HeaderEditImages": "Edit Images",
|
"HeaderEditImages": "Edit Images",
|
||||||
|
@ -625,6 +626,12 @@
|
||||||
"LabelDroppedFrames": "Dropped frames:",
|
"LabelDroppedFrames": "Dropped frames:",
|
||||||
"LabelDropShadow": "Drop shadow:",
|
"LabelDropShadow": "Drop shadow:",
|
||||||
"LabelDropSubtitleHere": "Drop subtitle here, or click to browse.",
|
"LabelDropSubtitleHere": "Drop subtitle here, or click to browse.",
|
||||||
|
"LabelDummyChapterDuration": "Interval:",
|
||||||
|
"LabelDummyChapterDurationHelp": "The chapter image extraction interval in seconds.",
|
||||||
|
"LabelDummyChapterCount": "Limit:",
|
||||||
|
"LabelDummyChapterCountHelp": "The maximum number of chapter images that will be extracted for each media file.",
|
||||||
|
"LabelChapterImageResolution": "Resolution:",
|
||||||
|
"LabelChapterImageResolutionHelp": "The resolution of the extracted chapter images.",
|
||||||
"LabelDynamicExternalId": "{0} Id:",
|
"LabelDynamicExternalId": "{0} Id:",
|
||||||
"LabelEasyPinCode": "Easy PIN code:",
|
"LabelEasyPinCode": "Easy PIN code:",
|
||||||
"LabelEmbedAlbumArtDidl": "Embed album art in DIDL",
|
"LabelEmbedAlbumArtDidl": "Embed album art in DIDL",
|
||||||
|
@ -1379,6 +1386,7 @@
|
||||||
"ReplaceAllMetadata": "Replace all metadata",
|
"ReplaceAllMetadata": "Replace all metadata",
|
||||||
"ReplaceExistingImages": "Replace existing images",
|
"ReplaceExistingImages": "Replace existing images",
|
||||||
"ResetPassword": "Reset Password",
|
"ResetPassword": "Reset Password",
|
||||||
|
"ResolutionMatchSource": "Match Source",
|
||||||
"Restart": "Restart",
|
"Restart": "Restart",
|
||||||
"ResumeAt": "Resume from {0}",
|
"ResumeAt": "Resume from {0}",
|
||||||
"Rewind": "Rewind",
|
"Rewind": "Rewind",
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue