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

update sync menus

This commit is contained in:
Luke Pulverenti 2016-08-12 11:54:37 -04:00
parent 43a0e6ccea
commit b2fa34662d
62 changed files with 275 additions and 144 deletions

View file

@ -309,7 +309,7 @@
var nowPlayingItem = session.NowPlayingItem;
var className = nowPlayingItem ? 'scalableCard card activeSession' : 'scalableCard card activeSession';
var className = nowPlayingItem ? 'scalableCard card activeSession backdropCard' : 'scalableCard card activeSession backdropCard';
if (session.TranscodingInfo && session.TranscodingInfo.CompletionPercentage) {
className += ' transcodingSession';

View file

@ -99,7 +99,10 @@
html += '<div class="homePageSection">';
html += '<h1 class="listHeader">' + group.name + '</h1>';
var allowBottomPadding = true;
if (enableScrollX()) {
allowBottomPadding = false;
html += '<div is="emby-itemscontainer" class="itemsContainer hiddenScrollX">';
} else {
html += '<div is="emby-itemscontainer" class="itemsContainer vertical-wrap">';
@ -116,7 +119,8 @@
centerText: true,
context: 'home-upcoming',
overlayMoreButton: true,
showParentTitle: true
showParentTitle: true,
allowBottomPadding: allowBottomPadding
});
html += '</div>';

View file

@ -1,4 +1,4 @@
define(['layoutManager', 'cardBuilder', 'datetime', 'mediaInfo', 'backdrop', 'listView', 'itemContextMenu', 'itemHelper', 'userdataButtons', 'dom', 'indicators', 'scrollStyles', 'emby-itemscontainer'], function (layoutManager, cardBuilder, datetime, mediaInfo, backdrop, listView, itemContextMenu, itemHelper, userdataButtons, dom, indicators) {
define(['layoutManager', 'cardBuilder', 'datetime', 'mediaInfo', 'backdrop', 'listView', 'itemContextMenu', 'itemHelper', 'userdataButtons', 'dom', 'indicators', 'apphost', 'scrollStyles', 'emby-itemscontainer'], function (layoutManager, cardBuilder, datetime, mediaInfo, backdrop, listView, itemContextMenu, itemHelper, userdataButtons, dom, indicators, appHost) {
var currentItem;
@ -63,16 +63,41 @@
function getContextMenuOptions(item, button) {
return {
var options = {
item: item,
open: false,
play: false,
queue: false,
playAllFromHere: false,
queueAllFromHere: false,
sync: false,
positionTo: button
};
if (appHost.supports('sync')) {
// Will be displayed via button
options.syncLocal = false;
} else {
// Will be displayed via button
options.sync = false;
}
return options;
}
function updateSyncStatus(page, item) {
var i, length;
var elems = page.querySelectorAll('.btnSyncLocal');
for (i = 0, length = elems.length; i < length; i++) {
if (item.SyncPercent == 100) {
elems[i].querySelector('i').innerHTML = 'offline_pin';
elems[i].classList.add('btnSyncComplete');
} else {
elems[i].querySelector('i').innerHTML = 'file_download';
elems[i].classList.remove('btnSyncComplete');
}
}
}
function reloadFromItem(page, params, item) {
@ -143,9 +168,17 @@
}
if (itemHelper.canSync(user, item)) {
hideAll(page, 'btnSync', true);
if (appHost.supports('sync')) {
hideAll(page, 'btnSyncLocal', true);
hideAll(page, 'btnSync');
} else {
hideAll(page, 'btnSyncLocal');
hideAll(page, 'btnSync', true);
}
updateSyncStatus(page, item);
} else {
hideAll(page, 'btnSync');
hideAll(page, 'btnSyncLocal');
}
if (item.Type == 'Program' && item.TimerId) {
@ -2083,6 +2116,11 @@
elems[i].addEventListener('click', onSyncClick);
}
elems = view.querySelectorAll('.btnSyncLocal');
for (i = 0, length = elems.length; i < length; i++) {
elems[i].addEventListener('click', onSyncClick);
}
elems = view.querySelectorAll('.btnRecord,.btnFloatingRecord');
for (i = 0, length = elems.length; i < length; i++) {
elems[i].addEventListener('click', onRecordClick);

View file

@ -83,7 +83,8 @@
showParentTitle: true,
coverImage: true,
lazy: true,
cardLayout: true
cardLayout: true,
allowBottomPadding: !enableScrollX()
});
ImageLoader.lazyChildren(recordingItems);

View file

@ -108,7 +108,8 @@
overlayText: false,
lazy: true,
overlayMoreButton: overlayButton != 'play',
overlayPlayButton: overlayButton == 'play'
overlayPlayButton: overlayButton == 'play',
allowBottomPadding: !enableScrollX()
});
var elem = page.querySelector('.' + sectionClass);
@ -199,12 +200,6 @@
var mdlTabs = view.querySelector('.libraryViewNav');
var baseUrl = 'tv.html';
var topParentId = params.topParentId;
if (topParentId) {
baseUrl += '?topParentId=' + topParentId;
}
libraryBrowser.configurePaperLibraryTabs(view, mdlTabs, view.querySelectorAll('.pageTabContent'), [0, 2, 3, 4]);
mdlTabs.addEventListener('tabchange', function (e) {

View file

@ -213,60 +213,6 @@
MediaController.enableDisplayMirroring(this.checked);
}
function bindKeys(controller) {
var self = this;
var keyResult = {};
self.keyBinding = function (e) {
if (bypass()) return;
console.log("keyCode", e.keyCode);
if (keyResult[e.keyCode]) {
e.preventDefault();
keyResult[e.keyCode](e);
}
};
self.keyPrevent = function (e) {
if (bypass()) return;
var codes = [32, 38, 40, 37, 39, 81, 77, 65, 84, 83, 70];
if (codes.indexOf(e.keyCode) != -1) {
e.preventDefault();
}
};
keyResult[32] = function () { // spacebar
var player = controller.getCurrentPlayer();
player.getPlayerState().then(function (result) {
var state = result;
if (state.NowPlayingItem && state.PlayState) {
if (state.PlayState.IsPaused) {
player.unpause();
} else {
player.pause();
}
}
});
};
var bypass = function () {
// Get active elem to see what type it is
var active = document.activeElement;
var type = active.type || active.tagName.toLowerCase();
return (type === "text" || type === "select" || type === "textarea" || type == "password");
};
}
function mediaController() {
var self = this;
@ -274,12 +220,6 @@
var currentTargetInfo;
var players = [];
var keys = new bindKeys(self);
window.addEventListener('keydown', keys.keyBinding);
window.addEventListener('keypress', keys.keyPrevent);
window.addEventListener('keyup', keys.keyPrevent);
self.registerPlayer = function (player) {
players.push(player);

View file

@ -27,12 +27,15 @@
ApiClient.getJSON(ApiClient.getUrl('Users/' + userId + '/Items/Latest', options)).then(function (items) {
var allowBottomPadding = !enableScrollX();
var container = page.querySelector('#recentlyAddedItems');
cardBuilder.buildCards(items, {
itemsContainer: container,
shape: getPortraitShape(),
scalable: true,
overlayPlayButton: true
overlayPlayButton: true,
allowBottomPadding: allowBottomPadding
});
});
}
@ -65,13 +68,16 @@
page.querySelector('#resumableSection').classList.add('hide');
}
var allowBottomPadding = !enableScrollX();
var container = page.querySelector('#resumableItems');
cardBuilder.buildCards(result.Items, {
itemsContainer: container,
preferThumb: true,
shape: getThumbShape(),
scalable: true,
overlayPlayButton: true
overlayPlayButton: true,
allowBottomPadding: allowBottomPadding
});
});
@ -104,7 +110,10 @@
html += '<div class="homePageSection">';
html += '<h1 class="listHeader">' + title + '</h1>';
var allowBottomPadding = true;
if (enableScrollX()) {
allowBottomPadding = false;
html += '<div is="emby-itemscontainer" class="itemsContainer hiddenScrollX">';
} else {
html += '<div is="emby-itemscontainer" class="itemsContainer vertical-wrap">';
@ -113,7 +122,8 @@
html += cardBuilder.getCardsHtml(recommendation.Items, {
shape: getPortraitShape(),
scalable: true,
overlayPlayButton: true
overlayPlayButton: true,
allowBottomPadding: allowBottomPadding
});
html += '</div>';

View file

@ -43,7 +43,8 @@
showParentTitle: true,
lazy: true,
centerText: true,
overlayPlayButton: true
overlayPlayButton: true,
allowBottomPadding: !enableScrollX()
});
ImageLoader.lazyChildren(elem);
@ -89,7 +90,8 @@
action: 'instantmix',
lazy: true,
centerText: true,
overlayMoreButton: true
overlayMoreButton: true,
allowBottomPadding: !enableScrollX()
});
ImageLoader.lazyChildren(itemsContainer);
@ -135,7 +137,8 @@
action: 'instantmix',
lazy: true,
centerText: true,
overlayMoreButton: true
overlayMoreButton: true,
allowBottomPadding: !enableScrollX()
});
ImageLoader.lazyChildren(itemsContainer);
@ -177,7 +180,8 @@
coverImage: true,
showItemCounts: true,
centerText: true,
overlayPlayButton: true
overlayPlayButton: true,
allowBottomPadding: !enableScrollX()
});
ImageLoader.lazyChildren(itemsContainer);
@ -243,10 +247,6 @@
return browserInfo.mobile && AppInfo.enableAppLayouts;
}
function getThumbShape() {
return enableScrollX() ? 'overflowBackdrop' : 'backdrop';
}
self.initTab = function () {
var tabContent = view.querySelector('.pageTabContent[data-index=\'' + 0 + '\']');
@ -351,12 +351,6 @@
var mdlTabs = view.querySelector('.libraryViewNav');
var baseUrl = 'music.html';
var topParentId = params.topParentId;
if (topParentId) {
baseUrl += '?topParentId=' + topParentId;
}
libraryBrowser.configurePaperLibraryTabs(view, mdlTabs, view.querySelectorAll('.pageTabContent'), [0, 4, 5, 6]);
mdlTabs.addEventListener('beforetabchange', function (e) {

View file

@ -88,6 +88,8 @@
view.querySelector('#resumableSection').classList.add('hide');
}
var allowBottomPadding = !enableScrollX();
var container = view.querySelector('#resumableItems');
cardBuilder.buildCards(result.Items, {
itemsContainer: container,
@ -98,7 +100,8 @@
showParentTitle: true,
overlayText: false,
centerText: true,
overlayPlayButton: true
overlayPlayButton: true,
allowBottomPadding: allowBottomPadding
});
});
}

View file

@ -101,7 +101,10 @@
html += '<div class="homePageSection">';
html += '<h1 class="listHeader">' + group.name + '</h1>';
var allowBottomPadding = true;
if (enableScrollX()) {
allowBottomPadding = false;
html += '<div is="emby-itemscontainer" class="itemsContainer hiddenScrollX">';
} else {
html += '<div is="emby-itemscontainer" class="itemsContainer vertical-wrap">';
@ -117,7 +120,8 @@
showDetailsMenu: true,
centerText: true,
overlayMoreButton: true,
showParentTitle: true
showParentTitle: true,
allowBottomPadding: allowBottomPadding
});
html += '</div>';