diff --git a/dashboard-ui/livetv.html b/dashboard-ui/livetv.html
index 4bdfc70c6..fc8665a76 100644
--- a/dashboard-ui/livetv.html
+++ b/dashboard-ui/livetv.html
@@ -7,7 +7,7 @@
-
+
${TabSuggestions}
${TabGuide}
${TabChannels}
diff --git a/dashboard-ui/movies.html b/dashboard-ui/movies.html
index 2948087f8..5ab27ddd5 100644
--- a/dashboard-ui/movies.html
+++ b/dashboard-ui/movies.html
@@ -7,7 +7,7 @@
-
+
${TabSuggestions}
${TabMovies}
${TabTrailers}
diff --git a/dashboard-ui/scripts/channels.js b/dashboard-ui/scripts/channels.js
index 2233da8d6..20a09b189 100644
--- a/dashboard-ui/scripts/channels.js
+++ b/dashboard-ui/scripts/channels.js
@@ -77,23 +77,7 @@
var tabs = page.querySelector('paper-tabs');
var pages = page.querySelector('neon-animated-pages');
- LibraryBrowser.configurePaperLibraryTabs(page, tabs, pages);
-
- $(tabs).on('iron-select', function () {
- var selected = this.selected;
-
- if (LibraryBrowser.navigateOnLibraryTabSelect()) {
-
- if (selected) {
- Dashboard.navigate('channels.html?tab=' + selected);
- } else {
- Dashboard.navigate('channels.html');
- }
-
- } else {
- page.querySelector('neon-animated-pages').selected = selected;
- }
- });
+ LibraryBrowser.configurePaperLibraryTabs(page, tabs, pages, 'channels.html');
$(pages).on('tabchange', function () {
loadTab(page, parseInt(this.selected));
diff --git a/dashboard-ui/scripts/indexpage.js b/dashboard-ui/scripts/indexpage.js
index 0c96e2c1e..6c0b4bd9d 100644
--- a/dashboard-ui/scripts/indexpage.js
+++ b/dashboard-ui/scripts/indexpage.js
@@ -235,23 +235,7 @@
var tabs = page.querySelector('paper-tabs');
var pages = page.querySelector('neon-animated-pages');
- LibraryBrowser.configurePaperLibraryTabs(page, tabs, pages);
-
- $(tabs).on('iron-select', function () {
- var selected = this.selected;
-
- if (LibraryBrowser.navigateOnLibraryTabSelect()) {
-
- if (selected) {
- Dashboard.navigate('index.html?tab=' + selected);
- } else {
- Dashboard.navigate('index.html');
- }
-
- } else {
- page.querySelector('neon-animated-pages').selected = selected;
- }
- });
+ LibraryBrowser.configurePaperLibraryTabs(page, tabs, pages, 'index.html');
$(pages).on('tabchange', function () {
loadTab(page, parseInt(this.selected));
diff --git a/dashboard-ui/scripts/librarybrowser.js b/dashboard-ui/scripts/librarybrowser.js
index 0e482dcc3..b3ae11525 100644
--- a/dashboard-ui/scripts/librarybrowser.js
+++ b/dashboard-ui/scripts/librarybrowser.js
@@ -193,7 +193,12 @@
return !LibraryBrowser.enableFullPaperTabs();
},
- configurePaperLibraryTabs: function (ownerpage, tabs, pages) {
+ configurePaperLibraryTabs: function (ownerpage, tabs, pages, baseUrl) {
+
+ // Causing iron-select to not fire in IE and safari
+ if ($.browser.chrome) {
+ tabs.noink = true;
+ }
if (AppInfo.enableBottomTabs) {
tabs.alignBottom = true;
@@ -205,7 +210,7 @@
if ($.browser.safari) {
// Not very iOS-like I suppose
- tabs.noSlide = true;
+ //tabs.noSlide = true;
tabs.noBar = true;
}
else {
@@ -232,9 +237,7 @@
$(ownerpage).on('pagebeforeshow', LibraryBrowser.onTabbedpagebeforeshow);
- $(pages).on('iron-select', function () {
-
- console.log('iron-select');
+ 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;
@@ -244,39 +247,61 @@
$(pgs).trigger('tabchange');
}, delay);
});
+
+ tabs.addEventListener('iron-select', function() {
+ var selected = this.selected;
+
+ if (LibraryBrowser.navigateOnLibraryTabSelect()) {
+
+ if (selected) {
+ var url = replaceQueryString(baseUrl, 'tab', selected);
+ Dashboard.navigate(url);
+ } else {
+ Dashboard.navigate(baseUrl);
+ }
+
+ } else {
+ pages.selected = selected;
+ }
+ });
},
onTabbedpagebeforeshow: function () {
var page = this;
var delay = 0;
+ var isFirstLoad = false;
if (!page.getAttribute('data-firstload')) {
delay = 300;
+ isFirstLoad = true;
page.setAttribute('data-firstload', '1');
}
- setTimeout(function () {
- LibraryBrowser.onTabbedpagebeforeshowInternal(page);
- }, delay);
+ if (delay) {
+ setTimeout(function () {
+
+ LibraryBrowser.onTabbedpagebeforeshowInternal(page, isFirstLoad);
+ }, delay);
+ } else {
+ LibraryBrowser.onTabbedpagebeforeshowInternal(page, isFirstLoad);
+ }
},
- onTabbedpagebeforeshowInternal: function (page) {
+ onTabbedpagebeforeshowInternal: function (page, isFirstLoad) {
- var tabs = page.querySelector('paper-tabs');
- var selected = tabs.selected;
-
- if (selected == null) {
+ if (isFirstLoad) {
Logger.log('selected tab is null, checking query string');
- selected = parseInt(getParameterByName('tab') || '0');
+ var selected = parseInt(getParameterByName('tab') || '0');
Logger.log('selected tab will be ' + selected);
-
if (LibraryBrowser.enableFullPaperTabs()) {
- tabs.selected = selected;
+
+ page.querySelector('paper-tabs').selected = selected;
+
} else {
page.querySelector('neon-animated-pages').selected = selected;
}
@@ -291,7 +316,7 @@
pages.entryAnimation = null;
pages.exitAnimation = null;
- tabs.selected = 0;
+ page.querySelector('paper-tabs').selected = 0;
pages.entryAnimation = entryAnimation;
pages.exitAnimation = exitAnimation;
diff --git a/dashboard-ui/scripts/livetvsuggested.js b/dashboard-ui/scripts/livetvsuggested.js
index aeb57f2e6..833a0e8f6 100644
--- a/dashboard-ui/scripts/livetvsuggested.js
+++ b/dashboard-ui/scripts/livetvsuggested.js
@@ -216,23 +216,7 @@
var tabs = page.querySelector('paper-tabs');
var pages = page.querySelector('neon-animated-pages');
- LibraryBrowser.configurePaperLibraryTabs(page, tabs, pages);
-
- $(tabs).on('iron-select', function () {
- var selected = this.selected;
-
- if (LibraryBrowser.navigateOnLibraryTabSelect()) {
-
- if (selected) {
- Dashboard.navigate('livetv.html?tab=' + selected);
- } else {
- Dashboard.navigate('livetv.html');
- }
-
- } else {
- page.querySelector('neon-animated-pages').selected = selected;
- }
- });
+ LibraryBrowser.configurePaperLibraryTabs(page, tabs, pages, 'livetv.html');
$(pages).on('tabchange', function () {
loadTab(page, parseInt(this.selected));
diff --git a/dashboard-ui/scripts/moviesrecommended.js b/dashboard-ui/scripts/moviesrecommended.js
index cb6bce223..f497b58ac 100644
--- a/dashboard-ui/scripts/moviesrecommended.js
+++ b/dashboard-ui/scripts/moviesrecommended.js
@@ -325,28 +325,13 @@
var tabs = page.querySelector('paper-tabs');
var pages = page.querySelector('neon-animated-pages');
- LibraryBrowser.configurePaperLibraryTabs(page, tabs, pages);
+ var baseUrl = 'movies.html';
+ var topParentId = LibraryMenu.getTopParentId();
+ if (topParentId) {
+ baseUrl += '?topParentId=' + topParentId;
+ }
- $(tabs).on('iron-select', function () {
- var selected = this.selected;
-
- if (LibraryBrowser.navigateOnLibraryTabSelect()) {
-
- var url = 'movies.html';
- var topParentId = LibraryMenu.getTopParentId();
- if (topParentId) {
- url += '?topParentId=' + topParentId;
- }
- if (selected) {
- Dashboard.navigate(url + '&tab=' + selected);
- } else {
- Dashboard.navigate(url);
- }
-
- } else {
- page.querySelector('neon-animated-pages').selected = selected;
- }
- });
+ LibraryBrowser.configurePaperLibraryTabs(page, tabs, pages, baseUrl);
$(pages).on('tabchange', function () {
loadTab(page, parseInt(this.selected));
diff --git a/dashboard-ui/scripts/photos.js b/dashboard-ui/scripts/photos.js
index e6d5e11bb..6c6931943 100644
--- a/dashboard-ui/scripts/photos.js
+++ b/dashboard-ui/scripts/photos.js
@@ -206,27 +206,14 @@
var page = this;
var tabs = page.querySelector('paper-tabs');
- LibraryBrowser.configurePaperLibraryTabs(page, tabs, page.querySelector('neon-animated-pages'));
- $(tabs).on('iron-select', function () {
- var selected = this.selected;
- if (LibraryBrowser.navigateOnLibraryTabSelect()) {
+ var baseUrl = 'photos.html';
+ var topParentId = LibraryMenu.getTopParentId();
+ if (topParentId) {
+ baseUrl += '?topParentId=' + topParentId;
+ }
- var url = 'photos.html';
- var topParentId = LibraryMenu.getTopParentId();
- if (topParentId) {
- url += '?topParentId=' + topParentId;
- }
- if (selected) {
- Dashboard.navigate(url + '&tab=' + selected);
- } else {
- Dashboard.navigate(url);
- }
-
- } else {
- page.querySelector('neon-animated-pages').selected = selected;
- }
- });
+ LibraryBrowser.configurePaperLibraryTabs(page, tabs, page.querySelector('neon-animated-pages'), baseUrl);
$(page.querySelector('neon-animated-pages')).on('tabchange', function () {
loadTab(page, parseInt(this.selected));
diff --git a/dashboard-ui/thirdparty/paper-button-style.css b/dashboard-ui/thirdparty/paper-button-style.css
index 6eb6aae80..c70ebc3a4 100644
--- a/dashboard-ui/thirdparty/paper-button-style.css
+++ b/dashboard-ui/thirdparty/paper-button-style.css
@@ -354,10 +354,6 @@ paper-menu-item {
flex-grow: 0;
}
-.scrollingPaperTabs #tabsContainer {
- margin: 0 auto;
-}
-
/*.scrollablePaperTabs #tabsContainer {
text-align: center;
overflow-x: scroll;