diff --git a/dashboard-ui/css/card.css b/dashboard-ui/css/card.css
index e75b3246d2..266ed1f7f9 100644
--- a/dashboard-ui/css/card.css
+++ b/dashboard-ui/css/card.css
@@ -22,6 +22,7 @@
background-color: rgba(0, 0, 0, .85);
z-index: 998;
display: none;
+ line-height: initial;
}
.cardOverlayInner {
@@ -48,6 +49,13 @@
margin: 1px;
}
+/*@media all and (max-width: 600px) {
+
+ .cardBox {
+ margin: 0;
+ }
+}*/
+
.grayscale {
-webkit-filter: grayscale(100%);
-moz-filter: grayscale(100%);
@@ -168,6 +176,7 @@
padding: 5px 4px 2px;
text-shadow: none;
font-weight: 400;
+ line-height: initial;
}
.cardOverlayInner {
diff --git a/dashboard-ui/css/librarybrowser.css b/dashboard-ui/css/librarybrowser.css
index 33ff702636..32131bdf6c 100644
--- a/dashboard-ui/css/librarybrowser.css
+++ b/dashboard-ui/css/librarybrowser.css
@@ -859,6 +859,7 @@ span.itemCommunityRating:not(:empty) + .userDataIcons {
color: #fff;
background: rgb(0, 143, 187);
background: rgba(0, 143, 187, .8);
+ line-height: initial;
}
.offlinePosterRibbon {
@@ -887,6 +888,7 @@ span.itemCommunityRating:not(:empty) + .userDataIcons {
color: #fff;
background: rgb(82, 181, 75);
background: rgba(82, 181, 75, .8);
+ line-height: 16px;
}
.playedIndicator div:after {
@@ -1022,10 +1024,12 @@ span.itemCommunityRating:not(:empty) + .userDataIcons {
.timelineHeader {
margin-bottom: .25em;
+ line-height: initial;
}
.itemsContainer {
margin: 0 auto;
+ line-height: 0;
}
.alphabetPicker {
@@ -1441,4 +1445,4 @@ span.itemCommunityRating:not(:empty) + .userDataIcons {
.smallDetailImageContainer {
padding-left: 1em;
}
-}
\ No newline at end of file
+}
diff --git a/dashboard-ui/edititemmetadata.html b/dashboard-ui/edititemmetadata.html
index 336d2a2c2a..46e4ac7c77 100644
--- a/dashboard-ui/edititemmetadata.html
+++ b/dashboard-ui/edititemmetadata.html
@@ -36,6 +36,12 @@
+
${TabSuggestions}
diff --git a/dashboard-ui/photos.html b/dashboard-ui/photos.html
new file mode 100644
index 0000000000..338e315dd9
--- /dev/null
+++ b/dashboard-ui/photos.html
@@ -0,0 +1,24 @@
+
+
+
+
Emby
+
+
+
+
+
diff --git a/dashboard-ui/scripts/edititemmetadata.js b/dashboard-ui/scripts/edititemmetadata.js
index 8f0c3cea10..301c6287f6 100644
--- a/dashboard-ui/scripts/edititemmetadata.js
+++ b/dashboard-ui/scripts/edititemmetadata.js
@@ -1338,10 +1338,9 @@
function refreshWithOptions(page, options) {
- ApiClient.refreshItem(currentItem.Id, options).done(function () {
+ $('#refreshLoading', page).show();
- Dashboard.alert(Globalize.translate('MessageRefreshQueued'));
- });
+ ApiClient.refreshItem(currentItem.Id, options);
}
function onWebSocketMessageReceived(e, data) {
@@ -1352,8 +1351,11 @@
if (msg.Data.ItemsUpdated.indexOf(currentItem.Id) != -1) {
+ var page = $.mobile.activePage;
+
console.log('Item updated - reloading metadata');
- reload($.mobile.activePage);
+ reload(page);
+ $('#refreshLoading', page).hide();
}
}
}
diff --git a/dashboard-ui/scripts/indexpage.js b/dashboard-ui/scripts/indexpage.js
index e7bbd269b5..11f4acca82 100644
--- a/dashboard-ui/scripts/indexpage.js
+++ b/dashboard-ui/scripts/indexpage.js
@@ -227,8 +227,7 @@
showTitle: showTitles,
centerText: true,
lazy: true,
- autoThumb: true,
- context: 'home'
+ autoThumb: true
});
html += '
';
}
diff --git a/dashboard-ui/scripts/itemdetailpage.js b/dashboard-ui/scripts/itemdetailpage.js
index bef15841d4..ed46d1b2d5 100644
--- a/dashboard-ui/scripts/itemdetailpage.js
+++ b/dashboard-ui/scripts/itemdetailpage.js
@@ -254,7 +254,21 @@
$('a', elem).removeClass('ui-btn-active');
$('.lnkHomeLatest', page).addClass('ui-btn-active');
}
- else if (context == 'movies' || item.Type == 'Movie' || context == 'movies-trailers') {
+ else if (context == 'photos' || context == 'photos-photos') {
+ elem = $('.photoTabs', page).show();
+ $('a', elem).removeClass('ui-btn-active');
+ $('.lnkHomeLatest', page).addClass('ui-btn-active');
+
+ if (context == 'photos-photos') {
+ $('.lnkPhotos', page).addClass('ui-btn-active');
+ }
+ else if (context == 'photos-videos') {
+ $('.lnkVideos', page).addClass('ui-btn-active');
+ } else {
+ $('.lnkPhotoAlbums', page).addClass('ui-btn-active');
+ }
+ }
+ else if (context == 'movies' || context == 'movies-trailers') {
elem = $('#movieTabs', page).show();
$('a', elem).removeClass('ui-btn-active');
diff --git a/dashboard-ui/scripts/librarybrowser.js b/dashboard-ui/scripts/librarybrowser.js
index 48aa421ca3..4e50e0ad36 100644
--- a/dashboard-ui/scripts/librarybrowser.js
+++ b/dashboard-ui/scripts/librarybrowser.js
@@ -484,10 +484,6 @@
return 'collections.html?topParentId=' + item.Id;
}
- if (item.CollectionType == 'trailers') {
- return "itemlist.html?parentId=" + item.Id;
- }
-
if (item.CollectionType == 'tvshows') {
return 'tvrecommended.html?topParentId=' + item.Id;
}
@@ -502,11 +498,17 @@
if (item.CollectionType == 'playlists') {
return 'playlists.html?topParentId=' + item.Id;
}
+ if (item.CollectionType == 'photos') {
+ return 'photos.html?topParentId=' + item.Id;
+ }
}
if (item.Type == 'CollectionFolder') {
return 'itemlist.html?topParentId=' + item.Id + '&parentid=' + item.Id;
}
+ if (item.Type == "PhotoAlbum" && context == 'photos') {
+ return "photos.html?parentId=" + id;
+ }
if (item.Type == "Playlist") {
return "playlistedit.html?id=" + id;
}
diff --git a/dashboard-ui/scripts/moviecollections.js b/dashboard-ui/scripts/moviecollections.js
index 2ef0cd8480..85407c0383 100644
--- a/dashboard-ui/scripts/moviecollections.js
+++ b/dashboard-ui/scripts/moviecollections.js
@@ -492,7 +492,7 @@
var invalidTypes = ['Person', 'Genre', 'MusicGenre', 'Studio', 'GameGenre', 'BoxSet', 'Playlist', 'UserView', 'CollectionFolder', 'Audio', 'Episode'];
- return item.LocationType == 'FileSystem' && !item.CollectionType && invalidTypes.indexOf(item.Type) == -1;
+ return item.LocationType == 'FileSystem' && !item.CollectionType && invalidTypes.indexOf(item.Type) == -1 && item.MediaType != 'Photo';
}
};
diff --git a/dashboard-ui/scripts/photos.js b/dashboard-ui/scripts/photos.js
new file mode 100644
index 0000000000..1bd004c034
--- /dev/null
+++ b/dashboard-ui/scripts/photos.js
@@ -0,0 +1,233 @@
+(function ($, document) {
+
+ var view = LibraryBrowser.getDefaultItemsView('Poster', 'Poster');
+
+ // The base query options
+ var query = {
+
+ SortBy: "SortName",
+ SortOrder: "Ascending",
+ Fields: "PrimaryImageAspectRatio,SortName,SyncInfo",
+ StartIndex: 0,
+ ImageTypeLimit: 1,
+ EnableImageTypes: "Primary"
+ };
+
+ function getSavedQueryKey() {
+
+ return 'photos' + (query.ParentId || '');
+ }
+
+ function reloadItems(page) {
+
+ Dashboard.showLoadingMsg();
+
+ ApiClient.getItems(Dashboard.getCurrentUserId(), query).done(function (result) {
+
+ // Scroll back up so they can see the results from the beginning
+ $(document).scrollTop(0);
+
+ var html = '';
+ var pagingHtml = LibraryBrowser.getQueryPagingHtml({
+ startIndex: query.StartIndex,
+ limit: query.Limit,
+ totalRecordCount: result.TotalRecordCount,
+ viewButton: false,
+ showLimit: false
+ });
+
+ $('.listTopPaging', page).html(pagingHtml).trigger('create');
+
+ updateFilterControls(page);
+
+ // Poster
+ html = LibraryBrowser.getPosterViewHtml({
+ items: result.Items,
+ shape: "auto",
+ context: getParameterByName('context') || 'photos',
+ showTitle: false,
+ centerText: true,
+ lazy: true
+ });
+
+ var elem = $('#items', page).html(html).lazyChildren();
+
+ $(pagingHtml).appendTo(elem).trigger('create');
+
+ $('.btnNextPage', page).on('click', function () {
+ query.StartIndex += query.Limit;
+ reloadItems(page);
+ });
+
+ $('.btnPreviousPage', page).on('click', function () {
+ query.StartIndex -= query.Limit;
+ reloadItems(page);
+ });
+
+ LibraryBrowser.saveQueryValues(getSavedQueryKey(), query);
+
+ Dashboard.hideLoadingMsg();
+ });
+ }
+
+ function updateFilterControls(page) {
+
+ // Reset form values using the last used query
+ $('.radioSortBy', page).each(function () {
+
+ this.checked = (query.SortBy || '').toLowerCase() == this.getAttribute('data-sortby').toLowerCase();
+
+ }).checkboxradio('refresh');
+
+ $('.radioSortOrder', page).each(function () {
+
+ this.checked = (query.SortOrder || '').toLowerCase() == this.getAttribute('data-sortorder').toLowerCase();
+
+ }).checkboxradio('refresh');
+
+ $('.chkStandardFilter', page).each(function () {
+
+ var filters = "," + (query.Filters || "");
+ var filterName = this.getAttribute('data-filter');
+
+ this.checked = filters.indexOf(',' + filterName) != -1;
+
+ }).checkboxradio('refresh');
+ }
+
+ var filtersLoaded;
+ function reloadFiltersIfNeeded(page) {
+
+ if (!filtersLoaded) {
+
+ filtersLoaded = true;
+
+ QueryFilters.loadFilters(page, Dashboard.getCurrentUserId(), query, function () {
+
+ reloadItems(page);
+ });
+ }
+ }
+
+ function setQueryPerContext(page) {
+
+ var context = getParameterByName('context');
+
+ $('.libraryViewNav a', page).removeClass('ui-btn-active');
+
+ if (context == 'photos-photos') {
+ query.Recursive = true;
+ query.MediaTypes = 'Photo';
+ $('.lnkPhotos', page).addClass('ui-btn-active');
+ }
+ else if (context == 'photos-videos') {
+ query.Recursive = true;
+ query.MediaTypes = 'Video';
+ $('.lnkVideos', page).addClass('ui-btn-active');
+ }
+ else {
+ query.Recursive = false;
+ query.MediaTypes = null;
+ $('.lnkPhotoAlbums', page).addClass('ui-btn-active');
+ }
+
+ query.ParentId = getParameterByName('parentId') || LibraryMenu.getTopParentId();
+ }
+
+ $(document).on('pageinit', "#photosPage", function () {
+
+ var page = this;
+
+ $('.viewPanel', page).on('panelopen', function () {
+
+ reloadFiltersIfNeeded(page);
+ });
+
+ $('.radioSortBy', this).on('click', function () {
+ query.SortBy = this.getAttribute('data-sortby');
+ query.StartIndex = 0;
+ reloadItems(page);
+ });
+
+ $('.radioSortOrder', this).on('click', function () {
+ query.SortOrder = this.getAttribute('data-sortorder');
+ query.StartIndex = 0;
+ reloadItems(page);
+ });
+
+ $('.chkStandardFilter', this).on('change', function () {
+
+ var filterName = this.getAttribute('data-filter');
+ var filters = query.Filters || "";
+
+ filters = (',' + filters).replace(',' + filterName, '').substring(1);
+
+ if (this.checked) {
+ filters = filters ? (filters + ',' + filterName) : filterName;
+ }
+
+ query.Filters = filters;
+ query.StartIndex = 0;
+ reloadItems(page);
+ });
+
+ $('#radioBasicFilters', this).on('change', function () {
+
+ if (this.checked) {
+ $('.basicFilters', page).show();
+ $('.advancedFilters', page).hide();
+ } else {
+ $('.basicFilters', page).hide();
+ }
+ });
+
+ $('#radioAdvancedFilters', this).on('change', function () {
+
+ if (this.checked) {
+ $('.advancedFilters', page).show();
+ $('.basicFilters', page).hide();
+ } else {
+ $('.advancedFilters', page).hide();
+ }
+ });
+
+ $('#selectPageSize', page).on('change', function () {
+ query.Limit = parseInt(this.value);
+ query.StartIndex = 0;
+ reloadItems(page);
+ });
+
+ }).on('pagebeforeshow', "#photosPage", function () {
+
+ var page = this;
+
+ setQueryPerContext(page);
+
+ var limit = LibraryBrowser.getDefaultPageSize();
+
+ // If the default page size has changed, the start index will have to be reset
+ if (limit != query.Limit) {
+ query.Limit = limit;
+ query.StartIndex = 0;
+ }
+
+ var viewKey = getSavedQueryKey();
+
+ LibraryBrowser.loadSavedQueryValues(viewKey, query);
+ QueryFilters.onPageShow(page, query);
+
+ LibraryBrowser.getSavedViewSetting(viewKey).done(function (val) {
+
+ if (val) {
+ $('#selectView', page).val(val).selectmenu('refresh').trigger('change');
+ } else {
+ reloadItems(page);
+ }
+ });
+
+ }).on('pageshow', "#photosPage", function () {
+
+ updateFilterControls(this);
+ });
+
+})(jQuery, document);
\ No newline at end of file
diff --git a/dashboard-ui/supporter.html b/dashboard-ui/supporter.html
index 13e0b62a46..0a0aacce8b 100644
--- a/dashboard-ui/supporter.html
+++ b/dashboard-ui/supporter.html
@@ -93,7 +93,7 @@
-
+