1 line
11 KiB
JavaScript
1 line
11 KiB
JavaScript
define(["exports","./../approuter.js","./../dom.js","./../common/globalize.js","./../common/datetime.js","./../emby-apiclient/connectionmanager.js","./../layoutmanager.js","./../dialoghelper/dialoghelper.js","./../emby-elements/emby-button/emby-button.js","./../emby-elements/emby-input/emby-input.js","./../emby-elements/emby-select/emby-select.js","./../common/usersettings/usersettings.js","./../common/methodtimer.js","./../registrationservices/registrationservices.js","./../loading/loading.js","./../emby-elements/emby-itemscontainer/emby-itemscontainer.js","./../listview/listview.js"],function(_exports,_approuter,_dom,_globalize,_datetime,_connectionmanager,_layoutmanager,_dialoghelper,_embyButton,_embyInput,_embySelect,_usersettings,_methodtimer,_registrationservices,_loading,_embyItemscontainer,_listview){function updateTimerFromForm(form,timerInfo){var dlg=form.closest(".recordingDialog"),_form$querySelector$v=(timerInfo.Name=form.querySelector(".txtName").value,timerInfo.StartDate=null==(_form$querySelector$v=form.querySelector(".txtStartTime").valueAsDateUtc)?void 0:_form$querySelector$v.toISOString(),timerInfo.EndDate=null==(_form$querySelector$v=form.querySelector(".txtEndTime").valueAsDateUtc)?void 0:_form$querySelector$v.toISOString(),"recurring"===form.querySelector(".selectFrequency").value),creatingSeries=_form$querySelector$v||"Keyword"===dlg.timerType;return creatingSeries?(timerInfo.Days=form.querySelector(".selectAirDays").getValues(),timerInfo.ChannelIds=form.querySelector(".selectChannel").getValues()):timerInfo.ChannelId=form.querySelector(".selectChannel").singleValue,"Keyword"===dlg.timerType&&(dlg=[],form.querySelector(".txtKeyword").value&&dlg.push({KeywordType:form.querySelector(".selectKeywordType").value,Keyword:form.querySelector(".txtKeyword").value}),timerInfo.Keywords=dlg,timerInfo.RecordAnyTime=!0,timerInfo.Recurring=_form$querySelector$v,timerInfo.RecordNewOnly=!1),creatingSeries}function onFormSubmit(e){e.preventDefault();var form=this,dlg=(_loading.default.show(),form.closest(".recordingDialog")),apiClient=dlg.item?_connectionmanager.default.getApiClient(dlg.item):_connectionmanager.default.getApiClient(dlg.options.serverId);return apiClient.getNewLiveTvTimerDefaults({}).then(function(defaults){defaults=Object.assign(defaults,{});(updateTimerFromForm(form,defaults)?apiClient.createLiveTvSeriesTimer(defaults):apiClient.createLiveTvTimer(defaults)).then(function(){var options;_loading.default.hide(),options=_globalize.default.translate("RecordingScheduled"),Emby.importModule("./modules/toast/toast.js").then(function(toast){return toast(options)}),_dialoghelper.default.close(dlg)})}),!1}function onStartTimeChanged(){var form=this.closest("form"),form=form.querySelector(".txtEndTime"),minTime=this.valueAsNumberUtc||Date.now();form.minDateTimeLocal=minTime+=6e4,(!form.valueAsNumberUtc||form.valueAsNumberUtc<=minTime)&&(minTime+=174e4,form.valueAsNumberUtc=Math.max(form.valueAsNumberUtc||minTime,minTime))}function onMinStartTimeTimer(){var minTime=Date.now(),txtStartTime=this.querySelector(".txtStartTime");txtStartTime!==document.activeElement&&(txtStartTime.minDateTimeLocal=minTime,txtStartTime.valueAsNumberUtc=Math.max(txtStartTime.valueAsNumberUtc||minTime,minTime),onStartTimeChanged.call(txtStartTime))}function getAirDaysItems(query){for(var date=new Date;0<date.getDay();)date.setDate(date.getDate()-1);for(var days=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],items=[],i=0,length=days.length;i<length;i++)items.push({Id:days[i],Name:_datetime.default.toLocaleDateString(date,{weekday:"long"})}),date.setDate(date.getDate()+1);var totalRecordCount=(items=query.Ids?items.filter(function(item){return query.Ids.includes(item.Id)}):items).length,items=items.slice(query.StartIndex||0);return query.StartIndex&&items.length>query.StartIndex&&(items.length=query.StartIndex),Promise.resolve({TotalRecordCount:totalRecordCount,Items:items})}function onFrequencyChange(e){var dlg=this.closest(".recordingDialog"),fldAirDays=dlg.querySelector(".fldAirDays");"recurring"===this.value||"Keyword"===dlg.timerType?fldAirDays.classList.remove("hide"):fldAirDays.classList.add("hide")}function closeDialog(){_dialoghelper.default.close(this.closest(".recordingDialog"))}function getPreviewListOptions(){return{renderer:_listview.default,options:{enableUserDataButtons:!1,image:!0,mediaInfo:!1,imageSize:"smaller",moreButton:!1,recordButton:!1,draggable:!1,multiSelect:!1,hoverPlayButton:!1,fields:["ParentName","Name","StartToEndDateTime","ChannelName"],action:"none"}}}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,require(["formDialogStyle"]);function initDialog(context,apiClient,item,timerType){var selectChannel=context.querySelector(".selectChannel"),selectFrequency=(selectChannel.getItems=function(query){return query=Object.assign({UserId:this.getCurrentUserId(),EnableUserData:!1},query),_usersettings.default.addLiveTvChannelSortingToQuery(query,_globalize.default),this.getLiveTvChannels(query)}.bind(apiClient),context.querySelector(".selectAirDays").getItems=getAirDaysItems,context.querySelector(".selectFrequency")),txtStartTime=("DateTime"===timerType?(context.querySelector(".fldChannel").classList.remove("hide"),context.querySelector(".fldStartTime").classList.remove("hide"),context.querySelector(".fldEndTime").classList.remove("hide"),selectChannel.setAttribute("required","required"),selectChannel.removeAttribute("multiple"),selectChannel.setAttribute("label",_globalize.default.translate("LabelChannel")),(txtStartTime=context.querySelector(".txtStartTime")).setAttribute("required","required"),txtStartTime.addEventListener("change",onStartTimeChanged),context.querySelector(".txtEndTime").setAttribute("required","required"),function(context){context.minStartTimeTimer=new _methodtimer.default({onInterval:onMinStartTimeTimer.bind(context),timeoutMs:3e4,type:"interval"})}(context),onMinStartTimeTimer.call(context),selectChannel.singleValue=(null==item?void 0:item.Id)||""):"Keyword"===timerType&&(context.querySelector(".fldChannel").classList.remove("hide"),context.querySelector(".fldKeyword").classList.remove("hide"),context.querySelector(".txtKeyword").setAttribute("required","required"),context.querySelector(".fldKeywordType").classList.remove("hide"),context.querySelector(".selectKeywordType").setAttribute("required","required"),context.querySelector(".txtKeyword").setAttribute("required","required"),selectFrequency.value="recurring",selectChannel.values=item?[item.Id]:[]),context.querySelector(".previewitemsContainer"));txtStartTime.fetchData=function(query){var keywords,context=this.context,apiClient=this.apiClient;return"Keyword"===context.timerType&&apiClient.isMinServerVersion("4.8.0.11")&&(updateTimerFromForm(context,context={}),(keywords=context.Keywords).length)?apiClient.getLiveTvPrograms(Object.assign({ChannelIds:(context.ChannelIds||(context.ChannelId?[context.ChannelId]:[])).join(","),UserId:apiClient.getCurrentUserId(),HasAired:!1,SortBy:"StartDate",ImageTypeLimit:1,EnableUserData:!1,Fields:"PrimaryImageAspectRatio",Limit:20,AirDays:context.Days&&context.Days.length?context.Days:null,RecordingKeyword:keywords[0].Keyword,RecordingKeywordType:keywords[0].KeywordType},query)):Promise.resolve({Items:[],TotalRecordCount:0})}.bind({timerType:timerType,apiClient:apiClient,context:context}),txtStartTime.getListOptions=getPreviewListOptions,txtStartTime.parentContainer=txtStartTime.closest(".previewContainer"),txtStartTime.afterRefresh=function(result){this.querySelector(".previewCountText").innerHTML=_globalize.default.translate("ResultsRangeValue",1,result.Items.length,result.TotalRecordCount)}.bind(context),selectFrequency.addEventListener("change",onFrequencyChange),context.querySelector(".selectAirDays").values=[],context.querySelector("form").addEventListener("submit",onFormSubmit),context.querySelector(".btnCancel").addEventListener("click",closeDialog),onFrequencyChange.call(selectFrequency)}function onItemsContainerUpgraded(){this.resume({refresh:!0})}function onValueChange(e){e.target.classList.contains("txtName")||this.querySelector(".itemsContainer").notifyRefreshNeeded(!0)}function onOpened(){var itemsContainer=this.querySelector(".itemsContainer");itemsContainer.resume?onItemsContainerUpgraded.call(itemsContainer):_dom.default.addEventListener(itemsContainer,"upgraded",onItemsContainerUpgraded,{once:!0})}function showRecordingDialog(item,options,timerType){return require(["text!modules/recordingcreator/channelrecording.template.html"]).then(function(responses){var dialogOptions={removeOnClose:!0},dlg=(_layoutmanager.default.tv&&(dialogOptions.size="fullscreen"),_dialoghelper.default.createDialog(dialogOptions)),dialogOptions=(dlg.classList.add("formDialog"),dlg.classList.add("recordingDialog"),_layoutmanager.default.tv||"Keyword"!==timerType||(dlg.style.width="min(90ch, 80%)",dlg.style.height="80%"),dlg.timerType=timerType,dlg.item=item,dlg.options=options,_layoutmanager.default.tv||dlg.classList.add("dialog-fullscreen-lowres"),dlg.innerHTML=_globalize.default.translateDocument(responses[0],"sharedcomponents"),item?_connectionmanager.default.getApiClient(item):_connectionmanager.default.getApiClient(options.serverId));return initDialog(dlg,dialogOptions,item,timerType),dlg.addEventListener("opened",onOpened),dlg.addEventListener("change",onValueChange),_dialoghelper.default.open(dlg).then(function(){var context;(context=dlg).minStartTimeTimer&&(context.minStartTimeTimer.destroy(),context.minStartTimeTimer=null),dlg.item=null,dlg.options=null,dlg.timerType=null})})}function createRecordingForChannelInternal(item,options){var items=[],apiClient=(items.push({name:_globalize.default.translate("Guide"),id:"guide",icon:"dvr"}),items.push({name:_globalize.default.translate("Search"),id:"search",icon:"search"}),item?_connectionmanager.default.getApiClient(item):_connectionmanager.default.getApiClient(options.serverId));return items.push({name:_globalize.default.translate("HeaderChannelAndTime"),id:"time",icon:"live_tv"}),apiClient.isMinServerVersion("4.7.7")&&items.push({name:_globalize.default.translate("Keyword"),id:"keyword",icon:"text_fields"}),function(options){return Emby.importModule("./modules/actionsheet/actionsheet.js").then(function(ActionSheet){return ActionSheet.show(options)})}({items:items,title:_globalize.default.translate("HeaderCreateRecording"),text:_globalize.default.translate("LabelRecordProgramOrSeriesFrom"),positionTo:options.positionTo,positionY:"bottom",positionX:"right",hasItemIcon:!0}).then(function(typeId){if("guide"===typeId)_approuter.default.showGuide();else{if("search"!==typeId)return"time"===typeId?function(item,options){return showRecordingDialog(item,options,"DateTime")}(item,options):"keyword"===typeId?function(item,options){return showRecordingDialog(item,options,"Keyword")}(item,options):void 0;_approuter.default.showSearch()}})}_exports.default={createRecordingForChannel:function(item,options){return _registrationservices.default.validateFeature("dvr",{viewOnly:!0}).then(function(){return createRecordingForChannelInternal(item,options)})}}}); |