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:
parent
8a641ab831
commit
723e217a6f
4 changed files with 100 additions and 75 deletions
|
@ -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];
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue