diff --git a/dashboard-ui/css/card.css b/dashboard-ui/css/card.css
index 2e7ec20095..73d6f2d781 100644
--- a/dashboard-ui/css/card.css
+++ b/dashboard-ui/css/card.css
@@ -90,8 +90,9 @@
}
.visualCardBox-b {
- border-radius: 3px;
background: rgb(51, 51, 51);
+ border: 1px solid rgb(31, 31, 31);
+ border-radius: 3px;
}
.cardScalable {
@@ -130,9 +131,9 @@
right: 0;
}
-.cardContent:hover .cardImage {
- opacity: .5;
-}
+ .cardContent:hover .cardImage {
+ opacity: .5;
+ }
/*.preview-overlay-container {
-moz-border-radius: 2px;
diff --git a/dashboard-ui/css/site.css b/dashboard-ui/css/site.css
index 93125ee878..e7b24b56b2 100644
--- a/dashboard-ui/css/site.css
+++ b/dashboard-ui/css/site.css
@@ -489,10 +489,10 @@ h1 .imageLink {
.mediaLocationsHeader .ui-btn {
position: absolute;
- right: -6px;
+ right: -3px;
margin-top: 0 !important;
margin-bottom: 0 !important;
- top: 6px;
+ top: 4px;
}
#ulDirectoryPickerList a {
diff --git a/dashboard-ui/episodes.html b/dashboard-ui/episodes.html
index 4a4b4e7121..9a743d1260 100644
--- a/dashboard-ui/episodes.html
+++ b/dashboard-ui/episodes.html
@@ -47,8 +47,9 @@
+
+
+
+
+
diff --git a/dashboard-ui/movies.html b/dashboard-ui/movies.html
index e02ef98946..7ac539c548 100644
--- a/dashboard-ui/movies.html
+++ b/dashboard-ui/movies.html
@@ -49,10 +49,11 @@
diff --git a/dashboard-ui/musicalbumartists.html b/dashboard-ui/musicalbumartists.html
index 67ddcd6ae8..5d271c895f 100644
--- a/dashboard-ui/musicalbumartists.html
+++ b/dashboard-ui/musicalbumartists.html
@@ -43,8 +43,9 @@
diff --git a/dashboard-ui/musicalbums.html b/dashboard-ui/musicalbums.html
index 4eea86cc8e..0d9ad9850d 100644
--- a/dashboard-ui/musicalbums.html
+++ b/dashboard-ui/musicalbums.html
@@ -43,8 +43,9 @@
diff --git a/dashboard-ui/musicartists.html b/dashboard-ui/musicartists.html
index a08411e355..95de0f2042 100644
--- a/dashboard-ui/musicartists.html
+++ b/dashboard-ui/musicartists.html
@@ -42,8 +42,9 @@
diff --git a/dashboard-ui/scripts/episodes.js b/dashboard-ui/scripts/episodes.js
index 3d932a7559..3af414d9ed 100644
--- a/dashboard-ui/scripts/episodes.js
+++ b/dashboard-ui/scripts/episodes.js
@@ -59,11 +59,21 @@
showTitle: true,
showParentTitle: true,
overlayText: true,
- selectionPanel: true,
lazy: true,
context: 'tv'
});
}
+ else if (view == "PosterCard") {
+ html += LibraryBrowser.getPosterViewHtml({
+ items: result.Items,
+ shape: "backdrop",
+ showTitle: true,
+ showParentTitle: true,
+ lazy: true,
+ context: 'tv',
+ cardLayout: true
+ });
+ }
html += pagingHtml;
diff --git a/dashboard-ui/scripts/gamespage.js b/dashboard-ui/scripts/gamespage.js
index 49e7faa720..fe2b4c2a27 100644
--- a/dashboard-ui/scripts/gamespage.js
+++ b/dashboard-ui/scripts/gamespage.js
@@ -61,6 +61,17 @@
centerText: true
});
}
+ else if (view == "PosterCard") {
+ html = LibraryBrowser.getPosterViewHtml({
+ items: result.Items,
+ shape: "auto",
+ context: 'games',
+ showTitle: true,
+ showParentTitle: true,
+ cardLayout: true
+ });
+ }
+
html += pagingHtml;
diff --git a/dashboard-ui/scripts/gamesrecommendedpage.js b/dashboard-ui/scripts/gamesrecommendedpage.js
index 3cb74e28d0..caf08e475f 100644
--- a/dashboard-ui/scripts/gamesrecommendedpage.js
+++ b/dashboard-ui/scripts/gamesrecommendedpage.js
@@ -10,7 +10,7 @@
var options = {
IncludeItemTypes: "Game",
- Limit: 8,
+ Limit: 18,
Fields: "PrimaryImageAspectRatio",
ParentId: parentId
};
@@ -33,7 +33,7 @@
SortBy: "DatePlayed",
SortOrder: "Descending",
MediaTypes: "Game",
- Limit: 8,
+ Limit: 18,
Recursive: true,
Filters: "IsPlayed",
Fields: "ItemCounts,AudioInfo,PrimaryImageAspectRatio",
diff --git a/dashboard-ui/scripts/librarybrowser.js b/dashboard-ui/scripts/librarybrowser.js
index eb3bf9bd09..c3c877db4d 100644
--- a/dashboard-ui/scripts/librarybrowser.js
+++ b/dashboard-ui/scripts/librarybrowser.js
@@ -1217,7 +1217,7 @@
cssClass += ' itemWithAction';
}
- html += '
';
+ html += '';
var style = "";
@@ -1250,7 +1250,7 @@
html += '
';
html += '
';
- html += '
';
+ html += '';
// cardScalable
html += '
';
@@ -1304,7 +1304,7 @@
// cardBox
html += '
';
- html += "";
+ html += "
";
}
@@ -1317,6 +1317,12 @@
html += '';
@@ -281,7 +281,7 @@
var msg = Globalize.translate('MessageAreYouSureYouWishToRemoveMediaFolder');
if (locations.length) {
- msg += "
"+Globalize.translate("MessageTheFollowingLocationWillBeRemovedFromLibrary")+"
";
+ msg += "
" + Globalize.translate("MessageTheFollowingLocationWillBeRemovedFromLibrary") + "
";
msg += locations.join("
");
}
diff --git a/dashboard-ui/scripts/mediaplayer-video.js b/dashboard-ui/scripts/mediaplayer-video.js
index 2fbc906115..3deb5750ae 100644
--- a/dashboard-ui/scripts/mediaplayer-video.js
+++ b/dashboard-ui/scripts/mediaplayer-video.js
@@ -1119,7 +1119,8 @@
html += '
';
}
- var mp4BeforeWebm = self.getVideoTranscodingExtension() != '.webm';
+ // Live streams seem to function better with mp4
+ var mp4BeforeWebm = self.getVideoTranscodingExtension() != '.webm' || !mediaSource.RunTimeTicks;
if (mp4BeforeWebm) {
html += '
';
diff --git a/dashboard-ui/scripts/moviegenres.js b/dashboard-ui/scripts/moviegenres.js
index 2ee9a04068..84b9eb5725 100644
--- a/dashboard-ui/scripts/moviegenres.js
+++ b/dashboard-ui/scripts/moviegenres.js
@@ -1,5 +1,7 @@
(function ($, document) {
+ var view = LibraryBrowser.getDefaultItemsView('Thumb', 'Thumb');
+
// The base query options
var query = {
@@ -39,14 +41,41 @@
updateFilterControls(page);
- html = LibraryBrowser.getPosterViewHtml({
- items: result.Items,
- shape: "backdrop",
- preferThumb: true,
- context: 'movies',
- showItemCounts: true,
- centerText: true
- });
+ if (view == "Thumb") {
+ html = LibraryBrowser.getPosterViewHtml({
+ items: result.Items,
+ shape: "backdrop",
+ preferThumb: true,
+ context: 'movies',
+ showItemCounts: true,
+ centerText: true
+ });
+ $('.itemsContainer', page).removeClass('timelineItemsContainer');
+ }
+ else if (view == "ThumbCard") {
+
+ html = LibraryBrowser.getPosterViewHtml({
+ items: result.Items,
+ shape: "backdrop",
+ preferThumb: true,
+ context: 'movies',
+ showItemCounts: true,
+ cardLayout: true,
+ showTitle: true
+ });
+ $('.itemsContainer', page).removeClass('timelineItemsContainer');
+ }
+ else if (view == "Poster") {
+ html = LibraryBrowser.getPosterViewHtml({
+ items: result.Items,
+ shape: "portrait",
+ context: 'movies',
+ centerText: true,
+ showItemCounts: true,
+ lazy: true
+ });
+ $('.itemsContainer', page).removeClass('timelineItemsContainer');
+ }
html += pagingHtml;
@@ -71,6 +100,7 @@
function updateFilterControls(page) {
$('#selectPageSize', page).val(query.Limit).selectmenu('refresh');
+ $('#selectView', page).val(view).selectmenu('refresh');
}
$(document).on('pageinit', "#movieGenresPage", function () {
@@ -100,8 +130,27 @@
reloadItems(page);
});
+ $('#selectView', this).on('change', function () {
+
+ view = this.value;
+
+ if (view == "Timeline") {
+
+ query.SortBy = "PremiereDate";
+ query.SortOrder = "Descending";
+ query.StartIndex = 0;
+ $('#radioPremiereDate', page)[0].click();
+
+ } else {
+ reloadItems(page);
+ }
+
+ LibraryBrowser.saveViewSetting(getSavedQueryKey(), view);
+ });
+
}).on('pagebeforeshow', "#movieGenresPage", function () {
+ var page = this;
query.ParentId = LibraryMenu.getTopParentId();
var limit = LibraryBrowser.getDefaultPageSize();
@@ -112,9 +161,18 @@
query.StartIndex = 0;
}
- LibraryBrowser.loadSavedQueryValues(getSavedQueryKey(), query);
+ var viewkey = getSavedQueryKey();
- reloadItems(this);
+ LibraryBrowser.loadSavedQueryValues(viewkey, query);
+
+ LibraryBrowser.getSavedViewSetting(viewkey).done(function (val) {
+
+ if (val) {
+ $('#selectView', page).val(val).selectmenu('refresh').trigger('change');
+ } else {
+ reloadItems(page);
+ }
+ });
}).on('pageshow', "#movieGenresPage", function () {
diff --git a/dashboard-ui/scripts/movies.js b/dashboard-ui/scripts/movies.js
index 83358b9d91..2bfcec348a 100644
--- a/dashboard-ui/scripts/movies.js
+++ b/dashboard-ui/scripts/movies.js
@@ -50,13 +50,26 @@
shape: "backdrop",
preferThumb: true,
context: 'movies',
- selectionPanel: true,
lazy: true,
overlayText: true,
showTitle: false
});
$('.itemsContainer', page).removeClass('timelineItemsContainer');
}
+ else if (view == "ThumbCard") {
+
+ html = LibraryBrowser.getPosterViewHtml({
+ items: result.Items,
+ shape: "backdrop",
+ preferThumb: true,
+ context: 'movies',
+ lazy: true,
+ showTitle: true,
+ cardLayout: true,
+ showYear: true
+ });
+ $('.itemsContainer', page).removeClass('timelineItemsContainer');
+ }
else if (view == "Banner") {
html = LibraryBrowser.getPosterViewHtml({
@@ -84,7 +97,6 @@
context: 'movies',
showTitle: false,
centerText: true,
- selectionPanel: true,
lazy: true,
overlayText: true
});
@@ -98,7 +110,6 @@
showTitle: true,
timeline: true,
centerText: true,
- selectionPanel: true,
lazy: true
});
$('.itemsContainer', page).addClass('timelineItemsContainer');
diff --git a/dashboard-ui/scripts/musicalbumartists.js b/dashboard-ui/scripts/musicalbumartists.js
index 39da9b2f91..2d87da7349 100644
--- a/dashboard-ui/scripts/musicalbumartists.js
+++ b/dashboard-ui/scripts/musicalbumartists.js
@@ -60,10 +60,23 @@
showTitle: true,
coverImage: true,
centerText: true,
- lazy: true,
- selectionPanel: true
+ lazy: true
});
}
+ else if (view == "PosterCard") {
+
+ html = LibraryBrowser.getPosterViewHtml({
+ items: result.Items,
+ shape: "square",
+ context: 'music',
+ showTitle: true,
+ coverImage: true,
+ lazy: true,
+ cardLayout: true,
+ showSongCount: true
+ });
+ $('.itemsContainer', page).removeClass('timelineItemsContainer');
+ }
html += pagingHtml;
diff --git a/dashboard-ui/scripts/musicalbums.js b/dashboard-ui/scripts/musicalbums.js
index 6c7e349e1f..4dbc55138b 100644
--- a/dashboard-ui/scripts/musicalbums.js
+++ b/dashboard-ui/scripts/musicalbums.js
@@ -49,8 +49,21 @@
context: 'music',
showTitle: true,
showParentTitle: true,
+ lazy: true
+ });
+ $('.itemsContainer', page).removeClass('timelineItemsContainer');
+ }
+ else if (view == "PosterCard") {
+
+ html = LibraryBrowser.getPosterViewHtml({
+ items: result.Items,
+ shape: "square",
+ context: 'music',
+ showTitle: true,
+ coverImage: true,
+ showParentTitle: true,
lazy: true,
- selectionPanel: true
+ cardLayout: true
});
$('.itemsContainer', page).removeClass('timelineItemsContainer');
}
@@ -71,8 +84,7 @@
showTitle: true,
showParentTitle: true,
timeline: true,
- lazy: true,
- selectionPanel: true
+ lazy: true
});
$('.itemsContainer', page).addClass('timelineItemsContainer');
}
diff --git a/dashboard-ui/scripts/musicartists.js b/dashboard-ui/scripts/musicartists.js
index f4703cd09d..4229f6e1ff 100644
--- a/dashboard-ui/scripts/musicartists.js
+++ b/dashboard-ui/scripts/musicartists.js
@@ -60,10 +60,23 @@
showTitle: true,
coverImage: true,
centerText: true,
- lazy: true,
- selectionPanel: true
+ lazy: true
});
}
+ else if (view == "PosterCard") {
+
+ html = LibraryBrowser.getPosterViewHtml({
+ items: result.Items,
+ shape: "square",
+ context: 'music',
+ showTitle: true,
+ coverImage: true,
+ lazy: true,
+ cardLayout: true,
+ showSongCount: true
+ });
+ $('.itemsContainer', page).removeClass('timelineItemsContainer');
+ }
html += pagingHtml;
diff --git a/dashboard-ui/scripts/musicgenres.js b/dashboard-ui/scripts/musicgenres.js
index 79cd23d60b..823a38e254 100644
--- a/dashboard-ui/scripts/musicgenres.js
+++ b/dashboard-ui/scripts/musicgenres.js
@@ -47,8 +47,7 @@
context: 'music',
showItemCounts: true,
centerText: true,
- lazy: true,
- selectionPanel: true
+ lazy: true
});
html += pagingHtml;
diff --git a/dashboard-ui/scripts/tvgenres.js b/dashboard-ui/scripts/tvgenres.js
index 6301e25060..a0edc2057e 100644
--- a/dashboard-ui/scripts/tvgenres.js
+++ b/dashboard-ui/scripts/tvgenres.js
@@ -1,5 +1,7 @@
(function ($, document) {
+ var view = LibraryBrowser.getDefaultItemsView('Thumb', 'Thumb');
+
// The base query options
var query = {
@@ -39,17 +41,41 @@
updateFilterControls(page);
- html += LibraryBrowser.getPosterViewHtml({
- items: result.Items,
- shape: "backdrop",
- showTitle: false,
- context: 'tv',
- preferThumb: true,
- showItemCounts: true,
- centerText: true,
- lazy: true
-
- });
+ if (view == "Thumb") {
+ html = LibraryBrowser.getPosterViewHtml({
+ items: result.Items,
+ shape: "backdrop",
+ preferThumb: true,
+ context: 'tv',
+ showItemCounts: true,
+ centerText: true
+ });
+ $('.itemsContainer', page).removeClass('timelineItemsContainer');
+ }
+ else if (view == "ThumbCard") {
+
+ html = LibraryBrowser.getPosterViewHtml({
+ items: result.Items,
+ shape: "backdrop",
+ preferThumb: true,
+ context: 'tv',
+ showItemCounts: true,
+ cardLayout: true,
+ showTitle: true
+ });
+ $('.itemsContainer', page).removeClass('timelineItemsContainer');
+ }
+ else if (view == "Poster") {
+ html = LibraryBrowser.getPosterViewHtml({
+ items: result.Items,
+ shape: "portrait",
+ context: 'tv',
+ centerText: true,
+ showItemCounts: true,
+ lazy: true
+ });
+ $('.itemsContainer', page).removeClass('timelineItemsContainer');
+ }
html += pagingHtml;
@@ -89,6 +115,7 @@
}).checkboxradio('refresh');
$('#selectPageSize', page).val(query.Limit).selectmenu('refresh');
+ $('#selectView', page).val(view).selectmenu('refresh');
}
$(document).on('pageinit', "#tvGenresPage", function () {
@@ -118,9 +145,28 @@
reloadItems(page);
});
+ $('#selectView', this).on('change', function () {
+
+ view = this.value;
+
+ if (view == "Timeline") {
+
+ query.SortBy = "PremiereDate";
+ query.SortOrder = "Descending";
+ query.StartIndex = 0;
+ $('#radioPremiereDate', page)[0].click();
+
+ } else {
+ reloadItems(page);
+ }
+
+ LibraryBrowser.saveViewSetting(getSavedQueryKey(), view);
+ });
+
}).on('pagebeforeshow', "#tvGenresPage", function () {
query.ParentId = LibraryMenu.getTopParentId();
+ var page = this;
var limit = LibraryBrowser.getDefaultPageSize();
@@ -130,9 +176,17 @@
query.StartIndex = 0;
}
- LibraryBrowser.loadSavedQueryValues(getSavedQueryKey(), query);
+ var viewkey = getSavedQueryKey();
+ LibraryBrowser.loadSavedQueryValues(viewkey, query);
- reloadItems(this);
+ LibraryBrowser.getSavedViewSetting(viewkey).done(function (val) {
+
+ if (val) {
+ $('#selectView', page).val(val).selectmenu('refresh').trigger('change');
+ } else {
+ reloadItems(page);
+ }
+ });
}).on('pageshow', "#tvGenresPage", function () {
diff --git a/dashboard-ui/scripts/tvshows.js b/dashboard-ui/scripts/tvshows.js
index 533b5d7904..6c1ab87424 100644
--- a/dashboard-ui/scripts/tvshows.js
+++ b/dashboard-ui/scripts/tvshows.js
@@ -53,6 +53,20 @@
$('.itemsContainer', page).removeClass('timelineItemsContainer');
}
+ else if (view == "ThumbCard") {
+
+ html = LibraryBrowser.getPosterViewHtml({
+ items: result.Items,
+ shape: "backdrop",
+ preferThumb: true,
+ context: 'tv',
+ lazy: true,
+ cardLayout: true,
+ showTitle: true,
+ showSeriesYear: true
+ });
+ $('.itemsContainer', page).removeClass('timelineItemsContainer');
+ }
else if (view == "Banner") {
html = LibraryBrowser.getPosterViewHtml({
diff --git a/dashboard-ui/scripts/userprofilespage.js b/dashboard-ui/scripts/userprofilespage.js
index d751b3eb1c..fc1b1bc440 100644
--- a/dashboard-ui/scripts/userprofilespage.js
+++ b/dashboard-ui/scripts/userprofilespage.js
@@ -139,7 +139,6 @@
html += '