diff --git a/dashboard-ui/css/librarybrowser.css b/dashboard-ui/css/librarybrowser.css index 1ddcd415a0..6b330cbd51 100644 --- a/dashboard-ui/css/librarybrowser.css +++ b/dashboard-ui/css/librarybrowser.css @@ -121,7 +121,7 @@ @media all and (min-width: 1600px) { .ehsContent { - width: 1500px; + width: 1440px; } } diff --git a/dashboard-ui/library.html b/dashboard-ui/library.html index 0f2f76177c..13a317a158 100644 --- a/dashboard-ui/library.html +++ b/dashboard-ui/library.html @@ -14,7 +14,7 @@ ${TabAdvanced}
diff --git a/dashboard-ui/scripts/chromecast.js b/dashboard-ui/scripts/chromecast.js index 869fb974bc..630731fe37 100644 --- a/dashboard-ui/scripts/chromecast.js +++ b/dashboard-ui/scripts/chromecast.js @@ -1014,15 +1014,15 @@ }; } - MediaController.registerPlayer(new chromecastPlayer()); + //MediaController.registerPlayer(new chromecastPlayer()); - $(MediaController).on('playerchange', function () { + //$(MediaController).on('playerchange', function () { - if (MediaController.getPlayerInfo().name == PlayerName) { - if (castPlayer.deviceState != DEVICE_STATE.ACTIVE && castPlayer.isInitialized) { - castPlayer.launchApp(); - } - } - }); + // if (MediaController.getPlayerInfo().name == PlayerName) { + // if (castPlayer.deviceState != DEVICE_STATE.ACTIVE && castPlayer.isInitialized) { + // castPlayer.launchApp(); + // } + // } + //}); })(window, window.chrome, console); \ No newline at end of file diff --git a/dashboard-ui/scripts/dashboardpage.js b/dashboard-ui/scripts/dashboardpage.js index 359f306244..46cdf91efb 100644 --- a/dashboard-ui/scripts/dashboardpage.js +++ b/dashboard-ui/scripts/dashboardpage.js @@ -1170,18 +1170,42 @@ $(document).on('pagebeforeshow', "#dashboardPage", DashboardPage.onPageShow) var msg = data; - if (msg.MessageType === "ActivityLogEntryCreated") { + if (msg.MessageType === "ActivityLogEntry") { elem.each(function () { reloadData(this); }); } + + }).on('websocketopen.activityloglistener', function (e, data) { + + startListening(); }); } + function startListening() { + + if (ApiClient.isWebSocketOpen()) { + ApiClient.sendWebSocketMessage("ActivityLogEntryStart", "0,1500"); + } + + } + + function stopListening() { + + if (ApiClient.isWebSocketOpen()) { + ApiClient.sendWebSocketMessage("ActivityLogEntryStop", "0,1500"); + } + + } + function destroyList(elem) { - $(ApiClient).off('websocketmessage.activityloglistener'); + $(ApiClient).off('websocketopen.activityloglistener').off('websocketmessage.activityloglistener'); + + stopListening(); + + return this; } $.fn.activityLogList = function (action) { @@ -1192,6 +1216,8 @@ $(document).on('pagebeforeshow', "#dashboardPage", DashboardPage.onPageShow) createList(this); } + startListening(); + return this; }; diff --git a/dashboard-ui/scripts/favorites.js b/dashboard-ui/scripts/favorites.js index d69dd98776..659a95ed1a 100644 --- a/dashboard-ui/scripts/favorites.js +++ b/dashboard-ui/scripts/favorites.js @@ -22,7 +22,7 @@ SortOrder: "Ascending", IncludeItemTypes: section.types, Filters: "IsFavorite", - Limit: screenWidth >= 1920 ? 8 : (screenWidth >= 1440 ? 8 : 6), + Limit: screenWidth >= 1920 ? 10 : (screenWidth >= 1440 ? 8 : 6), Recursive: true, Fields: "PrimaryImageAspectRatio", CollapseBoxSetItems: false, diff --git a/dashboard-ui/scripts/indexpage.js b/dashboard-ui/scripts/indexpage.js index 50e9c2d76a..ffdecf604c 100644 --- a/dashboard-ui/scripts/indexpage.js +++ b/dashboard-ui/scripts/indexpage.js @@ -278,7 +278,7 @@ SortOrder: "Descending", MediaTypes: "Video", Filters: "IsResumable", - Limit: screenWidth >= 1600 ? 8 : (screenWidth >= 1200 ? 9 : 6), + Limit: screenWidth >= 1920 ? 10 : (screenWidth >= 1600 ? 8 : (screenWidth >= 1200 ? 9 : 6)), Recursive: true, Fields: "PrimaryImageAspectRatio", CollapseBoxSetItems: false, diff --git a/dashboard-ui/scripts/moviesrecommended.js b/dashboard-ui/scripts/moviesrecommended.js index a538971fc5..91fa4103dd 100644 --- a/dashboard-ui/scripts/moviesrecommended.js +++ b/dashboard-ui/scripts/moviesrecommended.js @@ -52,7 +52,7 @@ SortOrder: "Descending", IncludeItemTypes: "Movie", Filters: "IsResumable", - Limit: screenWidth >= 1600 ? 8 : (screenWidth >= 1200 ? 6 : 3), + Limit: screenWidth >= 1920 ? 10 : (screenWidth >= 1600 ? 8 : (screenWidth >= 1200 ? 6 : 3)), Recursive: true, Fields: "PrimaryImageAspectRatio", CollapseBoxSetItems: false, @@ -83,7 +83,7 @@ userId: Dashboard.getCurrentUserId(), categoryLimit: screenWidth >= 1200 ? 4 : 3, - ItemLimit: screenWidth >= 1600 ? 7 : (screenWidth >= 1200 ? 6 : 5), + ItemLimit: screenWidth >= 1920 ? 9 : (screenWidth >= 1600 ? 7 : (screenWidth >= 1200 ? 6 : 5)), Fields: "PrimaryImageAspectRatio" }); diff --git a/dashboard-ui/scripts/musicrecommended.js b/dashboard-ui/scripts/musicrecommended.js index 596f244ee8..626cff7f08 100644 --- a/dashboard-ui/scripts/musicrecommended.js +++ b/dashboard-ui/scripts/musicrecommended.js @@ -11,7 +11,7 @@ var options = { IncludeItemTypes: "Audio", - Limit: screenWidth >= 1600 ? 21 : (screenWidth >= 1200 ? 21 : 12), + Limit: screenWidth >= 1920 ? 24 : (screenWidth >= 1600 ? 21 : (screenWidth >= 1200 ? 21 : 12)), Fields: "PrimaryImageAspectRatio", ParentId: parentId }; @@ -34,7 +34,7 @@ SortBy: "DatePlayed", SortOrder: "Descending", IncludeItemTypes: "Audio", - Limit: screenWidth >= 1600 ? 7 : (screenWidth >= 1200 ? 7 : 6), + Limit: screenWidth >= 1920 ? 8 : (screenWidth >= 1600 ? 7 : (screenWidth >= 1200 ? 7 : 6)), Recursive: true, Fields: "PrimaryImageAspectRatio,AudioInfo", Filters: "IsPlayed", @@ -64,7 +64,7 @@ SortBy: "PlayCount", SortOrder: "Descending", IncludeItemTypes: "Audio", - Limit: screenWidth >= 1600 ? 14 : (screenWidth >= 1200 ? 14 : 12), + Limit: screenWidth >= 1920 ? 16 : (screenWidth >= 1600 ? 14 : (screenWidth >= 1200 ? 14 : 12)), Recursive: true, Fields: "PrimaryImageAspectRatio,AudioInfo", Filters: "IsPlayed", diff --git a/dashboard-ui/scripts/reports.js b/dashboard-ui/scripts/reports.js index be4be87fce..a9e23f9a88 100644 --- a/dashboard-ui/scripts/reports.js +++ b/dashboard-ui/scripts/reports.js @@ -25,135 +25,135 @@ { return [ {}, - { name: 'Series', sortField: 'SeriesSortName,SortName' }, - { name: 'Season', sortField: 'SortName' }, - { name: 'Season Number', sortField: 'IndexNumber' }, - { name: 'Date Added', sortField: 'DateCreated,SortName' } + { name: Globalize.translate('HeaderSeries'), sortField: 'SeriesSortName,SortName', type: 'Series' }, + { name: Globalize.translate('HeaderSeason'), sortField: 'SortName', type: 'Season' }, + { name: Globalize.translate('HeaderSeasonNumber'), type: 'Season Number', sortField: 'IndexNumber' }, + { name: Globalize.translate('HeaderDateAdded'), sortField: 'DateCreated,SortName', type: 'Date Added' } ]; } case 'Series': { return [ {}, - { name: 'Name', sortField: 'SortName' }, - { name: 'Network', sortField: 'Studio,SortName' }, - { name: 'Date Added', sortField: 'DateCreated,SortName' }, - { name: 'Year', sortField: 'ProductionYear,PremiereDate,SortName' }, - { name: 'Parental Rating', sortField: 'OfficialRating,SortName' }, - { name: 'Community Rating', sortField: 'CommunityRating,SortName' }, - { name: 'Runtime', sortField: 'Runtime,SortName' }, - { name: 'Trailers' }, - { name: 'Specials' } + { name: Globalize.translate('HeaderName'), sortField: 'SortName', type: 'Name' }, + { name: Globalize.translate('HeaderNetwork'), sortField: 'Studio,SortName', type: 'Network' }, + { name: Globalize.translate('HeaderDateAdded'), sortField: 'DateCreated,SortName', type: 'Date Added' }, + { name: Globalize.translate('HeaderYear'), sortField: 'ProductionYear,PremiereDate,SortName', type: 'Year' }, + { name: Globalize.translate('HeaderParentalRating'), sortField: 'OfficialRating,SortName', type: 'Parental Rating' }, + { name: Globalize.translate('HeaderCommunityRating'), sortField: 'CommunityRating,SortName', type: 'Community Rating' }, + { name: Globalize.translate('HeaderRuntime'), sortField: 'Runtime,SortName', type: 'Runtime' }, + { name: Globalize.translate('HeaderTrailers'), type: 'Trailers' }, + { name: Globalize.translate('HeaderSpecials'), type: 'Specials' } ]; } case 'Game': { return [ {}, - { name: 'Name', sortField: 'SortName' }, - { name: 'Game System', sortField: 'GameSystem,SortName' }, - { name: 'Date Added', sortField: 'DateCreated,GameSystem,SortName' }, - { name: 'Release Date', sortField: 'ProductionYear,PremiereDate,GameSystem,SortName' }, - { name: 'Parental Rating', sortField: 'OfficialRating,GameSystem,SortName' }, - { name: 'Community Rating', sortField: 'CommunityRating,GameSystem,SortName' }, - { name: 'Players', sortField: 'Players,GameSystem,SortName' }, - { name: 'Trailers' } + { name: Globalize.translate('HeaderName'), sortField: 'SortName', type: 'Name' }, + { name: Globalize.translate('HeaderGameSystem'), sortField: 'GameSystem,SortName', type: 'Game System' }, + { name: Globalize.translate('HeaderDateAdded'), sortField: 'DateCreated,SortName', type: 'Date Added' }, + { name: Globalize.translate('HeaderReleaseDate'), sortField: 'ProductionYear,PremiereDate,GameSystem,SortName', type: 'Release Date' }, + { name: Globalize.translate('HeaderParentalRating'), sortField: 'OfficialRating,SortName', type: 'Parental Rating' }, + { name: Globalize.translate('HeaderCommunityRating'), sortField: 'CommunityRating,SortName', type: 'Community Rating' }, + { name: Globalize.translate('HeaderPlayers'), type: 'Players', sortField: 'Players,GameSystem,SortName' }, + { name: Globalize.translate('HeaderTrailers'), type: 'Trailers' } ]; } case 'Audio': { return [ {}, - { name: 'Album Artist', sortField: 'AlbumArtist,Album,SortName' }, - { name: 'Album', sortField: 'Album,SortName' }, - { name: 'Disc' }, - { name: 'Track' }, - { name: 'Name', sortField: 'Name' }, - { name: 'Date Added', sortField: 'DateCreated,SortName' }, - { name: 'Release Date', sortField: 'ProductionYear,PremiereDate,SortName' }, - { name: 'Runtime', sortField: 'Runtime,SortName' }, - { name: 'Audio' }, - { name: 'Embedded Image' } + { name: Globalize.translate('HeaderAlbumArtist'), sortField: 'AlbumArtist,Album,SortName', type: 'Album Artist' }, + { name: Globalize.translate('HeaderAlbum'), type: 'Album', sortField: 'Album,SortName' }, + { name: Globalize.translate('HeaderDisc'), type: 'Disc' }, + { name: Globalize.translate('HeaderTrack'), type: 'Track' }, + { name: Globalize.translate('HeaderName'), sortField: 'SortName', type: 'Name' }, + { name: Globalize.translate('HeaderDateAdded'), sortField: 'DateCreated,SortName', type: 'Date Added' }, + { name: Globalize.translate('HeaderReleaseDate'), sortField: 'ProductionYear,PremiereDate,SortName', type: 'Release Date' }, + { name: Globalize.translate('HeaderRuntime'), sortField: 'Runtime,SortName', type: 'Runtime' }, + { name: Globalize.translate('HeaderAudio'), type: 'Audio' }, + { name: Globalize.translate('HeaderEmbeddedImage'), type: 'Embedded Image' } ]; } case 'Episode': { return [ {}, - { name: 'Series', sortField: 'SeriesSortName,SortName' }, - { name: 'Season' }, - { name: 'Name', sortField: 'SortName' }, - { name: 'Date Added', sortField: 'DateCreated,SortName' }, - { name: 'Release Date', sortField: 'ProductionYear,PremiereDate,SortName' }, - { name: 'Community Rating', sortField: 'CommunityRating,SortName' }, - { name: 'Runtime', sortField: 'Runtime,SortName' }, - { name: 'Video' }, - { name: 'Resolution' }, - { name: 'Audio' }, - { name: 'Subtitles' } + { name: Globalize.translate('HeaderSeries'), sortField: 'SeriesSortName,SortName', type: 'Series' }, + { name: Globalize.translate('HeaderSeason') }, + { name: Globalize.translate('HeaderName'), sortField: 'SortName', type: 'Name' }, + { name: Globalize.translate('HeaderDateAdded'), sortField: 'DateCreated,SortName', type: 'Date Added' }, + { name: Globalize.translate('HeaderReleaseDate'), sortField: 'ProductionYear,PremiereDate,SortName', type: 'Release Date' }, + { name: Globalize.translate('HeaderCommunityRating'), sortField: 'CommunityRating,SortName', type: 'Community Rating' }, + { name: Globalize.translate('HeaderRuntime'), sortField: 'Runtime,SortName', type: 'Runtime' }, + { name: Globalize.translate('HeaderVideo'), type: 'Video' }, + { name: Globalize.translate('HeaderResolution'), type: 'Resolution' }, + { name: Globalize.translate('HeaderAudio'), type: 'Audio' }, + { name: Globalize.translate('HeaderSubtitles'), type: 'Subtitles' } ]; } case 'BoxSet': { return [ {}, - { name: 'Name', sortField: 'SortName' }, - { name: 'Date Added', sortField: 'DateCreated,SortName' }, - { name: 'Release Date', sortField: 'ProductionYear,PremiereDate,SortName' }, - { name: 'Parental Rating', sortField: 'OfficialRating,SortName' }, - { name: 'Community Rating', sortField: 'CommunityRating,SortName' }, - { name: 'Trailers' } + { name: Globalize.translate('HeaderName'), sortField: 'SortName', type: 'Name' }, + { name: Globalize.translate('HeaderDateAdded'), sortField: 'DateCreated,SortName', type: 'Date Added' }, + { name: Globalize.translate('HeaderReleaseDate'), sortField: 'ProductionYear,PremiereDate,SortName', type: 'Release Date' }, + { name: Globalize.translate('HeaderParentalRating'), sortField: 'OfficialRating,SortName', type: 'Parental Rating' }, + { name: Globalize.translate('HeaderCommunityRating'), sortField: 'CommunityRating,SortName', type: 'Community Rating' }, + { name: Globalize.translate('HeaderTrailers'), type: 'Trailers' } ]; } case 'Book': { return [ {}, - { name: 'Series' }, - { name: 'Name', sortField: 'SortName' }, - { name: 'Date Added', sortField: 'DateCreated,SortName' }, - { name: 'Release Date', sortField: 'ProductionYear,PremiereDate,SortName' }, - { name: 'Parental Rating', sortField: 'OfficialRating,SortName' }, - { name: 'Community Rating', sortField: 'CommunityRating,SortName' } + { name: Globalize.translate('HeaderSeries'), type: 'Series' }, + { name: Globalize.translate('HeaderName'), sortField: 'SortName', type: 'Name' }, + { name: Globalize.translate('HeaderDateAdded'), sortField: 'DateCreated,SortName', type: 'Date Added' }, + { name: Globalize.translate('HeaderReleaseDate'), sortField: 'ProductionYear,PremiereDate,SortName', type: 'Release Date' }, + { name: Globalize.translate('HeaderParentalRating'), sortField: 'OfficialRating,SortName', type: 'Parental Rating' }, + { name: Globalize.translate('HeaderCommunityRating'), sortField: 'CommunityRating,SortName', type: 'Community Rating' } ]; } case 'MusicArtist': { return [ {}, - { name: 'Name', sortField: 'SortName' }, - { name: 'Date Added', sortField: 'DateCreated,SortName' } + { name: Globalize.translate('HeaderName'), sortField: 'SortName', type: 'Name' }, + { name: Globalize.translate('HeaderDateAdded'), sortField: 'DateCreated,SortName', type: 'Date Added' } ]; } case 'MusicAlbum': { return [ {}, - { name: 'Album Artist', sortField: 'AlbumArtist,SortName' }, - { name: 'Name', sortField: 'SortName' }, - { name: 'Date Added', sortField: 'DateCreated,SortName' }, - { name: 'Release Date', sortField: 'ProductionYear,PremiereDate,SortName' }, - { name: 'Parental Rating', sortField: 'OfficialRating,SortName' }, - { name: 'Community Rating', sortField: 'CommunityRating,SortName' }, - { name: 'Runtime', sortField: 'Runtime,SortName' } + { name: Globalize.translate('HeaderAlbumArtist'), sortField: 'AlbumArtist,SortName', type: 'Album Artist' }, + { name: Globalize.translate('HeaderName'), sortField: 'SortName', type: 'Name' }, + { name: Globalize.translate('HeaderDateAdded'), sortField: 'DateCreated,SortName', type: 'Date Added' }, + { name: Globalize.translate('HeaderReleaseDate'), sortField: 'ProductionYear,PremiereDate,SortName', type: 'Release Date' }, + { name: Globalize.translate('HeaderParentalRating'), sortField: 'OfficialRating,SortName', type: 'Parental Rating' }, + { name: Globalize.translate('HeaderCommunityRating'), sortField: 'CommunityRating,SortName', type: 'Community Rating' }, + { name: Globalize.translate('HeaderRuntime'), sortField: 'Runtime,SortName', type: 'Runtime' } ]; } default: { return [ {}, - { name: 'Name', sortField: 'SortName' }, - { name: 'Date Added', sortField: 'DateCreated,SortName' }, - { name: 'Release Date', sortField: 'ProductionYear,PremiereDate,SortName' }, - { name: 'Parental Rating', sortField: 'OfficialRating,SortName' }, - { name: 'Community Rating', sortField: 'CommunityRating,SortName' }, - { name: 'Runtime', sortField: 'Runtime,SortName' }, - { name: 'Video' }, - { name: 'Resolution' }, - { name: 'Audio' }, - { name: 'Subtitles' }, - { name: 'Trailers' }, - { name: 'Specials' } + { name: Globalize.translate('HeaderName'), sortField: 'SortName', type: 'Name' }, + { name: Globalize.translate('HeaderDateAdded'), sortField: 'DateCreated,SortName', type: 'Date Added' }, + { name: Globalize.translate('HeaderReleaseDate'), sortField: 'ProductionYear,PremiereDate,SortName', type: 'Release Date' }, + { name: Globalize.translate('HeaderParentalRating'), sortField: 'OfficialRating,SortName', type: 'Parental Rating' }, + { name: Globalize.translate('HeaderCommunityRating'), sortField: 'CommunityRating,SortName', type: 'Community Rating' }, + { name: Globalize.translate('HeaderRuntime'), sortField: 'Runtime,SortName', type: 'Runtime' }, + { name: Globalize.translate('HeaderVideo'), type: 'Video' }, + { name: Globalize.translate('HeaderResolution'), type: 'Resolution' }, + { name: Globalize.translate('HeaderAudio'), type: 'Audio' }, + { name: Globalize.translate('HeaderSubtitles'), type: 'Subtitles' }, + { name: Globalize.translate('HeaderTrailers'), type: 'Trailers' }, + { name: Globalize.translate('HeaderSpecials'), type: 'Specials' } ]; } } diff --git a/dashboard-ui/scripts/tvrecommended.js b/dashboard-ui/scripts/tvrecommended.js index df07254972..47fee82d4e 100644 --- a/dashboard-ui/scripts/tvrecommended.js +++ b/dashboard-ui/scripts/tvrecommended.js @@ -93,7 +93,7 @@ SortOrder: "Descending", IncludeItemTypes: "Episode", Filters: "IsResumable", - Limit: screenWidth >= 1200 ? 6 : 4, + Limit: screenWidth >= 1920 ? 5 : (screenWidth >= 1200 ? 6 : 4), Recursive: true, Fields: "PrimaryImageAspectRatio,SeriesInfo,UserData", ExcludeLocationTypes: "Virtual", diff --git a/dashboard-ui/wizardlibrary.html b/dashboard-ui/wizardlibrary.html index 58f069b844..951bf554ca 100644 --- a/dashboard-ui/wizardlibrary.html +++ b/dashboard-ui/wizardlibrary.html @@ -19,7 +19,7 @@