mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
rework metadata manager tabs
This commit is contained in:
parent
f5fb6ccca5
commit
a7ade97b44
19 changed files with 672 additions and 824 deletions
|
@ -2,14 +2,6 @@
|
|||
|
||||
var currentItem;
|
||||
|
||||
function updateTabs(page, item) {
|
||||
|
||||
var query = MetadataEditor.getEditQueryString(item);
|
||||
|
||||
$('#btnEditMetadata', page).attr('href', 'edititemmetadata.html?' + query);
|
||||
$('#btnEditImages', page).attr('href', 'edititemimages.html?' + query);
|
||||
}
|
||||
|
||||
function reload(page) {
|
||||
|
||||
Dashboard.showLoadingMsg();
|
||||
|
@ -22,8 +14,6 @@
|
|||
|
||||
LibraryBrowser.renderName(item, $('.itemName', page), true);
|
||||
|
||||
updateTabs(page, item);
|
||||
|
||||
reloadTitles(page, item);
|
||||
});
|
||||
}
|
||||
|
@ -192,7 +182,7 @@
|
|||
|
||||
Dashboard.hideLoadingMsg();
|
||||
|
||||
$('.popupIdentify', page).popup('close');
|
||||
$('.popupIdentifyCollection', page).popup('close');
|
||||
|
||||
reload(page);
|
||||
|
||||
|
@ -237,29 +227,14 @@
|
|||
return false;
|
||||
}
|
||||
|
||||
$(document).on('pageinitdepends', "#editCollectionTitlesPage", function () {
|
||||
$(document).on('pageinitdepends', "#editItemMetadataPage", function () {
|
||||
|
||||
var page = this;
|
||||
|
||||
$('.libraryTree', page).on('itemclicked', function (event, data) {
|
||||
|
||||
if (data.id != currentItem.Id) {
|
||||
|
||||
MetadataEditor.currentItemId = data.id;
|
||||
MetadataEditor.currentItemType = data.itemType;
|
||||
//Dashboard.navigate('edititemmetadata.html?id=' + data.id);
|
||||
|
||||
//$.mobile.urlHistory.ignoreNextHashChange = true;
|
||||
window.location.hash = 'editItemImagesPage?id=' + data.id;
|
||||
|
||||
reload(page);
|
||||
}
|
||||
});
|
||||
|
||||
$('#btnAddItem', page).on('click', function () {
|
||||
|
||||
|
||||
var popup = $('.popupIdentify', page).popup('open');
|
||||
var popup = $('.popupIdentifyCollection', page).popup('open');
|
||||
|
||||
$('#txtLookupName', popup).val('');
|
||||
$('.collectionItemSearchResults', popup).empty();
|
||||
|
@ -279,17 +254,14 @@
|
|||
|
||||
$('.collectionItemSearchForm').off('submit', onSearchFormSubmit).on('submit', onSearchFormSubmit);
|
||||
|
||||
}).on('pagebeforeshowready', "#editCollectionTitlesPage", function () {
|
||||
$(page.querySelector('neon-animated-pages')).on('tabchange', function () {
|
||||
|
||||
var page = this;
|
||||
if (parseInt(this.selected) == 2) {
|
||||
var tabContent = page.querySelector('.collectionItemsTabContent');
|
||||
|
||||
reload(page);
|
||||
|
||||
}).on('pagebeforehide', "#editCollectionTitlesPage", function () {
|
||||
|
||||
var page = this;
|
||||
|
||||
currentItem = null;
|
||||
reload(tabContent);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
})(jQuery, document, window, window.FileReader, escape);
|
|
@ -8,15 +8,6 @@
|
|||
var browsableImageType = 'Primary';
|
||||
var selectedProvider;
|
||||
|
||||
function updateTabs(page, item) {
|
||||
|
||||
var query = MetadataEditor.getEditQueryString(item);
|
||||
|
||||
$('#btnEditMetadata', page).attr('href', 'edititemmetadata.html?' + query);
|
||||
$('#btnEditSubtitles', page).attr('href', 'edititemsubtitles.html?' + query);
|
||||
$('#btnEditCollectionTitles', page).attr('href', 'editcollectionitems.html?' + query);
|
||||
}
|
||||
|
||||
function getBaseRemoteOptions() {
|
||||
|
||||
var options = {};
|
||||
|
@ -245,20 +236,6 @@
|
|||
|
||||
LibraryBrowser.renderName(item, $('.itemName', page), true);
|
||||
|
||||
updateTabs(page, item);
|
||||
|
||||
if (item.Type == "BoxSet") {
|
||||
$('#btnEditCollectionTitles', page).show();
|
||||
} else {
|
||||
$('#btnEditCollectionTitles', page).hide();
|
||||
}
|
||||
|
||||
if (item.MediaType == "Video" && item.LocationType == "FileSystem" && item.Type !== 'TvChannel') {
|
||||
$('#btnEditSubtitles', page).show();
|
||||
} else {
|
||||
$('#btnEditSubtitles', page).hide();
|
||||
}
|
||||
|
||||
ApiClient.getRemoteImageProviders(getBaseRemoteOptions()).done(function (providers) {
|
||||
|
||||
if (providers.length) {
|
||||
|
@ -520,25 +497,10 @@
|
|||
|
||||
window.EditItemImagesPage = new editItemImages();
|
||||
|
||||
$(document).on('pageinitdepends', "#editItemImagesPage", function () {
|
||||
$(document).on('pageinitdepends', "#editItemMetadataPage", function () {
|
||||
|
||||
var page = this;
|
||||
|
||||
$('.libraryTree', page).on('itemclicked', function (event, data) {
|
||||
|
||||
if (data.id != currentItem.Id) {
|
||||
|
||||
MetadataEditor.currentItemId = data.id;
|
||||
MetadataEditor.currentItemType = data.itemType;
|
||||
//Dashboard.navigate('edititemmetadata.html?id=' + data.id);
|
||||
|
||||
//$.mobile.urlHistory.ignoreNextHashChange = true;
|
||||
window.location.hash = 'editItemImagesPage?id=' + data.id;
|
||||
|
||||
reload(page);
|
||||
}
|
||||
});
|
||||
|
||||
$('#selectBrowsableImageType', page).on('change', function () {
|
||||
|
||||
browsableImageType = this.value;
|
||||
|
@ -578,12 +540,6 @@
|
|||
reloadBrowsableImages(page);
|
||||
});
|
||||
|
||||
}).on('pageshowready', "#editItemImagesPage", function () {
|
||||
|
||||
var page = this;
|
||||
|
||||
reload(page);
|
||||
|
||||
$('#uploadImage', page).on("change", function () {
|
||||
setFiles(page, this.files);
|
||||
});
|
||||
|
@ -605,15 +561,14 @@
|
|||
return false;
|
||||
});
|
||||
|
||||
}).on('pagebeforehide', "#editItemImagesPage", function () {
|
||||
$(page.querySelector('neon-animated-pages')).on('tabchange', function () {
|
||||
|
||||
var page = this;
|
||||
if (parseInt(this.selected) == 3) {
|
||||
var tabContent = page.querySelector('.imageEditorTab');
|
||||
|
||||
currentItem = null;
|
||||
|
||||
$('#uploadImage', page).off("change");
|
||||
|
||||
$("#imageDropZone", page).off('dragover').off('drop');
|
||||
reload(tabContent);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
})(jQuery, document, window, window.FileReader, escape);
|
|
@ -4,15 +4,6 @@
|
|||
var currentSearchResult;
|
||||
var metadataEditorInfo;
|
||||
|
||||
function updateTabs(page, item) {
|
||||
|
||||
var query = MetadataEditor.getEditQueryString(item);
|
||||
|
||||
$('#btnEditImages', page).attr('href', 'edititemimages.html?' + query);
|
||||
$('#btnEditSubtitles', page).attr('href', 'edititemsubtitles.html?' + query);
|
||||
$('#btnEditCollectionTitles', page).attr('href', 'editcollectionitems.html?' + query);
|
||||
}
|
||||
|
||||
function reload(page) {
|
||||
|
||||
unbindItemChanged(page);
|
||||
|
@ -50,21 +41,19 @@
|
|||
|
||||
LibraryBrowser.renderName(item, $('.itemName', page), true);
|
||||
|
||||
updateTabs(page, item);
|
||||
|
||||
setFieldVisibilities(page, item);
|
||||
fillItemInfo(page, item, metadataEditorInfo.ParentalRatingOptions);
|
||||
|
||||
if (item.Type == "BoxSet") {
|
||||
$('#btnEditCollectionTitles', page).show();
|
||||
$('.collectionItemsTabButton', page).show();
|
||||
} else {
|
||||
$('#btnEditCollectionTitles', page).hide();
|
||||
$('.collectionItemsTabButton', page).hide();
|
||||
}
|
||||
|
||||
if (item.MediaType == "Video" && item.LocationType == "FileSystem" && item.Type !== 'TvChannel') {
|
||||
$('#btnEditSubtitles', page).show();
|
||||
$('.subtitleTabButton', page).show();
|
||||
} else {
|
||||
$('#btnEditSubtitles', page).hide();
|
||||
$('.subtitleTabButton', page).hide();
|
||||
}
|
||||
|
||||
if (item.MediaType == 'Photo') {
|
||||
|
@ -85,20 +74,8 @@
|
|||
$('#fldTagline', page).hide();
|
||||
}
|
||||
|
||||
Dashboard.getCurrentUser().done(function (user) {
|
||||
|
||||
var moreCommands = LibraryBrowser.getMoreCommands(item, user);
|
||||
|
||||
if (moreCommands.indexOf('delete') != -1) {
|
||||
$('#fldDelete', page).show();
|
||||
} else {
|
||||
$('#fldDelete', page).hide();
|
||||
}
|
||||
|
||||
Dashboard.hideLoadingMsg();
|
||||
bindItemChanged(page);
|
||||
});
|
||||
|
||||
Dashboard.hideLoadingMsg();
|
||||
bindItemChanged(page);
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -1447,7 +1424,7 @@
|
|||
|
||||
//$.mobile.urlHistory.ignoreNextHashChange = true;
|
||||
window.location.hash = 'editItemMetadataPage?id=' + data.id;
|
||||
reload(page);
|
||||
$(page.querySelector('neon-animated-pages')).trigger('tabchange');
|
||||
}
|
||||
});
|
||||
|
||||
|
@ -1462,14 +1439,34 @@
|
|||
$('.popupAdvancedRefreshForm').off('submit', EditItemMetadataPage.onRefreshFormSubmit).on('submit', EditItemMetadataPage.onRefreshFormSubmit);
|
||||
$('.identifyOptionsForm').off('submit', EditItemMetadataPage.onIdentificationOptionsSubmit).on('submit', EditItemMetadataPage.onIdentificationOptionsSubmit);
|
||||
|
||||
$(page.querySelector('paper-tabs')).on('iron-select', function () {
|
||||
page.querySelector('neon-animated-pages').selected = this.selected;
|
||||
});
|
||||
|
||||
var tabs = page.querySelector('paper-tabs');
|
||||
var pages = page.querySelector('neon-animated-pages');
|
||||
|
||||
configurePaperLibraryTabs(page, tabs, pages);
|
||||
|
||||
$(tabs).on('iron-select', function () {
|
||||
var selected = this.selected;
|
||||
|
||||
page.querySelector('neon-animated-pages').selected = selected;
|
||||
});
|
||||
|
||||
$(pages).on('tabchange', function () {
|
||||
loadTab(page, parseInt(this.selected));
|
||||
});
|
||||
|
||||
}).on('pageshowready', "#editItemMetadataPage", function () {
|
||||
|
||||
var page = this;
|
||||
|
||||
reload(page);
|
||||
|
||||
$(LibraryBrowser).on('itemdeleting', onItemDeleted);
|
||||
|
||||
page.querySelector('paper-tabs').selected = parseInt(getParameterByName('tab') || '0');
|
||||
page.querySelector('paper-tabs').selected = 0;
|
||||
|
||||
}).on('pagebeforehide', "#editItemMetadataPage", function () {
|
||||
|
||||
var page = this;
|
||||
|
@ -1479,5 +1476,35 @@
|
|||
|
||||
});
|
||||
|
||||
function configurePaperLibraryTabs(ownerpage, tabs, pages) {
|
||||
|
||||
tabs.hideScrollButtons = true;
|
||||
|
||||
$(ownerpage).on('pagebeforeshowready', LibraryBrowser.onTabbedPageBeforeShowReady);
|
||||
|
||||
$(pages).on('iron-select', function () {
|
||||
|
||||
// When transition animations are used, add a content loading delay to allow the animations to finish
|
||||
// Otherwise with both operations happening at the same time, it can cause the animation to not run at full speed.
|
||||
var delay = 500;
|
||||
var pgs = this;
|
||||
setTimeout(function () {
|
||||
$(pgs).trigger('tabchange');
|
||||
}, delay);
|
||||
});
|
||||
}
|
||||
|
||||
function loadTab(page, index) {
|
||||
|
||||
switch (index) {
|
||||
|
||||
case 0:
|
||||
reload(page);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
})(jQuery, document, window);
|
||||
|
||||
|
|
|
@ -2,14 +2,6 @@
|
|||
|
||||
var currentItem;
|
||||
|
||||
function updateTabs(page, item) {
|
||||
|
||||
var query = MetadataEditor.getEditQueryString(item);
|
||||
|
||||
$('#btnEditMetadata', page).attr('href', 'edititemmetadata.html?' + query);
|
||||
$('#btnEditImages', page).attr('href', 'edititemimages.html?' + query);
|
||||
}
|
||||
|
||||
function showLocalSubtitles(page, index) {
|
||||
|
||||
Dashboard.showLoadingMsg();
|
||||
|
@ -273,28 +265,12 @@
|
|||
|
||||
LibraryBrowser.renderName(item, $('.itemName', page), true);
|
||||
|
||||
updateTabs(page, item);
|
||||
|
||||
fillSubtitleList(page, item);
|
||||
|
||||
Dashboard.hideLoadingMsg();
|
||||
});
|
||||
}
|
||||
|
||||
function onWebSocketMessageReceived(e, data) {
|
||||
|
||||
var msg = data;
|
||||
|
||||
if (msg.MessageType === "LibraryChanged") {
|
||||
|
||||
if (msg.Data.ItemsUpdated.indexOf(currentItem.Id) != -1) {
|
||||
|
||||
Logger.log('Item updated - reloading subtitles');
|
||||
reload($.mobile.activePage);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function onSearchSubmit() {
|
||||
var form = this;
|
||||
|
||||
|
@ -305,51 +281,30 @@
|
|||
return false;
|
||||
}
|
||||
|
||||
$(document).on('pageinitdepends', "#editItemSubtitlesPage", function () {
|
||||
$(document).on('pageinitdepends', "#editItemMetadataPage", function () {
|
||||
|
||||
var page = this;
|
||||
|
||||
$('.libraryTree', page).on('itemclicked', function (event, data) {
|
||||
|
||||
if (data.id != currentItem.Id) {
|
||||
|
||||
MetadataEditor.currentItemId = data.id;
|
||||
MetadataEditor.currentItemType = data.itemType;
|
||||
//Dashboard.navigate('edititemmetadata.html?id=' + data.id);
|
||||
|
||||
//$.mobile.urlHistory.ignoreNextHashChange = true;
|
||||
window.location.hash = 'editItemSubtitlesPage?id=' + data.id;
|
||||
|
||||
reload(page);
|
||||
}
|
||||
});
|
||||
|
||||
$('.subtitleSearchForm').off('submit', onSearchSubmit).on('submit', onSearchSubmit);
|
||||
|
||||
}).on('pageshowready', "#editItemSubtitlesPage", function () {
|
||||
$(page.querySelector('neon-animated-pages')).on('tabchange', function () {
|
||||
|
||||
var page = this;
|
||||
if (parseInt(this.selected) == 1) {
|
||||
var tabContent = page.querySelector('.subtitleTabContent');
|
||||
|
||||
$('.subtitleResults', page).empty();
|
||||
$('.subtitleResults', tabContent).empty();
|
||||
|
||||
Dashboard.showLoadingMsg();
|
||||
Dashboard.showLoadingMsg();
|
||||
|
||||
reload(page);
|
||||
reload(tabContent);
|
||||
|
||||
ApiClient.getCultures().done(function (languages) {
|
||||
ApiClient.getCultures().done(function (languages) {
|
||||
|
||||
fillLanguages(page, languages);
|
||||
fillLanguages(tabContent, languages);
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
$(ApiClient).on("websocketmessage", onWebSocketMessageReceived);
|
||||
|
||||
}).on('pagebeforehide', "#editItemSubtitlesPage", function () {
|
||||
|
||||
var page = this;
|
||||
|
||||
currentItem = null;
|
||||
|
||||
$(ApiClient).off("websocketmessage", onWebSocketMessageReceived);
|
||||
});
|
||||
|
||||
})(jQuery, window, document);
|
|
@ -132,11 +132,12 @@
|
|||
$(document).on('pageinitdepends', "#indexPage", function () {
|
||||
|
||||
var page = this;
|
||||
var tabContent = page.querySelector('.homeUpcomingTabContent');
|
||||
|
||||
$(page.querySelector('neon-animated-pages')).on('tabchange', function () {
|
||||
|
||||
if (parseInt(this.selected) == 3) {
|
||||
var tabContent = page.querySelector('.homeUpcomingTabContent');
|
||||
|
||||
if (LibraryBrowser.needsRefresh(tabContent)) {
|
||||
loadUpcoming(tabContent);
|
||||
}
|
||||
|
|
|
@ -211,7 +211,9 @@
|
|||
var page = this;
|
||||
|
||||
var tabs = page.querySelector('paper-tabs');
|
||||
LibraryBrowser.configurePaperLibraryTabs(page, tabs, page.querySelector('neon-animated-pages'));
|
||||
var pages = page.querySelector('neon-animated-pages');
|
||||
|
||||
LibraryBrowser.configurePaperLibraryTabs(page, tabs, pages);
|
||||
|
||||
$(tabs).on('iron-select', function () {
|
||||
var selected = this.selected;
|
||||
|
@ -229,7 +231,7 @@
|
|||
}
|
||||
});
|
||||
|
||||
$(page.querySelector('neon-animated-pages')).on('tabchange', function () {
|
||||
$(pages).on('tabchange', function () {
|
||||
loadTab(page, parseInt(this.selected));
|
||||
});
|
||||
|
||||
|
|
|
@ -88,7 +88,7 @@
|
|||
$('.btnSync', page).addClass('hide');
|
||||
}
|
||||
|
||||
var editImagesHref = user.Policy.IsAdministrator ? 'edititemimages.html' + editQuery : null;
|
||||
var editImagesHref = user.Policy.IsAdministrator ? 'edititemmetadata.html' + (editQuery + "&tab=3") : null;
|
||||
|
||||
$('#itemImage', page).html(LibraryBrowser.getDetailImageHtml(item, editImagesHref, true));
|
||||
|
||||
|
|
|
@ -133,7 +133,7 @@
|
|||
|
||||
function renderImage(page, item, user) {
|
||||
|
||||
var imageHref = user.Policy.IsAdministrator && item.MediaType != 'Photo' ? "edititemimages.html?id=" + item.Id : "";
|
||||
var imageHref = user.Policy.IsAdministrator && item.MediaType != 'Photo' ? "edititemmetadata.html?tab=3&id=" + item.Id : "";
|
||||
|
||||
LibraryBrowser.renderDetailImage(page.querySelector('.detailImageContainer'), item, imageHref);
|
||||
}
|
||||
|
@ -959,7 +959,7 @@
|
|||
html += '<span>' + type.name + '</span>';
|
||||
|
||||
if (user.Policy.IsAdministrator) {
|
||||
html += '<a class="detailSectionHeaderButton" href="editcollectionitems.html?id=' + currentItem.Id + '" data-role="button" data-icon="edit" data-iconpos="notext" data-inline="true">' + Globalize.translate('ButtonEdit') + '</a>';
|
||||
html += '<a class="detailSectionHeaderButton" href="edititemmetadata.html?tab=2&id=' + currentItem.Id + '" data-role="button" data-icon="edit" data-iconpos="notext" data-inline="true">' + Globalize.translate('ButtonEdit') + '</a>';
|
||||
}
|
||||
|
||||
html += '</div>';
|
||||
|
|
|
@ -138,18 +138,18 @@
|
|||
}
|
||||
|
||||
if (!rRow.HasImageTagsPrimary) {
|
||||
html += '<a href="edititemimages.html?id=' + rRow.Id + '"><img src="css/images/editor/missingprimaryimage.png" title="Missing primary image." style="height:16px;" /></a>';
|
||||
html += '<a href="edititemmetadata.html?tab=3&id=' + rRow.Id + '"><img src="css/images/editor/missingprimaryimage.png" title="Missing primary image." style="height:16px;" /></a>';
|
||||
}
|
||||
|
||||
if (!rRow.HasImageTagsBackdrop) {
|
||||
if (rRow.RowType !== "Episode" && rRow.RowType !== "Season" && rRow.MediaType !== "Audio" && rRow.RowType !== "TvChannel" && rRow.RowType !== "MusicAlbum") {
|
||||
html += '<a href="edititemimages.html?id=' + rRow.Id + '"><img src="css/images/editor/missingbackdrop.png" title="Missing backdrop image." style="height:16px;" /></a>';
|
||||
html += '<a href="edititemmetadata.html?tab=3&id=' + rRow.Id + '"><img src="css/images/editor/missingbackdrop.png" title="Missing backdrop image." style="height:16px;" /></a>';
|
||||
}
|
||||
}
|
||||
|
||||
if (!rRow.HasImageTagsLogo) {
|
||||
if (rRow.RowType === "Movie" || rRow.RowType === "Trailer" || rRow.RowType === "Series" || rRow.RowType === "MusicArtist" || rRow.RowType === "BoxSet") {
|
||||
html += '<a href="edititemimages.html?id=' + rRow.Id + '"><img src="css/images/editor/missinglogo.png" title="Missing logo image." style="height:16px;" /></a>';
|
||||
html += '<a href="edititemmetadata.html?tab=3&id=' + rRow.Id + '"><img src="css/images/editor/missinglogo.png" title="Missing logo image." style="height:16px;" /></a>';
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue