mirror of
https://github.com/jellyfin/jellyfin-web.git
synced 2024-11-18 11:28:23 -07:00
219 lines
8.0 KiB
JavaScript
219 lines
8.0 KiB
JavaScript
define(['jQuery'], function ($) {
|
|
|
|
function loadPage(page, config) {
|
|
|
|
if (config.MergeMetadataAndImagesByName) {
|
|
$('.fldImagesByName', page).hide();
|
|
} else {
|
|
$('.fldImagesByName', page).show();
|
|
}
|
|
|
|
$('#txtSeasonZeroName', page).val(config.SeasonZeroDisplayName);
|
|
|
|
$('#selectEnableRealtimeMonitor', page).val(config.EnableLibraryMonitor);
|
|
|
|
page.querySelector('#chkEnableAudioArchiveFiles').checked = config.EnableAudioArchiveFiles;
|
|
page.querySelector('#chkEnableVideoArchiveFiles').checked = config.EnableVideoArchiveFiles;
|
|
|
|
$('#chkSaveMetadataHidden', page).checked(config.SaveMetadataHidden);
|
|
|
|
$('#txtMetadataPath', page).val(config.MetadataPath || '');
|
|
|
|
$('#chkPeopleActors', page).checked(config.PeopleMetadataOptions.DownloadActorMetadata);
|
|
$('#chkPeopleComposers', page).checked(config.PeopleMetadataOptions.DownloadComposerMetadata);
|
|
$('#chkPeopleDirectors', page).checked(config.PeopleMetadataOptions.DownloadDirectorMetadata);
|
|
$('#chkPeopleProducers', page).checked(config.PeopleMetadataOptions.DownloadProducerMetadata);
|
|
$('#chkPeopleWriters', page).checked(config.PeopleMetadataOptions.DownloadWriterMetadata);
|
|
$('#chkPeopleOthers', page).checked(config.PeopleMetadataOptions.DownloadOtherPeopleMetadata);
|
|
$('#chkPeopleGuestStars', page).checked(config.PeopleMetadataOptions.DownloadGuestStarMetadata);
|
|
|
|
Dashboard.hideLoadingMsg();
|
|
}
|
|
|
|
function loadMetadataConfig(page, config) {
|
|
|
|
$('#selectDateAdded', page).val((config.UseFileCreationTimeForDateAdded ? '1' : '0'));
|
|
}
|
|
|
|
function loadFanartConfig(page, config) {
|
|
|
|
$('#txtFanartApiKey', page).val(config.UserApiKey || '');
|
|
}
|
|
|
|
function loadChapters(page, config, providers) {
|
|
|
|
$('#chkChaptersMovies', page).checked(config.EnableMovieChapterImageExtraction);
|
|
$('#chkChaptersEpisodes', page).checked(config.EnableEpisodeChapterImageExtraction);
|
|
$('#chkChaptersOtherVideos', page).checked(config.EnableOtherVideoChapterImageExtraction);
|
|
|
|
$('#chkExtractChaptersDuringLibraryScan', page).checked(config.ExtractDuringLibraryScan);
|
|
|
|
Dashboard.hideLoadingMsg();
|
|
}
|
|
|
|
function saveFanart(form) {
|
|
|
|
ApiClient.getNamedConfiguration("fanart").then(function (config) {
|
|
|
|
config.UserApiKey = $('#txtFanartApiKey', form).val();
|
|
|
|
ApiClient.updateNamedConfiguration("fanart", config);
|
|
});
|
|
}
|
|
|
|
function saveMetadata(form) {
|
|
|
|
ApiClient.getNamedConfiguration("metadata").then(function (config) {
|
|
|
|
config.UseFileCreationTimeForDateAdded = $('#selectDateAdded', form).val() == '1';
|
|
|
|
ApiClient.updateNamedConfiguration("metadata", config);
|
|
});
|
|
}
|
|
|
|
function saveChapters(form) {
|
|
|
|
ApiClient.getNamedConfiguration("chapters").then(function (config) {
|
|
|
|
config.EnableMovieChapterImageExtraction = $('#chkChaptersMovies', form).checked();
|
|
config.EnableEpisodeChapterImageExtraction = $('#chkChaptersEpisodes', form).checked();
|
|
config.EnableOtherVideoChapterImageExtraction = $('#chkChaptersOtherVideos', form).checked();
|
|
|
|
config.ExtractDuringLibraryScan = $('#chkExtractChaptersDuringLibraryScan', form).checked();
|
|
|
|
ApiClient.updateNamedConfiguration("chapters", config);
|
|
});
|
|
}
|
|
|
|
function onSubmit() {
|
|
Dashboard.showLoadingMsg();
|
|
|
|
var form = this;
|
|
|
|
ApiClient.getServerConfiguration().then(function (config) {
|
|
|
|
config.SeasonZeroDisplayName = $('#txtSeasonZeroName', form).val();
|
|
|
|
config.EnableLibraryMonitor = $('#selectEnableRealtimeMonitor', form).val();
|
|
|
|
config.EnableAudioArchiveFiles = form.querySelector('#chkEnableAudioArchiveFiles').checked;
|
|
config.EnableVideoArchiveFiles = form.querySelector('#chkEnableVideoArchiveFiles').checked;
|
|
|
|
config.SaveMetadataHidden = $('#chkSaveMetadataHidden', form).checked();
|
|
|
|
config.EnableTvDbUpdates = $('#chkEnableTvdbUpdates', form).checked();
|
|
config.EnableTmdbUpdates = $('#chkEnableTmdbUpdates', form).checked();
|
|
config.EnableFanArtUpdates = $('#chkEnableFanartUpdates', form).checked();
|
|
config.MetadataPath = $('#txtMetadataPath', form).val();
|
|
config.FanartApiKey = $('#txtFanartApiKey', form).val();
|
|
|
|
config.PeopleMetadataOptions.DownloadActorMetadata = $('#chkPeopleActors', form).checked();
|
|
config.PeopleMetadataOptions.DownloadComposerMetadata = $('#chkPeopleComposers', form).checked();
|
|
config.PeopleMetadataOptions.DownloadDirectorMetadata = $('#chkPeopleDirectors', form).checked();
|
|
config.PeopleMetadataOptions.DownloadGuestStarMetadata = $('#chkPeopleGuestStars', form).checked();
|
|
config.PeopleMetadataOptions.DownloadProducerMetadata = $('#chkPeopleProducers', form).checked();
|
|
config.PeopleMetadataOptions.DownloadWriterMetadata = $('#chkPeopleWriters', form).checked();
|
|
config.PeopleMetadataOptions.DownloadOtherPeopleMetadata = $('#chkPeopleOthers', form).checked();
|
|
|
|
ApiClient.updateServerConfiguration(config).then(Dashboard.processServerConfigurationUpdateResult);
|
|
});
|
|
|
|
saveChapters(form);
|
|
saveMetadata(form);
|
|
saveFanart(form);
|
|
|
|
// Disable default form submission
|
|
return false;
|
|
}
|
|
|
|
function getTabs() {
|
|
return [
|
|
{
|
|
href: 'library.html',
|
|
name: Globalize.translate('TabFolders')
|
|
},
|
|
{
|
|
href: 'librarydisplay.html',
|
|
name: Globalize.translate('TabDisplay')
|
|
},
|
|
{
|
|
href: 'librarypathmapping.html',
|
|
name: Globalize.translate('TabPathSubstitution')
|
|
},
|
|
{
|
|
href: 'librarysettings.html',
|
|
name: Globalize.translate('TabAdvanced')
|
|
}];
|
|
}
|
|
|
|
return function (view, params) {
|
|
|
|
var self = this;
|
|
|
|
$('#btnSelectMetadataPath', view).on("click.selectDirectory", function () {
|
|
|
|
require(['directorybrowser'], function (directoryBrowser) {
|
|
|
|
var picker = new directoryBrowser();
|
|
|
|
picker.show({
|
|
|
|
callback: function (path) {
|
|
if (path) {
|
|
$('#txtMetadataPath', view).val(path);
|
|
}
|
|
picker.close();
|
|
},
|
|
|
|
header: Globalize.translate('HeaderSelectMetadataPath'),
|
|
|
|
instruction: Globalize.translate('HeaderSelectMetadataPathHelp')
|
|
});
|
|
});
|
|
|
|
});
|
|
|
|
$('.librarySettingsForm').off('submit', onSubmit).on('submit', onSubmit);
|
|
|
|
ApiClient.getSystemInfo().then(function (systemInfo) {
|
|
|
|
if (systemInfo.SupportsLibraryMonitor) {
|
|
view.querySelector('.fldLibraryMonitor').classList.remove('hide');
|
|
} else {
|
|
view.querySelector('.fldLibraryMonitor').classList.add('hide');
|
|
}
|
|
});
|
|
|
|
view.addEventListener('viewshow', function () {
|
|
LibraryMenu.setTabs('librarysetup', 3, getTabs);
|
|
Dashboard.showLoadingMsg();
|
|
|
|
var page = this;
|
|
|
|
ApiClient.getServerConfiguration().then(function (config) {
|
|
|
|
loadPage(page, config);
|
|
});
|
|
|
|
ApiClient.getNamedConfiguration("metadata").then(function (metadata) {
|
|
|
|
loadMetadataConfig(page, metadata);
|
|
});
|
|
|
|
ApiClient.getNamedConfiguration("fanart").then(function (metadata) {
|
|
|
|
loadFanartConfig(page, metadata);
|
|
});
|
|
|
|
var promise1 = ApiClient.getNamedConfiguration("chapters");
|
|
var promise2 = ApiClient.getJSON(ApiClient.getUrl("Providers/Chapters"));
|
|
|
|
Promise.all([promise1, promise2]).then(function (responses) {
|
|
|
|
loadChapters(page, responses[0], responses[1]);
|
|
});
|
|
});
|
|
};
|
|
|
|
});
|