-
diff --git a/dashboard-ui/scripts/channels.js b/dashboard-ui/scripts/channels.js
index c59bd56196..a937da54a3 100644
--- a/dashboard-ui/scripts/channels.js
+++ b/dashboard-ui/scripts/channels.js
@@ -75,12 +75,12 @@
var page = this;
var tabs = page.querySelector('paper-tabs');
- var pages = page.querySelector('neon-animated-pages');
+ var pageTabsContainer = page.querySelector('.pageTabsContainer');
- LibraryBrowser.configurePaperLibraryTabs(page, tabs, pages, 'channels.html');
+ LibraryBrowser.configurePaperLibraryTabs(page, tabs, pageTabsContainer, 'channels.html');
- pages.addEventListener('tabchange', function (e) {
- loadTab(page, parseInt(e.target.selected));
+ pageTabsContainer.addEventListener('tabchange', function (e) {
+ loadTab(page, parseInt(e.detail.selectedTabIndex));
});
});
diff --git a/dashboard-ui/scripts/channelslatest.js b/dashboard-ui/scripts/channelslatest.js
index 51004f33cb..11428bdd5d 100644
--- a/dashboard-ui/scripts/channelslatest.js
+++ b/dashboard-ui/scripts/channelslatest.js
@@ -26,10 +26,10 @@
pageIdOn('pageinit', "channelsPage", function () {
var page = this;
- var pages = page.querySelector('neon-animated-pages');
+ var pageTabsContainer = page.querySelector('.pageTabsContainer');
- pages.addEventListener('tabchange', function (e) {
- loadTab(page, parseInt(e.target.selected));
+ pageTabsContainer.addEventListener('tabchange', function (e) {
+ loadTab(page, parseInt(e.detail.selectedTabIndex));
});
});
diff --git a/dashboard-ui/scripts/indexpage.js b/dashboard-ui/scripts/indexpage.js
index d8afc051d6..c1d384eb7e 100644
--- a/dashboard-ui/scripts/indexpage.js
+++ b/dashboard-ui/scripts/indexpage.js
@@ -276,9 +276,13 @@
if (state.NowPlayingItem && state.NowPlayingItem.MediaType == 'Video') {
var page = $.mobile.activePage;
- var pages = page.querySelector('neon-animated-pages');
+ var pageTabsContainer = page.querySelector('.pageTabsContainer');
- pages.dispatchEvent(new CustomEvent("tabchange", {}));
+ pageTabsContainer.dispatchEvent(new CustomEvent("tabchange", {
+ detail: {
+ selectedTabIndex: libraryBrowser.selectedTabIndex(pageTabsContainer)
+ }
+ }));
}
}
@@ -295,12 +299,12 @@
var self = this;
- var pages = view.querySelector('neon-animated-pages');
+ var pageTabsContainer = view.querySelector('.pageTabsContainer');
- libraryBrowser.configurePaperLibraryTabs(view, view.querySelector('paper-tabs'), pages, 'home.html');
+ libraryBrowser.configurePaperLibraryTabs(view, view.querySelector('paper-tabs'), pageTabsContainer, 'home.html');
- pages.addEventListener('tabchange', function (e) {
- loadTab(view, parseInt(e.target.selected));
+ pageTabsContainer.addEventListener('tabchange', function (e) {
+ loadTab(view, parseInt(e.detail.selectedTabIndex));
});
view.querySelector('.btnTakeTour').addEventListener('click', function () {
diff --git a/dashboard-ui/scripts/librarybrowser.js b/dashboard-ui/scripts/librarybrowser.js
index 4ed9d4a630..7d8ab64045 100644
--- a/dashboard-ui/scripts/librarybrowser.js
+++ b/dashboard-ui/scripts/librarybrowser.js
@@ -180,23 +180,6 @@
return AppInfo.isNativeApp;
},
- animatePaperTabs: function () {
-
- if (!LibraryBrowser.enableFullPaperTabs()) {
- return false;
- }
-
- if (!browserInfo.animate) {
- return false;
- }
-
- if (browserInfo.mobile) {
- return false;
- }
-
- return true;
- },
-
allowSwipe: function (target) {
function allowSwipeOn(elem) {
@@ -246,39 +229,42 @@
},
- configureSwipeTabs: function (ownerpage, tabs, pages) {
+ selectedTab: function (pageTabsContainer, selected) {
- if (LibraryBrowser.animatePaperTabs()) {
- if (browserInfo.mobile) {
+ if (selected == null) {
- require(['slide-left-animation', 'slide-from-right-animation'], function () {
- pages.entryAnimation = 'slide-from-right-animation';
- pages.exitAnimation = 'slide-left-animation';
- });
- } else {
-
- require(['fade-in-animation', 'fade-out-animation'], function () {
- pages.entryAnimation = 'fade-in-animation';
- pages.exitAnimation = 'fade-out-animation';
- });
- }
+ return pageTabsContainer.selectedTabIndex;
}
- var pageCount = pages.querySelectorAll('neon-animatable').length;
+ var tabs = pageTabsContainer.querySelectorAll('.pageTabContent');
+ for (var i = 0, length = tabs.length; i < length; i++) {
+ if (i == selected) {
+ tabs[i].classList.remove('hide');
+ } else {
+ tabs[i].classList.add('hide');
+ }
+ }
+ pageTabsContainer.selectedTabIndex = selected;
+ pageTabsContainer.dispatchEvent(new CustomEvent("tabchange", {
+ detail: {
+ selectedTabIndex: selected
+ }
+ }));
+ },
+
+ configureSwipeTabs: function (ownerpage, tabs, pageTabsContainer) {
+
+ var pageCount = pageTabsContainer.querySelectorAll('.pageTabContent').length;
require(['hammer'], function (Hammer) {
- var hammertime = new Hammer(pages);
+ var hammertime = new Hammer(pageTabsContainer);
hammertime.get('swipe').set({ direction: Hammer.DIRECTION_HORIZONTAL });
hammertime.on('swipeleft', function (e) {
if (LibraryBrowser.allowSwipe(e.target)) {
- var selected = parseInt(pages.selected || '0');
+ var selected = parseInt(LibraryBrowser.selectedTab(pageTabsContainer) || '0');
if (selected < (pageCount - 1)) {
- if (LibraryBrowser.animatePaperTabs()) {
- pages.entryAnimation = 'slide-from-right-animation';
- pages.exitAnimation = 'slide-left-animation';
- }
tabs.selectNext();
}
}
@@ -286,12 +272,8 @@
hammertime.on('swiperight', function (e) {
if (LibraryBrowser.allowSwipe(e.target)) {
- var selected = parseInt(pages.selected || '0');
+ var selected = parseInt(LibraryBrowser.selectedTab(pageTabsContainer) || '0');
if (selected > 0) {
- if (LibraryBrowser.animatePaperTabs()) {
- pages.entryAnimation = 'slide-from-left-animation';
- pages.exitAnimation = 'slide-right-animation';
- }
tabs.selectPrevious();
}
}
@@ -303,7 +285,7 @@
return !LibraryBrowser.enableFullPaperTabs();
},
- configurePaperLibraryTabs: function (ownerpage, tabs, pages) {
+ configurePaperLibraryTabs: function (ownerpage, tabs, pageTabsContainer) {
// Causing iron-select to not fire in IE and safari
if (browserInfo.chrome) {
@@ -317,7 +299,7 @@
tabs.noSlide = true;
tabs.noBar = true;
} else {
- LibraryBrowser.configureSwipeTabs(ownerpage, tabs, pages);
+ LibraryBrowser.configureSwipeTabs(ownerpage, tabs, pageTabsContainer);
}
if (libraryViewNav) {
@@ -333,9 +315,9 @@
var legacyTabs = ownerpage.querySelector('.legacyTabs');
if (legacyTabs) {
- pages.addEventListener('iron-select', function (e) {
+ pageTabsContainer.addEventListener('tabchange', function (e) {
- var selected = pages.selected;
+ var selected = e.detail.selectedTabIndex;
var anchors = legacyTabs.querySelectorAll('a');
for (var i = 0, length = anchors.length; i < length; i++) {
if (i == selected) {
@@ -354,41 +336,10 @@
ownerpage.addEventListener('viewbeforeshow', LibraryBrowser.onTabbedpagebeforeshow);
- pages.addEventListener('iron-select', function () {
- // When transition animations are used, add a content loading delay to allow the animations to finish
- // Otherwise with both operations happening at the same time, it can cause the animation to not run at full speed.
- var pgs = this;
- var delay = LibraryBrowser.animatePaperTabs() || !tabs.noSlide ? 300 : 0;
-
- setTimeout(function () {
- pgs.dispatchEvent(new CustomEvent("tabchange", {}));
- }, delay);
- });
-
- function fadeOutLeft(elem, iterations) {
- var keyframes = [{ opacity: '1', transform: 'none', offset: 0 },
- { opacity: '0', transform: 'translate3d(-100%, 0, 0)', offset: 1 }];
- var timing = { duration: 300, iterations: iterations };
- return elem.animate(keyframes, timing);
- }
if (!LibraryBrowser.navigateOnLibraryTabSelect()) {
tabs.addEventListener('iron-select', function () {
- var animateTab = !browserInfo.safari;
- animateTab = false;
-
- var selected = pages.selected;
- if (selected != null && animateTab) {
- var newValue = this.selected;
- var currentTab = pages.querySelectorAll('.pageTabContent')[selected];
-
- fadeOutLeft(currentTab, 1).onfinish = function () {
- pages.selected = newValue;
- };
- }
- else {
- pages.selected = this.selected;
- }
+ LibraryBrowser.selectedTab(pageTabsContainer, this.selected);
});
}
},
@@ -417,7 +368,7 @@
onTabbedpagebeforeshowInternal: function (page, e, isFirstLoad) {
- var pages = page.querySelector('neon-animated-pages');
+ var pageTabsContainer = page.querySelector('.pageTabsContainer');
if (isFirstLoad) {
@@ -437,29 +388,24 @@
tabs.selected = selected;
} else {
- pages.selected = selected;
+ LibraryBrowser.selectedTab(pageTabsContainer, selected);
}
} else {
// Go back to the first tab
if (LibraryBrowser.enableFullPaperTabs() && !e.detail.isRestored) {
- if (pages.selected) {
-
- var entryAnimation = pages.entryAnimation;
- var exitAnimation = pages.exitAnimation;
- pages.entryAnimation = null;
- pages.exitAnimation = null;
+ if (LibraryBrowser.selectedTab(pageTabsContainer)) {
page.querySelector('paper-tabs').selected = 0;
-
- pages.entryAnimation = entryAnimation;
- pages.exitAnimation = exitAnimation;
-
return;
}
}
- pages.dispatchEvent(new CustomEvent("tabchange", {}));
+ pageTabsContainer.dispatchEvent(new CustomEvent("tabchange", {
+ detail: {
+ selectedTabIndex: 0
+ }
+ }));
}
},
@@ -479,14 +425,9 @@
document.removeEventListener('pagebeforeshow', afterNavigate);
if (window.location.href.toLowerCase().indexOf(url.toLowerCase()) != -1) {
- var pages = this.querySelector('neon-animated-pages');
+ var pageTabsContainer = this.querySelector('.pageTabsContainer');
- if (pages) {
-
- var entryAnimation = pages.entryAnimation;
- var exitAnimation = pages.exitAnimation;
- pages.entryAnimation = null;
- pages.exitAnimation = null;
+ if (pageTabsContainer) {
var tabs = this.querySelector('paper-tabs');
@@ -497,9 +438,6 @@
var noSlide = tabs.noSlide;
tabs.noSlide = true;
tabs.selected = index;
-
- pages.entryAnimation = entryAnimation;
- pages.exitAnimation = exitAnimation;
tabs.noSlide = noSlide;
}, delay);
@@ -1687,7 +1625,7 @@
function getValue(shape) {
switch (shape) {
-
+
case 'portrait':
if (screenWidth >= 2200) return 10;
if (screenWidth >= 2100) return 9;
@@ -3196,7 +3134,7 @@
markDislike: function (link) {
// TODO: remove jQuery
- require(['jQuery'], function($) {
+ require(['jQuery'], function ($) {
var id = link.getAttribute('data-itemid');
var $link = $(link);
diff --git a/dashboard-ui/scripts/livetvsuggested.js b/dashboard-ui/scripts/livetvsuggested.js
index 18d7f2a4ec..6c81df036b 100644
--- a/dashboard-ui/scripts/livetvsuggested.js
+++ b/dashboard-ui/scripts/livetvsuggested.js
@@ -197,12 +197,12 @@
var page = this;
var tabs = page.querySelector('paper-tabs');
- var pages = page.querySelector('neon-animated-pages');
+ var pageTabsContainer = page.querySelector('.pageTabsContainer');
- LibraryBrowser.configurePaperLibraryTabs(page, tabs, pages, 'livetv.html');
+ LibraryBrowser.configurePaperLibraryTabs(page, tabs, pageTabsContainer, 'livetv.html');
- pages.addEventListener('tabchange', function (e) {
- loadTab(page, parseInt(e.target.selected));
+ pageTabsContainer.addEventListener('tabchange', function (e) {
+ loadTab(page, parseInt(e.detail.selectedTabIndex));
});
});
diff --git a/dashboard-ui/scripts/moviesrecommended.js b/dashboard-ui/scripts/moviesrecommended.js
index 73e984cac8..266ac6f734 100644
--- a/dashboard-ui/scripts/moviesrecommended.js
+++ b/dashboard-ui/scripts/moviesrecommended.js
@@ -333,7 +333,7 @@
$('.recommendations', page).createCardMenus();
var tabs = page.querySelector('paper-tabs');
- var pages = page.querySelector('neon-animated-pages');
+ var pageTabsContainer = page.querySelector('.pageTabsContainer');
var baseUrl = 'movies.html';
var topParentId = LibraryMenu.getTopParentId();
@@ -341,10 +341,10 @@
baseUrl += '?topParentId=' + topParentId;
}
- LibraryBrowser.configurePaperLibraryTabs(page, tabs, pages, baseUrl);
+ LibraryBrowser.configurePaperLibraryTabs(page, tabs, pageTabsContainer, baseUrl);
- pages.addEventListener('tabchange', function (e) {
- loadTab(page, parseInt(e.target.selected));
+ pageTabsContainer.addEventListener('tabchange', function (e) {
+ loadTab(page, parseInt(e.detail.selectedTabIndex));
});
});
@@ -384,9 +384,13 @@
if (state.NowPlayingItem && state.NowPlayingItem.MediaType == 'Video') {
var page = $($.mobile.activePage)[0];
- var pages = page.querySelector('neon-animated-pages');
+ var pageTabsContainer = page.querySelector('.pageTabsContainer');
- pages.dispatchEvent(new CustomEvent("tabchange", {}));
+ pageTabsContainer.dispatchEvent(new CustomEvent("tabchange", {
+ detail: {
+ selectedTabIndex: libraryBrowser.selectedTabIndex(pageTabsContainer)
+ }
+ }));
}
}
diff --git a/dashboard-ui/scripts/musicrecommended.js b/dashboard-ui/scripts/musicrecommended.js
index 52273ee56a..38007a7f58 100644
--- a/dashboard-ui/scripts/musicrecommended.js
+++ b/dashboard-ui/scripts/musicrecommended.js
@@ -286,7 +286,7 @@
$('.recommendations', page).createCardMenus();
var tabs = page.querySelector('paper-tabs');
- var pages = page.querySelector('neon-animated-pages');
+ var pageTabsContainer = page.querySelector('.pageTabsContainer');
var baseUrl = 'music.html';
var topParentId = LibraryMenu.getTopParentId();
@@ -294,10 +294,10 @@
baseUrl += '?topParentId=' + topParentId;
}
- LibraryBrowser.configurePaperLibraryTabs(page, tabs, pages, baseUrl);
+ LibraryBrowser.configurePaperLibraryTabs(page, tabs, pageTabsContainer, baseUrl);
- pages.addEventListener('tabchange', function (e) {
- loadTab(page, parseInt(e.target.selected));
+ pageTabsContainer.addEventListener('tabchange', function (e) {
+ loadTab(page, parseInt(e.detail.selectedTabIndex));
});
});
diff --git a/dashboard-ui/scripts/photos.js b/dashboard-ui/scripts/photos.js
index aac886205b..1f848dac02 100644
--- a/dashboard-ui/scripts/photos.js
+++ b/dashboard-ui/scripts/photos.js
@@ -155,8 +155,7 @@
var info = LibraryBrowser.getListItemInfo(this);
if (info.mediaType == 'Photo') {
- var tab = page.querySelector('neon-animated-pages').selected;
- var query = getQuery(tab);
+ var query = getQuery(LibraryBrowser.selectedTabIndex(page.querySelector('.pageTabsContainer')));
Photos.startSlideshow(page, query, info.id);
return false;
@@ -199,10 +198,10 @@
baseUrl += '?topParentId=' + topParentId;
}
- LibraryBrowser.configurePaperLibraryTabs(page, tabs, page.querySelector('neon-animated-pages'), baseUrl);
+ LibraryBrowser.configurePaperLibraryTabs(page, tabs, page.querySelector('.pageTabsContainer'), baseUrl);
- page.querySelector('neon-animated-pages').addEventListener('tabchange', function (e) {
- loadTab(page, parseInt(e.target.selected));
+ page.querySelector('.pageTabsContainer').addEventListener('tabchange', function (e) {
+ loadTab(page, parseInt(e.detail.selectedTabIndex));
});
$(page).on('click', '.mediaItem', onListItemClick);
diff --git a/dashboard-ui/scripts/site.js b/dashboard-ui/scripts/site.js
index a61f11f300..c28b9e83a4 100644
--- a/dashboard-ui/scripts/site.js
+++ b/dashboard-ui/scripts/site.js
@@ -2426,7 +2426,7 @@ var AppInfo = {};
defineRoute({
path: '/home.html',
- dependencies: ['paper-tabs', 'neon-animated-pages'],
+ dependencies: ['paper-tabs'],
autoFocus: false,
controller: 'scripts/indexpage'
});
@@ -2813,7 +2813,7 @@ var AppInfo = {};
defineRoute({
path: '/tv.html',
- dependencies: ['paper-tabs', 'neon-animated-pages', 'paper-checkbox'],
+ dependencies: ['paper-tabs', 'paper-checkbox'],
autoFocus: false,
controller: 'scripts/tvrecommended'
});
diff --git a/dashboard-ui/scripts/tvrecommended.js b/dashboard-ui/scripts/tvrecommended.js
index f7f4d3d2fb..422a0ff5f7 100644
--- a/dashboard-ui/scripts/tvrecommended.js
+++ b/dashboard-ui/scripts/tvrecommended.js
@@ -234,13 +234,18 @@
function onPlaybackStop(e, state) {
if (state.NowPlayingItem && state.NowPlayingItem.MediaType == 'Video') {
- var pages = view.querySelector('neon-animated-pages');
- pages.dispatchEvent(new CustomEvent("tabchange", {}));
+ var pageTabsContainer = view.querySelector('.pageTabsContainer');
+
+ pageTabsContainer.dispatchEvent(new CustomEvent("tabchange", {
+ detail: {
+ selectedTabIndex: libraryBrowser.selectedTabIndex(pageTabsContainer)
+ }
+ }));
}
}
- var pages = view.querySelector('neon-animated-pages');
+ var pageTabsContainer = view.querySelector('.pageTabsContainer');
var baseUrl = 'tv.html';
var topParentId = params.topParentId;
@@ -255,10 +260,10 @@
}
libraryBrowser.createCardMenus(view.querySelector('#resumableItems'));
- libraryBrowser.configurePaperLibraryTabs(view, view.querySelector('paper-tabs'), pages, baseUrl);
+ libraryBrowser.configurePaperLibraryTabs(view, view.querySelector('paper-tabs'), pageTabsContainer, baseUrl);
- pages.addEventListener('tabchange', function (e) {
- loadTab(view, parseInt(this.selected));
+ pageTabsContainer.addEventListener('tabchange', function (e) {
+ loadTab(view, parseInt(e.detail.selectedTabIndex));
});
view.addEventListener('viewbeforeshow', function (e) {
diff --git a/dashboard-ui/tv.html b/dashboard-ui/tv.html
index 753f49b9b6..18f0ea453f 100644
--- a/dashboard-ui/tv.html
+++ b/dashboard-ui/tv.html
@@ -21,94 +21,78 @@