diff --git a/src/components/libraryoptionseditor/libraryoptionseditor.js b/src/components/libraryoptionseditor/libraryoptionseditor.js
index fd726d4150..b282697cb4 100644
--- a/src/components/libraryoptionseditor/libraryoptionseditor.js
+++ b/src/components/libraryoptionseditor/libraryoptionseditor.js
@@ -530,6 +530,7 @@ export function getLibraryOptions(parent) {
EnableRealtimeMonitor: parent.querySelector('.chkEnableRealtimeMonitor').checked,
EnableLUFSScan: parent.querySelector('.chkEnableLUFSScan').checked,
ExtractTrickplayImagesDuringLibraryScan: parent.querySelector('.chkExtractTrickplayDuringLibraryScan').checked,
+ SaveTrickplayWithMedia: parent.querySelector('.chkSaveTrickplayLocally').checked,
EnableTrickplayImageExtraction: parent.querySelector('.chkExtractTrickplayImages').checked,
ExtractChapterImagesDuringLibraryScan: parent.querySelector('.chkExtractChaptersDuringLibraryScan').checked,
EnableChapterImageExtraction: parent.querySelector('.chkExtractChapterImages').checked,
@@ -597,6 +598,7 @@ export function setLibraryOptions(parent, options) {
parent.querySelector('.chkEnableLUFSScan').checked = options.EnableLUFSScan;
parent.querySelector('.chkExtractTrickplayDuringLibraryScan').checked = options.ExtractTrickplayImagesDuringLibraryScan;
parent.querySelector('.chkExtractTrickplayImages').checked = options.EnableTrickplayImageExtraction;
+ parent.querySelector('.chkSaveTrickplayLocally').checked = options.SaveTrickplayWithMedia;
parent.querySelector('.chkExtractChaptersDuringLibraryScan').checked = options.ExtractChapterImagesDuringLibraryScan;
parent.querySelector('.chkExtractChapterImages').checked = options.EnableChapterImageExtraction;
parent.querySelector('#chkSaveLocal').checked = options.SaveLocalMetadata;
diff --git a/src/components/libraryoptionseditor/libraryoptionseditor.template.html b/src/components/libraryoptionseditor/libraryoptionseditor.template.html
index b1d358cc02..6f6cbb918c 100644
--- a/src/components/libraryoptionseditor/libraryoptionseditor.template.html
+++ b/src/components/libraryoptionseditor/libraryoptionseditor.template.html
@@ -129,6 +129,14 @@
diff --git a/src/components/refreshdialog/refreshdialog.js b/src/components/refreshdialog/refreshdialog.js
index 3a17208d7a..65997a31a1 100644
--- a/src/components/refreshdialog/refreshdialog.js
+++ b/src/components/refreshdialog/refreshdialog.js
@@ -33,6 +33,11 @@ function getEditorHtml() {
html += '
' + globalize.translate('ReplaceExistingImages') + '';
html += '';
+ html += '
';
+
html += '
';
html += globalize.translate('RefreshDialogHelp');
html += '
';
@@ -71,14 +76,15 @@ function onSubmit(e) {
const mode = dlg.querySelector('#selectMetadataRefreshMode').value === 'scan' ? 'Default' : 'FullRefresh';
const replaceAllImages = mode === 'FullRefresh' && dlg.querySelector('.chkReplaceImages').checked;
+ const replaceTrickplayImages = mode === 'FullRefresh' && dlg.querySelector('.chkReplaceTrickplayImages').checked;
options.itemIds.forEach(function (itemId) {
apiClient.refreshItem(itemId, {
-
Recursive: true,
ImageRefreshMode: mode,
MetadataRefreshMode: mode,
ReplaceAllImages: replaceAllImages,
+ RegenerateTrickplay: replaceTrickplayImages,
ReplaceAllMetadata: replaceAllMetadata
});
});
@@ -134,8 +140,10 @@ class RefreshDialog {
dlg.querySelector('#selectMetadataRefreshMode').addEventListener('change', function () {
if (this.value === 'scan') {
dlg.querySelector('.fldReplaceExistingImages').classList.add('hide');
+ dlg.querySelector('.fldReplaceTrickplayImages').classList.add('hide');
} else {
dlg.querySelector('.fldReplaceExistingImages').classList.remove('hide');
+ dlg.querySelector('.fldReplaceTrickplayImages').classList.remove('hide');
}
});
diff --git a/src/strings/en-us.json b/src/strings/en-us.json
index 642d082cc7..7cf956c5f7 100644
--- a/src/strings/en-us.json
+++ b/src/strings/en-us.json
@@ -844,6 +844,8 @@
"LabelRuntimeMinutes": "Runtime",
"LabelSaveLocalMetadata": "Save artwork into media folders",
"LabelSaveLocalMetadataHelp": "Saving artwork into media folders will put them in a place where they can be easily edited.",
+ "LabelSaveTrickplayLocally": "Save trickplay images next to media",
+ "LabelSaveTrickplayLocallyHelp": "Saving trickplay images into media folders will put them next to your media for easy migration and access.",
"LabelScheduledTaskLastRan": "Last ran {0}, taking {1}.",
"LabelScreensaver": "Screensaver",
"LabelSeasonNumber": "Season number",
@@ -1390,6 +1392,7 @@
"RepeatOne": "Repeat one",
"ReplaceAllMetadata": "Replace all metadata",
"ReplaceExistingImages": "Replace existing images",
+ "ReplaceTrickplayImages": "Replace existing trickplay images",
"Reset": "Reset",
"ResetPassword": "Reset Password",
"ResolutionMatchSource": "Match Source",