1
0
Fork 0
mirror of https://github.com/jellyfin/jellyfin-web synced 2025-03-30 19:56:21 +00:00
jellyfin-web/dashboard-ui/scripts/metadatasubtitles.js

104 lines
3.3 KiB
JavaScript
Raw Normal View History

2016-08-21 02:59:36 -04:00
define(['jQuery', 'fnchecked'], function ($) {
2016-10-23 01:11:46 -04:00
'use strict';
2014-05-07 14:38:50 -04:00
2014-05-07 16:16:57 -04:00
function loadPage(page, config, languages) {
2014-05-07 14:38:50 -04:00
2016-02-19 21:45:12 -05:00
$('#chkSubtitlesMovies', page).checked(config.DownloadMovieSubtitles);
$('#chkSubtitlesEpisodes', page).checked(config.DownloadEpisodeSubtitles);
2014-05-07 14:38:50 -04:00
2016-03-19 18:31:00 -04:00
$('#chkSkipIfGraphicalSubsPresent', page).checked(config.SkipIfEmbeddedSubtitlesPresent);
2016-02-19 21:45:12 -05:00
$('#chkSkipIfAudioTrackPresent', page).checked(config.SkipIfAudioTrackMatches);
$('#chkRequirePerfectMatch', page).checked(config.RequirePerfectMatch);
2014-05-07 14:38:50 -04:00
2014-08-10 18:13:17 -04:00
$('#txtOpenSubtitleUsername', page).val(config.OpenSubtitlesUsername);
2014-05-07 14:38:50 -04:00
$('#txtOpenSubtitlePassword', page).val('');
2014-05-07 16:16:57 -04:00
populateLanguages(page, config, languages);
2014-05-07 14:38:50 -04:00
Dashboard.hideLoadingMsg();
}
2014-05-07 16:16:57 -04:00
function populateLanguages(page, config, languages) {
2016-02-19 21:45:12 -05:00
var html = '';
2014-05-07 16:16:57 -04:00
for (var i = 0, length = languages.length; i < length; i++) {
var culture = languages[i];
2016-08-21 02:59:36 -04:00
html += '<label><input type="checkbox" is="emby-checkbox" class="chkLang" data-lang="' + culture.ThreeLetterISOLanguageName.toLowerCase() + '" /><span>' + culture.DisplayName + '</span></label>';
2014-05-07 16:16:57 -04:00
}
2016-03-06 13:09:20 -05:00
$('.downloadLanguages', page).html(html);
2014-05-07 16:16:57 -04:00
2014-08-10 18:13:17 -04:00
var langs = config.DownloadLanguages || [];
2014-05-07 16:16:57 -04:00
$('.chkLang', page).each(function () {
this.checked = langs.indexOf(this.getAttribute('data-lang')) != -1;
2016-02-19 21:45:12 -05:00
});
2014-05-07 16:16:57 -04:00
}
2015-06-08 17:32:20 -04:00
function onSubmit() {
2014-05-07 14:38:50 -04:00
Dashboard.showLoadingMsg();
2015-06-08 17:32:20 -04:00
var form = this;
2014-05-07 14:38:50 -04:00
2015-12-14 10:43:03 -05:00
ApiClient.getNamedConfiguration("subtitles").then(function (config) {
2014-05-07 14:38:50 -04:00
2015-06-08 17:32:20 -04:00
config.DownloadMovieSubtitles = $('#chkSubtitlesMovies', form).checked();
config.DownloadEpisodeSubtitles = $('#chkSubtitlesEpisodes', form).checked();
2014-05-07 14:38:50 -04:00
2016-03-19 18:31:00 -04:00
config.SkipIfEmbeddedSubtitlesPresent = $('#chkSkipIfGraphicalSubsPresent', form).checked();
2015-06-08 17:32:20 -04:00
config.SkipIfAudioTrackMatches = $('#chkSkipIfAudioTrackPresent', form).checked();
config.RequirePerfectMatch = $('#chkRequirePerfectMatch', form).checked();
2014-05-07 14:38:50 -04:00
2015-06-08 17:32:20 -04:00
config.OpenSubtitlesUsername = $('#txtOpenSubtitleUsername', form).val();
2014-05-07 14:38:50 -04:00
2015-06-08 17:32:20 -04:00
var newPassword = $('#txtOpenSubtitlePassword', form).val();
2014-05-07 14:38:50 -04:00
2015-06-08 17:32:20 -04:00
if (newPassword) {
config.OpenSubtitlesPasswordHash = newPassword;
}
2014-05-07 14:38:50 -04:00
2016-02-19 21:45:12 -05:00
config.DownloadLanguages = $('.chkLang', form).get().filter(function (c) {
return c.checked;
}).map(function (c) {
2014-05-07 14:38:50 -04:00
2015-06-08 17:32:20 -04:00
return c.getAttribute('data-lang');
2014-05-07 14:38:50 -04:00
2015-06-08 17:32:20 -04:00
});
2015-12-14 10:43:03 -05:00
ApiClient.updateNamedConfiguration("subtitles", config).then(Dashboard.processServerConfigurationUpdateResult);
2015-06-08 17:32:20 -04:00
});
2014-05-07 14:38:50 -04:00
2015-06-08 17:32:20 -04:00
// Disable default form submission
return false;
}
2014-05-07 14:38:50 -04:00
2015-09-01 10:01:59 -04:00
$(document).on('pageinit', "#metadataSubtitlesPage", function () {
2014-05-07 14:38:50 -04:00
2015-06-08 17:32:20 -04:00
$('.metadataSubtitlesForm').off('submit', onSubmit).on('submit', onSubmit);
2014-05-07 14:38:50 -04:00
2015-09-24 13:08:10 -04:00
}).on('pageshow', "#metadataSubtitlesPage", function () {
2014-05-07 14:38:50 -04:00
2015-06-08 17:32:20 -04:00
Dashboard.showLoadingMsg();
2014-05-07 14:38:50 -04:00
2015-06-08 17:32:20 -04:00
var page = this;
2014-05-07 16:16:57 -04:00
2015-06-08 17:32:20 -04:00
var promise1 = ApiClient.getNamedConfiguration("subtitles");
var promise2 = ApiClient.getCultures();
2014-05-07 16:16:57 -04:00
2015-12-14 10:43:03 -05:00
Promise.all([promise1, promise2]).then(function (responses) {
2014-05-07 16:16:57 -04:00
2015-12-14 10:43:03 -05:00
loadPage(page, responses[0], responses[1]);
2014-05-07 14:38:50 -04:00
2015-06-08 17:32:20 -04:00
});
2014-05-07 14:38:50 -04:00
2015-06-08 17:32:20 -04:00
});
2014-05-07 14:38:50 -04:00
});