Merge pull request #1955 from MediaBrowser/dev

Dev
This commit is contained in:
Luke 2016-07-18 16:16:05 -04:00 committed by GitHub
commit 6dcded8357
11 changed files with 72 additions and 88 deletions

View file

@ -15,12 +15,12 @@
}, },
"devDependencies": {}, "devDependencies": {},
"ignore": [], "ignore": [],
"version": "1.4.97", "version": "1.4.98",
"_release": "1.4.97", "_release": "1.4.98",
"_resolution": { "_resolution": {
"type": "version", "type": "version",
"tag": "1.4.97", "tag": "1.4.98",
"commit": "8b11aa9b8f073cbcd9eacf3170efce38d43a5526" "commit": "6e0ce46f8c48908f94a7f32e95fee78b994c16f5"
}, },
"_source": "https://github.com/MediaBrowser/emby-webcomponents.git", "_source": "https://github.com/MediaBrowser/emby-webcomponents.git",
"_target": "^1.2.0", "_target": "^1.2.0",

View file

@ -58,8 +58,12 @@
height: 3.8vh; height: 3.8vh;
} }
.layout-tv .playedIndicator i { .layout-tv .countIndicator {
width: 2.6vh; font-size: 80%;
height: 2.6vh; }
font-size: 2.6vh;
} .layout-tv .playedIndicator i {
width: 2.6vh;
height: 2.6vh;
font-size: 2.6vh;
}

View file

@ -120,7 +120,7 @@ define(['apphost', 'globalize', 'connectionManager', 'itemHelper', 'embyRouter',
}); });
} }
if (options.playAllFromHere) { if (options.playAllFromHere && item.Type != 'Program' && item.Type != 'TvChannel') {
commands.push({ commands.push({
name: globalize.translate('sharedcomponents#PlayAllFromHere'), name: globalize.translate('sharedcomponents#PlayAllFromHere'),
id: 'playallfromhere' id: 'playallfromhere'

View file

@ -7,11 +7,14 @@
background-color: rgba(0, 0, 0, .85); background-color: rgba(0, 0, 0, .85);
z-index: 998; z-index: 998;
line-height: initial; line-height: initial;
font-size: initial;
} }
.cardOverlayInner { .cardOverlayInner {
padding: 11px 12px 10px; padding: .5em;
color: #fff; color: #fff;
text-align: left;
} }
.cardOverlayInner button:last-child { .cardOverlayInner button:last-child {

View file

@ -25,7 +25,7 @@
showOverlayTimeout = null; showOverlayTimeout = null;
} }
elem = elem.querySelector('.cardOverlayTarget'); elem = elem.classList.contains('cardOverlayTarget') ? elem : elem.querySelector('.cardOverlayTarget');
if (elem) { if (elem) {
slideDownToHide(elem); slideDownToHide(elem);
@ -47,7 +47,7 @@
var keyframes = [ var keyframes = [
{ transform: 'translateY(0)', offset: 0 }, { transform: 'translateY(0)', offset: 0 },
{ transform: 'translateY(100%)', offset: 1 }]; { transform: 'translateY(100%)', offset: 1 }];
var timing = { duration: 300, iterations: 1, fill: 'forwards', easing: 'ease-out' }; var timing = { duration: 180, iterations: 1, fill: 'forwards', easing: 'ease-out' };
elem.animate(keyframes, timing).onfinish = function () { elem.animate(keyframes, timing).onfinish = function () {
elem.classList.add('hide'); elem.classList.add('hide');
@ -72,12 +72,12 @@
var keyframes = [ var keyframes = [
{ transform: 'translateY(100%)', offset: 0 }, { transform: 'translateY(100%)', offset: 0 },
{ transform: 'translateY(0)', offset: 1 }]; { transform: 'translateY(0)', offset: 1 }];
var timing = { duration: 300, iterations: 1, fill: 'forwards', easing: 'ease-out' }; var timing = { duration: 200, iterations: 1, fill: 'forwards', easing: 'ease-out' };
elem.animate(keyframes, timing); elem.animate(keyframes, timing);
}); });
} }
function getOverlayHtml(item, currentUser, card) { function getOverlayHtml(apiClient, item, currentUser, card) {
var html = ''; var html = '';
@ -93,12 +93,12 @@
var name = itemHelper.getDisplayName(item); var name = itemHelper.getDisplayName(item);
html += '<div>'; html += '<div>';
var logoHeight = isSmallItem || isMiniItem ? 20 : 26; var logoHeight = 26;
var imgUrl; var imgUrl;
if (parentName && item.ParentLogoItemId) { if (parentName && item.ParentLogoItemId) {
imgUrl = ApiClient.getScaledImageUrl(item.ParentLogoItemId, { imgUrl = apiClient.getScaledImageUrl(item.ParentLogoItemId, {
maxHeight: logoHeight, maxHeight: logoHeight,
type: 'logo', type: 'logo',
tag: item.ParentLogoImageTag tag: item.ParentLogoImageTag
@ -109,7 +109,7 @@
} }
else if (item.ImageTags.Logo) { else if (item.ImageTags.Logo) {
imgUrl = ApiClient.getScaledImageUrl(item.Id, { imgUrl = apiClient.getScaledImageUrl(item.Id, {
maxHeight: logoHeight, maxHeight: logoHeight,
type: 'logo', type: 'logo',
tag: item.ImageTags.Logo tag: item.ImageTags.Logo
@ -179,15 +179,14 @@
function onShowTimerExpired(elem) { function onShowTimerExpired(elem) {
elem = elem.querySelector('a');
var innerElem = elem.querySelector('.cardOverlayTarget'); var innerElem = elem.querySelector('.cardOverlayTarget');
if (!innerElem) { if (!innerElem) {
innerElem = document.createElement('div'); innerElem = document.createElement('div');
innerElem.classList.add('hide'); innerElem.classList.add('hide');
innerElem.classList.add('cardOverlayTarget'); innerElem.classList.add('cardOverlayTarget');
parentWithClass(elem, 'cardContent').appendChild(innerElem);
elem.parentNode.appendChild(innerElem);
} }
var dataElement = parentWithAttribute(elem, 'data-id'); var dataElement = parentWithAttribute(elem, 'data-id');
@ -210,11 +209,7 @@
var item = responses[0]; var item = responses[0];
var user = responses[1]; var user = responses[1];
var card = elem; innerElem.innerHTML = getOverlayHtml(apiClient, item, user, dataElement);
elem = parentWithAttribute(elem, 'data-id');
innerElem.innerHTML = getOverlayHtml(item, user, card);
}); });
slideUpToShow(innerElem); slideUpToShow(innerElem);
@ -223,8 +218,9 @@
function onHoverIn(e) { function onHoverIn(e) {
var elem = e.target; var elem = e.target;
var card = parentWithClass(elem, 'cardImageContainer') || parentWithClass(elem, 'cardImage');
if (!elem.classList.contains('cardImage')) { if (!card) {
return; return;
} }
@ -238,12 +234,10 @@
showOverlayTimeout = null; showOverlayTimeout = null;
} }
elem = parentWithAttribute(elem, 'data-id');
showOverlayTimeout = setTimeout(function () { showOverlayTimeout = setTimeout(function () {
onShowTimerExpired(elem); onShowTimerExpired(card);
}, 1200); }, 1000);
} }
function preventTouchHover() { function preventTouchHover() {

View file

@ -14,10 +14,9 @@
top: 0; top: 0;
left: 0; left: 0;
right: 0; right: 0;
height: 50px;
background: #43A047; background: #43A047;
z-index: 1000; z-index: 1000;
padding: 0 .75em 0 .25em; padding: .5em;
display: flex; display: flex;
align-items: center; align-items: center;
color: #fff; color: #fff;

View file

@ -1,4 +1,4 @@
define(['browser', 'apphost', 'loading', 'connectionManager', 'globalize', 'embyRouter', 'css!./multiselect'], function (browser, appHost, loading, connectionManager, globalize, embyRouter) { define(['browser', 'appStorage', 'apphost', 'loading', 'connectionManager', 'globalize', 'embyRouter', 'css!./multiselect'], function (browser, appStorage, appHost, loading, connectionManager, globalize, embyRouter) {
var selectedItems = []; var selectedItems = [];
var selectedElements = []; var selectedElements = [];
@ -34,17 +34,17 @@
} }
} }
var initCount = 0;
function showTapHoldHelp(element) { function showTapHoldHelp(element) {
return; if (initCount >= 15) {
var page = parentWithClass(element, 'page'); // All done
if (!page) {
return; return;
} }
// Don't do this on the home page initCount++;
if (page.classList.contains('homePage') || page.classList.contains('itemDetailPage') || page.classList.contains('liveTvPage')) {
if (initCount < 15) {
return; return;
} }
@ -55,9 +55,11 @@
appStorage.setItem("tapholdhelp", expectedValue); appStorage.setItem("tapholdhelp", expectedValue);
Dashboard.alert({ require(['alert'], function (alert) {
message: globalize.translate('TryMultiSelectMessage'), alert({
title: globalize.translate('HeaderTryMultiSelect') text: globalize.translate('sharedcomponents#TryMultiSelectMessage'),
title: globalize.translate('sharedcomponents#TryMultiSelect')
});
}); });
} }
@ -131,7 +133,7 @@
itemSelectionPanel = document.createElement('div'); itemSelectionPanel = document.createElement('div');
itemSelectionPanel.classList.add('itemSelectionPanel'); itemSelectionPanel.classList.add('itemSelectionPanel');
item.querySelector('.cardContent').appendChild(itemSelectionPanel); item.querySelector('.cardContent,.cardBox').appendChild(itemSelectionPanel);
var cssClass = 'chkItemSelect'; var cssClass = 'chkItemSelect';
if (isChecked && !browser.firefox) { if (isChecked && !browser.firefox) {
@ -416,8 +418,7 @@
require(['alert'], function (alert) { require(['alert'], function (alert) {
alert({ alert({
text: globalize.translate('sharedcomponents#PleaseSelectTwoItems'), text: globalize.translate('sharedcomponents#PleaseSelectTwoItems')
title: globalize.translate('sharedcomponents#Error')
}); });
}); });
return; return;

View file

@ -974,13 +974,13 @@ define(['browser', 'layoutManager', 'scrollStyles'], function (browser, layoutMa
if (!transform) { if (!transform) {
if (o.horizontal) { if (o.horizontal) {
if (layoutManager.desktop && o.hiddenScroll === false) { if (layoutManager.desktop) {
slideeElement.classList.add('smoothScrollX'); slideeElement.classList.add('smoothScrollX');
} else { } else {
slideeElement.classList.add('hiddenScrollX'); slideeElement.classList.add('hiddenScrollX');
} }
} else { } else {
if (layoutManager.desktop && o.hiddenScroll === false) { if (layoutManager.desktop) {
slideeElement.classList.add('smoothScrollY'); slideeElement.classList.add('smoothScrollY');
} else { } else {
slideeElement.classList.add('hiddenScrollY'); slideeElement.classList.add('hiddenScrollY');
@ -990,9 +990,6 @@ define(['browser', 'layoutManager', 'scrollStyles'], function (browser, layoutMa
slideeElement.style['will-change'] = 'transform'; slideeElement.style['will-change'] = 'transform';
} }
// Scrolling navigation
scrollSource.addEventListener(wheelEvent, scrollHandler);
if (transform) { if (transform) {
dragInitEventNames.forEach(function (eventName) { dragInitEventNames.forEach(function (eventName) {
dragSourceElement.addEventListener(eventName, dragInitSlidee); dragSourceElement.addEventListener(eventName, dragInitSlidee);
@ -1007,6 +1004,16 @@ define(['browser', 'layoutManager', 'scrollStyles'], function (browser, layoutMa
passive: true passive: true
}); });
} }
// Scrolling navigation
scrollSource.addEventListener(wheelEvent, scrollHandler);
} else if (o.horizontal) {
// Don't bind to mouse events with vertical scroll since the mouse wheel can handle this natively
// Scrolling navigation
scrollSource.addEventListener(wheelEvent, scrollHandler);
} }
// Mark instance as initialized // Mark instance as initialized

View file

@ -249,6 +249,19 @@ define(['playbackManager', 'inputManager', 'connectionManager', 'embyRouter', 'g
editItem(item, serverId); editItem(item, serverId);
}); });
} }
else if (action == 'playtrailer') {
getItem(target).then(playTrailer);
}
}
function playTrailer(item) {
var apiClient = connectionManager.getApiClient(item.ServerId);
apiClient.getLocalTrailers(apiClient.getCurrentUserId(), item.Id).then(function (trailers) {
playbackManager.play({ items: trailers });
});
} }
function editItem(item, serverId) { function editItem(item, serverId) {

View file

@ -15,22 +15,6 @@
return false; return false;
} }
function onCardClick(e) {
var card = parentWithClass(e.target, 'card');
if (card) {
var itemSelectionPanel = card.querySelector('.itemSelectionPanel');
if (itemSelectionPanel) {
return onItemSelectionPanelClick(e, itemSelectionPanel);
}
else if (card.classList.contains('groupedCard')) {
return onGroupedCardClick(e, card);
}
}
}
function onGroupedCardClick(e, card) { function onGroupedCardClick(e, card) {
var itemId = card.getAttribute('data-id'); var itemId = card.getAttribute('data-id');
@ -73,25 +57,6 @@
return false; return false;
} }
function parentWithClass(elem, className) {
while (!elem.classList || !elem.classList.contains(className)) {
elem = elem.parentNode;
if (!elem) {
return null;
}
}
return elem;
}
libraryBrowser.createCardMenus = function (curr, options) {
curr.removeEventListener('click', onCardClick);
curr.addEventListener('click', onCardClick);
};
function showSyncButtonsPerUser(page) { function showSyncButtonsPerUser(page) {
var apiClient = window.ApiClient; var apiClient = window.ApiClient;

View file

@ -2279,8 +2279,6 @@
"TextPleaseEnterYourEmailAddressForSubscription": "Please enter your e-mail address.", "TextPleaseEnterYourEmailAddressForSubscription": "Please enter your e-mail address.",
"LoginDisclaimer": "Emby is designed to help you manage your personal media library, such as home videos and photos. Please see our terms of use. The use of any Emby software constitutes acceptance of these terms.", "LoginDisclaimer": "Emby is designed to help you manage your personal media library, such as home videos and photos. Please see our terms of use. The use of any Emby software constitutes acceptance of these terms.",
"TermsOfUse": "Terms of use", "TermsOfUse": "Terms of use",
"HeaderTryMultiSelect": "Try Multi-Select",
"TryMultiSelectMessage": "To edit multiple media items, just click and hold any poster and select the items you want to manage. Try it!",
"NumLocationsValue": "{0} folders", "NumLocationsValue": "{0} folders",
"ButtonAddMediaLibrary": "Add Media Library", "ButtonAddMediaLibrary": "Add Media Library",
"ButtonManageFolders": "Manage folders", "ButtonManageFolders": "Manage folders",