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

move metadata language to per library

This commit is contained in:
Luke Pulverenti 2017-01-21 18:37:38 -05:00
parent 60f00b55e9
commit befa669bc5
15 changed files with 252 additions and 278 deletions

View file

@ -1,52 +1,38 @@
define(['historyManager', 'jQuery'], function (historyManager, $) {
define(['loading'], function (loading) {
'use strict';
var currentItemId;
function reload(context, itemId) {
function reload(page) {
page = $(page)[0];
Dashboard.showLoadingMsg();
var itemId = MetadataEditor.getCurrentItemId();
currentItemId = itemId;
loading.show();
if (itemId) {
require(['metadataEditor'], function (metadataEditor) {
metadataEditor.embed(page.querySelector('.editPageInnerContent'), itemId, ApiClient.serverInfo().Id);
metadataEditor.embed(context.querySelector('.editPageInnerContent'), itemId, ApiClient.serverInfo().Id);
});
} else {
page.querySelector('.editPageInnerContent').innerHTML = '';
Dashboard.hideLoadingMsg();
context.querySelector('.editPageInnerContent').innerHTML = '';
loading.hide();
}
}
$(document).on('pageinit', "#editItemMetadataPage", function () {
return function (view, params) {
var page = this;
view.addEventListener('viewshow', function () {
reload(this, MetadataEditor.getCurrentItemId());
});
MetadataEditor.setCurrentItemId(null);
$('.libraryTree', page).on('itemclicked', function (event, data) {
view.querySelector('.libraryTree').addEventListener('itemclicked', function (event) {
if (data.id != currentItemId) {
var data = event.detail;
if (data.id != MetadataEditor.getCurrentItemId()) {
MetadataEditor.setCurrentItemId(data.id);
reload(page);
reload(view, data.id);
}
});
}).on('pageshow', "#editItemMetadataPage", function () {
var page = this;
reload(page);
}).on('pagebeforehide', "#editItemMetadataPage", function () {
var page = this;
});
};
});

View file

@ -14,7 +14,10 @@
selected: selected
},
li_attr: {}
li_attr: {
serveritemtype: item.Type,
collectiontype: item.CollectionType
}
};
if (item.IsFolder) {
@ -272,11 +275,18 @@
var eventData = {
id: node.id,
itemType: node.li_attr.itemtype
itemType: node.li_attr.itemtype,
serverItemType: node.li_attr.serveritemtype,
collectionType: node.li_attr.collectiontype
};
if (eventData.itemType != 'livetv' && eventData.itemType != 'mediafolders') {
$(this).trigger('itemclicked', [eventData]);
if (eventData.itemType != 'livetv' && eventData.itemType != 'mediafolders' && eventData.serverItemType != 'UserView' && eventData.serverItemType != 'CollectionFolder' && !eventData.collectionType) {
this.dispatchEvent(new CustomEvent('itemclicked', {
detail: eventData,
bubbles: true,
cancelable: false
}));
}
}

View file

@ -443,6 +443,14 @@
href: 'librarydisplay.html',
name: Globalize.translate('TabDisplay')
},
{
href: 'metadataimages.html',
name: Globalize.translate('TabMetadata')
},
{
href: 'metadatanfo.html',
name: Globalize.translate('TabNfoSettings')
},
{
href: 'librarysettings.html',
name: Globalize.translate('TabAdvanced')

View file

@ -1,145 +0,0 @@
define(['jQuery', 'fnchecked'], function ($) {
'use strict';
function load(page, config, allCultures, allCountries) {
if (!config || !allCultures || !allCountries) {
return;
}
$('#selectLanguage', page).val(config.PreferredMetadataLanguage);
$('#selectCountry', page).val(config.MetadataCountryCode);
Dashboard.hideLoadingMsg();
}
function onSubmit() {
var form = this;
Dashboard.showLoadingMsg();
ApiClient.getServerConfiguration().then(function (config) {
config.PreferredMetadataLanguage = $('#selectLanguage', form).val();
config.MetadataCountryCode = $('#selectCountry', form).val();
ApiClient.updateServerConfiguration(config).then(function() {
Dashboard.processServerConfigurationUpdateResult();
showConfirmMessage(config);
});
});
// Disable default form submission
return false;
}
function showConfirmMessage(config) {
var msg = [];
msg.push(Globalize.translate('MetadataSettingChangeHelp'));
if (config.DownloadImagesInAdvance) {
msg.push(Globalize.translate('DownloadImagesInAdvanceWarning'));
}
if (!msg.length) {
return;
}
require(['alert'], function (alert) {
alert({
text: msg.join('<br/><br/>')
});
});
}
function getTabs() {
return [
{
href: 'metadata.html',
name: Globalize.translate('TabSettings')
},
{
href: 'metadataimages.html',
name: Globalize.translate('TabServices')
},
{
href: 'metadatanfo.html',
name: Globalize.translate('TabNfoSettings')
}];
}
$(document).on('pageinit', "#metadataConfigurationPage", function () {
Dashboard.showLoadingMsg();
$('.metadataConfigurationForm').off('submit', onSubmit).on('submit', onSubmit);
}).on('pageshow', "#metadataConfigurationPage", function () {
LibraryMenu.setTabs('metadata', 0, getTabs);
Dashboard.showLoadingMsg();
var page = this;
var config;
var allCultures;
var allCountries;
ApiClient.getServerConfiguration().then(function (result) {
config = result;
load(page, config, allCultures, allCountries);
});
function populateLanguages(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.innerHTML = html;
}
function populateCountries(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.innerHTML = html;
}
ApiClient.getCultures().then(function (result) {
populateLanguages(page.querySelector('#selectLanguage'), result);
allCultures = result;
load(page, config, allCultures, allCountries);
});
ApiClient.getCountries().then(function (result) {
populateCountries(page.querySelector('#selectCountry'), result);
allCountries = result;
load(page, config, allCultures, allCountries);
});
});
});

View file

@ -3,6 +3,44 @@
var currentType;
function populateLanguages(select) {
return ApiClient.getCultures().then(function (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.innerHTML = html;
});
}
function populateCountries(select) {
return ApiClient.getCountries().then(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>";
}
select.innerHTML = html;
});
}
function loadTabs(page, tabs) {
var html = '';
@ -363,6 +401,19 @@
function loadPage(page) {
var promises = [
ApiClient.getServerConfiguration(),
populateLanguages(page.querySelector('#selectLanguage')),
populateCountries(page.querySelector('#selectCountry'))
];
Promise.all(promises).then(function (responses) {
var config = responses[0];
page.querySelector('#selectLanguage').value = config.PreferredMetadataLanguage || '';
page.querySelector('#selectCountry').value = config.MetadataCountryCode || '';
});
loadTabs(page, [
{ name: 'OptionMovies', type: 'Movie' },
@ -473,6 +524,9 @@
if (metadataOptions) {
config.PreferredMetadataLanguage = form.querySelector('#selectLanguage').value;
config.MetadataCountryCode = form.querySelector('#selectCountry').value;
saveSettingsIntoConfig(form, metadataOptions);
ApiClient.updateServerConfiguration(config).then(Dashboard.processServerConfigurationUpdateResult);
@ -496,16 +550,24 @@
function getTabs() {
return [
{
href: 'metadata.html',
name: Globalize.translate('TabSettings')
href: 'library.html',
name: Globalize.translate('HeaderLibraries')
},
{
href: 'librarydisplay.html',
name: Globalize.translate('TabDisplay')
},
{
href: 'metadataimages.html',
name: Globalize.translate('TabServices')
name: Globalize.translate('TabMetadata')
},
{
href: 'metadatanfo.html',
name: Globalize.translate('TabNfoSettings')
},
{
href: 'librarysettings.html',
name: Globalize.translate('TabAdvanced')
}];
}
@ -551,7 +613,7 @@
}).on('pageshow', "#metadataImagesConfigurationPage", function () {
LibraryMenu.setTabs('metadata', 1, getTabs);
LibraryMenu.setTabs('metadata', 2, getTabs);
Dashboard.showLoadingMsg();
var page = this;

View file

@ -62,16 +62,24 @@
function getTabs() {
return [
{
href: 'metadata.html',
name: Globalize.translate('TabSettings')
href: 'library.html',
name: Globalize.translate('HeaderLibraries')
},
{
href: 'librarydisplay.html',
name: Globalize.translate('TabDisplay')
},
{
href: 'metadataimages.html',
name: Globalize.translate('TabServices')
name: Globalize.translate('TabMetadata')
},
{
href: 'metadatanfo.html',
name: Globalize.translate('TabNfoSettings')
},
{
href: 'librarysettings.html',
name: Globalize.translate('TabAdvanced')
}];
}
@ -81,7 +89,7 @@
}).on('pageshow', "#metadataNfoPage", function () {
LibraryMenu.setTabs('metadata', 2, getTabs);
LibraryMenu.setTabs('metadata', 3, getTabs);
Dashboard.showLoadingMsg();
var page = this;

View file

@ -466,15 +466,9 @@ var Dashboard = {
divider: true,
name: Globalize.translate('TabLibrary'),
href: "library.html",
pageIds: ['mediaLibraryPage', 'librarySettingsPage', 'libraryDisplayPage'],
pageIds: ['mediaLibraryPage', 'librarySettingsPage', 'libraryDisplayPage', 'metadataImagesConfigurationPage', 'metadataNfoPage'],
icon: 'folder',
color: '#38c'
}, {
name: Globalize.translate('TabMetadata'),
href: "metadata.html",
pageIds: ['metadataConfigurationPage', 'metadataImagesConfigurationPage', 'metadataNfoPage'],
icon: 'insert_drive_file',
color: '#FF9800'
}, {
name: Globalize.translate('TabSubtitles'),
href: "metadatasubtitles.html",
@ -1704,6 +1698,7 @@ var AppInfo = {};
defineRoute({
path: '/edititemmetadata.html',
dependencies: [],
controller: 'scripts/edititemmetadata',
autoFocus: false
});
@ -1909,13 +1904,6 @@ var AppInfo = {};
controller: 'scripts/loginpage'
});
defineRoute({
path: '/metadata.html',
dependencies: [],
autoFocus: false,
roles: 'admin'
});
defineRoute({
path: '/metadataadvanced.html',
dependencies: [],