From 1ebce22276dd25ac930e628ceead5a5f5b0472b2 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Wed, 14 May 2014 14:04:26 -0400 Subject: [PATCH 1/2] rework channel checking --- dashboard-ui/metadata.html | 4 ++-- dashboard-ui/metadataadvanced.html | 4 ++-- dashboard-ui/metadataimages.html | 4 ++-- dashboard-ui/metadatasubtitles.html | 4 ++-- dashboard-ui/scripts/indexpage.js | 2 +- dashboard-ui/scripts/librarymenu.js | 31 ++++++++++++++++------------- 6 files changed, 26 insertions(+), 23 deletions(-) diff --git a/dashboard-ui/metadata.html b/dashboard-ui/metadata.html index 513a15f546..5cdf7b33b3 100644 --- a/dashboard-ui/metadata.html +++ b/dashboard-ui/metadata.html @@ -11,9 +11,9 @@
diff --git a/dashboard-ui/metadataadvanced.html b/dashboard-ui/metadataadvanced.html index a53d8c182b..62040edacc 100644 --- a/dashboard-ui/metadataadvanced.html +++ b/dashboard-ui/metadataadvanced.html @@ -11,9 +11,9 @@
diff --git a/dashboard-ui/metadataimages.html b/dashboard-ui/metadataimages.html index 7106570c16..6429054f7b 100644 --- a/dashboard-ui/metadataimages.html +++ b/dashboard-ui/metadataimages.html @@ -11,9 +11,9 @@
diff --git a/dashboard-ui/metadatasubtitles.html b/dashboard-ui/metadatasubtitles.html index bf6171d143..6a89c62c5a 100644 --- a/dashboard-ui/metadatasubtitles.html +++ b/dashboard-ui/metadatasubtitles.html @@ -11,9 +11,9 @@
diff --git a/dashboard-ui/scripts/indexpage.js b/dashboard-ui/scripts/indexpage.js index b8496b79f9..3256952732 100644 --- a/dashboard-ui/scripts/indexpage.js +++ b/dashboard-ui/scripts/indexpage.js @@ -166,7 +166,7 @@ SortBy: "DateCreated", SortOrder: "Descending", - Limit: screenWidth >= 2400 ? 21 : (screenWidth >= 1920 ? 15 : (screenWidth >= 1440 ? 12 : (screenWidth >= 800 ? 12 : 8))), + Limit: screenWidth >= 2400 ? 30 : (screenWidth >= 1920 ? 20 : (screenWidth >= 1440 ? 12 : (screenWidth >= 800 ? 12 : 8))), Recursive: true, Fields: "PrimaryImageAspectRatio", Filters: "IsUnplayed,IsNotFolder", diff --git a/dashboard-ui/scripts/librarymenu.js b/dashboard-ui/scripts/librarymenu.js index 5c940d3ef4..fa2c630980 100644 --- a/dashboard-ui/scripts/librarymenu.js +++ b/dashboard-ui/scripts/librarymenu.js @@ -1,6 +1,6 @@ (function (window, document, $) { - var itemCountsPromise; + var channelsPromise; var liveTvInfoPromise; var itemsPromise; @@ -10,7 +10,12 @@ SortBy: "SortName" }); - itemCountsPromise = itemCountsPromise || ApiClient.getItemCounts(Dashboard.getCurrentUserId()); + channelsPromise = channelsPromise || $.getJSON(ApiClient.getUrl("Channels", { + userId: Dashboard.getCurrentUserId(), + + // We just want the total record count + limit: 0 + })); liveTvInfoPromise = liveTvInfoPromise || ApiClient.getLiveTvInfo(); } @@ -22,8 +27,6 @@ html += 'MEDIABROWSER'; - //html += 'Remote Control'; - html += '
'; html += ''; @@ -69,7 +72,7 @@ return LibraryBrowser.getHref(item); } - function getViewsHtml(user, counts, items, liveTvInfo) { + function getViewsHtml(user, channelCount, items, liveTvInfo) { var html = ''; @@ -81,7 +84,7 @@ }).join(''); - var showChannels = counts.ChannelCount; + var showChannels = channelCount; var showLiveTv = liveTvInfo.EnabledUsers.indexOf(user.Id) != -1; if (showChannels || showLiveTv) { @@ -112,22 +115,24 @@ var userPromise = Dashboard.getCurrentUser(); - $.when(itemCountsPromise, itemsPromise, liveTvInfoPromise, userPromise).done(function (response1, response2, response3, response4) { + $.when(channelsPromise, itemsPromise, liveTvInfoPromise, userPromise).done(function (response1, response2, response3, response4) { - var counts = response1[0]; + var channelCount = response1[0].TotalRecordCount; var items = response2[0].Items; var liveTvInfo = response3[0]; var user = response4[0]; var page = $.mobile.activePage; - var panel = getLibraryMenu(page, user, counts, items, liveTvInfo); + var panel = getLibraryMenu(user, channelCount, items, liveTvInfo); + + updateLibraryNavLinks(page); $(panel).panel('toggle'); }); } - function getLibraryMenu(page, user, counts, items, liveTvInfo) { + function getLibraryMenu(user, channelCount, items, liveTvInfo) { var panel = $('#libraryPanel'); @@ -140,7 +145,7 @@ html += '

MEDIABROWSER

'; html += '
'; - html += getViewsHtml(user, counts, items, liveTvInfo); + html += getViewsHtml(user, channelCount, items, liveTvInfo); html += '
'; html += '
'; @@ -150,8 +155,6 @@ panel = $('#libraryPanel').panel({}).trigger('create'); } - updateLibraryNavLinks(page); - return panel; } @@ -259,7 +262,7 @@ renderHeader(page, user); updateCastIcon(); - + updateLibraryNavLinks(page); }); } From 2ac7e811940f1dd217d1835292ad2bc659f1d7d4 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Wed, 14 May 2014 16:20:19 -0400 Subject: [PATCH 2/2] background load sidebar content --- dashboard-ui/scripts/librarymenu.js | 122 +++++++++++++++------------- 1 file changed, 66 insertions(+), 56 deletions(-) diff --git a/dashboard-ui/scripts/librarymenu.js b/dashboard-ui/scripts/librarymenu.js index fa2c630980..082c27cdd7 100644 --- a/dashboard-ui/scripts/librarymenu.js +++ b/dashboard-ui/scripts/librarymenu.js @@ -1,24 +1,5 @@ (function (window, document, $) { - var channelsPromise; - var liveTvInfoPromise; - var itemsPromise; - - function ensurePromises() { - itemsPromise = itemsPromise || ApiClient.getItems(Dashboard.getCurrentUserId(), { - - SortBy: "SortName" - - }); - channelsPromise = channelsPromise || $.getJSON(ApiClient.getUrl("Channels", { - userId: Dashboard.getCurrentUserId(), - - // We just want the total record count - limit: 0 - })); - liveTvInfoPromise = liveTvInfoPromise || ApiClient.getLiveTvInfo(); - } - function renderHeader(page, user) { var html = '
'; @@ -72,63 +53,92 @@ return LibraryBrowser.getHref(item); } - function getViewsHtml(user, channelCount, items, liveTvInfo) { + function getViewsHtml() { var html = ''; - html += items.map(function (i) { + html += '
'; + html += '
'; - var viewMenuCssClass = (i.CollectionType || 'general') + 'ViewMenu'; + html += ''; - return '' + i.Name + ''; + html += ''; - }).join(''); + html += ''; - var showChannels = channelCount; - var showLiveTv = liveTvInfo.EnabledUsers.indexOf(user.Id) != -1; - - if (showChannels || showLiveTv) { - html += '
'; - } - - if (showChannels) { - html += 'Channels'; - } - - if (showLiveTv) { - html += 'Live TV'; - } - - if (user.Configuration.IsAdministrator) { - html += '
'; - html += 'Dashboard'; - html += 'Metadata Manager'; - html += 'Reports'; - } + html += '
'; + html += '
'; + html += 'Dashboard'; + html += 'Metadata Manager'; + html += 'Reports'; + html += '
'; return html; } function showLibraryMenu() { - ensurePromises(); + var userId = Dashboard.getCurrentUserId(); - var userPromise = Dashboard.getCurrentUser(); + ApiClient.getItems(userId, { - $.when(channelsPromise, itemsPromise, liveTvInfoPromise, userPromise).done(function (response1, response2, response3, response4) { + SortBy: "SortName" - var channelCount = response1[0].TotalRecordCount; - var items = response2[0].Items; - var liveTvInfo = response3[0]; - var user = response4[0]; + }).done(function (result) { - var page = $.mobile.activePage; + var items = result.Items; - var panel = getLibraryMenu(user, channelCount, items, liveTvInfo); + var html = items.map(function (i) { - updateLibraryNavLinks(page); + var viewMenuCssClass = (i.CollectionType || 'general') + 'ViewMenu'; - $(panel).panel('toggle'); + return '' + i.Name + ''; + + }).join(''); + + $('.libraryMenuOptions').html(html); + }); + + var page = $.mobile.activePage; + + var panel = getLibraryMenu(); + + updateLibraryNavLinks(page); + + $(panel).panel('toggle'); + + ApiClient.getLiveTvInfo().done(function (liveTvInfo) { + + var showLiveTv = liveTvInfo.EnabledUsers.indexOf(userId) != -1; + + if (showLiveTv) { + $('.liveTvMenuOption').show(); + $('.secondaryDivider').show(); + } + }); + + $.getJSON(ApiClient.getUrl("Channels", { + userId: userId, + + // We just want the total record count + limit: 0 + + })).done(function (response) { + + if (response.TotalRecordCount) { + $('.channelsMenuOption').show(); + $('.secondaryDivider').show(); + } + + }); + + Dashboard.getCurrentUser().done(function (user) { + + if (user.Configuration.IsAdministrator) { + $('.adminMenuOptions').show(); + } else { + $('.adminMenuOptions').hide(); + } }); }