1
0
Fork 0
mirror of https://github.com/jellyfin/jellyfin-web synced 2025-03-30 19:56:21 +00:00

update recording saving

This commit is contained in:
Luke Pulverenti 2016-05-04 16:50:47 -04:00
parent 8d12419c5e
commit 0209b950a1
4 changed files with 88 additions and 22 deletions

View file

@ -39,6 +39,23 @@
<div class="fieldDescription">${LabelRecordingPathHelp}</div> <div class="fieldDescription">${LabelRecordingPathHelp}</div>
</div> </div>
<br /> <br />
<div>
<paper-checkbox id="chkEnableRecordingSubfolders">${OptionEnableRecordingSubfolders}</paper-checkbox>
</div>
<div class="hide">
<br />
<paper-input id="txtMovieRecordingPath" label="${LabelMovieRecordingPath}" style="width:84%;display:inline-block;"></paper-input>
<paper-icon-button id="btnSelectMovieRecordingPath" icon="search"></paper-icon-button>
</div>
<div class="hide">
<paper-input id="txtSeriesRecordingPath" label="${LabelSeriesRecordingPath}" style="width:84%;display:inline-block;"></paper-input>
<paper-icon-button id="btnSelectSeriesRecordingPath" icon="search"></paper-icon-button>
</div>
<br />
<div>
<paper-checkbox id="chkOrganize">${OptionSendRecordingsToAutoOrganize}</paper-checkbox>
</div>
<br />
<br /> <br />
<div> <div>
<paper-checkbox id="chkConvertRecordings">${OptionConvertRecordingsToStreamingFormat}</paper-checkbox> <paper-checkbox id="chkConvertRecordings">${OptionConvertRecordingsToStreamingFormat}</paper-checkbox>
@ -52,12 +69,6 @@
</div> </div>
<br /> <br />
<br /> <br />
<div>
<paper-checkbox id="chkOrganize">${OptionSendRecordingsToAutoOrganize}</paper-checkbox>
<div class="fieldDescription paperCheckboxFieldDescription">${OptionSendRecordingsToAutoOrganizeHelp}</div>
</div>
<br />
<br />
<div> <div>
<h1>${HeaderDefaultPadding}</h1> <h1>${HeaderDefaultPadding}</h1>
<div> <div>

View file

@ -12,11 +12,15 @@
$('#chkConvertRecordings', page).checked(config.EnableRecordingEncoding); $('#chkConvertRecordings', page).checked(config.EnableRecordingEncoding);
$('#chkPreserveAudio', page).checked(config.EnableOriginalAudioWithEncodedRecordings || false); $('#chkPreserveAudio', page).checked(config.EnableOriginalAudioWithEncodedRecordings || false);
$('#txtRecordingPath', page).val(config.RecordingPath || '');
$('#txtPrePaddingMinutes', page).val(config.PrePaddingSeconds / 60); $('#txtPrePaddingMinutes', page).val(config.PrePaddingSeconds / 60);
$('#txtPostPaddingMinutes', page).val(config.PostPaddingSeconds / 60); $('#txtPostPaddingMinutes', page).val(config.PostPaddingSeconds / 60);
page.querySelector('#txtRecordingPath').value = config.RecordingPath || '';
page.querySelector('#txtMovieRecordingPath').value = config.MovieRecordingPath || '';
page.querySelector('#txtSeriesRecordingPath').value = config.SeriesRecordingPath || '';
page.querySelector('#chkEnableRecordingSubfolders').checked = config.EnableRecordingSubfolders || false;
Dashboard.hideLoadingMsg(); Dashboard.hideLoadingMsg();
} }
@ -33,10 +37,13 @@
config.EnableAutoOrganize = $('#chkOrganize', form).checked(); config.EnableAutoOrganize = $('#chkOrganize', form).checked();
config.EnableRecordingEncoding = $('#chkConvertRecordings', form).checked(); config.EnableRecordingEncoding = $('#chkConvertRecordings', form).checked();
config.EnableOriginalAudioWithEncodedRecordings = $('#chkPreserveAudio', form).checked(); config.EnableOriginalAudioWithEncodedRecordings = $('#chkPreserveAudio', form).checked();
config.RecordingPath = $('#txtRecordingPath', form).val() || null; config.RecordingPath = form.querySelector('#txtRecordingPath').value || null;
config.MovieRecordingPath = form.querySelector('#txtMovieRecordingPath').value || null;
config.SeriesRecordingPath = form.querySelector('#txtSeriesRecordingPath').value || null;
config.PrePaddingSeconds = $('#txtPrePaddingMinutes', form).val() * 60; config.PrePaddingSeconds = $('#txtPrePaddingMinutes', form).val() * 60;
config.PostPaddingSeconds = $('#txtPostPaddingMinutes', form).val() * 60; config.PostPaddingSeconds = $('#txtPostPaddingMinutes', form).val() * 60;
config.EnableRecordingSubfolders = form.querySelector('#chkEnableRecordingSubfolders').checked;
ApiClient.updateNamedConfiguration("livetv", config).then(Dashboard.processServerConfigurationUpdateResult); ApiClient.updateNamedConfiguration("livetv", config).then(Dashboard.processServerConfigurationUpdateResult);
}); });
@ -86,6 +93,44 @@
}); });
}); });
$('#btnSelectMovieRecordingPath', page).on("click.selectDirectory", function () {
require(['directorybrowser'], function (directoryBrowser) {
var picker = new directoryBrowser();
picker.show({
callback: function (path) {
if (path) {
$('#txtMovieRecordingPath', page).val(path);
}
picker.close();
}
});
});
});
$('#btnSelectSeriesRecordingPath', page).on("click.selectDirectory", function () {
require(['directorybrowser'], function (directoryBrowser) {
var picker = new directoryBrowser();
picker.show({
callback: function (path) {
if (path) {
$('#txtSeriesRecordingPath', page).val(path);
}
picker.close();
}
});
});
});
}).on('pageshow', "#liveTvSettingsPage", function () { }).on('pageshow', "#liveTvSettingsPage", function () {
LibraryMenu.setTabs('livetvadmin', 1, getTabs); LibraryMenu.setTabs('livetvadmin', 1, getTabs);

View file

@ -163,12 +163,14 @@
function getAppInfo() { function getAppInfo() {
if (AppInfo.nativeApp) { var frequency = 86400000;
return Promise.resolve('');
if (AppInfo.isNativeApp) {
frequency = 604800000;
} }
var cacheKey = 'lastappinfopresent5'; var cacheKey = 'lastappinfopresent5';
if ((new Date().getTime() - parseInt(appSettings.get(cacheKey) || '0')) < 86400000) { if ((new Date().getTime() - parseInt(appSettings.get(cacheKey) || '0')) < frequency) {
return Promise.resolve(''); return Promise.resolve('');
} }
@ -180,7 +182,11 @@
return ''; return '';
} }
var infos = [getTheaterInfo, getPremiereInfo]; var infos = [getPremiereInfo];
if (!browserInfo.safari || !AppInfo.isNativeApp) {
infos.push(getTheaterInfo);
}
appSettings.set(cacheKey, new Date().getTime()); appSettings.set(cacheKey, new Date().getTime());
@ -198,7 +204,9 @@
var html = ''; var html = '';
html += '<div>'; html += '<div>';
html += '<h1>Try Emby Theater<paper-icon-button icon="close" onclick="jQuery(this.parentNode.parentNode).remove();" style="margin-left:1em;"></paper-icon-button></h1>'; html += '<h1>Try Emby Theater<paper-icon-button icon="close" onclick="jQuery(this.parentNode.parentNode).remove();" style="margin-left:1em;"></paper-icon-button></h1>';
html += '<p>A beautiful app for your TV and large screen tablet. <a href="https://emby.media/download" target="_blank">Emby Theater</a> runs on Windows, Xbox One, Google Chrome, FireFox, Microsoft Edge and Opera.</p>';
var nameText = AppInfo.isNativeApp ? 'Emby Theater' : '<a href="https://emby.media/download" target="_blank">Emby Theater</a>';
html += '<p>A beautiful app for your TV and large screen tablet. ' + nameText + ' runs on Windows, Xbox One, Google Chrome, FireFox, Microsoft Edge and Opera.</p>';
html += '<div class="itemsContainer">'; html += '<div class="itemsContainer">';
html += getCard('https://raw.githubusercontent.com/MediaBrowser/Emby.Resources/master/apps/theater1.png', 'https://emby.media/download'); html += getCard('https://raw.githubusercontent.com/MediaBrowser/Emby.Resources/master/apps/theater1.png', 'https://emby.media/download');
html += getCard('https://raw.githubusercontent.com/MediaBrowser/Emby.Resources/master/apps/theater2.png', 'https://emby.media/download'); html += getCard('https://raw.githubusercontent.com/MediaBrowser/Emby.Resources/master/apps/theater2.png', 'https://emby.media/download');
@ -214,7 +222,10 @@
var html = ''; var html = '';
html += '<div>'; html += '<div>';
html += '<h1>Try Emby Premiere<paper-icon-button icon="close" onclick="jQuery(this.parentNode.parentNode).remove();" style="margin-left:1em;"></paper-icon-button></h1>'; html += '<h1>Try Emby Premiere<paper-icon-button icon="close" onclick="jQuery(this.parentNode.parentNode).remove();" style="margin-left:1em;"></paper-icon-button></h1>';
html += '<p>Design beautiful Cover Art, enjoy free access to Emby apps, and more. <a href="https://emby.media/premiere" target="_blank">Learn more</a></p>';
var learnMoreText = AppInfo.isNativeApp ? '' : '<a href="https://emby.media/premiere" target="_blank">Learn more</a>';
html += '<p>Design beautiful Cover Art, enjoy free access to Emby apps, and more. ' + learnMoreText + '</p>';
html += '<div class="itemsContainer">'; html += '<div class="itemsContainer">';
html += getCard('https://raw.githubusercontent.com/MediaBrowser/Emby.Resources/master/apps/theater1.png', 'https://emby.media/premiere'); html += getCard('https://raw.githubusercontent.com/MediaBrowser/Emby.Resources/master/apps/theater1.png', 'https://emby.media/premiere');
html += getCard('https://raw.githubusercontent.com/MediaBrowser/Emby.Resources/master/apps/theater2.png', 'https://emby.media/premiere'); html += getCard('https://raw.githubusercontent.com/MediaBrowser/Emby.Resources/master/apps/theater2.png', 'https://emby.media/premiere');

View file

@ -347,8 +347,10 @@
"LabelCustomPaths": "Specify custom paths where desired. Leave fields empty to use the defaults.", "LabelCustomPaths": "Specify custom paths where desired. Leave fields empty to use the defaults.",
"LabelCachePath": "Cache path:", "LabelCachePath": "Cache path:",
"LabelCachePathHelp": "Specify a custom location for server cache files, such as images. Leave blank to use the server default.", "LabelCachePathHelp": "Specify a custom location for server cache files, such as images. Leave blank to use the server default.",
"LabelRecordingPath": "Recording path:", "LabelRecordingPath": "Default recording path:",
"LabelRecordingPathHelp": "Specify a custom location to save recordings. Leave blank to use the server default.", "LabelMovieRecordingPath": "Movie recording path (optional):",
"LabelSeriesRecordingPath": "Series recording path (optional):",
"LabelRecordingPathHelp": "Specify the default location to save recordings. If left empty, the server's program data folder will be used.",
"LabelImagesByNamePath": "Images by name path:", "LabelImagesByNamePath": "Images by name path:",
"LabelImagesByNamePathHelp": "Specify a custom location for downloaded actor, genre and studio images.", "LabelImagesByNamePathHelp": "Specify a custom location for downloaded actor, genre and studio images.",
"LabelMetadataPath": "Metadata path:", "LabelMetadataPath": "Metadata path:",
@ -1486,14 +1488,11 @@
"MessageActiveSubscriptionRequiredSeriesRecordings": "An active Emby Premiere subscription is required in order to create automated series recordings.", "MessageActiveSubscriptionRequiredSeriesRecordings": "An active Emby Premiere subscription is required in order to create automated series recordings.",
"HeaderSetupTVGuide": "Setup TV Guide", "HeaderSetupTVGuide": "Setup TV Guide",
"LabelDataProvider": "Data provider:", "LabelDataProvider": "Data provider:",
"OptionSendRecordingsToAutoOrganize": "Enable Auto-Organize for new recordings", "OptionSendRecordingsToAutoOrganize": "Automatically organize recordings into existing series folders in other libraries",
"OptionSendRecordingsToAutoOrganizeHelp": "New recordings will be sent to the Auto-Organize feature and imported into your media library.",
"HeaderDefaultPadding": "Default Padding", "HeaderDefaultPadding": "Default Padding",
"OptionEnableRecordingSubfolders": "Create sub-folders for categories such as Sports, Kids, etc.",
"HeaderSubtitles": "Subtitles", "HeaderSubtitles": "Subtitles",
"HeaderVideos": "Videos", "HeaderVideos": "Videos",
"OptionEnableVideoFrameAnalysis": "Enable frame by frame video analysis",
"OptionEnableVideoFrameAnalysisHelp": "Extract detailed information about videos that can be used to make transcoding as efficient as possible. This will cause library scans to take longer.",
"LabelVideoFrameAnalysisLimit": "Limit frame by frame analysis to videos less than:",
"LabelHardwareAccelerationType": "Hardware acceleration:", "LabelHardwareAccelerationType": "Hardware acceleration:",
"LabelHardwareAccelerationTypeHelp": "Available on supported systems only.", "LabelHardwareAccelerationTypeHelp": "Available on supported systems only.",
"ButtonServerDashboard": "Server Dashboard", "ButtonServerDashboard": "Server Dashboard",