jellyfin-web/dashboard-ui/scripts/encodingsettings.js

105 lines
3.3 KiB
JavaScript
Raw Normal View History

(function ($, document, window) {
function loadPage(page, config) {
$('#chkEnableDebugEncodingLogging', page).checked(config.EnableDebugEncodingLogging).checkboxradio('refresh');
$('.radioEncodingQuality', page).each(function() {
this.checked = config.MediaEncodingQuality == this.value;
}).checkboxradio('refresh');
$('#txtTranscodingTempPath', page).val(config.TranscodingTempPath || '');
var transcodingTempPath = config.TranscodingTempPath ? true : false;
$('#chkEnableCustomTranscodingTempPath', page).checked(transcodingTempPath).checkboxradio("refresh");
if (transcodingTempPath) {
$('#fldEnterTranscodingTempPath', page).show();
$('#txtTranscodingTempPath', page).attr("required", "required");
} else {
$('#fldEnterTranscodingTempPath', page).hide();
$('#txtTranscodingTempPath', page).removeAttr("required");
}
Dashboard.hideLoadingMsg();
}
$(document).on('pageinit', "#encodingSettingsPage", function () {
var page = this;
$('#btnSelectTranscodingTempPath', page).on("click.selectDirectory", function () {
var picker = new DirectoryBrowser(page);
picker.show({
callback: function (path) {
if (path) {
$('#txtTranscodingTempPath', page).val(path);
}
picker.close();
},
header: "Select Transcoding Temporary Path",
instruction: "Browse or enter the path to use for transcoding temporary files. The folder must be writeable."
});
});
$('#chkEnableCustomTranscodingTempPath', page).on("change.showTranscodingTempPathText", function () {
if (this.checked) {
$('#fldEnterTranscodingTempPath', page).show();
$('#txtTranscodingTempPath', page).attr("required", "required");
} else {
$('#fldEnterTranscodingTempPath', page).hide();
$('#txtTranscodingTempPath', page).removeAttr("required");
}
});
}).on('pageshow', "#encodingSettingsPage", function () {
Dashboard.showLoadingMsg();
var page = this;
ApiClient.getServerConfiguration().done(function (config) {
loadPage(page, config);
});
});
window.EncodingSettingsPage = {
onSubmit: function () {
Dashboard.showLoadingMsg();
var form = this;
ApiClient.getServerConfiguration().done(function (config) {
if ($('#chkEnableCustomTranscodingTempPath', form).checked()) {
config.TranscodingTempPath = $('#txtTranscodingTempPath', form).val();
} else {
config.TranscodingTempPath = '';
}
config.EnableDebugEncodingLogging = $('#chkEnableDebugEncodingLogging', form).checked();
config.MediaEncodingQuality = $('.radioEncodingQuality:checked', form).val();
ApiClient.updateServerConfiguration(config).done(Dashboard.processServerConfigurationUpdateResult);
});
// Disable default form submission
return false;
}
};
})(jQuery, document, window);