diff --git a/src/components/appRouter.js b/src/components/appRouter.js
index 62ba350ed8..db94715ede 100644
--- a/src/components/appRouter.js
+++ b/src/components/appRouter.js
@@ -752,7 +752,13 @@ class AppRouter {
}
if (item === 'nextup') {
- return '#!/list.html?type=nextup&serverId=' + options.serverId;
+ let url = '#!/list.html?type=nextup&serverId=' + options.serverId;
+
+ if (options.rewatching) {
+ url += '&rewatching=' + options.rewatching;
+ }
+
+ return url;
}
if (item === 'list') {
diff --git a/src/components/homesections/homesections.js b/src/components/homesections/homesections.js
index 94f0e2d3aa..68e858c6f9 100644
--- a/src/components/homesections/homesections.js
+++ b/src/components/homesections/homesections.js
@@ -600,7 +600,7 @@ import ServerConnections from '../ServerConnections';
});
}
- function getNextUpFetchFn(serverId, userSettings) {
+ function getNextUpFetchFn(serverId, userSettings, rewatching) {
return function () {
const apiClient = ServerConnections.getApiClient(serverId);
const oldestDateForNextUp = new Date();
@@ -613,7 +613,8 @@ import ServerConnections from '../ServerConnections';
EnableImageTypes: 'Primary,Backdrop,Banner,Thumb',
EnableTotalRecordCount: false,
DisableFirstEpisode: false,
- NextUpDateCutoff: oldestDateForNextUp.toISOString()
+ NextUpDateCutoff: oldestDateForNextUp.toISOString(),
+ Rewatching: rewatching
});
};
}
@@ -639,21 +640,32 @@ import ServerConnections from '../ServerConnections';
};
}
- function loadNextUp(elem, apiClient, userSettings) {
+ function renderNextUpSection(elem, apiClient, userSettings, rewatching) {
let html = '';
html += '
';
@@ -673,11 +685,27 @@ import ServerConnections from '../ServerConnections';
elem.innerHTML = html;
const itemsContainer = elem.querySelector('.itemsContainer');
- itemsContainer.fetchData = getNextUpFetchFn(apiClient.serverId(), userSettings);
+ itemsContainer.fetchData = getNextUpFetchFn(apiClient.serverId(), userSettings, rewatching);
itemsContainer.getItemsHtml = getNextUpItemsHtmlFn(userSettings.useEpisodeImagesInNextUpAndResume());
itemsContainer.parentContainer = elem;
}
+ function loadNextUp(elem, apiClient, userSettings) {
+ elem.classList.remove('verticalSection');
+
+ for (let i = 0; i <= 1; i++) {
+
+ const frag = document.createElement('div');
+ frag.classList.add('verticalSection');
+ frag.classList.add('hide');
+ elem.appendChild(frag);
+
+ // 0 pass is regular next up
+ // 1 pass is rewatching next up
+ renderNextUpSection(frag, apiClient, userSettings, i == 1);
+ }
+ }
+
function getLatestRecordingsFetchFn(serverId, activeRecordingsOnly) {
return function () {
const apiClient = ServerConnections.getApiClient(serverId);
diff --git a/src/controllers/list.js b/src/controllers/list.js
index 6d1499366a..245d4507dc 100644
--- a/src/controllers/list.js
+++ b/src/controllers/list.js
@@ -256,7 +256,8 @@ import { appRouter } from '../components/appRouter';
ImageTypeLimit: 1,
EnableImageTypes: 'Primary,Backdrop,Thumb',
EnableTotalRecordCount: false,
- SortBy: sortBy
+ SortBy: sortBy,
+ Rewatching: params.rewatching
}));
}
@@ -615,6 +616,9 @@ class ItemsView {
}
if (params.type === 'nextup') {
+ if (params.rewatching === 'true') {
+ return globalize.translate('NextUpRewatching');
+ }
return globalize.translate('NextUp');
}
diff --git a/src/strings/en-us.json b/src/strings/en-us.json
index f1144e8f40..45e3f2c01c 100644
--- a/src/strings/en-us.json
+++ b/src/strings/en-us.json
@@ -1125,6 +1125,7 @@
"NextChapter": "Next chapter",
"NextTrack": "Skip to next",
"NextUp": "Next Up",
+ "NextUpRewatching": "Rewatching",
"No": "No",
"NoCreatedLibraries": "Seems like you haven't created any libraries yet. {0}Would you like to create one now?{1}",
"None": "None",