1 line
No EOL
8.4 KiB
JavaScript
1 line
No EOL
8.4 KiB
JavaScript
import BaseTab from"./../modules/tabbedview/basetab.js";import loading from"./../modules/loading/loading.js";import globalize from"./../modules/common/globalize.js";import"./../modules/emby-elements/emby-input/emby-input.js";import"./../modules/emby-elements/emby-button/emby-button.js";import"./../modules/emby-elements/emby-checkbox/emby-checkbox.js";import"./../modules/emby-elements/emby-select/emby-select.js";import formHelper from"./../modules/common/responsehelper.js";function showAlert(options){return Emby.importModule("./modules/common/dialogs/alert.js").then(function(alert){return alert(options)})}function loadPage(page,config){page.querySelector(".selectGuideDays").value=config.GuideDays||"",page.querySelector(".selectBufferSize").value=(config.BufferLimitInMinutes||0)/60,page.querySelector(".txtPrePaddingMinutes").value=config.PrePaddingSeconds/60,page.querySelector(".txtPostPaddingMinutes").value=config.PostPaddingSeconds/60,page.querySelector(".txtRecordingPath").value=config.RecordingPath||"",page.querySelector(".txtMovieRecordingPath").value=config.MovieRecordingPath||"",page.querySelector(".txtSeriesRecordingPath").value=config.SeriesRecordingPath||"",config.RecordingFolderId?page.querySelector(".selectRecordingFolder").setValues([config.RecordingFolderId]):page.querySelector(".selectRecordingFolder").setValues([],null,[{Id:"",Name:""}]),config.MovieRecordingFolderId?page.querySelector(".selectMovieRecordingFolder").setValues([config.MovieRecordingFolderId]):page.querySelector(".selectMovieRecordingFolder").setValues([],null,[{Id:"",Name:""}]),config.SeriesRecordingFolderId?page.querySelector(".selectSeriesRecordingFolder").setValues([config.SeriesRecordingFolderId]):page.querySelector(".selectSeriesRecordingFolder").setValues([],null,[{Id:"",Name:""}]),page.querySelector(".txtPostProcessor").value=config.RecordingPostProcessor||"",page.querySelector(".txtPostProcessorArguments").value=config.RecordingPostProcessorArguments||"",page.querySelector(".chkWakeServer").checked=null==config.WakeServer||config.WakeServer,loading.hide()}function onSubmit(e){loading.show();let form=this;return ApiClient.getNamedConfiguration("livetv").then(function(config){config.GuideDays=form.querySelector(".selectGuideDays").value||null,config.BufferLimitInMinutes=60*parseInt(form.querySelector(".selectBufferSize").value);var recordingPath=form.querySelector(".txtRecordingPath").value||void 0,movieRecordingPath=form.querySelector(".txtMovieRecordingPath").value||void 0,seriesRecordingPath=form.querySelector(".txtSeriesRecordingPath").value||void 0;let recordingPathChanged=recordingPath!==config.RecordingPath||movieRecordingPath!==config.MovieRecordingPath||seriesRecordingPath!==config.SeriesRecordingPath;config.RecordingPath=recordingPath,config.MovieRecordingPath=movieRecordingPath,config.SeriesRecordingPath=seriesRecordingPath,config.RecordingFolderId=form.querySelector(".selectRecordingFolder").value||null,config.MovieRecordingFolderId=form.querySelector(".selectMovieRecordingFolder").value||null,config.SeriesRecordingFolderId=form.querySelector(".selectSeriesRecordingFolder").value||null,config.WakeServer=form.querySelector(".chkWakeServer").checked,config.RecordingEncodingFormat="mkv",config.PrePaddingSeconds=60*form.querySelector(".txtPrePaddingMinutes").value,config.PostPaddingSeconds=60*form.querySelector(".txtPostPaddingMinutes").value,config.RecordingPostProcessor=form.querySelector(".txtPostProcessor").value,config.RecordingPostProcessorArguments=form.querySelector(".txtPostProcessorArguments").value,ApiClient.updateNamedConfiguration("livetv",config).then(function(){formHelper.handleConfigurationSavedResponse(),showSaveMessage(recordingPathChanged)})}),e.preventDefault(),e.stopPropagation(),!1}function showSaveMessage(recordingPathChanged){let msg="";recordingPathChanged&&(msg+=globalize.translate("RecordingPathChangeMessage")),msg&&showAlert(msg)}function getRecordingFoldersFromPropertyName(instance,query,propertyName){return instance.getAvailableRecordingOptions().then(function(availableRecordingOptions){var availableRecordingOptions=availableRecordingOptions[propertyName].slice(0),total=availableRecordingOptions.length;return availableRecordingOptions.unshift({Name:"",Type:"Folder",Id:"",ServerId:instance.getApiClient().serverId()}),{TotalRecordCount:total+=1,Items:availableRecordingOptions}})}function getRecordingFolders(query){return getRecordingFoldersFromPropertyName(this,query,"RecordingFolders")}function getMovieRecordingFolders(query){return getRecordingFoldersFromPropertyName(this,query,"MovieRecordingFolders")}function getSeriesRecordingFolders(query){return getRecordingFoldersFromPropertyName(this,query,"SeriesRecordingFolders")}function View(view,params){BaseTab.apply(this,arguments)}function showOrHideAll(page,className,show){let i,length;var elems="string"==typeof className?page.querySelectorAll("."+className):className;for(i=0,length=elems.length;i<length;i++)show?elems[i].classList.remove("hide"):elems[i].classList.add("hide")}Object.assign(View.prototype,BaseTab.prototype),View.prototype.onResume=function(options){BaseTab.prototype.onResume.apply(this,arguments),loading.show();let view=this.view;ApiClient.getSystemInfo().then(function(systemInfo){systemInfo.SupportsWakeServer?view.querySelector(".fldWakeServer").classList.remove("hide"):view.querySelector(".fldWakeServer").classList.add("hide")}),ApiClient.getNamedConfiguration("livetv").then(function(config){loadPage(view,config)})},View.prototype.getAvailableRecordingOptions=function(){return this._availableRecordingOptions||(this._availableRecordingOptions=this.getApiClient().getAvailableRecordingOptions())},View.prototype.loadTemplate=function(){return require(["text!livetvsetup/advancedtab.html"])},View.prototype.onTemplateLoaded=function(){BaseTab.prototype.onTemplateLoaded.apply(this,arguments);let page=this.view;page.querySelector(".liveTvSettingsForm").addEventListener("submit",onSubmit),page.querySelector(".btnSelectRecordingPath").addEventListener("click",function(){Emby.importModule("./modules/directorybrowser/directorybrowser.js").then(function(directoryBrowser){let picker=new directoryBrowser;picker.show({callback:function(path){path&&(page.querySelector(".txtRecordingPath").value=path),picker.close()},validateWriteable:!0})})}),page.querySelector(".btnSelectMovieRecordingPath").addEventListener("click",function(){Emby.importModule("./modules/directorybrowser/directorybrowser.js").then(function(directoryBrowser){let picker=new directoryBrowser;picker.show({callback:function(path){path&&(page.querySelector(".txtMovieRecordingPath").value=path),picker.close()},validateWriteable:!0})})}),page.querySelector(".btnSelectSeriesRecordingPath").addEventListener("click",function(){Emby.importModule("./modules/directorybrowser/directorybrowser.js").then(function(directoryBrowser){let picker=new directoryBrowser;picker.show({callback:function(path){path&&(page.querySelector(".txtSeriesRecordingPath").value=path),picker.close()},validateWriteable:!0})})}),page.querySelector(".btnSelectPostProcessorPath").addEventListener("click",function(){Emby.importModule("./modules/directorybrowser/directorybrowser.js").then(function(directoryBrowser){let picker=new directoryBrowser;picker.show({includeFiles:!0,callback:function(path){path&&(page.querySelector(".txtPostProcessor").value=path),picker.close()}})})});var extraPostProcessingArgs=[],extraPostProcessingArgsElem=page.querySelector(".extraPostProcessingArgs");extraPostProcessingArgs.push("{channelname}"),extraPostProcessingArgs.push("{channelnumber}"),extraPostProcessingArgsElem.innerHTML=extraPostProcessingArgs.join("<br/>"),extraPostProcessingArgs.length?extraPostProcessingArgsElem.classList.remove("hide"):extraPostProcessingArgsElem.classList.add("hide"),page.querySelector(".selectRecordingFolder").getItems=getRecordingFolders.bind(this),page.querySelector(".selectMovieRecordingFolder").getItems=getMovieRecordingFolders.bind(this),page.querySelector(".selectSeriesRecordingFolder").getItems=getSeriesRecordingFolders.bind(this),this.getApiClient().isMinServerVersion("4.8.0.58")?(showOrHideAll(page,"fldRecordingFolderById",!0),showOrHideAll(page,"fldRecordingFolderByPath",!1)):(showOrHideAll(page,"fldRecordingFolderById",!1),showOrHideAll(page,"fldRecordingFolderByPath",!0)),this.getApiClient().isMinServerVersion("4.8.0.68")?showOrHideAll(page,"fldBufferSize",!0):showOrHideAll(page,"fldBufferSize",!1)},View.prototype.destroy=function(){BaseTab.prototype.destroy.apply(this,arguments),this._availableRecordingOptions=null};export default View; |