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

Merge pull request #2045 from MediaBrowser/beta

Beta
This commit is contained in:
Luke 2016-08-09 14:23:35 -04:00 committed by GitHub
commit 7d59260227
42 changed files with 205 additions and 272 deletions

View file

@ -16,12 +16,12 @@
},
"devDependencies": {},
"ignore": [],
"version": "1.1.73",
"_release": "1.1.73",
"version": "1.1.74",
"_release": "1.1.74",
"_resolution": {
"type": "version",
"tag": "1.1.73",
"commit": "3b108b8da07b5b715fe616f1528ad95acd15e061"
"tag": "1.1.74",
"commit": "3899ca26b73cbca2779ca2ff62c1063bf058ee4c"
},
"_source": "https://github.com/MediaBrowser/Emby.ApiClient.Javascript.git",
"_target": "^1.1.51",

View file

@ -215,7 +215,7 @@
return connectUser;
};
var minServerVersion = '3.0.5930';
var minServerVersion = '3.0.5971';
self.minServerVersion = function (val) {
if (val) {

View file

@ -14,12 +14,12 @@
},
"devDependencies": {},
"ignore": [],
"version": "1.4.161",
"_release": "1.4.161",
"version": "1.4.165",
"_release": "1.4.165",
"_resolution": {
"type": "version",
"tag": "1.4.161",
"commit": "da357c3660e6956a59327fdd9d90506d16dc4b5c"
"tag": "1.4.165",
"commit": "ebe71bd8b4505ceb207efb226686eb6c3e842b4c"
},
"_source": "https://github.com/MediaBrowser/emby-webcomponents.git",
"_target": "^1.2.1",

View file

@ -37,6 +37,10 @@
flex-shrink: 0;
}
.actionSheetMenuItem-noflex {
display: block;
}
.actionSheetItemText {
padding: .8em 0;
white-space: nowrap;

View file

@ -170,14 +170,14 @@
html += '<div class="actionSheetScroller ' + scrollType + '" style="' + style + '">';
var itemTagName = 'button';
var menuItemClass = browser.noFlex || browser.firefox ? 'actionSheetMenuItem actionSheetMenuItem-noflex' : 'actionSheetMenuItem';
for (i = 0, length = options.items.length; i < length; i++) {
option = options.items[i];
var autoFocus = option.selected ? ' autoFocus' : '';
html += '<' + itemTagName + autoFocus + ' is="emby-button" type="button" class="actionSheetMenuItem" data-id="' + (option.id || option.value) + '">';
html += '<button' + autoFocus + ' is="emby-button" type="button" class="' + menuItemClass + '" data-id="' + (option.id || option.value) + '">';
if (option.icon) {
html += '<i class="actionSheetItemIcon md-icon">' + option.icon + '</i>';
@ -186,7 +186,7 @@
html += '<i class="actionSheetItemIcon md-icon" style="visibility:hidden;">check</i>';
}
html += '<div class="actionSheetItemText">' + (option.name || option.textContent || option.innerText) + '</div>';
html += '</' + itemTagName + '>';
html += '</button>';
}
if (options.showCancel) {

View file

@ -1,4 +1,7 @@
.card {
border: 0;
font-size: inherit !important;
font-family: inherit !important;
text-transform: none;
background-color: transparent !important;
background: none !important;
@ -41,12 +44,6 @@
contain: layout style;
}
button.card {
border: 0 !important;
font-size: inherit !important;
font-family: inherit !important;
}
.cardScalable {
position: relative;
}
@ -70,7 +67,7 @@ button.card {
.card .cardBox {
padding: 0 !important;
margin: 0;
transition: none !important;
transition: none;
border: 3px solid transparent;
}
@ -85,14 +82,6 @@ button.card {
}
}
.round .cardBox {
border: .7em solid transparent;
}
.round .cardImageContainer {
border: .15em solid transparent;
}
.card:focus {
position: relative !important;
z-index: 10 !important;
@ -103,20 +92,6 @@ button.card {
border-color: transparent;
}
.cardImageContainer, .round:focus .cardImageContainer {
border-color: #fff;
}
.round .cardBox {
transition: transform 180ms ease-out !important;
-webkit-transform-origin: center center;
transform-origin: center center;
}
.layout-tv .round:focus .cardBox {
transform: scale(1.34, 1.34);
}
.bottomPaddedCard .cardBox:not(.visualCardBox) {
margin-bottom: 1em;
}
@ -172,6 +147,7 @@ button.card {
position: relative;
background-clip: content-box !important;
border-radius: 2px;
color: #fff;
}
.visualCardBox .cardImageContainer {
@ -183,7 +159,7 @@ button.card {
border-radius: 0;
}
button.cardImageContainer {
.cardImageContainer-button {
border: 0;
padding: 0;
background-color: transparent;
@ -208,18 +184,10 @@ button.cardImageContainer {
display: block;
}
.round .cardContent {
overflow: visible;
}
.scalableCard .cardImageContainer {
height: 100%;
}
.round .cardImageContainer, .round .cardImage {
border-radius: 1000px;
}
.cardImage.coveredImage, .cardImageContainer.coveredImage, .coveredImage .cardImage {
background-size: 100% 100%;
background-position: center center;
@ -233,10 +201,6 @@ button.cardImageContainer {
padding: .5em .3em;
}
.cardFooter .cardText + .cardText {
opacity: .6;
}
.visualCardBox .cardScalable, .visualCardBox .cardFooter {
background-color: #222326;
}
@ -259,6 +223,7 @@ button.cardImageContainer {
z-index: 1;
overflow: hidden;
max-width: 100%;
color: #fff;
}
.innerCardFooterClear {
@ -274,20 +239,17 @@ button.cardImageContainer {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.cardText {
color: inherit;
}
.innerCardFooter .cardText, .cardImageContainer .cardText {
color: #fff;
}
.cardTextCentered {
text-align: center;
}
.cardText-secondary {
opacity: .6;
}
.cardCenteredText {
white-space: normal;
}
@ -310,7 +272,7 @@ button.cardImageContainer {
color: #fff;
}
.card .indicators {
.cardIndicators {
right: 2.5%;
top: 2.5%;
position: absolute;
@ -318,12 +280,12 @@ button.cardImageContainer {
align-items: center;
}
.portraitCard .indicators {
.portraitCardIndicators {
right: 3%;
top: 2%;
}
.backdropCard .indicators {
.backdropCardIndicators {
right: 1.5%;
top: 2.8%;
}

View file

@ -669,7 +669,7 @@ define(['datetime', 'imageLoader', 'connectionManager', 'itemHelper', 'mediaInfo
return 'defaultCardColor' + getDefaultColorIndex(str);
}
function getCardTextLines(lines, cssClass, forceLines) {
function getCardTextLines(lines, cssClass, forceLines, addSecondaryClass) {
var html = '';
@ -680,6 +680,10 @@ define(['datetime', 'imageLoader', 'connectionManager', 'itemHelper', 'mediaInfo
var text = lines[i];
if (i == 1 && addSecondaryClass) {
cssClass += ' cardText-secondary';
}
if (text) {
html += "<div class='" + cssClass + "'>";
html += text;
@ -865,7 +869,7 @@ define(['datetime', 'imageLoader', 'connectionManager', 'itemHelper', 'mediaInfo
}
}
html += getCardTextLines(lines, cssClass, !options.overlayText);
html += getCardTextLines(lines, cssClass, !options.overlayText, isOuterFooter);
if (progressHtml) {
html += progressHtml;
@ -1076,6 +1080,7 @@ define(['datetime', 'imageLoader', 'connectionManager', 'itemHelper', 'mediaInfo
} else {
if (overlayButtons && !separateCardBox) {
cardImageContainerClass += ' cardImageContainerClass-button';
cardImageContainerOpen = imgUrl ? ('<button type="button" data-action="' + action + '" class="itemAction ' + cardImageContainerClass + ' lazy" data-src="' + imgUrl + '">') : ('<button type="button" data-action="' + action + '" class="itemAction ' + cardImageContainerClass + '">');
cardImageContainerClose = '</button>';
@ -1102,7 +1107,7 @@ define(['datetime', 'imageLoader', 'connectionManager', 'itemHelper', 'mediaInfo
}
if (indicatorsHtml) {
cardImageContainerOpen += '<div class="indicators">' + indicatorsHtml + '</div>';
cardImageContainerOpen += '<div class="cardIndicators ' + options.shape + 'CardIndicators">' + indicatorsHtml + '</div>';
}
var forceName = imgInfo.forceName;

View file

@ -69,12 +69,12 @@ define(['imageLoader', 'itemShortcuts', 'connectionManager'], function (imageLoa
nameHtml += '<div class="cardText">' + person.Name + '</div>';
if (person.Role) {
nameHtml += '<div class="cardText">as ' + person.Role + '</div>';
nameHtml += '<div class="cardText cardText-secondary">as ' + person.Role + '</div>';
}
else if (person.Type) {
nameHtml += '<div class="cardText">' + Globalize.translate('core#' + person.Type) + '</div>';
nameHtml += '<div class="cardText cardText-secondary">' + Globalize.translate('core#' + person.Type) + '</div>';
} else {
nameHtml += '<div class="cardText">&nbsp;</div>';
nameHtml += '<div class="cardText cardText-secondary">&nbsp;</div>';
}
var html = '\

View file

@ -0,0 +1,29 @@
.cardBox-round {
border: .7em solid transparent;
}
.cardImageContainer-round {
border: .15em solid transparent;
}
.cardImageContainer, .card-round:focus .cardImageContainer {
border-color: #fff;
}
.cardBox-round {
transition: transform 180ms ease-out !important;
-webkit-transform-origin: center center;
transform-origin: center center;
}
.layout-tv .card-round:focus .cardBox {
transform: scale(1.34, 1.34);
}
.cardContent-round {
overflow: visible;
}
.cardImageContainer-round, .card-round .cardImage {
border-radius: 1000px;
}

View file

@ -41,7 +41,6 @@
//}
itemShortcuts.showContextMenu(card, {
identify: false,
positionTo: target,
itemsContainer: itemsContainer
});

View file

@ -32,7 +32,7 @@ define(['dom'], function (dom) {
}
}
var focusableTagNames = ['INPUT', 'TEXTAREA', 'SELECT', 'BUTTON', 'A', 'PAPER-CHECKBOX'];
var focusableTagNames = ['INPUT', 'TEXTAREA', 'SELECT', 'BUTTON', 'A'];
var focusableContainerTagNames = ['BODY', 'DIALOG'];
var focusableQuery = focusableTagNames.join(',') + ',.focusable';
@ -89,7 +89,7 @@ define(['dom'], function (dom) {
}
function getFocusableElements(parent) {
var elems = (parent || document).querySelectorAll(focusableQuery);
var elems = (parent || document.body).querySelectorAll(focusableQuery);
var focusableElements = [];
for (var i = 0, length = elems.length; i < length; i++) {

View file

@ -203,15 +203,15 @@
html += '</div>';
html += '</div>';
html += '<div class="cardFooter">';
html += '<div class="cardFooter cardFooter-visual">';
html += '<div class="cardText cardTextCentered">' + result.Name + '</div>';
html += '<div class="cardText cardTextCentered">';
html += '<div class="cardText cardText-secondary cardTextCentered">';
html += result.ProductionYear || '&nbsp;';
html += '</div>';
if (result.GameSystem) {
html += '<div class="cardText cardTextCentered">';
html += '<div class="cardText cardText-secondary cardTextCentered">';
html += result.GameSystem;
html += '</div>';
}

View file

@ -12,12 +12,15 @@
text-align: left;
padding: .25em 1.15em;
line-height: 160%;
border-bottom: 1px solid #2a2a2a;
cursor: pointer;
white-space: nowrap;
overflow: hidden;
}
.listItem-border {
border-bottom: 1px solid #2a2a2a;
}
.listItem-button {
width: 100%;
}
@ -131,11 +134,11 @@
color: inherit !important;
}
.layout-tv .listItem {
.listItem-focusscale {
transition: transform .2s ease-out;
}
.layout-tv .listItem:focus {
.listItem-focusscale:focus {
transform: scale(1.025, 1.025);
}
@ -150,11 +153,7 @@
background-color: transparent !important;
}
.paperList .listItem {
border-bottom: 0;
}
.layout-tv .listItemMediaInfo {
.listItemMediaInfo-padded {
margin: .5em 0;
}

View file

@ -178,12 +178,16 @@ define(['itemHelper', 'mediaInfo', 'indicators', 'connectionManager', 'layoutMan
}
}
var cssClass = "listItem listItem-nosidepadding";
var cssClass = "listItem listItem-nosidepadding listItem-border";
if (clickEntireItem) {
cssClass += ' itemAction listItem-button';
}
if (layoutManager.tv) {
cssClass += ' listItem-focusscale';
}
var downloadWidth = 80;
if (isLargeStyle) {
@ -281,7 +285,13 @@ define(['itemHelper', 'mediaInfo', 'indicators', 'connectionManager', 'layoutMan
html += getTextLinesHtml(textlines, isLargeStyle);
if (!enableSideMediaInfo) {
html += '<div class="secondary listItemMediaInfo listItemBodyText">' + mediaInfo.getPrimaryMediaInfoHtml(item) + '</div>';
var mediaInfoClass = 'secondary listItemMediaInfo listItemBodyText';
if (layoutManager.tv) {
mediaInfoClass += ' listItemMediaInfo-padded';
}
html += '<div class="' + mediaInfoClass + '">' + mediaInfo.getPrimaryMediaInfoHtml(item) + '</div>';
}
if (enableOverview && item.Overview) {

View file

@ -5,7 +5,7 @@
right: 0;
top: 0;
background-color: rgba(0, 0, 0, .3);
z-index: 999;
z-index: 99998;
border: 1px solid #43A047;
}
@ -19,6 +19,7 @@
display: flex;
align-items: center;
color: #fff;
z-index: 99999;
}
.itemSelectionCount {

View file

@ -109,7 +109,6 @@ define(['browser', 'layoutManager', 'dom', 'scrollStyles'], function (browser, l
touchDragging: 1, // Enable navigation by dragging the SLIDEE with touch events.
releaseSwing: false, // Ease out on dragging swing release.
swingSpeed: 0.2, // Swing synchronization speed, where: 1 = instant, 0 = infinite.
elasticBounds: false, // Stretch SLIDEE position limits when dragging past FRAME boundaries.
dragThreshold: 3, // Distance in pixels before Sly recognizes dragging.
intervactive: null, // Selector for special interactive elements.
@ -351,16 +350,7 @@ define(['browser', 'layoutManager', 'dom', 'scrollStyles'], function (browser, l
*/
function slideTo(newPos, immediate) {
// Handle overflowing position limits
if (dragging.init && dragging.slidee && o.elasticBounds) {
if (newPos > pos.end) {
newPos = pos.end + (newPos - pos.end) / 6;
} else if (newPos < pos.start) {
newPos = pos.start + (newPos - pos.start) / 6;
}
} else {
newPos = within(newPos, pos.start, pos.end);
}
newPos = within(newPos, pos.start, pos.end);
if (!transform) {
@ -388,10 +378,6 @@ define(['browser', 'layoutManager', 'dom', 'scrollStyles'], function (browser, l
function renderAnimate() {
if (!transform) {
return;
}
var obj = getComputedStyle(slideeElement, null).getPropertyValue('transform').match(/([-+]?(?:\d*\.)?\d+)\D*, ([-+]?(?:\d*\.)?\d+)\D*\)/);
if (obj) {
// [1] = x, [2] = y
@ -441,66 +427,34 @@ define(['browser', 'layoutManager', 'dom', 'scrollStyles'], function (browser, l
};
}
function getOffsets(elems) {
function getBoundingClientRect(elem) {
var doc = document;
var results = [];
if (!doc) {
return results;
// Support: BlackBerry 5, iOS 3 (original iPhone)
// If we don't have gBCR, just use 0,0 rather than error
if (elem.getBoundingClientRect) {
return elem.getBoundingClientRect();
} else {
return { top: 0, left: 0 };
}
var docElem = doc.documentElement;
var docElemValues = {
clientTop: docElem.clientTop,
clientLeft: docElem.clientLeft
};
var win = doc.defaultView;
var winValues = {
pageXOffset: win.pageXOffset,
pageYOffset: win.pageYOffset
};
var box;
var elem;
for (var i = 0, length = elems.length; i < length; i++) {
elem = elems[i];
// Support: BlackBerry 5, iOS 3 (original iPhone)
// If we don't have gBCR, just use 0,0 rather than error
if (elem.getBoundingClientRect) {
box = elem.getBoundingClientRect();
} else {
box = { top: 0, left: 0 };
}
results[i] = {
top: box.top + winValues.pageYOffset - docElemValues.clientTop,
left: box.left + winValues.pageXOffset - docElemValues.clientLeft
};
}
return results;
}
/**
* Returns the position object.
*
* @param {Mixed} item
*
* @return {Object}
*/
* Returns the position object.
*
* @param {Mixed} item
*
* @return {Object}
*/
self.getPos = function (item) {
var offsets = getOffsets([slideeElement, item]);
var slideeOffset = offsets[0];
var itemOffset = offsets[1];
var slideeOffset = getBoundingClientRect(slideeElement);
var itemOffset = getBoundingClientRect(item);
var offset = o.horizontal ? itemOffset.left - slideeOffset.left : itemOffset.top - slideeOffset.top;
var size = item[o.horizontal ? 'offsetWidth' : 'offsetHeight'];
var size = o.horizontal ? itemOffset.width : itemOffset.height;
if (!size) {
size = item[o.horizontal ? 'offsetWidth' : 'offsetHeight'];
}
var centerOffset = o.centerOffset || 0;

View file

@ -1,57 +1,26 @@
define(['focusManager', 'dom', 'scrollStyles'], function (focusManager, dom) {
function getOffsets(elems) {
function getBoundingClientRect(elem) {
var doc = document;
var results = [];
if (!doc) {
return results;
// Support: BlackBerry 5, iOS 3 (original iPhone)
// If we don't have gBCR, just use 0,0 rather than error
if (elem.getBoundingClientRect) {
return elem.getBoundingClientRect();
} else {
return { top: 0, left: 0 };
}
var docElem = doc.documentElement;
var docElemValues = {
clientTop: docElem.clientTop,
clientLeft: docElem.clientLeft
};
var win = doc.defaultView;
var winValues = {
pageXOffset: win.pageXOffset,
pageYOffset: win.pageYOffset
};
var box;
var elem;
for (var i = 0, length = elems.length; i < length; i++) {
elem = elems[i];
// Support: BlackBerry 5, iOS 3 (original iPhone)
// If we don't have gBCR, just use 0,0 rather than error
if (elem.getBoundingClientRect) {
box = elem.getBoundingClientRect();
} else {
box = { top: 0, left: 0 };
}
results[i] = {
top: box.top + winValues.pageYOffset - docElemValues.clientTop,
left: box.left + winValues.pageXOffset - docElemValues.clientLeft
};
}
return results;
}
function getPosition(scrollContainer, item, horizontal) {
var offsets = getOffsets([scrollContainer, item]);
var slideeOffset = offsets[0];
var itemOffset = offsets[1];
var slideeOffset = getBoundingClientRect(scrollContainer);
var itemOffset = getBoundingClientRect(item);
var offset = horizontal ? itemOffset.left - slideeOffset.left : itemOffset.top - slideeOffset.top;
var size = item[horizontal ? 'offsetWidth' : 'offsetHeight'];
var size = horizontal ? itemOffset.width : itemOffset.height;
if (!size) {
size = item[horizontal ? 'offsetWidth' : 'offsetHeight'];
}
if (horizontal) {
offset += scrollContainer.scrollLeft;

View file

@ -125,7 +125,6 @@ define(['playbackManager', 'inputManager', 'connectionManager', 'embyRouter', 'g
queue: true,
playAllFromHere: !item.IsFolder,
queueAllFromHere: !item.IsFolder,
identify: false,
playlistId: playlistId,
collectionId: collectionId
@ -258,7 +257,6 @@ define(['playbackManager', 'inputManager', 'connectionManager', 'embyRouter', 'g
} :
{};
options.identify = false;
options.positionTo = target;
showContextMenu(card, options);

View file

@ -117,7 +117,9 @@
var itemHtml = '';
var tagName = layoutManager.tv ? 'button' : 'div';
var className = layoutManager.tv && s.Path ? 'listItem btnDelete' : 'listItem';
var className = layoutManager.tv && s.Path ? 'listItem listItem-focusscale btnDelete' : 'listItem';
className += ' listItem-noborder';
itemHtml += '<' + tagName + ' class="' + className + '" data-index="' + s.Index + '">';

View file

@ -28,14 +28,14 @@
"web-component-tester": "^4.0.0"
},
"ignore": [],
"homepage": "https://github.com/polymerelements/iron-flex-layout",
"homepage": "https://github.com/PolymerElements/iron-flex-layout",
"_release": "1.3.1",
"_resolution": {
"type": "version",
"tag": "v1.3.1",
"commit": "6d88f29f3a7181daa2a5c7f678de44f0a0e6a717"
},
"_source": "git://github.com/polymerelements/iron-flex-layout.git",
"_source": "git://github.com/PolymerElements/iron-flex-layout.git",
"_target": "^1.0.0",
"_originalSource": "polymerelements/iron-flex-layout"
"_originalSource": "PolymerElements/iron-flex-layout"
}

View file

@ -32,14 +32,14 @@
"web-component-tester": "^4.0.0",
"webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0"
},
"homepage": "https://github.com/PolymerElements/iron-icon",
"homepage": "https://github.com/polymerelements/iron-icon",
"_release": "1.0.9",
"_resolution": {
"type": "version",
"tag": "v1.0.9",
"commit": "f6fb241901377e30e2c9c6cd47e3e8e8beb6574d"
},
"_source": "git://github.com/PolymerElements/iron-icon.git",
"_source": "git://github.com/polymerelements/iron-icon.git",
"_target": "^1.0.0",
"_originalSource": "PolymerElements/iron-icon"
"_originalSource": "polymerelements/iron-icon"
}

View file

@ -26,14 +26,14 @@
"webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0"
},
"main": "iron-meta.html",
"homepage": "https://github.com/polymerelements/iron-meta",
"homepage": "https://github.com/PolymerElements/iron-meta",
"_release": "1.1.1",
"_resolution": {
"type": "version",
"tag": "v1.1.1",
"commit": "e171ee234b482219c9514e6f9551df48ef48bd9f"
},
"_source": "git://github.com/polymerelements/iron-meta.git",
"_source": "git://github.com/PolymerElements/iron-meta.git",
"_target": "^1.0.0",
"_originalSource": "polymerelements/iron-meta"
"_originalSource": "PolymerElements/iron-meta"
}

View file

@ -32,14 +32,14 @@
"iron-component-page": "polymerElements/iron-component-page#^1.1.6"
},
"private": true,
"homepage": "https://github.com/Polymer/polymer",
"homepage": "https://github.com/polymer/polymer",
"_release": "1.6.1",
"_resolution": {
"type": "version",
"tag": "v1.6.1",
"commit": "1f197d9d7874b1e5808b2a5c26f34446a7d912fc"
},
"_source": "git://github.com/Polymer/polymer.git",
"_source": "git://github.com/polymer/polymer.git",
"_target": "^1.1.0",
"_originalSource": "Polymer/polymer"
"_originalSource": "polymer/polymer"
}

View file

@ -233,7 +233,6 @@
dlg.classList.add('ui-body-a');
dlg.classList.add('background-theme-a');
dlg.classList.add('popupEditor');
dlg.classList.add('directoryPicker');

View file

@ -308,7 +308,6 @@
dlg.classList.add('ui-body-' + theme);
dlg.classList.add('background-theme-' + theme);
dlg.classList.add('popupEditor');
var html = '';
html += '<h2 class="dialogHeader">';

View file

@ -283,7 +283,6 @@
dlg.classList.add('ui-body-' + theme);
dlg.classList.add('background-theme-' + theme);
dlg.classList.add('popupEditor');
var html = '';
html += '<h2 class="dialogHeader">';

View file

@ -145,7 +145,6 @@
dlg.classList.add('ui-body-' + theme);
dlg.classList.add('background-theme-' + theme);
dlg.classList.add('popupEditor');
var html = '';
html += '<h2 class="dialogHeader">';

View file

@ -92,7 +92,7 @@
function onAddButtonClick() {
var page = $(this).parents('.popupEditor')[0];
var page = $(this).parents('.dlg-librarycreator')[0];
require(['directorybrowser'], function (directoryBrowser) {
@ -168,7 +168,7 @@
return p.toLowerCase() != location.toLowerCase();
});
var page = $(this).parents('.popupEditor')[0];
var page = $(this).parents('.dlg-librarycreator')[0];
renderPaths(page);
}
@ -207,7 +207,7 @@
dlg.classList.add('ui-body-a');
dlg.classList.add('background-theme-a');
dlg.classList.add('popupEditor');
dlg.classList.add('dlg-librarycreator');
dlg.innerHTML = Globalize.translateDocument(template);
document.body.appendChild(dlg);

View file

@ -161,7 +161,6 @@
dlg.classList.add('ui-body-a');
dlg.classList.add('background-theme-a');
dlg.classList.add('popupEditor');
var html = '';
html += '<h2 class="dialogHeader">';

View file

@ -1,4 +1,4 @@
define(['browser', 'hammer', 'css!./navdrawer', 'scrollStyles'], function (browser, Hammer) {
define(['browser', 'css!./navdrawer', 'scrollStyles'], function (browser) {
return function (options) {
@ -35,7 +35,7 @@
this.initialize();
};
TouchMenuLA.prototype.initElements = function () {
TouchMenuLA.prototype.initElements = function (Hammer) {
options.target.classList.add('touch-menu-la');
options.target.style.width = options.width + 'px';
options.target.style.left = -options.width + 'px';
@ -44,7 +44,10 @@
mask = document.createElement('div');
mask.className = 'tmla-mask';
document.body.appendChild(mask);
maskHammer = new Hammer(mask, null);
if (Hammer) {
maskHammer = new Hammer(mask, null);
}
}
};
@ -89,7 +92,7 @@
self.checkMenuState(ev.deltaX, ev.deltaY);
}
function initEdgeSwipe() {
function initEdgeSwipe(Hammer) {
if (options.disableEdgeSwipe) {
return;
}
@ -258,6 +261,27 @@
}
};
function initWithHammer(Hammer) {
if (Hammer) {
menuHammer = Hammer(options.target, null);
}
self.initElements(Hammer);
if (Hammer) {
self.touchStartMenu();
self.touchEndMenu();
self.eventStartMask();
self.eventEndMask();
initEdgeSwipe(Hammer);
}
if (!options.disableMask) {
self.clickMaskClose();
}
}
TouchMenuLA.prototype.initialize = function () {
options = Object.assign(defaults, options || {});
@ -267,20 +291,11 @@
options.disableEdgeSwipe = true;
}
menuHammer = Hammer(options.target, null);
self.initElements();
self.touchStartMenu();
self.touchEndMenu();
self.eventStartMask();
self.eventEndMask();
if (!options.disableMask) {
self.clickMaskClose();
if (browser.touch) {
require(['hammer'], initWithHammer);
} else {
initWithHammer();
}
initEdgeSwipe();
};
return new TouchMenuLA();

View file

@ -541,7 +541,7 @@
} else {
btnCast.querySelector('i').innerHTML = 'cast-connected';
btnCast.querySelector('i').innerHTML = 'cast_connected';
btnCast.classList.add('btnActiveCast');
context.querySelector('.nowPlayingSelectedPlayer').innerHTML = info.deviceName || info.name;
}

View file

@ -6,7 +6,7 @@
<div>
<a href="#" class="clearLink lnkDisplayPreferences">
<div class="listItem">
<button type="button" is="emby-button" class="fab mini autoSize blue" item-icon><i class="md-icon">tv</i></button>
<button type="button" is="emby-button" class="fab mini autoSize blue listItemButton" item-icon><i class="md-icon">tv</i></button>
<div class="listItemBody two-line">
<div>${ButtonDisplaySettings}</div>
<div class="secondary">${ButtonDisplaySettingsHelp}</div>
@ -16,7 +16,7 @@
<a href="#" class="clearLink lnkHomeScreenPreferences">
<div class="listItem">
<button type="button" is="emby-button" class="fab mini autoSize red" item-icon><i class="md-icon">home</i></button>
<button type="button" is="emby-button" class="fab mini autoSize red listItemButton" item-icon><i class="md-icon">home</i></button>
<div class="listItemBody two-line">
<div>${ButtonHomeScreenSettings}</div>
<div class="secondary">${ButtonHomeScreenSettingsHelp}</div>
@ -26,7 +26,7 @@
<a href="#" class="clearLink lnkLanguagePreferences">
<div class="listItem">
<button type="button" is="emby-button" class="fab mini autoSize green" item-icon><i class="md-icon">play_circle_filled</i></button>
<button type="button" is="emby-button" class="fab mini autoSize green listItemButton" item-icon><i class="md-icon">play_circle_filled</i></button>
<div class="listItemBody two-line">
<div>${ButtonPlaybackSettings}</div>
<div class="secondary">${ButtonPlaybackSettingsHelp}</div>
@ -36,7 +36,7 @@
<a href="#" class="clearLink lnkMyProfile">
<div class="listItem">
<button type="button" is="emby-button" class="fab mini autoSize orange" item-icon><i class="md-icon">person</i></button>
<button type="button" is="emby-button" class="fab mini autoSize orange listItemButton" item-icon><i class="md-icon">person</i></button>
<div class="listItemBody two-line">
<div>${ButtonProfile}</div>
<div class="secondary">${ButtonProfileHelp}</div>
@ -46,7 +46,7 @@
<a href="#" class="clearLink lnkSync hide">
<div class="listItem">
<button type="button" is="emby-button" class="fab mini autoSize" style="background-color: #673AB7;" item-icon><i class="md-icon">sync</i></button>
<button type="button" is="emby-button" class="fab mini autoSize listItemButton" style="background-color: #673AB7;" item-icon><i class="md-icon">sync</i></button>
<div class="listItemBody two-line">
<div>${ButtonSyncSettings}</div>
<div class="secondary">${ButtonSyncSettingsHelp}</div>

View file

@ -151,7 +151,7 @@
var itemHtml = '';
itemHtml += '<a class="clearLink" href="' + item.Link + '" target="_blank">';
itemHtml += '<div class="listItem">';
itemHtml += '<div class="listItem listItem-noborder">';
itemHtml += '<i class="listItemIcon md-icon">dvr</i>';
@ -1034,7 +1034,7 @@
var html = '';
html += '<div class="listItem">';
html += '<div class="listItem listItem-noborder">';
var color = entry.Severity == 'Error' || entry.Severity == 'Fatal' || entry.Severity == 'Warn' ? '#cc0000' : '#52B54B';

View file

@ -2,7 +2,7 @@
function fadeInRight(elem) {
var pct = browserInfo.mobile ? '3.5%' : '0.5%';
var pct = browserInfo.mobile ? '4%' : '0.5%';
var keyframes = [
{ opacity: '0', transform: 'translate3d(' + pct + ', 0, 0)', offset: 0 },
@ -163,6 +163,10 @@
configureSwipeTabs: function (ownerpage, tabs) {
if (!browserInfo.touch) {
return;
}
var pageCount = ownerpage.querySelectorAll('.pageTabContent').length;
require(['hammer'], function (Hammer) {

View file

@ -163,7 +163,7 @@
html += '<div class="cardFooter">';
html += '<div class="cardText">' + user.Name + '</div>';
html += '<div class="cardText">';
html += '<div class="cardText cardText-secondary">';
var lastSeen = LoginPage.getLastSeenText(user.LastActivityDate);
if (lastSeen != "") {
html += lastSeen;

View file

@ -121,7 +121,7 @@
function showActivePlayerMenu(playerInfo) {
require(['dialogHelper', 'emby-checkbox', 'emby-button'], function (dialogHelper) {
require(['dialogHelper', 'dialog', 'emby-checkbox', 'emby-button'], function (dialogHelper) {
showActivePlayerMenuInternal(dialogHelper, playerInfo);
});
}
@ -141,11 +141,14 @@
var dlg = dialogHelper.createDialog(dialogOptions);
dlg.classList.add('promptDialog');
html += '<div class="promptDialogContent">';
html += '<h2>';
html += (playerInfo.deviceName || playerInfo.name);
html += '</h2>';
html += '<div style="padding:0 2em;">';
html += '<div>';
if (playerInfo.supportedCommands.indexOf('DisplayContent') != -1) {
@ -158,17 +161,18 @@
html += '</div>';
html += '<div class="buttons">';
html += '<div class="promptDialogButtons">';
// On small layouts papepr dialog doesn't respond very well. this button isn't that important here anyway.
if (screen.availWidth >= 600) {
html += '<button is="emby-button" type="button" class="btnRemoteControl">' + Globalize.translate('ButtonRemoteControl') + '</button>';
html += '<button is="emby-button" type="button" class="btnRemoteControl promptDialogButton">' + Globalize.translate('ButtonRemoteControl') + '</button>';
}
html += '<button is="emby-button" type="button" class="btnDisconnect">' + Globalize.translate('ButtonDisconnect') + '</button>';
html += '<button is="emby-button" type="button" class="btnCancel">' + Globalize.translate('ButtonCancel') + '</button>';
html += '<button is="emby-button" type="button" class="btnDisconnect promptDialogButton">' + Globalize.translate('ButtonDisconnect') + '</button>';
html += '<button is="emby-button" type="button" class="btnCancel promptDialogButton">' + Globalize.translate('ButtonCancel') + '</button>';
html += '</div>';
html += '</div>';
dlg.innerHTML = html;
document.body.appendChild(dlg);

View file

@ -99,7 +99,6 @@
dlg.classList.add('ui-body-b');
dlg.classList.add('background-theme-b');
dlg.classList.add('popupEditor');
var html = '';
html += '<h2 class="dialogHeader">';

View file

@ -1433,6 +1433,7 @@ var AppInfo = {};
define("backdrop", [embyWebComponentsBowerPath + "/backdrop/backdrop"], returnFirstDependency);
define("fetchHelper", [embyWebComponentsBowerPath + "/fetchhelper"], returnFirstDependency);
define("roundCardStyle", ["cardStyle", 'css!' + embyWebComponentsBowerPath + "/cardbuilder/roundcard"], returnFirstDependency);
define("cardStyle", ['css!' + embyWebComponentsBowerPath + "/cardbuilder/card"], returnFirstDependency);
define("cardBuilder", [embyWebComponentsBowerPath + "/cardbuilder/cardbuilder"], returnFirstDependency);
define("peoplecardbuilder", [embyWebComponentsBowerPath + "/cardbuilder/peoplecardbuilder"], returnFirstDependency);

View file

@ -42,7 +42,6 @@
inheritThumb: false,
showUnplayedIndicator: false,
showChildCountIndicator: true,
overlayText: false,
showParentTitle: true,
lazy: true,
showTitle: true,
@ -59,7 +58,6 @@
showParentTitle: false,
showUnplayedIndicator: false,
showChildCountIndicator: true,
overlayText: false,
centerText: true,
lazy: true,
showTitle: false,

View file

@ -265,10 +265,6 @@
name: Globalize.translate('OptionParentalRating'),
id: 'OfficialRating,SortName'
},
{
name: Globalize.translate('OptionPlayCount'),
id: 'PlayCount,SortName'
},
{
name: Globalize.translate('OptionReleaseDate'),
id: 'PremiereDate,SortName'

View file

@ -122,7 +122,7 @@
html += '<div class="' + imageClass + '" style="background-image:url(\'' + imgUrl + '\');">';
if (user.ConnectUserId && addConnectIndicator) {
html += '<div class="indicators">';
html += '<div class="cardIndicators">';
html += '<div class="playedIndicator" title="' + Globalize.translate('TooltipLinkedToEmbyConnect') + '"><i class="md-icon playedIndicatorIcon indicatorIcon">cloud</i></div>';
html += "</div>";
}

View file

@ -176,22 +176,11 @@ div.dialogHeader {
margin-left: .75em;
}
.dialog.popupEditor h2.dialogHeader {
font-weight: inherit !important;
line-height: 36px;
padding: 0 1em;
margin-top: .7em;
}
.formDialogHeader button {
margin-top: 0;
margin-bottom: 0;
}
.dialog.popupEditor {
padding-bottom: 100px;
}
.formDialog.background-theme-b {
background-color: #181818;
}