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

add metadata editor info endpoint

This commit is contained in:
Luke Pulverenti 2014-12-21 00:57:06 -05:00
parent 8a641ab831
commit 723e217a6f
4 changed files with 100 additions and 75 deletions

View file

@ -205,9 +205,12 @@
</div>
</div>
<br />
<div data-role="collapsible" data-mini="true" data-collapsed="false" id="collapsibleDvdEpisodeInfo" style="display: none; margin-top: 1em;">
<h3>${HeaderAlternateEpisodeNumbers}</h3>
<div>
<div class="detailSection" id="collapsibleDvdEpisodeInfo" style="display: none;">
<div class="detailSectionHeader">
${HeaderAlternateEpisodeNumbers}
</div>
<div class="detailSectionContent" style="padding: 0 .5em;">
<br />
<div>
<label for="txtDvdSeasonNumber">${LabelDvdSeasonNumber}</label>
@ -223,9 +226,12 @@
</div>
</div>
</div>
<div data-role="collapsible" data-mini="true" data-collapsed="false" id="collapsibleSpecialEpisodeInfo" style="display: none; margin-top: 1em;">
<h3>${HeaderSpecialEpisodeInfo}</h3>
<div>
<div class="detailSection" id="collapsibleSpecialEpisodeInfo" style="display: none;">
<div class="detailSectionHeader">
${HeaderSpecialEpisodeInfo}
</div>
<div class="detailSectionContent" style="padding: 0 .5em;">
<br />
<div>
<label for="txtAirsBeforeSeason">${LabelAirsBeforeSeason}</label>
@ -241,6 +247,7 @@
</div>
</div>
</div>
<div class="detailSection">
<div class="detailSectionHeader">
${HeaderExternalIds}

View file

@ -2,14 +2,6 @@
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);
@ -23,13 +15,10 @@
Dashboard.showLoadingMsg();
ensureLanguagePromises();
var promise1 = MetadataEditor.getItemPromise();
var promise2 = languagesPromise;
var promise3 = countriesPromise;
var promise2 = ApiClient.getJSON(ApiClient.getUrl('Items/' + MetadataEditor.currentItemId + '/MetadataEditor'));
$.when(promise1, promise2, promise3).done(function (response1, response2, response3) {
$.when(promise1, promise2).done(function (response1, response2) {
var item = response1[0];
@ -41,12 +30,12 @@
} else {
$('.editPageInnerContent', page).show();
}
var languages = response2[0];
var countries = response3[0];
ApiClient.getJSON(ApiClient.getUrl("Items/" + item.Id + "/ExternalIdInfos")).done(function (idList) {
loadExternalIds(page, item, idList);
});
var metadataEditorInfo = response2[0];
var languages = metadataEditorInfo.Cultures;
var countries = metadataEditorInfo.Countries;
loadExternalIds(page, item, metadataEditorInfo.ExternalIdInfos);
Dashboard.populateLanguages($('#selectLanguage', page), languages);
Dashboard.populateCountries($('#selectCountry', page), countries);
@ -62,7 +51,7 @@
updateTabs(page, item);
setFieldVisibilities(page, item);
fillItemInfo(page, item);
fillItemInfo(page, item, metadataEditorInfo.ParentalRatingOptions);
if (item.Type == "BoxSet") {
$('#btnEditCollectionTitles', page).show();
@ -410,22 +399,19 @@
}
}
function fillItemInfo(page, item) {
ApiClient.getParentalRatings().done(function (result) {
function fillItemInfo(page, item, parentalRatingOptions) {
var select = $('#selectOfficialRating', page);
populateRatings(result, select, item.OfficialRating);
populateRatings(parentalRatingOptions, select, item.OfficialRating);
select.val(item.OfficialRating || "").selectmenu('refresh');
select = $('#selectCustomRating', page);
populateRatings(result, select, item.CustomRating);
populateRatings(parentalRatingOptions, select, item.CustomRating);
select.val(item.CustomRating || "").selectmenu('refresh');
});
var selectStatus = $('#selectStatus', page);
populateStatus(selectStatus);

View file

@ -32,6 +32,10 @@
node.li_attr.loadedFromServer = true;
}
if (selected) {
selectedNodeId = item.Id;
}
return node;
}
@ -119,11 +123,6 @@
itemtype: 'mediafolders',
loadedFromServer: true
},
children: [
{
text: 'Loading...',
icon: false
}],
icon: false
});
@ -150,9 +149,7 @@
callback.call(scope, nodes);
setTimeout(function () {
$.jstree.reference(".libraryTree", page).load_node('MediaFolders');
}, 300);
nodesToLoad.push('MediaFolders');
});
}
@ -174,7 +171,7 @@
}
function loadMediaFolders(page, openItems, callback) {
function loadMediaFolders(page, scope, openItems, callback) {
ApiClient.getJSON(ApiClient.getUrl("Library/MediaFolders")).done(function (result) {
@ -186,22 +183,12 @@
});
callback(nodes);
callback.call(scope, nodes);
for (var i = 0, length = nodes.length; i < length; i++) {
if (nodes[i].state.opened) {
var nodeId = nodes[i].id;
setTimeout(function () {
$.jstree.reference(".libraryTree", page).load_node(nodeId);
}, 300);
}
if (nodes[i].state.selected) {
var scrollNodeId = nodes[i].id;
setTimeout(function () {
scrollToNode(page, scrollNodeId);
}, 300);
nodesToLoad.push(nodes[i].id);
}
}
@ -227,7 +214,7 @@
if (id == 'MediaFolders') {
loadMediaFolders(page, openItems, callback);
loadMediaFolders(page, scope, openItems, callback);
return;
}
@ -257,17 +244,7 @@
for (var i = 0, length = nodes.length; i < length; i++) {
if (nodes[i].state.opened) {
var nodeId = nodes[i].id;
setTimeout(function () {
$.jstree.reference(".libraryTree", page).load_node(nodeId);
}, 300);
}
if (nodes[i].state.selected) {
var scrollNodeId = nodes[i].id;
setTimeout(function () {
scrollToNode(page, scrollNodeId);
}, 300);
nodesToLoad.push(nodes[i].id);
}
}
@ -288,6 +265,11 @@
function initializeTree(page, currentUser, openItems, selectedId) {
nodesToLoad = [];
selectedNodeId = null;
$.jstree.destroy();
$('.libraryTree', page).jstree({
"plugins": ["wholerow"],
@ -322,18 +304,68 @@
var node = data.node;
if (!node.li_attr.loadedFromServer) {
if (node.children && node.children) {
loadNodesToLoad(page, node);
}
if (node.li_attr && node.id != '#' && !node.li_attr.loadedFromServer) {
node.li_attr.loadedFromServer = true;
setTimeout(function () {
$.jstree.reference(".libraryTree", page).load_node(node.id);
}, 500);
$.jstree.reference(".libraryTree", page).load_node(node.id, loadNodeCallback);
}
}).off('load_node.jstree').on('load_node.jstree', function (event, data) {
var node = data.node;
if (node.children && node.children) {
loadNodesToLoad(page, node);
}
if (node.li_attr && node.id != '#' && !node.li_attr.loadedFromServer) {
node.li_attr.loadedFromServer = true;
$.jstree.reference(".libraryTree", page).load_node(node.id, loadNodeCallback);
}
});
}
function loadNodesToLoad(page, node) {
var children = node.children;
for (var i = 0, length = children.length; i < length; i++) {
var child = children[i];
if (nodesToLoad.indexOf(child) != -1) {
nodesToLoad = nodesToLoad.filter(function (n) {
return n != child;
});
$.jstree.reference(".libraryTree", page).load_node(child, loadNodeCallback);
}
}
}
function loadNodeCallback(node) {
if (selectedNodeId && node.children && node.children.indexOf(selectedNodeId) != -1) {
setTimeout(function() {
scrollToNode($.mobile.activePage, selectedNodeId);
}, 500);
}
}
var nodesToLoad = [];
var selectedNodeId;
function updateEditorNode(page, item) {
var elem = $('#' + item.Id + '>a', page)[0];

View file

@ -59,7 +59,7 @@
}
function tryConnect(url) {
function tryConnect(url, timeout) {
return $.ajax({
@ -67,7 +67,7 @@
url: url + "/mediabrowser/system/info/public",
dataType: "json",
timeout: 15000
timeout: timeout || 15000
});
}
@ -704,7 +704,7 @@
//onLocalTestDone();
// Try to connect to the local address
tryConnect(server.LocalAddress).done(function (result) {
tryConnect(server.LocalAddress, 5000).done(function (result) {
onLocalTestDone(result, MediaBrowser.ConnectionMode.Local);
}).fail(function () {
onLocalTestDone();