Merge pull request #1682 from MediaBrowser/dev

Dev
This commit is contained in:
Luke 2016-04-25 14:43:27 -04:00
commit 831de782a0
10 changed files with 59 additions and 119 deletions

View File

@ -1,8 +1,8 @@
<script> <script>
//require(['imageFetcher'], function (imageFetcher) { require(['imageFetcher'], function (imageFetcher) {
// window.ImageFetcherLazyloadImage = imageFetcher; window.ImageFetcherLazyloadImage = imageFetcher;
//}); });
/** /**
* <lazyload-image> * <lazyload-image>
@ -16,83 +16,25 @@
'use strict'; 'use strict';
var FALLBACK_IMAGE = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAEElEQVR42gEFAPr/AP///wAI/AL+Sr4t6gAAAABJRU5ErkJggg=='; var FALLBACK_IMAGE = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAEElEQVR42gEFAPr/AP///wAI/AL+Sr4t6gAAAABJRU5ErkJggg==';
var DEFAULT_OFFSET = 0;
// create prototype from HTMLImageElement // create prototype from HTMLImageElement
var LazyloadImagePrototype = Object.create(HTMLImageElement.prototype); var LazyloadImagePrototype = Object.create(HTMLImageElement.prototype);
function fadeIn(elem) {
if (elem.classList.contains('noFade')) {
return;
}
var keyframes = [
{ opacity: '0', offset: 0 },
{ opacity: '1', offset: 1 }];
var timing = { duration: 300, iterations: 1 };
elem.animate(keyframes, timing);
}
function imgObserver(that, mutations) {
mutations.forEach(function (mutation) {
if (mutation.attributeName != 'src') {
return;
}
var src = that.src;
if (src && src != FALLBACK_IMAGE) {
if (!that.loadingSrc) {
that.src = FALLBACK_IMAGE;
that.loadingSrc = src;
ImageFetcherLazyloadImage.loadImage(that, src);
} else {
that.loadingSrc = null;
}
} else if (!src) {
that.src = FALLBACK_IMAGE;
}
});
}
// lifecycle callbacks // lifecycle callbacks
LazyloadImagePrototype.createdCallback = function () { //LazyloadImagePrototype.createdCallback = function () {
var that = this;
if (window.ImageFetcherLazyloadImage) {
// swap original src attribute
this.original = this.currentSrc || this.src;
this.src = FALLBACK_IMAGE;
var observer = new MutationObserver(function (mutations) {
imgObserver(that, mutations);
});
// pass in the target node, as well as the observer options
observer.observe(this, { attributes: true, childList: false, characterData: false });
this.observer = observer;
}
};
//LazyloadImagePrototype.attachedCallback = function () {
//}; //};
LazyloadImagePrototype.detachedCallback = function () { LazyloadImagePrototype.attachedCallback = function () {
if (this.observer) { var original = this.currentSrc || this.src;
// later, you can stop observing
this.observer.disconnect(); if (original && window.ImageFetcherLazyloadImage) {
//console.log(original);
this.src = FALLBACK_IMAGE;
console.log('loading ' + original);
ImageFetcherLazyloadImage.loadImage(this, original);
} }
}; };
return document.registerElement('lazyload-image', { return document.registerElement('lazyload-image', {

View File

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

View File

@ -2,7 +2,7 @@
function getTemplate(scrollTarget) { function getTemplate(scrollTarget) {
var maxPhysical = 80; var maxPhysical = 200;
// is="lazyload-image" // is="lazyload-image"

View File

@ -6,7 +6,7 @@
<div class="cardScalable"> <div class="cardScalable">
<div class="cardPadder"></div> <div class="cardPadder"></div>
<a onclick$="{{item.onclick}}" data-action$="{{item.defaultAction}}" class$="{{item.anchorClass}}" href$="{{item.href}}"> <a onclick$="{{item.onclick}}" data-action$="{{item.defaultAction}}" class$="{{item.anchorClass}}" href$="{{item.href}}">
<img class$="{{item.imageClass}}" src$="{{item.imgUrl}}" /> <img is="lazyload-image" class$="{{item.imageClass}}" src$="{{item.imgUrl}}" />
<div inner-h-t-m-l="{{item.overlayHtml}}"></div> <div inner-h-t-m-l="{{item.overlayHtml}}"></div>
</a> </a>
</div> </div>

View File

@ -1192,7 +1192,7 @@ span.itemCommunityRating:not(:empty) + .userDataIcons {
} }
.layout-desktop .absolutePageTabContent .alphabetPicker { .layout-desktop .absolutePageTabContent .alphabetPicker {
right: 15px; right: 20px;
} }
.alphabetPicker a { .alphabetPicker a {

View File

@ -183,7 +183,7 @@
self.showFilterMenu(); self.showFilterMenu();
}); });
tabContent.querySelector('.btnSort').addEventListener('click', function () { tabContent.querySelector('.btnSort').addEventListener('click', function (e) {
libraryBrowser.showSortMenu({ libraryBrowser.showSortMenu({
items: [{ items: [{
name: Globalize.translate('OptionNameSort'), name: Globalize.translate('OptionNameSort'),
@ -224,7 +224,8 @@
callback: function () { callback: function () {
reloadItems(tabContent); reloadItems(tabContent);
}, },
query: getQuery(tabContent) query: getQuery(tabContent),
button: e.target
}); });
}); });

View File

@ -2163,7 +2163,6 @@
item['data-' + att.name] = att.value; item['data-' + att.name] = att.value;
} }
} }
console.log(item['data-commands']);
var defaultAction = options.defaultAction; var defaultAction = options.defaultAction;
if (defaultAction == 'play' || defaultAction == 'playallfromhere') { if (defaultAction == 'play' || defaultAction == 'playallfromhere') {

View File

@ -671,7 +671,7 @@
if (itemSelectionPanel) { if (itemSelectionPanel) {
return onItemSelectionPanelClick(e, itemSelectionPanel); return onItemSelectionPanelClick(e, itemSelectionPanel);
} }
if (card.classList.contains('groupedCard')) { else if (card.classList.contains('groupedCard')) {
return onGroupedCardClick(e, card); return onGroupedCardClick(e, card);
} }
} }
@ -891,7 +891,6 @@
element.classList.add('hasTapHold'); element.classList.add('hasTapHold');
manager.on('press', onTapHold); manager.on('press', onTapHold);
manager.on('pressup', onTapHoldUp);
}); });
showTapHoldHelp(element); showTapHoldHelp(element);
@ -952,23 +951,6 @@
return false; return false;
} }
function onTapHoldUp(e) {
var itemSelectionPanel = parentWithClass(e.target, 'itemSelectionPanel');
if (itemSelectionPanel) {
if (!parentWithClass(e.target, 'chkItemSelect')) {
var chkItemSelect = itemSelectionPanel.querySelector('.chkItemSelect');
if (chkItemSelect) {
chkItemSelect.checked = !chkItemSelect.checked;
}
}
e.preventDefault();
return false;
}
}
function onItemSelectionPanelClick(e, itemSelectionPanel) { function onItemSelectionPanelClick(e, itemSelectionPanel) {
// toggle the checkbox, if it wasn't clicked on // toggle the checkbox, if it wasn't clicked on
@ -976,9 +958,14 @@
var chkItemSelect = itemSelectionPanel.querySelector('.chkItemSelect'); var chkItemSelect = itemSelectionPanel.querySelector('.chkItemSelect');
if (chkItemSelect) { if (chkItemSelect) {
var newValue = !chkItemSelect.checked;
chkItemSelect.checked = newValue; if (chkItemSelect.classList.contains('checkedInitial')) {
updateItemSelection(chkItemSelect, newValue); chkItemSelect.classList.remove('checkedInitial');
} else {
var newValue = !chkItemSelect.checked;
chkItemSelect.checked = newValue;
updateItemSelection(chkItemSelect, newValue);
}
} }
} }
@ -991,7 +978,7 @@
updateItemSelection(this, this.checked); updateItemSelection(this, this.checked);
} }
function showSelection(item) { function showSelection(item, isChecked) {
var itemSelectionPanel = item.querySelector('.itemSelectionPanel'); var itemSelectionPanel = item.querySelector('.itemSelectionPanel');
@ -1002,12 +989,16 @@
item.querySelector('.cardContent').appendChild(itemSelectionPanel); item.querySelector('.cardContent').appendChild(itemSelectionPanel);
var chkItemSelect = document.createElement('paper-checkbox'); var cssClass = 'chkItemSelect';
chkItemSelect.classList.add('chkItemSelect'); if (isChecked && !browserInfo.firefox) {
// In firefox, the initial tap hold doesnt' get treated as a click
$(chkItemSelect).on('change', onSelectionChange); // In other browsers it does, so we need to make sure that initial click is ignored
cssClass += ' checkedInitial';
itemSelectionPanel.appendChild(chkItemSelect); }
var checkedAttribute = isChecked ? ' checked' : '';
itemSelectionPanel.innerHTML = '<paper-checkbox class="' + cssClass + '"' + checkedAttribute + '></paper-checkbox>';
var chkItemSelect = itemSelectionPanel.querySelector('paper-checkbox');
chkItemSelect.addEventListener('change', onSelectionChange);
} }
} }
@ -1059,7 +1050,10 @@
{ transform: 'translate3d(-10px, 0, 0)', offset: 0.9 }, { transform: 'translate3d(-10px, 0, 0)', offset: 0.9 },
{ transform: 'translate3d(0, 0, 0)', offset: 1 }]; { transform: 'translate3d(0, 0, 0)', offset: 1 }];
var timing = { duration: 900, iterations: iterations }; var timing = { duration: 900, iterations: iterations };
return elem.animate(keyframes, timing);
if (elem.animate) {
elem.animate(keyframes, timing);
}
} }
function showSelections(initialCard) { function showSelections(initialCard) {
@ -1067,11 +1061,10 @@
require(['paper-checkbox'], function () { require(['paper-checkbox'], function () {
var cards = document.querySelectorAll('.card'); var cards = document.querySelectorAll('.card');
for (var i = 0, length = cards.length; i < length; i++) { for (var i = 0, length = cards.length; i < length; i++) {
showSelection(cards[i]); showSelection(cards[i], initialCard == cards[i]);
} }
showSelectionCommands(); showSelectionCommands();
initialCard.querySelector('.chkItemSelect').checked = true;
updateItemSelection(initialCard, true); updateItemSelection(initialCard, true);
}); });
} }

View File

@ -3107,11 +3107,11 @@ pageClassOn('viewshow', "page", function () {
page.classList.remove('ui-body-a'); page.classList.remove('ui-body-a');
} }
if (currentTheme != 'a' && !browserInfo.mobile) { //if (currentTheme != 'a' && !browserInfo.mobile) {
document.documentElement.classList.add('darkScrollbars'); // document.documentElement.classList.add('darkScrollbars');
} else { //} else {
document.documentElement.classList.remove('darkScrollbars'); // document.documentElement.classList.remove('darkScrollbars');
} //}
var apiClient = window.ApiClient; var apiClient = window.ApiClient;

View File

@ -153,7 +153,6 @@
// Hack: notifyResize needs to be done after the items have been rendered // Hack: notifyResize needs to be done after the items have been rendered
setTimeout(function () { setTimeout(function () {
ironList.notifyResize(); ironList.notifyResize();
self.scrollThreshold.resetSize(); self.scrollThreshold.resetSize();
}, 300); }, 300);
@ -213,7 +212,7 @@
self.showFilterMenu(); self.showFilterMenu();
}); });
tabContent.querySelector('.btnSort').addEventListener('click', function () { tabContent.querySelector('.btnSort').addEventListener('click', function (e) {
libraryBrowser.showSortMenu({ libraryBrowser.showSortMenu({
items: [{ items: [{
name: Globalize.translate('OptionNameSort'), name: Globalize.translate('OptionNameSort'),
@ -251,7 +250,8 @@
getQuery(tabContent).StartIndex = 0; getQuery(tabContent).StartIndex = 0;
reloadItems(tabContent); reloadItems(tabContent);
}, },
query: getQuery(tabContent) query: getQuery(tabContent),
button: e.target
}); });
}); });
@ -287,6 +287,11 @@
tabContent.querySelector('.itemsContainer').innerHTML = html; tabContent.querySelector('.itemsContainer').innerHTML = html;
self.listCreated = true; self.listCreated = true;
return new Promise(function (resolve, reject) {
setTimeout(resolve, 2000);
});
}); });
} }