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

finish open subtitle config page

This commit is contained in:
Luke Pulverenti 2014-05-07 16:16:57 -04:00
parent 746a467d6a
commit 0718ddfce4
2 changed files with 45 additions and 2 deletions

View file

@ -22,6 +22,7 @@
<form class="metadataSubtitlesForm"> <form class="metadataSubtitlesForm">
<p>${HeaderSubtitleDownloadingHelp}</p> <p>${HeaderSubtitleDownloadingHelp}</p>
<p>${HeaderSubtitleDownloadingMoreHelp}</p>
<fieldset data-role="controlgroup"> <fieldset data-role="controlgroup">
<legend>${HeaderDownloadSubtitlesFor}</legend> <legend>${HeaderDownloadSubtitlesFor}</legend>
<input type="checkbox" data-mini="true" id="chkSubtitlesMovies" /> <input type="checkbox" data-mini="true" id="chkSubtitlesMovies" />
@ -31,6 +32,12 @@
<label for="chkSubtitlesEpisodes">${OptionEpisodes}</label> <label for="chkSubtitlesEpisodes">${OptionEpisodes}</label>
</fieldset> </fieldset>
<br /> <br />
<div>
<label>${LabelDownloadLanguages}</label>
<div class="downloadLanguages" style="max-height: 200px; overflow-y: auto; border: 1px solid #e8e8e8;">
</div>
</div>
<br />
<ul data-role="listview" class="ulForm"> <ul data-role="listview" class="ulForm">
<li> <li>
<input type="checkbox" id="chkRequireExternalSubtitles" data-mini="true" /> <input type="checkbox" id="chkRequireExternalSubtitles" data-mini="true" />
@ -40,6 +47,7 @@
<li> <li>
<label for="txtOpenSubtitleUsername">${LabelOpenSubtitlesUsername}</label> <label for="txtOpenSubtitleUsername">${LabelOpenSubtitlesUsername}</label>
<input type="text" id="txtOpenSubtitleUsername" data-mini="true" required="required" /> <input type="text" id="txtOpenSubtitleUsername" data-mini="true" required="required" />
<div class="fieldDescription"><a target="_blank" href="http://www.opensubtitles.org/">${ButtonRegister}</a></div>
</li> </li>
<li> <li>
<label for="txtOpenSubtitlePassword">${LabelOpenSubtitlesPassword}</label> <label for="txtOpenSubtitlePassword">${LabelOpenSubtitlesPassword}</label>

View file

@ -1,6 +1,6 @@
(function ($, document, window) { (function ($, document, window) {
function loadPage(page, config, systemInfo) { function loadPage(page, config, languages) {
$('#chkSubtitlesMovies', page).checked(config.SubtitleOptions.DownloadMovieSubtitles).checkboxradio("refresh"); $('#chkSubtitlesMovies', page).checked(config.SubtitleOptions.DownloadMovieSubtitles).checkboxradio("refresh");
$('#chkSubtitlesEpisodes', page).checked(config.SubtitleOptions.DownloadEpisodeSubtitles).checkboxradio("refresh"); $('#chkSubtitlesEpisodes', page).checked(config.SubtitleOptions.DownloadEpisodeSubtitles).checkboxradio("refresh");
@ -10,9 +10,38 @@
$('#txtOpenSubtitleUsername', page).val(config.SubtitleOptions.OpenSubtitlesUsername); $('#txtOpenSubtitleUsername', page).val(config.SubtitleOptions.OpenSubtitlesUsername);
$('#txtOpenSubtitlePassword', page).val(''); $('#txtOpenSubtitlePassword', page).val('');
populateLanguages(page, config, languages);
Dashboard.hideLoadingMsg(); Dashboard.hideLoadingMsg();
} }
function populateLanguages(page, config, languages) {
var html = '<div data-role="controlgroup" data-corners="false" style="margin:0;">';
for (var i = 0, length = languages.length; i < length; i++) {
var culture = languages[i];
var id = "chkSubtitleLanguage" + i;
html += '<label style="font-size:13px;" for="' + id + '">' + culture.DisplayName + '</label>';
html += '<input class="chkLang" data-lang="' + culture.ThreeLetterISOLanguageName.toLowerCase() + '" type="checkbox" id="' + id + '" />';
}
html += '</div>';
$('.downloadLanguages', page).html(html).trigger("create");
var langs = config.SubtitleOptions.DownloadLanguages || [];
$('.chkLang', page).each(function () {
this.checked = langs.indexOf(this.getAttribute('data-lang')) != -1;
}).checkboxradio('refresh');
}
$(document).on('pageshow', "#metadataSubtitlesPage", function () { $(document).on('pageshow', "#metadataSubtitlesPage", function () {
Dashboard.showLoadingMsg(); Dashboard.showLoadingMsg();
@ -20,7 +49,7 @@
var page = this; var page = this;
var promise1 = ApiClient.getServerConfiguration(); var promise1 = ApiClient.getServerConfiguration();
var promise2 = ApiClient.getSystemInfo(); var promise2 = ApiClient.getCultures();
$.when(promise1, promise2).done(function (response1, response2) { $.when(promise1, promise2).done(function (response1, response2) {
@ -55,6 +84,12 @@
config.SubtitleOptions.OpenSubtitlesPasswordHash = $('#txtOpenSubtitlePassword', form).val(); config.SubtitleOptions.OpenSubtitlesPasswordHash = $('#txtOpenSubtitlePassword', form).val();
config.SubtitleOptions.DownloadLanguages = $('.chkLang:checked', form).get().map(function (c) {
return c.getAttribute('data-lang');
});
ApiClient.updateServerConfiguration(config).done(Dashboard.processServerConfigurationUpdateResult); ApiClient.updateServerConfiguration(config).done(Dashboard.processServerConfigurationUpdateResult);
}); });