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

update metadata manager

This commit is contained in:
Luke Pulverenti 2015-07-15 07:26:47 -04:00
parent a7ade97b44
commit 5f308d38a0
14 changed files with 216 additions and 116 deletions

View file

@ -265,15 +265,15 @@
html += '<div class="editorTile imageEditorTile">';
if (image.ImageType !== "Backdrop" && image.ImageType !== "Screenshot") {
html += '<h3>' + image.ImageType + '</h3>';
}
var height = 150;
html += '<div style="height:' + height + 'px;vertical-align:top;background-repeat:no-repeat;background-position:center center;background-size:contain;background-image:url(\'' + LibraryBrowser.getImageUrl(currentItem, image.ImageType, image.ImageIndex, { height: height }) + '\');"></div>';
html += '<div>';
if (image.ImageType !== "Backdrop" && image.ImageType !== "Screenshot") {
html += '<p>' + image.ImageType + '</p>';
}
html += '<div class="editorTileInner">';
html += '<p>' + image.Width + ' X ' + image.Height + '</p>';
@ -294,12 +294,12 @@
}
}
html += '<paper-icon-button icon="delete" onclick="EditItemImagesPage.deleteImage(\'' + image.ImageType + '\', ' + (image.ImageIndex != null ? image.ImageIndex : "null") + ');" title="' + Globalize.translate('Delete') + '"></paper-icon-button>';
if (imageProviders.length) {
html += '<paper-icon-button icon="cloud" onclick="EditItemImagesPage.showDownloadMenu(\'' + image.ImageType + '\');" title="' + Globalize.translate('ButtonBrowseOnlineImages') + '"></paper-icon-button>';
}
html += '<paper-icon-button icon="delete" onclick="EditItemImagesPage.deleteImage(\'' + image.ImageType + '\', ' + (image.ImageIndex != null ? image.ImageIndex : "null") + ');" title="' + Globalize.translate('Delete') + '"></paper-icon-button>';
html += '</p>';
html += '</div>';

View file

@ -1375,15 +1375,57 @@
}
}
function showMoreMenu(page) {
Dashboard.getCurrentUser().done(function (user) {
var moreCommands = LibraryBrowser.getMoreCommands(currentItem, user);
var menuItems = [];
menuItems.push({
name: Globalize.translate('ButtonAdvancedRefresh'),
id: 'refresh',
ironIcon: 'refresh'
});
if (moreCommands.indexOf('delete') != -1) {
menuItems.push({
name: Globalize.translate('ButtonDelete'),
id: 'delete',
ironIcon: 'delete'
});
}
require(['actionsheet'], function () {
ActionSheetElement.show({
items: menuItems,
callback: function (id) {
switch (id) {
case 'refresh':
performAdvancedRefresh(page);
break;
case 'delete':
LibraryBrowser.deleteItem(currentItem.Id);
break;
default:
break;
}
}
});
});
});
}
$(document).on('pageinitdepends', "#editItemMetadataPage", function () {
var page = this;
$('.btnRefreshAdvanced', this).on('click', function () {
performAdvancedRefresh(page);
});
$('.btnSimpleRefresh', this).on('click', function () {
performSimpleRefresh(page);
@ -1410,10 +1452,6 @@
}
});
$('#btnDelete', this).on('click', function () {
LibraryBrowser.deleteItem(currentItem.Id);
});
$('.libraryTree', page).on('itemclicked', function (event, data) {
if (data.id != currentItem.Id) {
@ -1458,14 +1496,29 @@
loadTab(page, parseInt(this.selected));
});
page.querySelector('.btnMore iron-icon').icon = AppInfo.moreIcon;
$('.btnMore', page).on('click', function () {
showMoreMenu(page);
});
}).on('pageshowready', "#editItemMetadataPage", function () {
var page = this;
$(LibraryBrowser).on('itemdeleting', onItemDeleted);
page.querySelector('paper-tabs').selected = parseInt(getParameterByName('tab') || '0');
page.querySelector('paper-tabs').selected = 0;
var selected = parseInt(getParameterByName('tab') || '0');
if (selected) {
page.querySelector('paper-tabs').selected = 0;
// Looks like a bug in paper-tabs. It won't set the tab if we try to do it too quickly
setTimeout(function () {
page.querySelectorAll('paper-tab')[selected].click();
}, 700);
}
}).on('pagebeforehide', "#editItemMetadataPage", function () {

View file

@ -258,7 +258,7 @@
if (elem) {
// commenting out for now because it's causing the whole window to scroll in chrome
//elem.scrollIntoView();
elem.scrollIntoView();
}
}

View file

@ -22,8 +22,9 @@
var duration = this.duration;
if (duration) {
if (time >= duration) {
MediaPlayer.nextTrack();
if (time >= (duration - 1)) {
onEnded();
return;
}
}

View file

@ -732,7 +732,7 @@
var mainDrawerButton = document.querySelector('.mainDrawerButton');
if (mainDrawerButton) {
if (page.getAttribute('data-menubutton') == 'false') {
if (page.getAttribute('data-menubutton') == 'false' && $.browser.mobile) {
mainDrawerButton.classList.add('hide');
} else {
mainDrawerButton.classList.remove('hide');
@ -789,7 +789,7 @@
function updateBackButton(page) {
var canGoBack = !page.classList.contains('homePage');
var canGoBack = !page.classList.contains('homePage') && history.length > 0;
var backButton = document.querySelector('.headerBackButton');

View file

@ -167,39 +167,43 @@
var name = card.attr('data-name');
var configHref = $('.cardContent', card).attr('href');
$('.cardMenu', page).popup("close").remove();
var html = '<div data-role="popup" class="cardMenu tapHoldMenu" data-theme="a">';
html += '<ul data-role="listview" style="min-width: 180px;">';
html += '<li data-role="list-divider">' + Globalize.translate('HeaderMenu') + '</li>';
var menuItems = [];
if (configHref) {
html += '<li><a href="' + configHref + '">' + Globalize.translate('ButtonSettings') + '</a></li>';
menuItems.push({
name: Globalize.translate('ButtonSettings'),
id: 'open',
ironIcon: 'mode-edit'
});
}
html += '<li><a href="#" class="btnDeletePlugin">' + Globalize.translate('ButtonUninstall') + '</a></li>';
html += '</ul>';
html += '</div>';
$(page).append(html);
var flyout = $('.cardMenu', page).popup({ positionTo: elem || "window" }).trigger('create').popup("open").on("popupafterclose", function () {
$(this).off("popupafterclose").remove();
menuItems.push({
name: Globalize.translate('ButtonUninstall'),
id: 'delete',
ironIcon: 'delete'
});
$('.btnDeletePlugin', flyout).on('click', function () {
require(['actionsheet'], function () {
$('.cardMenu', page).popup('close');
ActionSheetElement.show({
items: menuItems,
positionTo: card,
callback: function (resultId) {
switch (resultId) {
case 'open':
Dashboard.navigate(configHref);
break;
case 'delete':
deletePlugin(page, id, name);
break;
default:
break;
}
}
});
// jqm won't show a popup while another is in the act of closing
setTimeout(function () {
deletePlugin(page, id, name);
}, 300);
});
}

View file

@ -67,7 +67,7 @@ var Dashboard = {
// These are not needed. Nulling them out can help reduce dom querying when pages are loaded
$.mobile.nojs = null;
$.mobile.degradeInputsWithin = null;
$.mobile.keepNative = ":jqmData(role='none')";
$.mobile.keepNative = ":jqmData(role='none'),.paper-input";
},
isConnectMode: function () {
@ -464,22 +464,22 @@ var Dashboard = {
showLoadingMsg: function () {
console.log('showLoadingMsg');
require(['paperbuttonstyle'], function () {
var elem = document.getElementById('docspinner');
var elem = document.querySelector('.docspinner');
if (elem) {
// This is just an attempt to prevent the fade-in animation from running repeating and causing flickering
if (!elem.active) {
elem.active = true;
}
elem.active = true;
} else {
elem = document.createElement("paper-spinner");
elem.id = 'docspinner';
elem.classList.add('docspinner');
document.body.appendChild(elem);
elem.active = true;
}
});
@ -487,14 +487,21 @@ var Dashboard = {
hideLoadingMsg: function () {
var elem = document.getElementById('docspinner');
console.log('hideLoadingMsg');
if (elem) {
require(['paperbuttonstyle'], function () {
var elem = document.querySelector('.docspinner');
if (elem) {
setTimeout(function () {
elem.active = false;
}, 100);
}
setTimeout(function () {
elem.active = false;
}, 100);
}
});
},
getModalLoadingMsg: function () {
@ -2023,7 +2030,7 @@ var AppInfo = {};
var drawer = document.querySelector('.mainDrawerPanel');
drawer.classList.remove('mainDrawerPanelPreInit');
drawer.forceNarrow = true;
drawer.drawerWidth = screen.availWidth >= 330 ? "310px" : "270px";
drawer.drawerWidth = screen.availWidth >= 350 ? "310px" : screen.availWidth >= 310 ? "290px" : "270px";
if ($.browser.safari && !AppInfo.isNativeApp) {
drawer.disableEdgeSwipe = true;
@ -2128,7 +2135,7 @@ $(document).on('pagecreate', ".page", function () {
current = newTheme;
}
if (current == 'b' && !$.browser.mobile) {
if (current != 'a' && !$.browser.mobile) {
document.body.classList.add('darkScrollbars');
} else {
document.body.classList.remove('darkScrollbars');

View file

@ -30,61 +30,80 @@
function deleteUser(page, id) {
$('.userMenu', page).on("popupafterclose.deleteuser", function () {
var msg = Globalize.translate('DeleteUserConfirmation');
$(this).off('popupafterclose.deleteuser');
Dashboard.confirm(msg, Globalize.translate('DeleteUser'), function (result) {
var msg = Globalize.translate('DeleteUserConfirmation');
if (result) {
Dashboard.showLoadingMsg();
Dashboard.confirm(msg, Globalize.translate('DeleteUser'), function (result) {
ApiClient.deleteUser(id).done(function () {
if (result) {
Dashboard.showLoadingMsg();
ApiClient.deleteUser(id).done(function () {
loadData(page);
});
}
});
}).popup('close');
loadData(page);
});
}
});
}
function showUserMenu(elem) {
var card = $(elem).parents('.card');
var page = $(elem).parents('.page');
var userId = card.attr('data-userid');
var card = $(elem).parents('.card')[0];
var page = $(card).parents('.page')[0];
var userId = card.getAttribute('data-userid');
$('.userMenu', page).popup("close").remove();
var html = '<div data-role="popup" class="userMenu tapHoldMenu" data-theme="a">';
html += '<ul data-role="listview" style="min-width: 180px;">';
html += '<li data-role="list-divider">' + Globalize.translate('HeaderMenu') + '</li>';
html += '<li><a href="useredit.html?userid=' + userId + '">' + Globalize.translate('ButtonOpen') + '</a></li>';
html += '<li><a href="userlibraryaccess.html?userid=' + userId + '">' + Globalize.translate('ButtonLibraryAccess') + '</a></li>';
html += '<li><a href="userparentalcontrol.html?userid=' + userId + '">' + Globalize.translate('ButtonParentalControl') + '</a></li>';
html += '<li><a href="#" class="btnDeleteUser" data-userid="' + userId + '">' + Globalize.translate('ButtonDelete') + '</a></li>';
html += '</ul>';
html += '</div>';
page.append(html);
var flyout = $('.userMenu', page).popup({ positionTo: elem || "window" }).trigger('create').popup("open").on("popupafterclose", function () {
$(this).off("popupafterclose").remove();
var menuItems = [];
menuItems.push({
name: Globalize.translate('ButtonOpen'),
id: 'open',
ironIcon: 'mode-edit'
});
$('.btnDeleteUser', flyout).on('click', function () {
deleteUser(page, this.getAttribute('data-userid'));
menuItems.push({
name: Globalize.translate('ButtonLibraryAccess'),
id: 'access',
ironIcon: 'lock'
});
menuItems.push({
name: Globalize.translate('ButtonParentalControl'),
id: 'parentalcontrol',
ironIcon: 'person'
});
menuItems.push({
name: Globalize.translate('ButtonDelete'),
id: 'delete',
ironIcon: 'delete'
});
require(['actionsheet'], function () {
ActionSheetElement.show({
items: menuItems,
positionTo: card,
callback: function (id) {
switch (id) {
case 'open':
Dashboard.navigate('useredit.html?userid=' + userId);
break;
case 'access':
Dashboard.navigate('userlibraryaccess.html?userid=' + userId);
break;
case 'parentalcontrol':
Dashboard.navigate('userparentalcontrol.html?userid=' + userId);
break;
case 'delete':
deleteUser(page, userId);
break;
default:
break;
}
}
});
});
}