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

allow custom language per item

This commit is contained in:
Luke Pulverenti 2013-12-28 11:58:13 -05:00
parent 84eb8fc047
commit 6d15c55327
11 changed files with 110 additions and 138 deletions

View file

@ -443,6 +443,14 @@
var currentItem;
var languagesPromise;
var countriesPromise;
function ensureLanguagePromises() {
languagesPromise = languagesPromise || ApiClient.getCultures();
countriesPromise = countriesPromise || ApiClient.getCountries();
}
function updateTabs(page, item) {
var query = MetadataEditor.getEditQueryString(item);
@ -455,7 +463,20 @@
Dashboard.showLoadingMsg();
MetadataEditor.getItemPromise().done(function (item) {
ensureLanguagePromises();
var promise1 = MetadataEditor.getItemPromise();
var promise2 = languagesPromise;
var promise3 = countriesPromise;
$.when(promise1, promise2, promise3).done(function (response1, response2, response3) {
var item = response1[0];
var languages = response2[0];
var countries = response3[0];
Dashboard.populateLanguages($('#selectLanguage', page), languages);
Dashboard.populateCountries($('#selectCountry', page), countries);
if (item.LocationType == "Offline") {
$('.saveButtonContainer', page).hide();
@ -763,15 +784,6 @@
function fillItemInfo(page, item) {
ApiClient.getCultures().done(function (result) {
var select = $('#selectLanguage', page);
populateLanguages(result, select);
select.val(item.Language || "").selectmenu('refresh');
});
ApiClient.getParentalRatings().done(function (result) {
var select = $('#selectOfficialRating', page);
@ -905,6 +917,9 @@
$('#txtNesBoxName', page).val(providerIds.NesBox || "");
$('#txtNesBoxRom', page).val(providerIds.NesBoxRom || "");
$('#selectLanguage', page).val(item.PreferredMetadataLanguage || "").selectmenu('refresh');
$('#selectCountry', page).val(item.PreferredMetadataCountryCode || "").selectmenu('refresh');
if (item.RunTimeTicks) {
var minutes = item.RunTimeTicks / 600000000;
@ -957,22 +972,6 @@
return sHours + ":" + sMinutes + " " + ampm;
}
function populateLanguages(allCultures, select) {
var html = "";
html += "<option value=''></option>";
for (var i = 0, length = allCultures.length; i < length; i++) {
var culture = allCultures[i];
html += "<option value='" + culture.TwoLetterISOLanguageName + "'>" + culture.DisplayName + "</option>";
}
select.html(html).selectmenu("refresh");
}
function populateRatings(allParentalRatings, select) {
var html = "";
@ -1135,7 +1134,6 @@
AspectRatio: $('#txtOriginalAspectRatio', form).val(),
Video3DFormat: $('#select3dFormat', form).val(),
Language: $('#selectLanguage', form).val(),
OfficialRating: $('#selectOfficialRating', form).val(),
CustomRating: $('#selectCustomRating', form).val(),
People: currentItem.People,
@ -1161,6 +1159,9 @@
}
};
item.PreferredMetadataLanguage = $('#selectLanguage', form).val();
item.PreferredMetadataCountryCode = $('#selectCountry', form).val();
if (currentItem.Type == "Person") {
var placeOfBirth = $('#txtPlaceOfBirth', form).val();

View file

@ -220,8 +220,10 @@
for (i = 0, length = links.length; i < length; i++) {
var link = links[i];
var href = selectedIndex == i ? '#' : link.href;
html += '<li><a class="libraryPanelLink" href="' + link.href + '">' + link.text + '</a></li>';
html += '<li><a class="libraryPanelLink" href="' + href + '">' + link.text + '</a></li>';
}
html += '</ul>';

View file

@ -17,7 +17,7 @@
ApiClient.getCultures().done(function (result) {
MetadataConfigurationPage.populateLanguages(result);
Dashboard.populateLanguages($('#selectLanguage', page), result);
allCultures = result;
MetadataConfigurationPage.load(page, config, allCultures, allCountries);
@ -25,7 +25,7 @@
ApiClient.getCountries().done(function (result) {
MetadataConfigurationPage.populateCountries(result);
Dashboard.populateCountries($('#selectCountry', page), result);
allCountries = result;
MetadataConfigurationPage.load(page, config, allCultures, allCountries);
@ -46,38 +46,6 @@
Dashboard.hideLoadingMsg();
},
populateCountries: function (allCountries) {
var html = "";
html += "<option value=''></option>";
for (var i = 0, length = allCountries.length; i < length; i++) {
var culture = allCountries[i];
html += "<option value='" + culture.TwoLetterISORegionName + "'>" + culture.DisplayName + "</option>";
}
$('#selectCountry', '#metadataConfigurationPage').html(html).selectmenu("refresh");
},
populateLanguages: function (allCultures) {
var html = "";
html += "<option value=''></option>";
for (var i = 0, length = allCultures.length; i < length; i++) {
var culture = allCultures[i];
html += "<option value='" + culture.TwoLetterISOLanguageName + "'>" + culture.DisplayName + "</option>";
}
$('#selectLanguage', '#metadataConfigurationPage').html(html).selectmenu("refresh");
},
onSubmit: function () {
var form = this;

View file

@ -1249,6 +1249,38 @@ var Dashboard = {
html += "</div>";
return html;
},
populateLanguages: function(select, languages) {
var html = "";
html += "<option value=''></option>";
for (var i = 0, length = languages.length; i < length; i++) {
var culture = languages[i];
html += "<option value='" + culture.TwoLetterISOLanguageName + "'>" + culture.DisplayName + "</option>";
}
$(select).html(html).selectmenu("refresh");
},
populateCountries: function (select, allCountries) {
var html = "";
html += "<option value=''></option>";
for (var i = 0, length = allCountries.length; i < length; i++) {
var culture = allCountries[i];
html += "<option value='" + culture.TwoLetterISORegionName + "'>" + culture.DisplayName + "</option>";
}
$(select).html(html).selectmenu("refresh");
}
};

View file

@ -1,29 +1,13 @@
(function ($, window, document) {
function populateLanguages(select, allCultures) {
var html = "";
html += "<option value=''>None</option>";
for (var i = 0, length = allCultures.length; i < length; i++) {
var culture = allCultures[i];
html += "<option value='" + culture.ThreeLetterISOLanguageName + "'>" + culture.DisplayName + "</option>";
}
select.html(html).selectmenu("refresh");
}
function loadUser(page, user, loggedInUser, allCulturesPromise) {
Dashboard.setPageTitle(user.Name);
allCulturesPromise.done(function (allCultures) {
populateLanguages($('#selectAudioLanguage', page), allCultures);
populateLanguages($('#selectSubtitleLanguage', page), allCultures);
Dashboard.populateLanguages($('#selectAudioLanguage', page), allCultures);
Dashboard.populateLanguages($('#selectSubtitleLanguage', page), allCultures);
$('#selectAudioLanguage', page).val(user.Configuration.AudioLanguagePreference || "").selectmenu("refresh");
$('#selectSubtitleLanguage', page).val(user.Configuration.SubtitleLanguagePreference || "").selectmenu("refresh");

View file

@ -20,42 +20,10 @@
}
function populateCountries(page, allCountries) {
var html = "";
html += "<option value=''></option>";
for (var i = 0, length = allCountries.length; i < length; i++) {
var culture = allCountries[i];
html += "<option value='" + culture.TwoLetterISORegionName + "'>" + culture.DisplayName + "</option>";
}
$('#selectCountry', page).html(html).selectmenu("refresh");
}
function populateLanguages(page, allCultures) {
var html = "";
html += "<option value=''></option>";
for (var i = 0, length = allCultures.length; i < length; i++) {
var culture = allCultures[i];
html += "<option value='" + culture.TwoLetterISOLanguageName + "'>" + culture.DisplayName + "</option>";
}
$('#selectLanguage', page).html(html).selectmenu("refresh");
}
function reloadData(page, config, cultures, countries) {
populateLanguages(page, cultures);
populateCountries(page, countries);
Dashboard.populateLanguages($('#selectLanguage', page), cultures);
Dashboard.populateCountries($('#selectCountry', page), countries);
$('#selectLanguage', page).val(config.PreferredMetadataLanguage).selectmenu("refresh");
$('#selectCountry', page).val(config.MetadataCountryCode).selectmenu("refresh");