diff --git a/dashboard-ui/scripts/channels.js b/dashboard-ui/scripts/channels.js
index a937da54a3..d895a6f856 100644
--- a/dashboard-ui/scripts/channels.js
+++ b/dashboard-ui/scripts/channels.js
@@ -1,4 +1,4 @@
-define(['jQuery'], function ($) {
+define(['libraryBrowser'], function (libraryBrowser) {
// The base query options
var query = {
@@ -23,7 +23,7 @@
if (view == "Thumb") {
- html = LibraryBrowser.getPosterViewHtml({
+ html = libraryBrowser.getPosterViewHtml({
items: result.Items,
shape: "backdrop",
context: 'channels',
@@ -36,7 +36,7 @@
}
else if (view == "ThumbCard") {
- html = LibraryBrowser.getPosterViewHtml({
+ html = libraryBrowser.getPosterViewHtml({
items: result.Items,
shape: "backdrop",
preferThumb: true,
@@ -51,7 +51,7 @@
elem.innerHTML = html;
ImageLoader.lazyChildren(elem);
- LibraryBrowser.saveQueryValues('channels', query);
+ libraryBrowser.saveQueryValues('channels', query);
Dashboard.hideLoadingMsg();
});
@@ -62,7 +62,7 @@
switch (index) {
case 1:
- LibraryBrowser.loadSavedQueryValues('channels', query);
+ libraryBrowser.loadSavedQueryValues('channels', query);
reloadItems(page);
break;
default:
@@ -74,12 +74,13 @@
var page = this;
- var tabs = page.querySelector('paper-tabs');
- var pageTabsContainer = page.querySelector('.pageTabsContainer');
+ var mdlTabs = page.querySelector('.mdl-tabs');
- LibraryBrowser.configurePaperLibraryTabs(page, tabs, pageTabsContainer, 'channels.html');
+ componentHandler.upgradeAllRegistered(page);
- pageTabsContainer.addEventListener('tabchange', function (e) {
+ libraryBrowser.configurePaperLibraryTabs(page, mdlTabs);
+
+ mdlTabs.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 11428bdd5d..403c7dbb58 100644
--- a/dashboard-ui/scripts/channelslatest.js
+++ b/dashboard-ui/scripts/channelslatest.js
@@ -26,9 +26,9 @@
pageIdOn('pageinit', "channelsPage", function () {
var page = this;
- var pageTabsContainer = page.querySelector('.pageTabsContainer');
+ var mdlTabs = page.querySelector('.mdl-tabs');
- pageTabsContainer.addEventListener('tabchange', function (e) {
+ mdlTabs.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 61db7fe1da..806618feb5 100644
--- a/dashboard-ui/scripts/indexpage.js
+++ b/dashboard-ui/scripts/indexpage.js
@@ -237,20 +237,6 @@
}
}
- function onPlaybackStop(e, state) {
-
- if (state.NowPlayingItem && state.NowPlayingItem.MediaType == 'Video') {
- var page = $.mobile.activePage;
- var pageTabsContainer = page.querySelector('.pageTabsContainer');
-
- pageTabsContainer.dispatchEvent(new CustomEvent("tabchange", {
- detail: {
- selectedTabIndex: libraryBrowser.selectedTab(pageTabsContainer)
- }
- }));
- }
- }
-
function getDisplayPreferences(key, userId) {
return ApiClient.getDisplayPreferences(key, userId, displayPreferencesKey());
@@ -261,20 +247,21 @@
var self = this;
self.renderTab = function () {
- var tabContent = view.querySelector('.pageTabContent[data-index=\'' + 0 + '\']');
+ var tabContent = view.querySelector('.mdl-tabs__panel[data-index=\'' + 0 + '\']');
loadHomeTab(view, tabContent);
};
- var pageTabsContainer = view.querySelector('.pageTabsContainer');
+ var mdlTabs = view.querySelector('.mdl-tabs');
- libraryBrowser.configurePaperLibraryTabs(view, view.querySelector('paper-tabs'), pageTabsContainer, 'home.html');
+ componentHandler.upgradeAllRegistered(view);
+ libraryBrowser.configurePaperLibraryTabs(view, mdlTabs);
var tabControllers = [];
var renderedTabs = [];
function loadTab(page, index) {
- var tabContent = page.querySelector('.pageTabContent[data-index=\'' + index + '\']');
+ var tabContent = view.querySelector('.mdl-tabs__panel[data-index=\'' + index + '\']');
var depends = [];
switch (index) {
@@ -293,7 +280,6 @@
break;
default:
return;
- break;
}
require(depends, function (controllerFactory) {
@@ -318,7 +304,7 @@
});
}
- pageTabsContainer.addEventListener('tabchange', function (e) {
+ mdlTabs.addEventListener('tabchange', function (e) {
loadTab(view, parseInt(e.detail.selectedTabIndex));
});
@@ -334,6 +320,18 @@
view.querySelector('.libraryViewNav').classList.add('hide');
}
+ function onPlaybackStop(e, state) {
+
+ if (state.NowPlayingItem && state.NowPlayingItem.MediaType == 'Video') {
+
+ mdlTabs.dispatchEvent(new CustomEvent("tabchange", {
+ detail: {
+ selectedTabIndex: libraryBrowser.selectedTab(mdlTabs)
+ }
+ }));
+ }
+ }
+
view.addEventListener('viewshow', function (e) {
Events.on(MediaController, 'playbackstop', onPlaybackStop);
});
diff --git a/dashboard-ui/scripts/librarybrowser.js b/dashboard-ui/scripts/librarybrowser.js
index a9920405d4..a743274897 100644
--- a/dashboard-ui/scripts/librarybrowser.js
+++ b/dashboard-ui/scripts/librarybrowser.js
@@ -1,5 +1,18 @@
define(['playlistManager', 'appSettings', 'appStorage', 'apphost', 'datetime', 'jQuery', 'scrollStyles'], function (playlistManager, appSettings, appStorage, appHost, datetime, $) {
+ function parentWithClass(elem, className) {
+
+ while (!elem.classList || !elem.classList.contains(className)) {
+ elem = elem.parentNode;
+
+ if (!elem) {
+ return null;
+ }
+ }
+
+ return elem;
+ }
+
var libraryBrowser = (function (window, document, screen) {
// Regular Expressions for parsing tags and attributes
@@ -171,14 +184,6 @@
elem.classList.add('hasrefreshtime');
},
- enableFullPaperTabs: function () {
-
- if (browserInfo.animate && !browserInfo.mobile) {
- //return true;
- }
- return AppInfo.isNativeApp;
- },
-
allowSwipe: function (target) {
function allowSwipeOn(elem) {
@@ -188,7 +193,7 @@
}
if (elem.classList) {
- return !elem.classList.contains('hiddenScrollX') && !elem.classList.contains('smoothScrollX');
+ return !elem.classList.contains('hiddenScrollX') && !elem.classList.contains('smoothScrollX') && !elem.classList.contains('libraryViewNav');
}
return true;
@@ -205,119 +210,79 @@
return true;
},
- selectedTab: function (pageTabsContainer, selected) {
+ selectedTab: function (tabs, selected) {
if (selected == null) {
- return pageTabsContainer.selectedTabIndex;
+ var elem = tabs.querySelector('.mdl-tabs__tab.is-active');
+ if (elem) {
+ return parseInt(elem.getAttribute('data-index'));
+ }
+ return 0;
}
- 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');
- }
+ var current = LibraryBrowser.selectedTab(tabs);
+ if (current == selected) {
+ tabs.dispatchEvent(new CustomEvent("tabchange", {
+ detail: {
+ selectedTabIndex: selected
+ }
+ }));
+ } else {
+ var tabButtons = tabs.querySelectorAll('.mdl-tabs__tab');
+ tabButtons[selected].click();
}
- pageTabsContainer.selectedTabIndex = selected;
- pageTabsContainer.dispatchEvent(new CustomEvent("tabchange", {
- detail: {
- selectedTabIndex: selected
- }
- }));
},
- configureSwipeTabs: function (ownerpage, tabs, pageTabsContainer) {
+ configureSwipeTabs: function (ownerpage, tabs) {
- var pageCount = pageTabsContainer.querySelectorAll('.pageTabContent').length;
+ var pageCount = tabs.querySelectorAll('.mdl-tabs__panel').length;
require(['hammer'], function (Hammer) {
- var hammertime = new Hammer(pageTabsContainer);
+ var hammertime = new Hammer(tabs);
hammertime.get('swipe').set({ direction: Hammer.DIRECTION_HORIZONTAL });
hammertime.on('swipeleft', function (e) {
if (LibraryBrowser.allowSwipe(e.target)) {
- var selected = parseInt(LibraryBrowser.selectedTab(pageTabsContainer) || '0');
+ var selected = parseInt(LibraryBrowser.selectedTab(tabs) || '0');
if (selected < (pageCount - 1)) {
- tabs.selectNext();
+ LibraryBrowser.selectedTab(tabs, selected + 1);
}
}
});
hammertime.on('swiperight', function (e) {
if (LibraryBrowser.allowSwipe(e.target)) {
- var selected = parseInt(LibraryBrowser.selectedTab(pageTabsContainer) || '0');
+ var selected = parseInt(LibraryBrowser.selectedTab(tabs) || '0');
if (selected > 0) {
- tabs.selectPrevious();
+ LibraryBrowser.selectedTab(tabs, selected - 1);
}
}
});
});
},
- navigateOnLibraryTabSelect: function () {
- return !LibraryBrowser.enableFullPaperTabs();
- },
+ configurePaperLibraryTabs: function (ownerpage, tabs) {
- configurePaperLibraryTabs: function (ownerpage, tabs, pageTabsContainer) {
-
- // Causing iron-select to not fire in IE and safari
- if (browserInfo.chrome) {
- tabs.noink = true;
+ if (!browserInfo.safari) {
+ LibraryBrowser.configureSwipeTabs(ownerpage, tabs);
}
- var libraryViewNav = ownerpage.querySelector('.libraryViewNav');
- if (LibraryBrowser.enableFullPaperTabs()) {
+ tabs.querySelector('.mdl-tabs__tab-bar').addEventListener('click', function (e) {
- if (browserInfo.safari) {
- tabs.noSlide = true;
- tabs.noBar = true;
- } else {
- LibraryBrowser.configureSwipeTabs(ownerpage, tabs, pageTabsContainer);
- }
+ var link = parentWithClass(e.target, 'mdl-tabs__tab');
- if (libraryViewNav) {
- libraryViewNav.classList.add('paperLibraryViewNav');
- libraryViewNav.classList.remove('libraryViewNavWithMinHeight');
- }
-
- } else {
-
- tabs.noSlide = true;
- tabs.noBar = true;
-
- var legacyTabs = ownerpage.querySelector('.legacyTabs');
-
- if (legacyTabs) {
- pageTabsContainer.addEventListener('tabchange', function (e) {
-
- var selected = e.detail.selectedTabIndex;
- var anchors = legacyTabs.querySelectorAll('a');
- for (var i = 0, length = anchors.length; i < length; i++) {
- if (i == selected) {
- anchors[i].classList.add('ui-btn-active');
- } else {
- anchors[i].classList.remove('ui-btn-active');
- }
+ if (link) {
+ tabs.dispatchEvent(new CustomEvent("tabchange", {
+ detail: {
+ selectedTabIndex: parseInt(link.getAttribute('data-index'))
}
- });
+ }));
}
-
- if (libraryViewNav) {
- libraryViewNav.classList.remove('libraryViewNavWithMinHeight');
- }
- }
+ });
ownerpage.addEventListener('viewbeforeshow', LibraryBrowser.onTabbedpagebeforeshow);
-
- if (!LibraryBrowser.navigateOnLibraryTabSelect()) {
- tabs.addEventListener('iron-select', function () {
-
- LibraryBrowser.selectedTab(pageTabsContainer, this.selected);
- });
- }
},
onTabbedpagebeforeshow: function (e) {
@@ -344,38 +309,24 @@
onTabbedpagebeforeshowInternal: function (page, e, isFirstLoad) {
- var pageTabsContainer = page.querySelector('.pageTabsContainer');
+ var pageTabsContainer = page.querySelector('.mdl-tabs');
if (isFirstLoad) {
console.log('selected tab is null, checking query string');
- var selected = parseInt(getParameterByName('tab') || '0');
+ var selected = page.firstTabIndex != null ? page.firstTabIndex : parseInt(getParameterByName('tab') || '0');
console.log('selected tab will be ' + selected);
- if (LibraryBrowser.enableFullPaperTabs()) {
-
- var tabs = page.querySelector('paper-tabs');
- if (tabs.selected) {
- // showTab was called
- return;
- }
- tabs.selected = selected;
-
- } else {
- LibraryBrowser.selectedTab(pageTabsContainer, selected);
- }
+ LibraryBrowser.selectedTab(pageTabsContainer, selected);
} else {
// Go back to the first tab
- if (LibraryBrowser.enableFullPaperTabs() && !e.detail.isRestored) {
- if (LibraryBrowser.selectedTab(pageTabsContainer)) {
-
- page.querySelector('paper-tabs').selected = 0;
- return;
- }
+ if (!e.detail.isRestored) {
+ LibraryBrowser.selectedTab(pageTabsContainer, 0);
+ return;
}
pageTabsContainer.dispatchEvent(new CustomEvent("tabchange", {
detail: {
@@ -387,37 +338,13 @@
showTab: function (url, index) {
- if (!LibraryBrowser.enableFullPaperTabs()) {
-
- if (index) {
- url = replaceQueryString(url, 'tab', index);
- }
- Dashboard.navigate(url);
- return;
- }
-
var afterNavigate = function () {
document.removeEventListener('pagebeforeshow', afterNavigate);
+
if (window.location.href.toLowerCase().indexOf(url.toLowerCase()) != -1) {
- var pageTabsContainer = this.querySelector('.pageTabsContainer');
-
- if (pageTabsContainer) {
-
- var tabs = this.querySelector('paper-tabs');
-
- // For some reason the live tv page will not switch tabs in IE and safari
- var delay = browserInfo.chrome ? 0 : 100;
-
- setTimeout(function () {
- var noSlide = tabs.noSlide;
- tabs.noSlide = true;
- tabs.selected = index;
- tabs.noSlide = noSlide;
-
- }, delay);
- }
+ this.firstTabIndex = index;
}
};
@@ -425,6 +352,7 @@
afterNavigate.call($.mobile.activePage);
} else {
+
pageClassOn('pagebeforeshow', 'page', afterNavigate);
Dashboard.navigate(url);
}
@@ -2431,7 +2359,7 @@
lines.push(airTimeText || '');
}
- if (item.Type == 'TvChannel') {
+ if (item.Type == 'TvChannel') {
if (item.CurrentProgram) {
lines.push(LibraryBrowser.getPosterViewDisplayName(item.CurrentProgram));
@@ -3141,7 +3069,7 @@
getUserDataButtonHtml: function (method, itemId, btnCssClass, icon, tooltip, style) {
if (style == 'fab') {
-
+
var tagName = 'paper-fab';
return '<' + tagName + ' title="' + tooltip + '" data-itemid="' + itemId + '" icon="' + icon + '" class="' + btnCssClass + '" onclick="LibraryBrowser.' + method + '(this);return false;">' + tagName + '>';
}
@@ -3712,12 +3640,6 @@
}
};
- if (libraryBrowser.enableFullPaperTabs()) {
- document.documentElement.classList.add('fullPaperLibraryTabs');
- } else {
- document.documentElement.classList.add('basicPaperLibraryTabs');
- }
-
return libraryBrowser;
})(window, document, screen);
diff --git a/dashboard-ui/scripts/librarymenu.js b/dashboard-ui/scripts/librarymenu.js
index 9e4b6da90c..a50e9bb707 100644
--- a/dashboard-ui/scripts/librarymenu.js
+++ b/dashboard-ui/scripts/librarymenu.js
@@ -896,16 +896,18 @@
var viewMenuBar = document.querySelector('.viewMenuBar');
- if (page.classList.contains('standalonePage')) {
- viewMenuBar.classList.add('hide');
- } else {
- viewMenuBar.classList.remove('hide');
- }
+ if (viewMenuBar) {
+ if (page.classList.contains('standalonePage')) {
+ viewMenuBar.classList.add('hide');
+ } else {
+ viewMenuBar.classList.remove('hide');
+ }
- if (page.classList.contains('type-interior') && !layoutManager.mobile) {
- viewMenuBar.classList.add('headroomDisabled');
- } else {
- viewMenuBar.classList.remove('headroomDisabled');
+ if (page.classList.contains('type-interior') && !layoutManager.mobile) {
+ viewMenuBar.classList.add('headroomDisabled');
+ } else {
+ viewMenuBar.classList.remove('headroomDisabled');
+ }
}
if (requiresUserRefresh) {
diff --git a/dashboard-ui/scripts/livetvsuggested.js b/dashboard-ui/scripts/livetvsuggested.js
index 177253c877..8d87e29a09 100644
--- a/dashboard-ui/scripts/livetvsuggested.js
+++ b/dashboard-ui/scripts/livetvsuggested.js
@@ -1,4 +1,4 @@
-define(['jQuery', 'scrollStyles'], function ($) {
+define(['jQuery', 'libraryBrowser', 'scrollStyles'], function ($, libraryBrowser) {
function enableScrollX() {
return browserInfo.mobile && AppInfo.enableAppLayouts;
@@ -37,7 +37,7 @@
}).then(function (result) {
renderItems(page, result.Items, 'activeProgramItems', 'play');
- LibraryBrowser.setLastRefreshed(page);
+ libraryBrowser.setLastRefreshed(page);
Dashboard.hideLoadingMsg();
});
}
@@ -108,7 +108,7 @@
function renderItems(page, items, sectionClass, overlayButton, shape) {
- var html = LibraryBrowser.getPosterViewHtml({
+ var html = libraryBrowser.getPosterViewHtml({
items: items,
shape: shape || (enableScrollX() ? getSquareShape() : 'auto'),
showTitle: true,
@@ -137,19 +137,21 @@
function renderSuggestedTab(page, tabContent) {
- if (LibraryBrowser.needsRefresh(tabContent)) {
+ if (libraryBrowser.needsRefresh(tabContent)) {
reload(tabContent);
}
}
function loadTab(page, index) {
- var tabContent = page.querySelector('.pageTabContent[data-index=\'' + index + '\']');
+ var tabContent = page.querySelector('.mdl-tabs__panel[data-index=\'' + index + '\']');
var depends = [];
var scope = 'LiveTvPage';
var renderMethod = '';
var initMethod = '';
+ var viewMenuBar = document.querySelector('.viewMenuBar');
+
switch (index) {
case 0:
@@ -198,15 +200,15 @@
var page = this;
- var tabs = page.querySelector('paper-tabs');
- var pageTabsContainer = page.querySelector('.pageTabsContainer');
+ var mdlTabs = page.querySelector('.mdl-tabs');
- LibraryBrowser.configurePaperLibraryTabs(page, tabs, pageTabsContainer, 'livetv.html');
+ componentHandler.upgradeAllRegistered(page);
- pageTabsContainer.addEventListener('tabchange', function (e) {
+ libraryBrowser.configurePaperLibraryTabs(page, mdlTabs);
+
+ mdlTabs.addEventListener('tabchange', function (e) {
loadTab(page, parseInt(e.detail.selectedTabIndex));
});
-
});
pageIdOn('viewshow', "liveTvSuggestedPage", function () {
diff --git a/dashboard-ui/scripts/moviesrecommended.js b/dashboard-ui/scripts/moviesrecommended.js
index 3de56869e9..762e5f025a 100644
--- a/dashboard-ui/scripts/moviesrecommended.js
+++ b/dashboard-ui/scripts/moviesrecommended.js
@@ -267,37 +267,37 @@
}
}
- function onPlaybackStop(e, state) {
-
- if (state.NowPlayingItem && state.NowPlayingItem.MediaType == 'Video') {
- var page = $($.mobile.activePage)[0];
- var pageTabsContainer = page.querySelector('.pageTabsContainer');
-
- pageTabsContainer.dispatchEvent(new CustomEvent("tabchange", {
- detail: {
- selectedTabIndex: libraryBrowser.selectedTab(pageTabsContainer)
- }
- }));
- }
- }
-
return function (view, params) {
var self = this;
self.initTab = function() {
- var tabContent = view.querySelector('.pageTabContent[data-index=\'' + 0 + '\']');
+ var tabContent = view.querySelector('.mdl-tabs__panel[data-index=\'' + 0 + '\']');
initSuggestedTab(view, tabContent);
};
self.renderTab = function () {
- var tabContent = view.querySelector('.pageTabContent[data-index=\'' + 0 + '\']');
+ var tabContent = view.querySelector('.mdl-tabs__panel[data-index=\'' + 0 + '\']');
loadSuggestionsTab(view, params, tabContent);
};
$('.recommendations', view).createCardMenus();
- var pageTabsContainer = view.querySelector('.pageTabsContainer');
+ var mdlTabs = view.querySelector('.mdl-tabs');
+
+ function onPlaybackStop(e, state) {
+
+ if (state.NowPlayingItem && state.NowPlayingItem.MediaType == 'Video') {
+
+ mdlTabs.dispatchEvent(new CustomEvent("tabchange", {
+ detail: {
+ selectedTabIndex: libraryBrowser.selectedTab(mdlTabs)
+ }
+ }));
+ }
+ }
+
+ componentHandler.upgradeAllRegistered(view);
var baseUrl = 'movies.html';
var topParentId = params.topParentId;
@@ -305,14 +305,14 @@
baseUrl += '?topParentId=' + topParentId;
}
- libraryBrowser.configurePaperLibraryTabs(view, view.querySelector('paper-tabs'), pageTabsContainer, baseUrl);
+ libraryBrowser.configurePaperLibraryTabs(view, mdlTabs);
var tabControllers = [];
var renderedTabs = [];
function loadTab(page, index) {
- var tabContent = page.querySelector('.pageTabContent[data-index=\'' + index + '\']');
+ var tabContent = page.querySelector('.mdl-tabs__panel[data-index=\'' + index + '\']');
var depends = [];
switch (index) {
@@ -360,7 +360,7 @@
});
}
- pageTabsContainer.addEventListener('tabchange', function (e) {
+ mdlTabs.addEventListener('tabchange', function (e) {
loadTab(view, parseInt(e.detail.selectedTabIndex));
});
diff --git a/dashboard-ui/scripts/musicrecommended.js b/dashboard-ui/scripts/musicrecommended.js
index d8d208f0c0..9bf6bfc721 100644
--- a/dashboard-ui/scripts/musicrecommended.js
+++ b/dashboard-ui/scripts/musicrecommended.js
@@ -1,4 +1,4 @@
-define(['jQuery', 'scrollStyles'], function ($) {
+define(['jQuery', 'libraryBrowser', 'scrollStyles'], function ($, libraryBrowser) {
function itemsPerRow() {
@@ -34,7 +34,7 @@
ApiClient.getJSON(ApiClient.getUrl('Users/' + userId + '/Items/Latest', options)).then(function (items) {
var elem = page.querySelector('#recentlyAddedSongs');
- elem.innerHTML = LibraryBrowser.getPosterViewHtml({
+ elem.innerHTML = libraryBrowser.getPosterViewHtml({
items: items,
showUnplayedIndicator: false,
showLatestItemsPopup: false,
@@ -50,7 +50,7 @@
Dashboard.hideLoadingMsg();
- LibraryBrowser.setLastRefreshed(page);
+ libraryBrowser.setLastRefreshed(page);
});
}
@@ -82,7 +82,7 @@
}
var itemsContainer = elem.querySelector('.itemsContainer');
- itemsContainer.innerHTML = LibraryBrowser.getPosterViewHtml({
+ itemsContainer.innerHTML = libraryBrowser.getPosterViewHtml({
items: result.Items,
showUnplayedIndicator: false,
shape: getSquareShape(),
@@ -128,7 +128,7 @@
}
var itemsContainer = elem.querySelector('.itemsContainer');
- itemsContainer.innerHTML = LibraryBrowser.getPosterViewHtml({
+ itemsContainer.innerHTML = libraryBrowser.getPosterViewHtml({
items: result.Items,
showUnplayedIndicator: false,
shape: getSquareShape(),
@@ -171,7 +171,7 @@
}
var itemsContainer = elem.querySelector('.itemsContainer');
- itemsContainer.innerHTML = LibraryBrowser.getPosterViewHtml({
+ itemsContainer.innerHTML = libraryBrowser.getPosterViewHtml({
items: result.Items,
shape: getSquareShape(),
showTitle: true,
@@ -203,7 +203,7 @@
var parentId = LibraryMenu.getTopParentId();
- if (LibraryBrowser.needsRefresh(tabContent)) {
+ if (libraryBrowser.needsRefresh(tabContent)) {
console.log('loadSuggestionsTab');
loadLatest(tabContent, parentId);
loadPlaylists(tabContent, parentId);
@@ -220,7 +220,7 @@
function loadTab(page, index) {
- var tabContent = page.querySelector('.pageTabContent[data-index=\'' + index + '\']');
+ var tabContent = page.querySelector('.mdl-tabs__panel[data-index=\'' + index + '\']');
var depends = [];
var scope = 'MusicPage';
var renderMethod = '';
@@ -289,8 +289,7 @@
$('.recommendations', page).createCardMenus();
- var tabs = page.querySelector('paper-tabs');
- var pageTabsContainer = page.querySelector('.pageTabsContainer');
+ var mdlTabs = page.querySelector('.mdl-tabs');
var baseUrl = 'music.html';
var topParentId = LibraryMenu.getTopParentId();
@@ -298,9 +297,10 @@
baseUrl += '?topParentId=' + topParentId;
}
- LibraryBrowser.configurePaperLibraryTabs(page, tabs, pageTabsContainer, baseUrl);
+ componentHandler.upgradeAllRegistered(page);
+ libraryBrowser.configurePaperLibraryTabs(page, mdlTabs);
- pageTabsContainer.addEventListener('tabchange', function (e) {
+ mdlTabs.addEventListener('tabchange', function (e) {
loadTab(page, parseInt(e.detail.selectedTabIndex));
});
diff --git a/dashboard-ui/scripts/site.js b/dashboard-ui/scripts/site.js
index 2f7276afdd..f1b0188461 100644
--- a/dashboard-ui/scripts/site.js
+++ b/dashboard-ui/scripts/site.js
@@ -1998,6 +1998,7 @@ var AppInfo = {};
define("material-design-lite", [bowerPath + "/material-design-lite/material.min", "css!" + bowerPath + "/material-design-lite/material"]);
define("MaterialSpinner", ["material-design-lite"]);
+ define("MaterialTabs", ["material-design-lite"]);
define("jQuery", [bowerPath + '/jquery/dist/jquery.slim.min'], function () {
@@ -2531,7 +2532,7 @@ var AppInfo = {};
defineRoute({
path: '/home.html',
- dependencies: ['paper-tabs'],
+ dependencies: ['MaterialTabs'],
autoFocus: false,
controller: 'scripts/indexpage'
});
@@ -2706,7 +2707,7 @@ var AppInfo = {};
defineRoute({
path: '/movies.html',
- dependencies: ['paper-tabs', 'paper-checkbox', 'paper-fab', 'scripts/alphapicker', 'paper-button'],
+ dependencies: ['MaterialTabs', 'paper-checkbox', 'paper-fab', 'scripts/alphapicker', 'paper-button'],
autoFocus: false,
controller: 'scripts/moviesrecommended'
});
@@ -2920,7 +2921,7 @@ var AppInfo = {};
defineRoute({
path: '/tv.html',
- dependencies: ['paper-checkbox', 'paper-button', 'paper-icon-button-light', 'paper-tabs'],
+ dependencies: ['paper-checkbox', 'paper-button', 'paper-icon-button-light', 'MaterialTabs'],
autoFocus: false,
controller: 'scripts/tvrecommended'
});
diff --git a/dashboard-ui/scripts/tvrecommended.js b/dashboard-ui/scripts/tvrecommended.js
index 642c584e6f..32f8c68a99 100644
--- a/dashboard-ui/scripts/tvrecommended.js
+++ b/dashboard-ui/scripts/tvrecommended.js
@@ -181,7 +181,7 @@
function loadTab(page, index) {
- var tabContent = page.querySelector('.pageTabContent[data-index=\'' + index + '\']');
+ var tabContent = page.querySelector('.mdl-tabs__panel[data-index=\'' + index + '\']');
var depends = [];
switch (index) {
@@ -232,21 +232,21 @@
});
}
+ var mdlTabs = view.querySelector('.mdl-tabs');
+
function onPlaybackStop(e, state) {
if (state.NowPlayingItem && state.NowPlayingItem.MediaType == 'Video') {
- var pageTabsContainer = view.querySelector('.pageTabsContainer');
-
- pageTabsContainer.dispatchEvent(new CustomEvent("tabchange", {
+ mdlTabs.dispatchEvent(new CustomEvent("tabchange", {
detail: {
- selectedTabIndex: libraryBrowser.selectedTab(pageTabsContainer)
+ selectedTabIndex: libraryBrowser.selectedTab(mdlTabs)
}
}));
}
}
- var pageTabsContainer = view.querySelector('.pageTabsContainer');
+ componentHandler.upgradeAllRegistered(view);
var baseUrl = 'tv.html';
var topParentId = params.topParentId;
@@ -260,10 +260,9 @@
view.querySelector('#resumableItems').classList.remove('hiddenScrollX');
}
libraryBrowser.createCardMenus(view.querySelector('#resumableItems'));
+ libraryBrowser.configurePaperLibraryTabs(view, mdlTabs);
- libraryBrowser.configurePaperLibraryTabs(view, view.querySelector('paper-tabs'), pageTabsContainer, baseUrl);
-
- pageTabsContainer.addEventListener('tabchange', function (e) {
+ mdlTabs.addEventListener('tabchange', function (e) {
loadTab(view, parseInt(e.detail.selectedTabIndex));
});
diff --git a/dashboard-ui/tv.html b/dashboard-ui/tv.html
index 1766628bb8..bf135ce1bd 100644
--- a/dashboard-ui/tv.html
+++ b/dashboard-ui/tv.html
@@ -1,29 +1,18 @@
-
-
- ${TabSuggestions}
- ${TabLatest}
- ${TabUpcoming}
- ${TabShows}
- ${TabEpisodes}
- ${TabGenres}
- ${TabNetworks}
-
-