diff --git a/dashboard-ui/connectlogin.html b/dashboard-ui/connectlogin.html
index 476f81b073..92e870334e 100644
--- a/dashboard-ui/connectlogin.html
+++ b/dashboard-ui/connectlogin.html
@@ -29,7 +29,7 @@
-
+
${ButtonForgotPassword}
@@ -43,7 +43,7 @@
${TextConnectToServerManually}
-
+
${HeaderNewUsers}
${ButtonSignUp}
diff --git a/dashboard-ui/cordovaindex.html b/dashboard-ui/cordovaindex.html
index a9900cf18b..cceb9af568 100644
--- a/dashboard-ui/cordovaindex.html
+++ b/dashboard-ui/cordovaindex.html
@@ -27,12 +27,23 @@
diff --git a/dashboard-ui/css/card.css b/dashboard-ui/css/card.css
index ef10339944..f1982d6a3e 100644
--- a/dashboard-ui/css/card.css
+++ b/dashboard-ui/css/card.css
@@ -48,7 +48,7 @@
}
.largeCardMargin .cardBox {
- margin: 6px;
+ margin: 10px;
}
/*@media all and (max-width: 600px) {
@@ -68,13 +68,7 @@
margin-bottom: 5px;
}
-.visualFooterCard .outerCardFooter {
- background: #111;
- padding-bottom: 4px;
-}
-
.visualCardBox {
- padding: 5px;
-moz-border-radius: 2px;
-webkit-border-radius: 2px;
border-radius: 2px;
@@ -83,16 +77,15 @@
-webkit-box-shadow: 0 2px 4px rgba(0,0,0,0.1);
box-shadow: 0 2px 4px rgba(0,0,0,0.1);
background: #fff;
- margin: 1px;
+ margin: 8px;
}
-/*.visualCardBox .cardFooter {
- padding: 0 2px;
-}*/
+.largeCardMargin .visualCardBox {
+ margin: 18px;
+}
.ui-page-theme-b .visualCardBox {
background: rgba(45,45,45,.85);
- border: 1px solid #1f1f1f;
border-radius: 3px;
}
@@ -187,6 +180,18 @@
right: 0;
}
+.visualCardBox .outerCardFooter {
+ padding: 5px;
+ position: relative;
+}
+
+.btnCardOptions {
+ padding: 10px !important;
+ margin: 0 !important;
+ color: inherit;
+ font-size: 20px;
+}
+
.cardText {
text-overflow: ellipsis;
overflow: hidden;
@@ -221,16 +226,6 @@
padding: 0 6px 4px 5px;
}
-.outerCardFooter .cardText + .cardText {
- color: #ddd;
-}
-
-/*.cardBox:not(.visualCardBox) .outerCardFooter .cardText {
- font-size: 14px;
- background: rgba(51, 51, 51,.6);
- padding: 5px;
-}*/
-
.cardBox:not(.visualCardBox) .outerCardFooter .cardText:last-child {
margin-bottom: 2em;
}
@@ -250,6 +245,11 @@
height: 100%;
}
+ .cardImage canvas {
+ width: 100%;
+ height: 100%;
+ }
+
.coveredCardImage {
background-size: cover;
}
@@ -298,7 +298,7 @@
}
.smallPortraitCard {
- width: 25%;
+ width: 33.334%;
}
.cardProgress {
@@ -319,17 +319,6 @@
}
}
-@media all and (min-width: 500px) {
-
- .squareCard {
- width: 33.3%;
- }
-
- .smallSquareCard {
- width: 25%;
- }
-}
-
@media all and (min-width: 400px) {
.smallBackdropCard {
@@ -337,23 +326,25 @@
}
}
+@media all and (min-width: 500px) {
-@media all and (min-width: 540px) {
-
- .smallBackdropCard {
- width: 25%;
+ .squareCard {
+ width: 33.3%;
}
}
-
@media all and (min-width: 640px) {
+ .smallSquareCard {
+ width: 25%;
+ }
+
.portraitCard {
width: 25%;
}
.smallPortraitCard {
- width: 20%;
+ width: 25%;
}
}
@@ -377,11 +368,15 @@
width: 20%;
}
- .smallBackdropCard {
+ .smallSquareCard {
width: 20%;
}
- .smallSquareCard {
+ .smallBackdropCard {
+ width: 25%;
+ }
+
+ .smallPortraitCard {
width: 20%;
}
}
diff --git a/dashboard-ui/css/librarybrowser.css b/dashboard-ui/css/librarybrowser.css
index 3ccdc416ef..85bad26b6b 100644
--- a/dashboard-ui/css/librarybrowser.css
+++ b/dashboard-ui/css/librarybrowser.css
@@ -1535,3 +1535,7 @@ span.itemCommunityRating:not(:empty) + .userDataIcons {
.movieTrailersTabDisabled .movieTrailersTab {
display: none !important;
}
+
+.homeFavoritesTabDisabled .homeFavoritesTab {
+ display: none !important;
+}
diff --git a/dashboard-ui/favorites.html b/dashboard-ui/favorites.html
index 0958611ae8..2c9cb06a5c 100644
--- a/dashboard-ui/favorites.html
+++ b/dashboard-ui/favorites.html
@@ -10,7 +10,7 @@
${TabHome}
${TabLatest}
${TabNextUp}
-
${TabFavorites}
+
${TabFavorites}
${TabUpcoming}
diff --git a/dashboard-ui/homelatest.html b/dashboard-ui/homelatest.html
index 1035bf92cb..99db89845f 100644
--- a/dashboard-ui/homelatest.html
+++ b/dashboard-ui/homelatest.html
@@ -10,7 +10,7 @@
${TabHome}
${TabLatest}
${TabNextUp}
-
${TabFavorites}
+
${TabFavorites}
${TabUpcoming}
diff --git a/dashboard-ui/index.html b/dashboard-ui/index.html
index d023a56c4e..35870c5c08 100644
--- a/dashboard-ui/index.html
+++ b/dashboard-ui/index.html
@@ -10,7 +10,7 @@
${TabHome}
${TabLatest}
${TabNextUp}
- ${TabFavorites}
+ ${TabFavorites}
${TabUpcoming}
diff --git a/dashboard-ui/itemdetails.html b/dashboard-ui/itemdetails.html
index a138b34758..dae4b84877 100644
--- a/dashboard-ui/itemdetails.html
+++ b/dashboard-ui/itemdetails.html
@@ -10,7 +10,7 @@
diff --git a/dashboard-ui/scripts/backdrops.js b/dashboard-ui/scripts/backdrops.js
index f0909de740..479f9303eb 100644
--- a/dashboard-ui/scripts/backdrops.js
+++ b/dashboard-ui/scripts/backdrops.js
@@ -97,6 +97,19 @@
});
}
+ function setDefault(page) {
+
+ var backdropContainer = $('.backdropContainer');
+
+ if (backdropContainer.length) {
+ backdropContainer.css('backgroundImage', 'url(css/images/splash.jpg)');
+ } else {
+ $(document.body).prepend('');
+ }
+
+ $(page).addClass('backdropPage staticBackdropPage');
+ }
+
function clearBackdrop() {
$('.backdropContainer').css('backgroundImage', '');
@@ -213,7 +226,8 @@
window.Backdrops = {
setBackdrops: setBackdrops,
- setBackdropUrl: setBackdropUrl
+ setBackdropUrl: setBackdropUrl,
+ setDefault: setDefault
};
})(jQuery, document);
\ No newline at end of file
diff --git a/dashboard-ui/scripts/channelitems.js b/dashboard-ui/scripts/channelitems.js
index 2dfecc854a..cd0b70c4be 100644
--- a/dashboard-ui/scripts/channelitems.js
+++ b/dashboard-ui/scripts/channelitems.js
@@ -146,8 +146,10 @@
defaultShape: 'square',
context: 'channels',
showTitle: true,
- centerText: true,
- coverImage: true
+ coverImage: true,
+ cardLayout: true,
+ showYear: true,
+ lazy: true
});
var elem = $('#items', page).html(html).lazyChildren();
diff --git a/dashboard-ui/scripts/channels.js b/dashboard-ui/scripts/channels.js
index 46b24a87ca..b3b3cc65fa 100644
--- a/dashboard-ui/scripts/channels.js
+++ b/dashboard-ui/scripts/channels.js
@@ -21,14 +21,32 @@
updateFilterControls(page);
- html = LibraryBrowser.getPosterViewHtml({
- items: result.Items,
- shape: "backdrop",
- context: 'channels',
- showTitle: true,
- centerText: true,
- preferThumb: true
- });
+ var view = 'Thumb';
+
+ if (view == "Thumb") {
+
+ html = LibraryBrowser.getPosterViewHtml({
+ items: result.Items,
+ shape: "backdrop",
+ context: 'channels',
+ showTitle: true,
+ centerText: true,
+ preferThumb: true
+ });
+
+ }
+ else if (view == "ThumbCard") {
+
+ html = LibraryBrowser.getPosterViewHtml({
+ items: result.Items,
+ shape: "backdrop",
+ preferThumb: true,
+ context: 'channels',
+ lazy: true,
+ cardLayout: true,
+ showTitle: true
+ });
+ }
$('#items', page).html(html).lazyChildren();
diff --git a/dashboard-ui/scripts/connectlogin.js b/dashboard-ui/scripts/connectlogin.js
index 7cd0682898..a4172197f8 100644
--- a/dashboard-ui/scripts/connectlogin.js
+++ b/dashboard-ui/scripts/connectlogin.js
@@ -2,12 +2,13 @@
function onLoggedIn() {
+ Dashboard.hideModalLoadingMsg();
Dashboard.navigate('selectserver.html');
}
function login(page, username, password) {
- Dashboard.showLoadingMsg();
+ Dashboard.showModalLoadingMsg();
ConnectionManager.loginToConnect(username, password).done(function () {
@@ -30,6 +31,8 @@
function handleConnectionResult(page, result) {
+ Dashboard.hideLoadingMsg();
+
switch (result.State) {
case MediaBrowser.ConnectionState.SignedIn:
@@ -71,12 +74,10 @@
function loadAppConnection(page) {
- Dashboard.showLoadingMsg();
+ Dashboard.showModalLoadingMsg();
ConnectionManager.connect().done(function (result) {
- Dashboard.hideLoadingMsg();
-
handleConnectionResult(page, result);
});
@@ -99,8 +100,7 @@
}
function loadMode(page, mode) {
- $(document.body).prepend('');
- $(page).addClass('backdropPage staticBackdropPage');
+ Backdrops.setDefault(page);
if (mode == 'welcome') {
$('.connectLoginForm', page).hide();
@@ -119,13 +119,17 @@
}
}
+ function skip() {
+
+ Dashboard.navigate('selectserver.html');
+ }
+
$(document).on('pageinit', "#connectLoginPage", function () {
var page = this;
- $('.btnSkipConnect', page).on('click', function() {
-
- Dashboard.navigate('connectlogin.html?mode=manualserver');
+ $('.btnSkipConnect', page).on('click', function () {
+ skip();
});
}).on('pageshow', "#connectLoginPage", function () {
@@ -138,13 +142,9 @@
$('.embyIntroDownloadMessage', page).html(Globalize.translate('EmbyIntroDownloadMessage', link));
if (Dashboard.isRunningInCordova()) {
- $('.newUsers', page).hide();
- $('.forgotPassword', page).hide();
$('.skip', page).show();
} else {
$('.skip', page).hide();
- $('.newUsers', page).show();
- $('.forgotPassword', page).show();
}
});
@@ -157,18 +157,14 @@
host += ':' + port;
}
- Dashboard.showLoadingMsg();
+ Dashboard.showModalLoadingMsg();
ConnectionManager.connectToAddress(host).done(function (result) {
- Dashboard.hideLoadingMsg();
-
handleConnectionResult(page, result);
}).fail(function () {
- Dashboard.hideLoadingMsg();
-
handleConnectionResult(page, {
State: MediaBrowser.ConnectionState.Unavailable
});
diff --git a/dashboard-ui/scripts/dashboardpage.js b/dashboard-ui/scripts/dashboardpage.js
index 0f7cd47462..d2048f0ae7 100644
--- a/dashboard-ui/scripts/dashboardpage.js
+++ b/dashboard-ui/scripts/dashboardpage.js
@@ -626,7 +626,7 @@
imgUrl = 'css/images/clients/html5.png';
}
- return "
";
+ return "
";
}
if (clientLowered == "mb-classic") {
diff --git a/dashboard-ui/scripts/episodes.js b/dashboard-ui/scripts/episodes.js
index 1a8b325cc4..d7559f18d6 100644
--- a/dashboard-ui/scripts/episodes.js
+++ b/dashboard-ui/scripts/episodes.js
@@ -1,6 +1,6 @@
(function ($, document) {
- var view = LibraryBrowser.getDefaultItemsView('Poster', 'Poster');
+ var view = LibraryBrowser.getDefaultItemsView('Poster', 'PosterCard');
// The base query options
var query = {
@@ -46,6 +46,12 @@
updateFilterControls();
var trigger = false;
+ if (AppInfo.hasLowImageBandwidth) {
+ if (view == 'Poster') {
+ view = 'PosterCard';
+ }
+ }
+
if (view == "List") {
html = LibraryBrowser.getListViewHtml({
diff --git a/dashboard-ui/scripts/indexpage.js b/dashboard-ui/scripts/indexpage.js
index 65a47b5bae..7a4c8e228c 100644
--- a/dashboard-ui/scripts/indexpage.js
+++ b/dashboard-ui/scripts/indexpage.js
@@ -139,6 +139,8 @@
var html = '';
+ var cardLayout = AppInfo.hasLowImageBandwidth;
+
if (items.length) {
html += '';
html += '';
@@ -157,6 +159,9 @@
showUnplayedIndicator: false,
showChildCountIndicator: true,
lazy: true,
+ cardLayout: cardLayout,
+ showTitle: cardLayout,
+ showYear: cardLayout
});
html += '
';
}
@@ -275,6 +280,8 @@
var html = '';
+ var cardLayout = AppInfo.hasLowImageBandwidth;
+
if (result.Items.length) {
html += '';
html += '';
@@ -282,11 +289,12 @@
items: result.Items,
preferThumb: true,
shape: 'backdrop',
- overlayText: screenWidth >= 800 && !AppInfo.hasLowImageBandwidth,
+ overlayText: screenWidth >= 800 && !cardLayout,
showTitle: true,
showParentTitle: true,
context: 'home',
- lazy: true
+ lazy: true,
+ cardLayout: cardLayout
});
html += '
';
}
@@ -542,10 +550,10 @@
function dismissWelcome(page, userId) {
- ApiClient.getDisplayPreferences('home', userId, 'webclient').done(function (result) {
+ getDisplayPreferences('home', userId).done(function (result) {
result.CustomPrefs[homePageTourKey] = homePageDismissValue;
- ApiClient.updateDisplayPreferences('home', result, userId, 'webclient');
+ ApiClient.updateDisplayPreferences('home', result, userId, getDisplayPreferencesAppName());
});
}
@@ -635,7 +643,7 @@
var userId = Dashboard.getCurrentUserId();
- ApiClient.getDisplayPreferences('home', userId, 'webclient').done(function (result) {
+ getDisplayPreferences('home', userId).done(function (result) {
Dashboard.getCurrentUser().done(function (user) {
@@ -648,4 +656,20 @@
});
+ function getDisplayPreferencesAppName() {
+
+ if (Dashboard.isRunningInCordova()) {
+ return 'Emby Mobile';
+ }
+
+ return 'webclient';
+ }
+
+ function getDisplayPreferences(key, userId) {
+
+ return ApiClient.getDisplayPreferences(key, userId, getDisplayPreferencesAppName()).done(function (result) {
+
+ });
+ }
+
})(jQuery, document);
diff --git a/dashboard-ui/scripts/itemdetailpage.js b/dashboard-ui/scripts/itemdetailpage.js
index c834b99069..7590b125d0 100644
--- a/dashboard-ui/scripts/itemdetailpage.js
+++ b/dashboard-ui/scripts/itemdetailpage.js
@@ -342,7 +342,7 @@
var chapters = item.Chapters || [];
- if (!chapters.length) {
+ if (!chapters.length || AppInfo.hasLowImageBandwidth) {
$('#scenesCollapsible', page).hide();
} else {
$('#scenesCollapsible', page).show();
@@ -616,9 +616,11 @@
var promise;
+ var screenWidth = $(window).width();
+
var options = {
userId: Dashboard.getCurrentUserId(),
- limit: 5,
+ limit: screenWidth > 800 ? 5 : 4,
fields: "PrimaryImageAspectRatio,UserData,SyncInfo"
};
diff --git a/dashboard-ui/scripts/itemlistpage.js b/dashboard-ui/scripts/itemlistpage.js
index 15b236005a..1156b4f951 100644
--- a/dashboard-ui/scripts/itemlistpage.js
+++ b/dashboard-ui/scripts/itemlistpage.js
@@ -55,6 +55,12 @@
context = 'folders';
}
+ if (AppInfo.hasLowImageBandwidth) {
+ if (view == 'Poster') {
+ view = 'PosterCard';
+ }
+ }
+
if (view == "Backdrop") {
html = LibraryBrowser.getPosterViewHtml({
@@ -75,6 +81,16 @@
context: context
});
}
+ else if (view == "PosterCard") {
+ html = LibraryBrowser.getPosterViewHtml({
+ items: result.Items,
+ shape: "auto",
+ showTitle: true,
+ context: context,
+ cardLayout: true,
+ showYear: true
+ });
+ }
var elem = $('#items', page).html(html).lazyChildren();
diff --git a/dashboard-ui/scripts/librarybrowser.js b/dashboard-ui/scripts/librarybrowser.js
index b51e69053d..af2bfc65c3 100644
--- a/dashboard-ui/scripts/librarybrowser.js
+++ b/dashboard-ui/scripts/librarybrowser.js
@@ -1006,9 +1006,7 @@
var imagesPerRow = LibraryBrowser.getPostersPerRow(screenWidth);
- if (AppInfo.hasLowImageBandwidth) {
- screenWidth *= .95;
- } else {
+ if (!AppInfo.hasLowImageBandwidth) {
screenWidth *= 1.25;
}
@@ -1565,7 +1563,8 @@
if (options.cardLayout) {
html += '';
// Render out the jqm classes so that we don't have to call trigger create
- html += '';
+ //html += '';
+ html += '';
html += "
";
}
@@ -1618,15 +1617,19 @@
lines.push(songLine);
}
- if (options.showPremiereDate && item.PremiereDate) {
+ if (options.showPremiereDate) {
- try {
+ if (item.PremiereDate) {
+ try {
- lines.push(LibraryBrowser.getPremiereDateText(item));
+ lines.push(LibraryBrowser.getPremiereDateText(item));
- } catch (err) {
+ } catch (err) {
+ lines.push('');
+
+ }
+ } else {
lines.push('');
-
}
}
diff --git a/dashboard-ui/scripts/livetvchannels.js b/dashboard-ui/scripts/livetvchannels.js
index 92b159ba6f..7b22ef26d8 100644
--- a/dashboard-ui/scripts/livetvchannels.js
+++ b/dashboard-ui/scripts/livetvchannels.js
@@ -11,7 +11,8 @@
return LibraryBrowser.getPosterViewHtml({
items: channels,
shape: "smallBackdrop",
- centerText: true
+ centerText: true,
+ lazy: true
});
}
diff --git a/dashboard-ui/scripts/moviecollections.js b/dashboard-ui/scripts/moviecollections.js
index 5c030b07d7..178673bd0f 100644
--- a/dashboard-ui/scripts/moviecollections.js
+++ b/dashboard-ui/scripts/moviecollections.js
@@ -1,6 +1,6 @@
(function ($, document) {
- var view = LibraryBrowser.getDefaultItemsView('Poster', 'Poster');
+ var view = LibraryBrowser.getDefaultItemsView('Poster', 'PosterCard');
// The base query options
var query = {
@@ -53,6 +53,15 @@
updateFilterControls(page);
var trigger = false;
+ if (AppInfo.hasLowImageBandwidth) {
+ if (view == 'Thumb') {
+ view = 'ThumbCard';
+ }
+ else if (view == 'Poster') {
+ view = 'PosterCard';
+ }
+ }
+
if (result.TotalRecordCount) {
if (view == "List") {
@@ -74,6 +83,17 @@
lazy: true
});
}
+ else if (view == "PosterCard") {
+ html = LibraryBrowser.getPosterViewHtml({
+ items: result.Items,
+ shape: "auto",
+ context: 'movies',
+ showTitle: true,
+ cardLayout: true,
+ lazy: true,
+ showItemCounts: true
+ });
+ }
else if (view == "Thumb") {
html = LibraryBrowser.getPosterViewHtml({
items: result.Items,
@@ -85,6 +105,18 @@
preferThumb: true
});
}
+ else if (view == "ThumbCard") {
+ html = LibraryBrowser.getPosterViewHtml({
+ items: result.Items,
+ shape: "backdrop",
+ context: 'movies',
+ showTitle: true,
+ lazy: true,
+ preferThumb: true,
+ cardLayout: true,
+ showItemCounts: true
+ });
+ }
$('.noItemsMessage', page).hide();
diff --git a/dashboard-ui/scripts/moviegenres.js b/dashboard-ui/scripts/moviegenres.js
index 902f5cd25a..bd269750a3 100644
--- a/dashboard-ui/scripts/moviegenres.js
+++ b/dashboard-ui/scripts/moviegenres.js
@@ -1,6 +1,6 @@
(function ($, document) {
- var view = LibraryBrowser.getDefaultItemsView('Thumb', 'Thumb');
+ var view = LibraryBrowser.getDefaultItemsView('Thumb', 'ThumbCard');
// The base query options
var query = {
@@ -39,6 +39,15 @@
updateFilterControls(page);
+ if (AppInfo.hasLowImageBandwidth) {
+ if (view == 'Thumb') {
+ view = 'ThumbCard';
+ }
+ else if (view == 'Poster') {
+ view = 'PosterCard';
+ }
+ }
+
if (view == "Thumb") {
html = LibraryBrowser.getPosterViewHtml({
items: result.Items,
@@ -63,6 +72,17 @@
lazy: true
});
}
+ else if (view == "PosterCard") {
+ html = LibraryBrowser.getPosterViewHtml({
+ items: result.Items,
+ shape: "portrait",
+ context: 'movies',
+ showItemCounts: true,
+ lazy: true,
+ cardLayout: true,
+ showTitle: true
+ });
+ }
else if (view == "Poster") {
html = LibraryBrowser.getPosterViewHtml({
items: result.Items,
diff --git a/dashboard-ui/scripts/movies.js b/dashboard-ui/scripts/movies.js
index ef396db10f..061dbbf97a 100644
--- a/dashboard-ui/scripts/movies.js
+++ b/dashboard-ui/scripts/movies.js
@@ -1,6 +1,6 @@
(function ($, document) {
- var view = LibraryBrowser.getDefaultItemsView('Poster', 'Poster');
+ var view = LibraryBrowser.getDefaultItemsView('Poster', 'PosterCard');
// The base query options
var query = {
@@ -48,6 +48,15 @@
updateFilterControls(page);
var trigger = false;
+ if (AppInfo.hasLowImageBandwidth) {
+ if (view == 'Thumb') {
+ view = 'ThumbCard';
+ }
+ else if (view == 'Poster') {
+ view = 'PosterCard';
+ }
+ }
+
if (view == "Thumb") {
html = LibraryBrowser.getPosterViewHtml({
items: result.Items,
@@ -55,8 +64,7 @@
preferThumb: true,
context: 'movies',
lazy: true,
- overlayText: true,
- showTitle: false
+ overlayText: true
});
}
else if (view == "ThumbCard") {
@@ -96,7 +104,6 @@
items: result.Items,
shape: "portrait",
context: 'movies',
- showTitle: false,
centerText: true,
lazy: true,
overlayText: true
diff --git a/dashboard-ui/scripts/moviesrecommended.js b/dashboard-ui/scripts/moviesrecommended.js
index 7aa56d39e2..b18e2271b9 100644
--- a/dashboard-ui/scripts/moviesrecommended.js
+++ b/dashboard-ui/scripts/moviesrecommended.js
@@ -1,10 +1,29 @@
(function ($, document) {
+ function getView() {
+
+ if (AppInfo.hasLowImageBandwidth) {
+ return 'PosterCard';
+ }
+
+ return 'PosterCard';
+ }
+
+ function getResumeView() {
+
+ if (AppInfo.hasLowImageBandwidth) {
+ return 'ThumbCard';
+ }
+
+ return 'ThumbCard';
+ }
+
function loadLatest(page, userId, parentId) {
- var limit = AppInfo.hasLowImageBandwidth ?
- 15 :
- 18;
+ var limit = 18;
+ if (AppInfo.hasLowImageBandwidth) {
+ limit = 10;
+ }
var options = {
@@ -18,13 +37,34 @@
ApiClient.getJSON(ApiClient.getUrl('Users/' + userId + '/Items/Latest', options)).done(function (items) {
- $('#recentlyAddedItems', page).html(LibraryBrowser.getPosterViewHtml({
- items: items,
- lazy: true,
- shape: 'portrait',
- overlayText: false
+ var view = getView();
+ var html = '';
- })).lazyChildren().trigger('create');
+ if (view == 'PosterCard') {
+
+ html += LibraryBrowser.getPosterViewHtml({
+ items: items,
+ lazy: true,
+ shape: 'portrait',
+ overlayText: false,
+ showTitle: true,
+ showYear: true,
+ cardLayout: true
+
+ });
+
+ } else if (view == 'Poster') {
+
+ html += LibraryBrowser.getPosterViewHtml({
+ items: items,
+ shape: "portrait",
+ centerText: true,
+ lazy: true,
+ overlayText: true
+ });
+ }
+
+ $('#recentlyAddedItems', page).html(html).lazyChildren().trigger('create');
});
}
@@ -55,15 +95,35 @@
$('#resumableSection', page).hide();
}
- $('#resumableItems', page).html(LibraryBrowser.getPosterViewHtml({
- items: result.Items,
- preferThumb: true,
- shape: 'backdrop',
- overlayText: true,
- showTitle: true,
- lazy: true
+ var view = getResumeView();
+ var html = '';
- })).lazyChildren().trigger('create');
+ if (view == 'ThumbCard') {
+
+ html += LibraryBrowser.getPosterViewHtml({
+ items: result.Items,
+ preferThumb: true,
+ shape: 'backdrop',
+ showTitle: true,
+ showYear: true,
+ lazy: true,
+ cardLayout: true
+
+ });
+
+ } else if (view == 'Thumb') {
+
+ html += LibraryBrowser.getPosterViewHtml({
+ items: result.Items,
+ preferThumb: true,
+ shape: 'backdrop',
+ overlayText: true,
+ showTitle: true,
+ lazy: true
+ });
+ }
+
+ $('#resumableItems', page).html(html).lazyChildren().trigger('create');
});
}
@@ -95,12 +155,32 @@
html += '';
html += '';
- html += LibraryBrowser.getPosterViewHtml({
- items: recommendation.Items,
- lazy: true,
- shape: 'portrait',
- overlayText: true
- });
+
+ var view = getView();
+
+ if (view == 'PosterCard') {
+
+ html += LibraryBrowser.getPosterViewHtml({
+ items: recommendation.Items,
+ lazy: true,
+ shape: 'portrait',
+ overlayText: false,
+ showTitle: true,
+ showYear: true,
+ cardLayout: true
+
+ });
+
+ } else if (view == 'Poster') {
+
+ html += LibraryBrowser.getPosterViewHtml({
+ items: recommendation.Items,
+ shape: "portrait",
+ centerText: true,
+ lazy: true,
+ overlayText: true
+ });
+ }
html += '
';
return html;
diff --git a/dashboard-ui/scripts/movietrailers.js b/dashboard-ui/scripts/movietrailers.js
index 3b4859a8db..9b8925dd5b 100644
--- a/dashboard-ui/scripts/movietrailers.js
+++ b/dashboard-ui/scripts/movietrailers.js
@@ -1,6 +1,6 @@
(function ($, document) {
- var view = LibraryBrowser.getDefaultItemsView('Poster', 'Poster');
+ var view = LibraryBrowser.getDefaultItemsView('PosterCard', 'PosterCard');
// The base query options
var query = {
@@ -54,10 +54,10 @@
items: result.Items,
shape: "portrait",
context: 'movies-trailers',
- showTitle: false,
- centerText: true,
+ showTitle: true,
+ showYear: true,
lazy: true,
- overlayText: false
+ cardLayout: true
});
var elem = $('.itemsContainer', page).html(html).lazyChildren();
diff --git a/dashboard-ui/scripts/musicalbumartists.js b/dashboard-ui/scripts/musicalbumartists.js
index a19246fd41..ed35328792 100644
--- a/dashboard-ui/scripts/musicalbumartists.js
+++ b/dashboard-ui/scripts/musicalbumartists.js
@@ -46,6 +46,12 @@
updateFilterControls(page);
var trigger = false;
+ if (AppInfo.hasLowImageBandwidth) {
+ if (view == 'Poster') {
+ view = 'PosterCard';
+ }
+ }
+
if (view == "List") {
html = LibraryBrowser.getListViewHtml({
diff --git a/dashboard-ui/scripts/musicalbums.js b/dashboard-ui/scripts/musicalbums.js
index 6e7e118420..c1c547e815 100644
--- a/dashboard-ui/scripts/musicalbums.js
+++ b/dashboard-ui/scripts/musicalbums.js
@@ -44,6 +44,12 @@
updateFilterControls(page);
var trigger = false;
+ if (AppInfo.hasLowImageBandwidth) {
+ if (view == 'Poster') {
+ view = 'PosterCard';
+ }
+ }
+
if (view == "Poster") {
html = LibraryBrowser.getPosterViewHtml({
items: result.Items,
diff --git a/dashboard-ui/scripts/musicartists.js b/dashboard-ui/scripts/musicartists.js
index 8c9171e84e..f04fb7507a 100644
--- a/dashboard-ui/scripts/musicartists.js
+++ b/dashboard-ui/scripts/musicartists.js
@@ -47,6 +47,12 @@
updateFilterControls(page);
var trigger = false;
+ if (AppInfo.hasLowImageBandwidth) {
+ if (view == 'Poster') {
+ view = 'PosterCard';
+ }
+ }
+
if (view == "List") {
html = LibraryBrowser.getListViewHtml({
diff --git a/dashboard-ui/scripts/musicgenres.js b/dashboard-ui/scripts/musicgenres.js
index 70d0f1837c..210b8e9820 100644
--- a/dashboard-ui/scripts/musicgenres.js
+++ b/dashboard-ui/scripts/musicgenres.js
@@ -26,6 +26,13 @@
$(document).scrollTop(0);
var html = '';
+ var view = 'Thumb';
+
+ if (AppInfo.hasLowImageBandwidth) {
+ if (view == 'Thumb') {
+ view = 'ThumbCard';
+ }
+ }
$('.listTopPaging', page).html(LibraryBrowser.getQueryPagingHtml({
startIndex: query.StartIndex,
@@ -38,15 +45,30 @@
updateFilterControls(page);
- html = LibraryBrowser.getPosterViewHtml({
- items: result.Items,
- shape: "backdrop",
- preferThumb: true,
- context: 'music',
- showItemCounts: true,
- centerText: true,
- lazy: true
- });
+ if (view == "Thumb") {
+ html = LibraryBrowser.getPosterViewHtml({
+ items: result.Items,
+ shape: "backdrop",
+ preferThumb: true,
+ context: 'music',
+ showItemCounts: true,
+ centerText: true,
+ lazy: true
+ });
+ }
+ else if (view == "ThumbCard") {
+
+ html = LibraryBrowser.getPosterViewHtml({
+ items: result.Items,
+ shape: "backdrop",
+ preferThumb: true,
+ context: 'music',
+ showItemCounts: true,
+ cardLayout: true,
+ lazy: true,
+ showTitle: true
+ });
+ }
$('#items', page).html(html).lazyChildren();
diff --git a/dashboard-ui/scripts/musicvideos.js b/dashboard-ui/scripts/musicvideos.js
index f85e1749f1..5bc0fd34f6 100644
--- a/dashboard-ui/scripts/musicvideos.js
+++ b/dashboard-ui/scripts/musicvideos.js
@@ -37,13 +37,37 @@
updateFilterControls(page);
- html = LibraryBrowser.getPosterViewHtml({
- items: result.Items,
- shape: "square",
- context: 'music',
- showTitle: true,
- centerText: true
- });
+ var view = 'Poster';
+
+ if (AppInfo.hasLowImageBandwidth) {
+ if (view == 'Poster') {
+ view = 'PosterCard';
+ }
+ }
+
+ if (view == "Poster") {
+ html = LibraryBrowser.getPosterViewHtml({
+ items: result.Items,
+ shape: "square",
+ context: 'music',
+ showTitle: true,
+ lazy: true,
+ centerText: true
+ });
+ }
+ else if (view == "PosterCard") {
+
+ html = LibraryBrowser.getPosterViewHtml({
+ items: result.Items,
+ shape: "square",
+ context: 'music',
+ showTitle: true,
+ centerText: true,
+ cardLayout: true,
+ lazy: true,
+ showParentTitle: true
+ });
+ }
$('#items', page).html(html).trigger('create');
diff --git a/dashboard-ui/scripts/photos.js b/dashboard-ui/scripts/photos.js
index aa9a7d68be..1f2062b615 100644
--- a/dashboard-ui/scripts/photos.js
+++ b/dashboard-ui/scripts/photos.js
@@ -1,6 +1,6 @@
(function ($, document) {
- var view = LibraryBrowser.getDefaultItemsView('Poster', 'Poster');
+ var view = LibraryBrowser.getDefaultItemsView('Poster', 'PosterCard');
// The base query options
var query = {
@@ -40,15 +40,36 @@
updateFilterControls(page);
- // Poster
- html = LibraryBrowser.getPosterViewHtml({
- items: result.Items,
- shape: "auto",
- context: getParameterByName('context') || 'photos',
- showTitle: query.MediaTypes != 'Photo',
- overlayText: true,
- lazy: true
- });
+ if (AppInfo.hasLowImageBandwidth) {
+ if (view == 'Poster') {
+ view = 'PosterCard';
+ }
+ }
+
+ if (view == "Poster") {
+ // Poster
+ html = LibraryBrowser.getPosterViewHtml({
+ items: result.Items,
+ shape: "auto",
+ context: getParameterByName('context') || 'photos',
+ showTitle: query.MediaTypes != 'Photo',
+ overlayText: true,
+ lazy: true
+ });
+ }
+ else if (view == "PosterCard") {
+
+ // Poster
+ html = LibraryBrowser.getPosterViewHtml({
+ items: result.Items,
+ shape: "auto",
+ context: getParameterByName('context') || 'photos',
+ showTitle: true,
+ lazy: true,
+ cardLayout: true,
+ showPremiereDate: true
+ });
+ }
var elem = $('#items', page).html(html).lazyChildren();
diff --git a/dashboard-ui/scripts/selectserver.js b/dashboard-ui/scripts/selectserver.js
index 7715e46c62..71513d34b5 100644
--- a/dashboard-ui/scripts/selectserver.js
+++ b/dashboard-ui/scripts/selectserver.js
@@ -154,7 +154,7 @@
// Need the timeout because jquery mobile will not show a popup if there's currently already one in the process of closing
setTimeout(function () {
- Dashboard.hideLoadingMsg();
+ Dashboard.hideModalLoadingMsg();
Dashboard.alert({
message: Globalize.translate('DefaultErrorMessage')
});
@@ -164,12 +164,12 @@
function acceptInvitation(page, id) {
- Dashboard.showLoadingMsg();
+ Dashboard.showModalLoadingMsg();
// Add/Update connect info
ConnectionManager.acceptServer(id).done(function () {
- Dashboard.hideLoadingMsg();
+ Dashboard.hideModalLoadingMsg();
loadPage(page);
}).fail(function () {
@@ -180,12 +180,12 @@
function deleteServer(page, id) {
- Dashboard.showLoadingMsg();
+ Dashboard.showModalLoadingMsg();
// Add/Update connect info
ConnectionManager.deleteServer(id).done(function () {
- Dashboard.hideLoadingMsg();
+ Dashboard.hideModalLoadingMsg();
loadPage(page);
}).fail(function () {
@@ -197,12 +197,12 @@
function rejectInvitation(page, id) {
- Dashboard.showLoadingMsg();
+ Dashboard.showModalLoadingMsg();
// Add/Update connect info
ConnectionManager.rejectServer(id).done(function () {
- Dashboard.hideLoadingMsg();
+ Dashboard.hideModalLoadingMsg();
loadPage(page);
}).fail(function () {
@@ -372,6 +372,8 @@
Dashboard.showLoadingMsg();
+ Backdrops.setDefault(page);
+
ConnectionManager.getAvailableServers().done(function (servers) {
servers = servers.slice(0);
@@ -400,7 +402,17 @@
loadInvitations(page);
}
- $(document).on('pageshow', "#selectServerPage", function () {
+ $(document).on('pagebeforecreate', "#selectServerPage", function () {
+
+ var page = this;
+
+ if (ConnectionManager.isLoggedIntoConnect()) {
+ $(page).addClass('libraryPage').addClass(' noSecondaryNavPage').removeClass('standalonePage');
+ } else {
+ $(page).removeClass('libraryPage').removeClass(' noSecondaryNavPage').addClass('standalonePage');
+ }
+
+ }).on('pagebeforeshow', "#selectServerPage", function () {
var page = this;
diff --git a/dashboard-ui/scripts/site.js b/dashboard-ui/scripts/site.js
index b838998872..493559bed5 100644
--- a/dashboard-ui/scripts/site.js
+++ b/dashboard-ui/scripts/site.js
@@ -87,7 +87,7 @@ var Dashboard = {
}
Dashboard.hideLoadingMsg();
- if (!Dashboard.suppressAjaxErrors) {
+ if (!Dashboard.suppressAjaxErrors && data.type != 'GET') {
setTimeout(function () {
@@ -428,6 +428,10 @@ var Dashboard = {
navigate: function (url, preserveQueryString) {
+ if (!url) {
+ throw new Error('url cannot be null or empty');
+ }
+
var queryString = getWindowLocationSearch();
if (preserveQueryString && queryString) {
url += queryString;
@@ -1363,10 +1367,10 @@ var Dashboard = {
if (AppInfo.hasLowImageBandwidth) {
- quality -= 10;
+ quality -= 20;
if (isBackdrop) {
- quality -= 10;
+ quality -= 20;
}
}
@@ -1421,6 +1425,8 @@ var Dashboard = {
if (Dashboard.isRunningInCordova()) {
+ appName = "Emby Mobile";
+
deviceName = store.getItem('cordovaDeviceName');
deviceId = store.getItem('cordovaDeviceId');
}
@@ -1501,6 +1507,7 @@ var AppInfo = {};
AppInfo.enableLatestChannelItems = true;
AppInfo.enableStudioTabs = true;
AppInfo.enablePeopleTabs = true;
+ AppInfo.enableHomeFavoritesTab = true;
AppInfo.enableTvEpisodesTab = true;
AppInfo.enableMusicArtistsTab = true;
AppInfo.enableHomeLatestTab = true;
@@ -1617,6 +1624,10 @@ var AppInfo = {};
$(document.body).addClass('peopleTabDisabled');
}
+ if (!AppInfo.enableHomeFavoritesTab) {
+ $(document.body).addClass('homeFavoritesTabDisabled');
+ }
+
if (!AppInfo.enableTvEpisodesTab) {
$(document.body).addClass('tvEpisodesTabDisabled');
}
@@ -1780,6 +1791,7 @@ var AppInfo = {};
$(onReady);
}
+
})();
Dashboard.jQueryMobileInit();
diff --git a/dashboard-ui/scripts/syncactivity.js b/dashboard-ui/scripts/syncactivity.js
index 6d800a5103..77c9bf26ae 100644
--- a/dashboard-ui/scripts/syncactivity.js
+++ b/dashboard-ui/scripts/syncactivity.js
@@ -103,7 +103,7 @@
// cardScalable
html += "";
- html += '