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

update listviews

This commit is contained in:
Luke Pulverenti 2016-07-17 14:55:07 -04:00
parent d9c694f564
commit f3cde16786
51 changed files with 402 additions and 333 deletions

View file

@ -1,4 +1,4 @@
define(['jQuery'], function ($) {
define(['jQuery', 'emby-itemscontainer'], function ($) {
var data = {};

View file

@ -1,4 +1,4 @@
define(['libraryBrowser'], function (libraryBrowser) {
define(['libraryBrowser', 'emby-itemscontainer'], function (libraryBrowser) {
// The base query options
var query = {

View file

@ -1,4 +1,4 @@
define([], function () {
define(['emby-itemscontainer'], function () {
function getNextUpPromise() {

View file

@ -1,4 +1,4 @@
define(['datetime', 'scrollStyles'], function (datetime) {
define(['datetime', 'emby-itemscontainer', 'scrollStyles'], function (datetime) {
function getUpcomingPromise() {
@ -100,9 +100,9 @@
html += '<h1 class="listHeader">' + group.name + '</h1>';
if (enableScrollX()) {
html += '<div class="itemsContainer hiddenScrollX">';
html += '<div is="emby-itemscontainer" class="itemsContainer hiddenScrollX">';
} else {
html += '<div class="itemsContainer">';
html += '<div is="emby-itemscontainer" class="itemsContainer">';
}
html += LibraryBrowser.getPosterViewHtml({
@ -124,7 +124,6 @@
}
elem.innerHTML = html;
LibraryBrowser.createCardMenus(elem);
ImageLoader.lazyChildren(elem);
}
return function (view, params, tabContent) {

View file

@ -256,7 +256,6 @@
var itemsContainer = element.querySelector('.itemsContainer');
itemsContainer.innerHTML = html;
LibraryBrowser.createCardMenus(itemsContainer);
ImageLoader.lazyChildren(itemsContainer);
});
}

View file

@ -345,7 +345,6 @@
itemsContainer.innerHTML = html;
ImageLoader.lazyChildren(itemsContainer);
LibraryBrowser.createCardMenus(itemsContainer);
});
}
@ -765,9 +764,9 @@
var html = '';
if (enableScrollX()) {
html += '<div class="hiddenScrollX itemsContainer">';
html += '<div is="emby-itemscontainer" class="hiddenScrollX itemsContainer">';
} else {
html += '<div class="itemsContainer">';
html += '<div is="emby-itemscontainer" class="itemsContainer">';
}
html += LibraryBrowser.getPosterViewHtml({
items: result.Items,
@ -787,7 +786,6 @@
var similarContent = page.querySelector('#similarContent');
similarContent.innerHTML = html;
ImageLoader.lazyChildren(similarContent);
LibraryBrowser.createCardMenus(similarContent);
});
}
@ -1006,8 +1004,6 @@
elem.classList.remove('hiddenScrollX');
}
LibraryBrowser.createCardMenus(elem);
if (item.Type == "BoxSet") {
var collectionItemTypes = [
@ -1112,11 +1108,6 @@
if (!items.length) {
renderCollectionItemType(page, parentItem, { name: Globalize.translate('HeaderItems') }, items);
}
var containers = page.querySelectorAll('.collectionItems .itemsContainer');
for (i = 0, length = containers.length; i < length; i++) {
LibraryBrowser.createCardMenus(containers[i]);
}
}
function renderCollectionItemType(page, parentItem, type, items) {

View file

@ -903,7 +903,7 @@
atts.push({
name: 'serverid',
value: item.ServerId
value: item.ServerId || options.serverId
});
atts.push({
@ -1546,7 +1546,7 @@
anchorCssClass += ' mediaItem';
if (options.defaultAction) {
anchorCssClass += ' itemWithAction';
anchorCssClass += ' itemAction';
}
var transition = options.transition === false || !AppInfo.enableSectionTransitions ? '' : ' data-transition="slide"';

View file

@ -216,45 +216,6 @@
return false;
}
function onContextMenu(e) {
var card = parentWithClass(e.target, 'card');
if (card) {
var itemSelectionPanel = card.querySelector('.itemSelectionPanel');
if (!itemSelectionPanel) {
showContextMenu(card, {});
}
e.preventDefault();
return false;
}
}
function deleteTimer(id, itemsContainer) {
require(['confirm'], function (confirm) {
confirm(Globalize.translate('MessageConfirmRecordingCancellation'), Globalize.translate('HeaderConfirmRecordingCancellation')).then(function () {
Dashboard.showLoadingMsg();
ApiClient.cancelLiveTvTimer(id).then(function () {
require(['toast'], function (toast) {
toast(Globalize.translate('MessageRecordingCancelled'));
});
Dashboard.hideLoadingMsg();
itemsContainer.dispatchEvent(new CustomEvent('timercancelled', {
bubbles: true
}));
});
});
});
}
function showContextMenu(card, options) {
var displayContextItem = card;
@ -525,14 +486,7 @@
curr.removeEventListener('click', onCardClick);
curr.addEventListener('click', onCardClick);
if (AppInfo.isTouchPreferred) {
curr.removeEventListener('contextmenu', disableEvent);
curr.addEventListener('contextmenu', disableEvent);
}
else {
curr.removeEventListener('contextmenu', onContextMenu);
curr.addEventListener('contextmenu', onContextMenu);
if (!AppInfo.isTouchPreferred) {
curr.removeEventListener('mouseenter', onHoverIn);
curr.addEventListener('mouseenter', onHoverIn, true);
@ -544,7 +498,7 @@
curr.addEventListener("touchstart", preventTouchHover);
}
initTapHoldMenus(curr);
//initTapHoldMenus(curr);
};
function initTapHoldMenus(elem) {
@ -616,12 +570,6 @@
});
}
function disableEvent(e) {
e.preventDefault();
e.stopPropagation();
return false;
}
function onTapHold(e) {
var card = parentWithClass(e.target, 'card');
@ -989,80 +937,6 @@
});
}
function onItemWithActionClick(e) {
var elem = parentWithClass(e.target, 'itemWithAction');
if (!elem) {
return;
}
var action = elem.getAttribute('data-action');
var elemWithAttributes = elem;
if (action) {
while (!elemWithAttributes.getAttribute('data-itemid')) {
elemWithAttributes = elemWithAttributes.parentNode;
}
}
var index;
var itemsContainer;
var itemId = elemWithAttributes.getAttribute('data-itemid');
if (action == 'play') {
MediaController.play(itemId);
}
else if (action == 'playallfromhere') {
index = elemWithAttributes.getAttribute('data-index');
itemsContainer = parentWithClass(elem, 'itemsContainer');
playAllFromHere(index, itemsContainer, 'play');
}
else if (action == 'instantmix') {
MediaController.instantMix(itemId);
}
e.stopPropagation();
e.preventDefault();
return false;
}
function playAllFromHere(index, itemsContainer, method) {
var ids = [];
var mediaItems = itemsContainer.querySelectorAll('.mediaItem');
for (var i = 0, length = mediaItems.length; i < length; i++) {
var node = mediaItems[i];
var id = node.getAttribute('data-itemid');
while (!id) {
node = node.parentNode;
id = node.getAttribute('data-itemid');
}
ids.push(id);
}
ids = ids.slice(index);
ApiClient.getItems(Dashboard.getCurrentUserId(), {
Ids: ids.join(','),
Fields: 'MediaSources,Chapters',
Limit: 100
}).then(function (result) {
MediaController[method]({
items: result.Items
});
});
}
function showSyncButtonsPerUser(page) {
var apiClient = window.ApiClient;
@ -1106,16 +980,8 @@
var page = this;
page.addEventListener('click', onItemWithActionClick);
var itemsContainers = page.querySelectorAll('.itemsContainer:not(.noautoinit)');
var i, length;
for (i = 0, length = itemsContainers.length; i < length; i++) {
LibraryBrowser.createCardMenus(itemsContainers[i]);
}
var categorySyncButtons = page.querySelectorAll('.categorySyncButton');
for (i = 0, length = categorySyncButtons.length; i < length; i++) {
for (var i = 0, length = categorySyncButtons.length; i < length; i++) {
categorySyncButtons[i].addEventListener('click', onCategorySyncButtonClick);
}
});

View file

@ -1,4 +1,4 @@
define([], function () {
define(['emby-itemscontainer'], function () {
return function (view, params, tabContent) {

View file

@ -1,4 +1,4 @@
define([], function () {
define(['emby-itemscontainer'], function () {
var view = LibraryBrowser.getDefaultItemsView('Poster', 'Poster');

View file

@ -149,7 +149,6 @@
elem.querySelector('.recordingItems').innerHTML = html;
ImageLoader.lazyChildren(elem);
LibraryBrowser.createCardMenus(elem);
});
}

View file

@ -1,4 +1,4 @@
define(['libraryBrowser', 'scrollStyles'], function (libraryBrowser) {
define(['libraryBrowser', 'scrollStyles', 'emby-itemscontainer'], function (libraryBrowser) {
function enableScrollX() {
return browserInfo.mobile && AppInfo.enableAppLayouts;
@ -133,7 +133,6 @@
} else {
containers[i].classList.remove('hiddenScrollX');
}
LibraryBrowser.createCardMenus(containers[i]);
}
};

View file

@ -1,4 +1,4 @@
define(['libraryBrowser', 'scrollStyles'], function (libraryBrowser) {
define(['libraryBrowser', 'scrollStyles', 'emby-itemscontainer'], function (libraryBrowser) {
function getView() {
@ -167,9 +167,9 @@
html += '<h1 class="listHeader">' + title + '</h1>';
if (enableScrollX()) {
html += '<div class="hiddenScrollX">';
html += '<div is="emby-itemscontainer" class="hiddenScrollX">';
} else {
html += '<div>';
html += '<div is="emby-itemscontainer">';
}
var view = getView();
@ -247,8 +247,6 @@
} else {
containers[i].classList.remove('hiddenScrollX');
}
libraryBrowser.createCardMenus(containers[i]);
}
}
@ -281,8 +279,6 @@
loadSuggestionsTab(view, params, tabContent);
};
libraryBrowser.createCardMenus(view.querySelector('.recommendations'));
var mdlTabs = view.querySelector('.libraryViewNav');
var baseUrl = 'movies.html';

View file

@ -1,4 +1,4 @@
define(['libraryBrowser', 'scrollStyles'], function (libraryBrowser) {
define(['libraryBrowser', 'scrollStyles', 'emby-itemscontainer'], function (libraryBrowser) {
function itemsPerRow() {
@ -258,8 +258,6 @@
} else {
containers[i].classList.remove('hiddenScrollX');
}
LibraryBrowser.createCardMenus(containers[i]);
}
};

View file

@ -93,7 +93,6 @@
});
});
ImageLoader.lazyChildren(elem);
LibraryBrowser.createCardMenus(elem);
$('.btnNextPage', elem).on('click', function () {
query.StartIndex += query.Limit;

View file

@ -1,4 +1,4 @@
define(['libraryBrowser', 'focusManager', 'embyRouter', 'emby-input', 'paper-icon-button-light', 'material-icons'], function (libraryBrowser, focusManager, embyRouter) {
define(['libraryBrowser', 'focusManager', 'embyRouter', 'emby-input', 'paper-icon-button-light', 'material-icons', 'emby-itemscontainer'], function (libraryBrowser, focusManager, embyRouter) {
function loadSuggestions(page) {
@ -121,7 +121,8 @@
centerImage: true,
centerText: true,
textLines: getAdditionalTextLines,
overlayPlayButton: true
overlayPlayButton: true,
serverId: ApiClient.serverInfo().Id
});
var itemsContainer = searchResults;
@ -176,8 +177,6 @@
loadSuggestions(view);
}
libraryBrowser.createCardMenus(searchResults);
view.querySelector('.txtSearch').addEventListener('input', function () {
onSearchChange(this.value);
});

View file

@ -1,4 +1,4 @@
define(['libraryBrowser', 'appSettings', 'scrollStyles', 'emby-button', 'paper-icon-button-light'], function (LibraryBrowser, appSettings) {
define(['libraryBrowser', 'appSettings', 'scrollStyles', 'emby-button', 'paper-icon-button-light', 'emby-itemscontainer'], function (LibraryBrowser, appSettings) {
function getUserViews(userId) {
@ -302,7 +302,7 @@
html += '</div>';
html += '<div class="itemsContainer">';
html += '<div is="emby-itemscontainer" class="itemsContainer">';
html += LibraryBrowser.getPosterViewHtml({
items: items,
@ -322,8 +322,6 @@
elem.innerHTML = html;
ImageLoader.lazyChildren(elem);
LibraryBrowser.createCardMenus(elem);
});
}
@ -347,9 +345,9 @@
if (items.length) {
html += '<h1 class="listHeader">' + Globalize.translate('HeaderLatestMovies') + '</h1>';
if (scrollX) {
html += '<div class="hiddenScrollX itemsContainer">';
html += '<div is="emby-itemscontainer" class="hiddenScrollX itemsContainer">';
} else {
html += '<div class="itemsContainer">';
html += '<div is="emby-itemscontainer" class="itemsContainer">';
}
html += LibraryBrowser.getPosterViewHtml({
items: items,
@ -366,8 +364,6 @@
elem.innerHTML = html;
ImageLoader.lazyChildren(elem);
LibraryBrowser.createCardMenus(elem);
});
}
@ -391,9 +387,9 @@
if (items.length) {
html += '<h1 class="listHeader">' + Globalize.translate('HeaderLatestEpisodes') + '</h1>';
if (scrollX) {
html += '<div class="hiddenScrollX itemsContainer">';
html += '<div is="emby-itemscontainer" class="hiddenScrollX itemsContainer">';
} else {
html += '<div class="itemsContainer">';
html += '<div is="emby-itemscontainer" class="itemsContainer">';
}
html += LibraryBrowser.getPosterViewHtml({
@ -411,8 +407,6 @@
elem.innerHTML = html;
ImageLoader.lazyChildren(elem);
LibraryBrowser.createCardMenus(elem);
});
}
@ -434,7 +428,7 @@
if (result.Items.length) {
html += '<h1 class="listHeader">' + Globalize.translate('HeaderLatestChannelMedia') + '</h1>';
html += '<div class="itemsContainer">';
html += '<div is="emby-itemscontainer" class="itemsContainer">';
html += LibraryBrowser.getPosterViewHtml({
items: result.Items,
shape: 'auto',
@ -449,8 +443,6 @@
elem.innerHTML = html;
ImageLoader.lazyChildren(elem);
LibraryBrowser.createCardMenus(elem);
});
}
@ -478,9 +470,9 @@
var scrollX = enableScrollX() && browserInfo.safari && screenWidth > 800;
if (scrollX) {
html += '<div class="hiddenScrollX itemsContainer homeTopViews">';
html += '<div is="emby-itemscontainer" class="hiddenScrollX itemsContainer homeTopViews">';
} else {
html += '<div class="itemsContainer homeTopViews">';
html += '<div is="emby-itemscontainer" class="itemsContainer homeTopViews">';
}
html += LibraryBrowser.getPosterViewHtml({
items: items,
@ -506,8 +498,6 @@
elem.innerHTML = html + infoHtml;
ImageLoader.lazyChildren(elem);
LibraryBrowser.createCardMenus(elem, { showDetailsMenu: false });
});
});
}
@ -539,9 +529,9 @@
if (result.Items.length) {
html += '<h1 class="listHeader">' + Globalize.translate('HeaderResume') + '</h1>';
if (enableScrollX()) {
html += '<div class="hiddenScrollX itemsContainer">';
html += '<div is="emby-itemscontainer" class="hiddenScrollX itemsContainer">';
} else {
html += '<div class="itemsContainer">';
html += '<div is="emby-itemscontainer" class="itemsContainer">';
}
html += LibraryBrowser.getPosterViewHtml({
items: result.Items,
@ -562,7 +552,6 @@
elem.innerHTML = html;
ImageLoader.lazyChildren(elem);
LibraryBrowser.createCardMenus(elem);
});
}
@ -584,9 +573,9 @@
if (result.Items.length) {
html += '<h1 class="listHeader">' + Globalize.translate('HeaderNextUp') + '</h1>';
if (enableScrollX()) {
html += '<div class="hiddenScrollX itemsContainer">';
html += '<div is="emby-itemscontainer" class="hiddenScrollX itemsContainer">';
} else {
html += '<div class="itemsContainer">';
html += '<div is="emby-itemscontainer" class="itemsContainer">';
}
html += LibraryBrowser.getPosterViewHtml({
items: result.Items,
@ -606,7 +595,6 @@
elem.innerHTML = html;
ImageLoader.lazyChildren(elem);
LibraryBrowser.createCardMenus(elem);
});
}
@ -667,7 +655,7 @@
html += '<a href="channelitems.html?id=' + channel.Id + '" class="clearLink" style="margin-left:2em;"><button is="emby-button" type="button" class="raised more mini"><span>' + Globalize.translate('ButtonMore') + '</span></button></a>';
html += '</div>';
html += '<div class="itemsContainer">';
html += '<div is="emby-itemscontainer" is="emby-itemscontainer" class="itemsContainer">';
html += LibraryBrowser.getPosterViewHtml({
items: result.Items,
shape: 'autohome',
@ -685,8 +673,6 @@
var elem = page.querySelector('#channel' + channel.Id + '');
elem.innerHTML = html;
ImageLoader.lazyChildren(elem);
LibraryBrowser.createCardMenus(elem);
});
}
@ -715,9 +701,9 @@
}
if (enableScrollX()) {
html += '<div class="hiddenScrollX itemsContainer">';
html += '<div is="emby-itemscontainer" class="hiddenScrollX itemsContainer">';
} else {
html += '<div class="itemsContainer">';
html += '<div is="emby-itemscontainer" class="itemsContainer">';
}
html += LibraryBrowser.getPosterViewHtml({
items: result.Items,
@ -734,7 +720,6 @@
elem.innerHTML = html;
ImageLoader.lazyChildren(elem);
LibraryBrowser.createCardMenus(elem);
});
}

View file

@ -2035,6 +2035,9 @@ var AppInfo = {};
},
canPlay: function (item) {
return MediaController.canPlay(item);
},
instantMix: function (item) {
return MediaController.instantMix(item);
}
};
});
@ -2287,7 +2290,7 @@ var AppInfo = {};
var baseUrl = 'bower_components/emby-webcomponents/strings/';
var languages = ['da', 'de', 'en-US', 'es-MX', 'kk', 'nb', 'nl', 'pt-BR', 'pt-PT', 'ru', 'sv', 'zh-TW'];
var languages = ['da', 'de', 'en-US', 'es-MX', 'fr', 'kk', 'nb', 'nl', 'pt-BR', 'pt-PT', 'ru', 'sv', 'zh-TW'];
var translations = languages.map(function (i) {
return {
@ -3248,7 +3251,7 @@ var AppInfo = {};
}
function upgradeLayouts() {
if (!AppInfo.enableAppLayouts && browserInfo.mobile) {
if (!AppInfo.enableAppLayouts) {
Dashboard.getPluginSecurityInfo().then(function (info) {
if (info.IsMBSupporter) {
AppInfo.enableAppLayouts = true;

View file

@ -1,4 +1,4 @@
define(['libraryBrowser', 'scrollStyles'], function (libraryBrowser) {
define(['libraryBrowser', 'scrollStyles', 'emby-itemscontainer'], function (libraryBrowser) {
return function (view, params) {
@ -165,7 +165,6 @@
} else {
tabContent.querySelector('#resumableItems').classList.remove('hiddenScrollX');
}
libraryBrowser.createCardMenus(tabContent.querySelector('#resumableItems'));
};
self.renderTab = function () {
@ -273,7 +272,6 @@
} else {
view.querySelector('#resumableItems').classList.remove('hiddenScrollX');
}
libraryBrowser.createCardMenus(view.querySelector('#resumableItems'));
libraryBrowser.configurePaperLibraryTabs(view, mdlTabs, view.querySelectorAll('.pageTabContent'), [0, 1, 2, 4, 5, 6]);
mdlTabs.addEventListener('beforetabchange', function (e) {

View file

@ -1,4 +1,4 @@
define(['datetime', 'scrollStyles'], function (datetime) {
define(['datetime', 'scrollStyles', 'emby-itemscontainer'], function (datetime) {
function getUpcomingPromise(context, params) {
@ -102,9 +102,9 @@
html += '<h1 class="listHeader">' + group.name + '</h1>';
if (enableScrollX()) {
html += '<div class="itemsContainer hiddenScrollX">';
html += '<div is="emby-itemscontainer" class="itemsContainer hiddenScrollX">';
} else {
html += '<div class="itemsContainer">';
html += '<div is="emby-itemscontainer" class="itemsContainer">';
}
html += LibraryBrowser.getPosterViewHtml({
@ -125,7 +125,6 @@
}
elem.innerHTML = html;
LibraryBrowser.createCardMenus(elem);
ImageLoader.lazyChildren(elem);
}
return function (view, params, tabContent) {