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

128 lines
5.5 KiB
JavaScript
Raw Normal View History

define(['jQuery', 'loading', 'globalize', 'emby-button'], function ($, loading, globalize) {
2020-05-04 12:44:12 +02:00
'use strict';
2018-10-23 01:05:09 +03:00
function loadPage(page, config) {
2020-05-04 12:44:12 +02:00
$('.liveTvSettingsForm', page).show();
$('.noLiveTvServices', page).hide();
$('#selectGuideDays', page).val(config.GuideDays || '');
$('#txtPrePaddingMinutes', page).val(config.PrePaddingSeconds / 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('#txtPostProcessor').value = config.RecordingPostProcessor || '';
page.querySelector('#txtPostProcessorArguments').value = config.RecordingPostProcessorArguments || '';
loading.hide();
2018-10-23 01:05:09 +03:00
}
function onSubmit() {
loading.show();
var form = this;
2020-05-04 12:44:12 +02:00
ApiClient.getNamedConfiguration('livetv').then(function (config) {
config.GuideDays = $('#selectGuideDays', form).val() || null;
var recordingPath = form.querySelector('#txtRecordingPath').value || null;
var movieRecordingPath = form.querySelector('#txtMovieRecordingPath').value || null;
var seriesRecordingPath = form.querySelector('#txtSeriesRecordingPath').value || null;
var recordingPathChanged = recordingPath != config.RecordingPath || movieRecordingPath != config.MovieRecordingPath || seriesRecordingPath != config.SeriesRecordingPath;
config.RecordingPath = recordingPath;
config.MovieRecordingPath = movieRecordingPath;
config.SeriesRecordingPath = seriesRecordingPath;
2020-05-04 12:44:12 +02:00
config.RecordingEncodingFormat = 'mkv';
config.PrePaddingSeconds = 60 * $('#txtPrePaddingMinutes', form).val();
config.PostPaddingSeconds = 60 * $('#txtPostPaddingMinutes', form).val();
config.RecordingPostProcessor = $('#txtPostProcessor', form).val();
config.RecordingPostProcessorArguments = $('#txtPostProcessorArguments', form).val();
ApiClient.updateNamedConfiguration('livetv', config).then(function () {
Dashboard.processServerConfigurationUpdateResult();
showSaveMessage(recordingPathChanged);
});
});
return false;
2018-10-23 01:05:09 +03:00
}
function showSaveMessage(recordingPathChanged) {
2020-05-04 12:44:12 +02:00
var msg = '';
if (recordingPathChanged) {
2020-05-04 12:44:12 +02:00
msg += globalize.translate('RecordingPathChangeMessage');
}
if (msg) {
2020-05-04 12:44:12 +02:00
require(['alert'], function (alert) {
alert(msg);
});
}
2018-10-23 01:05:09 +03:00
}
2020-05-04 12:44:12 +02:00
$(document).on('pageinit', '#liveTvSettingsPage', function () {
2018-10-23 01:05:09 +03:00
var page = this;
2020-05-04 12:44:12 +02:00
$('.liveTvSettingsForm').off('submit', onSubmit).on('submit', onSubmit);
$('#btnSelectRecordingPath', page).on('click.selectDirectory', function () {
require(['directorybrowser'], function (directoryBrowser) {
var picker = new directoryBrowser.default();
2018-10-23 01:05:09 +03:00
picker.show({
callback: function (path) {
if (path) {
2020-05-04 12:44:12 +02:00
$('#txtRecordingPath', page).val(path);
}
picker.close();
2018-10-23 01:05:09 +03:00
},
validateWriteable: true
});
});
});
2020-05-04 12:44:12 +02:00
$('#btnSelectMovieRecordingPath', page).on('click.selectDirectory', function () {
require(['directorybrowser'], function (directoryBrowser) {
var picker = new directoryBrowser.default();
2018-10-23 01:05:09 +03:00
picker.show({
callback: function (path) {
if (path) {
2020-05-04 12:44:12 +02:00
$('#txtMovieRecordingPath', page).val(path);
}
picker.close();
2018-10-23 01:05:09 +03:00
},
validateWriteable: true
});
});
});
2020-05-04 12:44:12 +02:00
$('#btnSelectSeriesRecordingPath', page).on('click.selectDirectory', function () {
require(['directorybrowser'], function (directoryBrowser) {
var picker = new directoryBrowser.default();
2018-10-23 01:05:09 +03:00
picker.show({
callback: function (path) {
if (path) {
2020-05-04 12:44:12 +02:00
$('#txtSeriesRecordingPath', page).val(path);
}
picker.close();
2018-10-23 01:05:09 +03:00
},
validateWriteable: true
});
});
});
2020-05-04 12:44:12 +02:00
$('#btnSelectPostProcessorPath', page).on('click.selectDirectory', function () {
require(['directorybrowser'], function (directoryBrowser) {
var picker = new directoryBrowser.default();
2018-10-23 01:05:09 +03:00
picker.show({
includeFiles: true,
callback: function (path) {
if (path) {
2020-05-04 12:44:12 +02:00
$('#txtPostProcessor', page).val(path);
}
picker.close();
2018-10-23 01:05:09 +03:00
}
});
});
});
2020-05-04 12:44:12 +02:00
}).on('pageshow', '#liveTvSettingsPage', function () {
2018-10-23 01:05:09 +03:00
loading.show();
var page = this;
2020-05-04 12:44:12 +02:00
ApiClient.getNamedConfiguration('livetv').then(function (config) {
loadPage(page, config);
});
});
});