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:
parent
a7ade97b44
commit
5f308d38a0
14 changed files with 216 additions and 116 deletions
|
@ -197,20 +197,34 @@
|
||||||
|
|
||||||
.editorTile {
|
.editorTile {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
margin: 1em 2em 2em 0;
|
margin: .5em;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
vertical-align: middle;
|
vertical-align: middle;
|
||||||
}
|
}
|
||||||
|
|
||||||
.imageEditorTile {
|
.imageEditorTile {
|
||||||
width: 256px;
|
width: 256px;
|
||||||
padding-bottom: 0;
|
background-color: #282828;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.editorTile h3 {
|
||||||
|
text-transform: uppercase;
|
||||||
|
background: #444;
|
||||||
|
padding: .5em 0;
|
||||||
|
text-align: center;
|
||||||
|
margin-top: 0;
|
||||||
|
color: #ddd;
|
||||||
}
|
}
|
||||||
|
|
||||||
.editorTile p {
|
.editorTile p {
|
||||||
margin: .5em 0;
|
margin: .5em 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.editorTileInner {
|
||||||
|
padding: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
.editorTile .ui-field-contain {
|
.editorTile .ui-field-contain {
|
||||||
margin: 0 0 .5em;
|
margin: 0 0 .5em;
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
<body>
|
<body>
|
||||||
<div id="editItemMetadataPage" data-role="page" class="page libraryPage metadataEditorPage noSecondaryNavPage" data-contextname="${HeaderMetadataManager}" data-require="scripts/editorsidebar,scripts/edititemmetadata,jqmicons,scripts/edititemsubtitles,scripts/editcollectionitems,scripts/edititemimages">
|
<div id="editItemMetadataPage" data-role="page" class="page libraryPage metadataEditorPage noSecondaryNavPage" data-contextname="${HeaderMetadataManager}" data-require="scripts/editorsidebar,scripts/edititemmetadata,jqmicons,scripts/edititemsubtitles,scripts/editcollectionitems,scripts/edititemimages">
|
||||||
<div>
|
<div>
|
||||||
<div class="editPageSidebar smoothScrollY">
|
<div class="editPageSidebar" style="overflow:auto;">
|
||||||
<div class="libraryTree">
|
<div class="libraryTree">
|
||||||
<ul></ul>
|
<ul></ul>
|
||||||
</div>
|
</div>
|
||||||
|
@ -28,7 +28,7 @@
|
||||||
<form class="editItemMetadataForm editMetadataForm">
|
<form class="editItemMetadataForm editMetadataForm">
|
||||||
<div class="metadataFormFields">
|
<div class="metadataFormFields">
|
||||||
|
|
||||||
<div style="text-align: center;margin:2em 0 .5em;">
|
<div style="margin:2em 0 .5em;">
|
||||||
|
|
||||||
<paper-button raised class="submit">
|
<paper-button raised class="submit">
|
||||||
<button class="btnSave clearButton" type="submit" data-role="none" style="display:inline-block;">
|
<button class="btnSave clearButton" type="submit" data-role="none" style="display:inline-block;">
|
||||||
|
@ -36,8 +36,9 @@
|
||||||
</button>
|
</button>
|
||||||
</paper-button>
|
</paper-button>
|
||||||
|
|
||||||
<paper-button raised class="subdued btnRefresh btnRefreshAdvanced"><iron-icon icon="refresh"></iron-icon><span>${ButtonRefresh}</span></paper-button>
|
<paper-button raised class="subdued btnRefresh btnSimpleRefresh" style="background-color:#673AB7;"><iron-icon icon="refresh"></iron-icon><span>${ButtonRefresh}</span></paper-button>
|
||||||
<paper-button id="btnIdentify" raised class="subdued"><iron-icon icon="info"></iron-icon><span>${ButtonIdentify}</span></paper-button>
|
<paper-button id="btnIdentify" raised style="background-color:#009688;"><iron-icon icon="info"></iron-icon><span>${ButtonIdentify}</span></paper-button>
|
||||||
|
<paper-button raised class="subdued notext btnMore"><iron-icon icon="more-vert"></iron-icon></paper-button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div style="padding: 10px 0;">
|
<div style="padding: 10px 0;">
|
||||||
|
@ -425,7 +426,7 @@
|
||||||
</neon-animatable>
|
</neon-animatable>
|
||||||
<neon-animatable>
|
<neon-animatable>
|
||||||
<div class="editorTab imageEditorTab">
|
<div class="editorTab imageEditorTab">
|
||||||
<div style="text-align: center;margin:2em 0 .5em;">
|
<div style="margin:2em 0 .5em;">
|
||||||
|
|
||||||
<paper-button raised class="subdued btnBrowseAllImages"><iron-icon icon="cloud"></iron-icon><span>${ButtonBrowseImages}</span></paper-button>
|
<paper-button raised class="subdued btnBrowseAllImages"><iron-icon icon="cloud"></iron-icon><span>${ButtonBrowseImages}</span></paper-button>
|
||||||
<paper-button raised class="subdued btnOpenUploadMenu"><iron-icon icon="add"></iron-icon><span>${ButtonUpload}</span></paper-button>
|
<paper-button raised class="subdued btnOpenUploadMenu"><iron-icon icon="add"></iron-icon><span>${ButtonUpload}</span></paper-button>
|
||||||
|
|
|
@ -265,15 +265,15 @@
|
||||||
|
|
||||||
html += '<div class="editorTile imageEditorTile">';
|
html += '<div class="editorTile imageEditorTile">';
|
||||||
|
|
||||||
|
if (image.ImageType !== "Backdrop" && image.ImageType !== "Screenshot") {
|
||||||
|
html += '<h3>' + image.ImageType + '</h3>';
|
||||||
|
}
|
||||||
|
|
||||||
var height = 150;
|
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 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>';
|
html += '<div class="editorTileInner">';
|
||||||
|
|
||||||
if (image.ImageType !== "Backdrop" && image.ImageType !== "Screenshot") {
|
|
||||||
html += '<p>' + image.ImageType + '</p>';
|
|
||||||
}
|
|
||||||
|
|
||||||
html += '<p>' + image.Width + ' X ' + image.Height + '</p>';
|
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) {
|
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="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 += '</p>';
|
||||||
|
|
||||||
html += '</div>';
|
html += '</div>';
|
||||||
|
|
|
@ -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 () {
|
$(document).on('pageinitdepends', "#editItemMetadataPage", function () {
|
||||||
|
|
||||||
var page = this;
|
var page = this;
|
||||||
|
|
||||||
$('.btnRefreshAdvanced', this).on('click', function () {
|
|
||||||
|
|
||||||
performAdvancedRefresh(page);
|
|
||||||
});
|
|
||||||
|
|
||||||
$('.btnSimpleRefresh', this).on('click', function () {
|
$('.btnSimpleRefresh', this).on('click', function () {
|
||||||
|
|
||||||
performSimpleRefresh(page);
|
performSimpleRefresh(page);
|
||||||
|
@ -1410,10 +1452,6 @@
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
$('#btnDelete', this).on('click', function () {
|
|
||||||
LibraryBrowser.deleteItem(currentItem.Id);
|
|
||||||
});
|
|
||||||
|
|
||||||
$('.libraryTree', page).on('itemclicked', function (event, data) {
|
$('.libraryTree', page).on('itemclicked', function (event, data) {
|
||||||
|
|
||||||
if (data.id != currentItem.Id) {
|
if (data.id != currentItem.Id) {
|
||||||
|
@ -1458,15 +1496,30 @@
|
||||||
loadTab(page, parseInt(this.selected));
|
loadTab(page, parseInt(this.selected));
|
||||||
});
|
});
|
||||||
|
|
||||||
|
page.querySelector('.btnMore iron-icon').icon = AppInfo.moreIcon;
|
||||||
|
|
||||||
|
$('.btnMore', page).on('click', function () {
|
||||||
|
showMoreMenu(page);
|
||||||
|
});
|
||||||
|
|
||||||
}).on('pageshowready', "#editItemMetadataPage", function () {
|
}).on('pageshowready', "#editItemMetadataPage", function () {
|
||||||
|
|
||||||
var page = this;
|
var page = this;
|
||||||
|
|
||||||
$(LibraryBrowser).on('itemdeleting', onItemDeleted);
|
$(LibraryBrowser).on('itemdeleting', onItemDeleted);
|
||||||
|
|
||||||
page.querySelector('paper-tabs').selected = parseInt(getParameterByName('tab') || '0');
|
var selected = parseInt(getParameterByName('tab') || '0');
|
||||||
|
|
||||||
|
if (selected) {
|
||||||
|
|
||||||
page.querySelector('paper-tabs').selected = 0;
|
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 () {
|
}).on('pagebeforehide', "#editItemMetadataPage", function () {
|
||||||
|
|
||||||
var page = this;
|
var page = this;
|
||||||
|
|
|
@ -258,7 +258,7 @@
|
||||||
|
|
||||||
if (elem) {
|
if (elem) {
|
||||||
// commenting out for now because it's causing the whole window to scroll in chrome
|
// commenting out for now because it's causing the whole window to scroll in chrome
|
||||||
//elem.scrollIntoView();
|
elem.scrollIntoView();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -22,8 +22,9 @@
|
||||||
var duration = this.duration;
|
var duration = this.duration;
|
||||||
|
|
||||||
if (duration) {
|
if (duration) {
|
||||||
if (time >= duration) {
|
if (time >= (duration - 1)) {
|
||||||
MediaPlayer.nextTrack();
|
|
||||||
|
onEnded();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -732,7 +732,7 @@
|
||||||
var mainDrawerButton = document.querySelector('.mainDrawerButton');
|
var mainDrawerButton = document.querySelector('.mainDrawerButton');
|
||||||
|
|
||||||
if (mainDrawerButton) {
|
if (mainDrawerButton) {
|
||||||
if (page.getAttribute('data-menubutton') == 'false') {
|
if (page.getAttribute('data-menubutton') == 'false' && $.browser.mobile) {
|
||||||
mainDrawerButton.classList.add('hide');
|
mainDrawerButton.classList.add('hide');
|
||||||
} else {
|
} else {
|
||||||
mainDrawerButton.classList.remove('hide');
|
mainDrawerButton.classList.remove('hide');
|
||||||
|
@ -789,7 +789,7 @@
|
||||||
|
|
||||||
function updateBackButton(page) {
|
function updateBackButton(page) {
|
||||||
|
|
||||||
var canGoBack = !page.classList.contains('homePage');
|
var canGoBack = !page.classList.contains('homePage') && history.length > 0;
|
||||||
|
|
||||||
var backButton = document.querySelector('.headerBackButton');
|
var backButton = document.querySelector('.headerBackButton');
|
||||||
|
|
||||||
|
|
|
@ -167,39 +167,43 @@
|
||||||
var name = card.attr('data-name');
|
var name = card.attr('data-name');
|
||||||
var configHref = $('.cardContent', card).attr('href');
|
var configHref = $('.cardContent', card).attr('href');
|
||||||
|
|
||||||
$('.cardMenu', page).popup("close").remove();
|
var menuItems = [];
|
||||||
|
|
||||||
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>';
|
|
||||||
|
|
||||||
if (configHref) {
|
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>';
|
menuItems.push({
|
||||||
|
name: Globalize.translate('ButtonUninstall'),
|
||||||
html += '</ul>';
|
id: 'delete',
|
||||||
|
ironIcon: 'delete'
|
||||||
html += '</div>';
|
|
||||||
|
|
||||||
$(page).append(html);
|
|
||||||
|
|
||||||
var flyout = $('.cardMenu', page).popup({ positionTo: elem || "window" }).trigger('create').popup("open").on("popupafterclose", function () {
|
|
||||||
|
|
||||||
$(this).off("popupafterclose").remove();
|
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
$('.btnDeletePlugin', flyout).on('click', function () {
|
require(['actionsheet'], function () {
|
||||||
|
|
||||||
$('.cardMenu', page).popup('close');
|
ActionSheetElement.show({
|
||||||
|
items: menuItems,
|
||||||
|
positionTo: card,
|
||||||
|
callback: function (resultId) {
|
||||||
|
|
||||||
// jqm won't show a popup while another is in the act of closing
|
switch (resultId) {
|
||||||
setTimeout(function () {
|
|
||||||
|
case 'open':
|
||||||
|
Dashboard.navigate(configHref);
|
||||||
|
break;
|
||||||
|
case 'delete':
|
||||||
deletePlugin(page, id, name);
|
deletePlugin(page, id, name);
|
||||||
}, 300);
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -67,7 +67,7 @@ var Dashboard = {
|
||||||
// These are not needed. Nulling them out can help reduce dom querying when pages are loaded
|
// These are not needed. Nulling them out can help reduce dom querying when pages are loaded
|
||||||
$.mobile.nojs = null;
|
$.mobile.nojs = null;
|
||||||
$.mobile.degradeInputsWithin = null;
|
$.mobile.degradeInputsWithin = null;
|
||||||
$.mobile.keepNative = ":jqmData(role='none')";
|
$.mobile.keepNative = ":jqmData(role='none'),.paper-input";
|
||||||
},
|
},
|
||||||
|
|
||||||
isConnectMode: function () {
|
isConnectMode: function () {
|
||||||
|
@ -464,22 +464,22 @@ var Dashboard = {
|
||||||
|
|
||||||
showLoadingMsg: function () {
|
showLoadingMsg: function () {
|
||||||
|
|
||||||
|
console.log('showLoadingMsg');
|
||||||
|
|
||||||
require(['paperbuttonstyle'], function () {
|
require(['paperbuttonstyle'], function () {
|
||||||
var elem = document.getElementById('docspinner');
|
var elem = document.querySelector('.docspinner');
|
||||||
|
|
||||||
if (elem) {
|
if (elem) {
|
||||||
|
|
||||||
// This is just an attempt to prevent the fade-in animation from running repeating and causing flickering
|
// 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 {
|
} else {
|
||||||
|
|
||||||
elem = document.createElement("paper-spinner");
|
elem = document.createElement("paper-spinner");
|
||||||
elem.id = 'docspinner';
|
elem.classList.add('docspinner');
|
||||||
|
|
||||||
document.body.appendChild(elem);
|
document.body.appendChild(elem);
|
||||||
|
|
||||||
elem.active = true;
|
elem.active = true;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -487,14 +487,21 @@ var Dashboard = {
|
||||||
|
|
||||||
hideLoadingMsg: function () {
|
hideLoadingMsg: function () {
|
||||||
|
|
||||||
var elem = document.getElementById('docspinner');
|
console.log('hideLoadingMsg');
|
||||||
|
|
||||||
|
require(['paperbuttonstyle'], function () {
|
||||||
|
|
||||||
|
var elem = document.querySelector('.docspinner');
|
||||||
|
|
||||||
if (elem) {
|
if (elem) {
|
||||||
|
|
||||||
|
elem.active = false;
|
||||||
|
|
||||||
setTimeout(function () {
|
setTimeout(function () {
|
||||||
elem.active = false;
|
elem.active = false;
|
||||||
}, 100);
|
}, 100);
|
||||||
}
|
}
|
||||||
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
getModalLoadingMsg: function () {
|
getModalLoadingMsg: function () {
|
||||||
|
@ -2023,7 +2030,7 @@ var AppInfo = {};
|
||||||
var drawer = document.querySelector('.mainDrawerPanel');
|
var drawer = document.querySelector('.mainDrawerPanel');
|
||||||
drawer.classList.remove('mainDrawerPanelPreInit');
|
drawer.classList.remove('mainDrawerPanelPreInit');
|
||||||
drawer.forceNarrow = true;
|
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) {
|
if ($.browser.safari && !AppInfo.isNativeApp) {
|
||||||
drawer.disableEdgeSwipe = true;
|
drawer.disableEdgeSwipe = true;
|
||||||
|
@ -2128,7 +2135,7 @@ $(document).on('pagecreate', ".page", function () {
|
||||||
current = newTheme;
|
current = newTheme;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (current == 'b' && !$.browser.mobile) {
|
if (current != 'a' && !$.browser.mobile) {
|
||||||
document.body.classList.add('darkScrollbars');
|
document.body.classList.add('darkScrollbars');
|
||||||
} else {
|
} else {
|
||||||
document.body.classList.remove('darkScrollbars');
|
document.body.classList.remove('darkScrollbars');
|
||||||
|
|
|
@ -30,10 +30,6 @@
|
||||||
|
|
||||||
function deleteUser(page, id) {
|
function deleteUser(page, id) {
|
||||||
|
|
||||||
$('.userMenu', page).on("popupafterclose.deleteuser", function () {
|
|
||||||
|
|
||||||
$(this).off('popupafterclose.deleteuser');
|
|
||||||
|
|
||||||
var msg = Globalize.translate('DeleteUserConfirmation');
|
var msg = Globalize.translate('DeleteUserConfirmation');
|
||||||
|
|
||||||
Dashboard.confirm(msg, Globalize.translate('DeleteUser'), function (result) {
|
Dashboard.confirm(msg, Globalize.translate('DeleteUser'), function (result) {
|
||||||
|
@ -47,44 +43,67 @@
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
}).popup('close');
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function showUserMenu(elem) {
|
function showUserMenu(elem) {
|
||||||
|
|
||||||
var card = $(elem).parents('.card');
|
var card = $(elem).parents('.card')[0];
|
||||||
var page = $(elem).parents('.page');
|
var page = $(card).parents('.page')[0];
|
||||||
var userId = card.attr('data-userid');
|
var userId = card.getAttribute('data-userid');
|
||||||
|
|
||||||
$('.userMenu', page).popup("close").remove();
|
var menuItems = [];
|
||||||
|
|
||||||
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();
|
|
||||||
|
|
||||||
|
menuItems.push({
|
||||||
|
name: Globalize.translate('ButtonOpen'),
|
||||||
|
id: 'open',
|
||||||
|
ironIcon: 'mode-edit'
|
||||||
|
});
|
||||||
|
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
$('.btnDeleteUser', flyout).on('click', function () {
|
|
||||||
deleteUser(page, this.getAttribute('data-userid'));
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -59,7 +59,7 @@ html, body, .ui-btn, .pageTitle {
|
||||||
}
|
}
|
||||||
|
|
||||||
.libraryViewNav .ui-btn-active, .libraryViewNav .iron-selected, .barsMenuButton .fa, .btnActiveCast, .libraryViewNav a:not(.ui-btn-active):hover {
|
.libraryViewNav .ui-btn-active, .libraryViewNav .iron-selected, .barsMenuButton .fa, .btnActiveCast, .libraryViewNav a:not(.ui-btn-active):hover {
|
||||||
color: #EA3150 !important;
|
color: #E91E63 !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.libraryViewNav {
|
.libraryViewNav {
|
||||||
|
|
|
@ -188,7 +188,7 @@ paper-button.notext {
|
||||||
margin-right: 0;
|
margin-right: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
#docspinner {
|
.docspinner {
|
||||||
display: block;
|
display: block;
|
||||||
margin-top: -14px;
|
margin-top: -14px;
|
||||||
margin-left: -14px;
|
margin-left: -14px;
|
||||||
|
|
2
dashboard-ui/thirdparty/paper-ie10.css
vendored
2
dashboard-ui/thirdparty/paper-ie10.css
vendored
|
@ -1,4 +1,4 @@
|
||||||
#docspinner {
|
.docspinner {
|
||||||
/* It often doesn't disappear so just forget it */
|
/* It often doesn't disappear so just forget it */
|
||||||
display: none !important;
|
display: none !important;
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,4 +17,5 @@
|
||||||
<link rel="import" href="bower_components/paper-tabs/paper-tabs.html">
|
<link rel="import" href="bower_components/paper-tabs/paper-tabs.html">
|
||||||
<link rel="import" href="bower_components/paper-slider/paper-slider.html">
|
<link rel="import" href="bower_components/paper-slider/paper-slider.html">
|
||||||
<link rel="import" href="bower_components/paper-menu/paper-menu.html">
|
<link rel="import" href="bower_components/paper-menu/paper-menu.html">
|
||||||
|
<link rel="import" href="bower_components/paper-input/paper-input.html">
|
||||||
<link rel="import" href="thirdparty/emby-icons.html">
|
<link rel="import" href="thirdparty/emby-icons.html">
|
Loading…
Add table
Add a link
Reference in a new issue