1 line
2.1 KiB
JavaScript
1 line
2.1 KiB
JavaScript
|
|
import dom from"./../dom.js";import connectionManager from"./../emby-apiclient/connectionmanager.js";import"./../emby-elements/emby-button/emby-button.js";import"./../emby-elements/emby-button/paper-icon-button-light.js";import recordingHelper from"./../common/recordinghelper.js";function onRecordingButtonClick(e){var item=this.item;if(item){let serverId=item.ServerId,programId=item.Id;var timerId=item.TimerId,timerStatus=item.Status,item=item.SeriesTimerId;let instance=this;recordingHelper.toggleRecording(serverId,programId,timerId,timerStatus,item).then(function(){instance.refresh(serverId,programId)})}}function RecordingButton(options){(this.options=options).item?this.refreshItem(options.item):options.itemId&&options.serverId&&this.refresh(options.itemId,options.serverId);var options=options.button,icon=options.querySelector("i"),icon=(icon.innerHTML="",icon.classList.add("md-icon-fill"),onRecordingButtonClick.bind(this));this.clickFn=icon,dom.addEventListener(options,"click",icon,{passive:!0})}function getIndicatorIcon(item){let status;if("SeriesTimer"===item.Type)return"";if(item.TimerId||item.SeriesTimerId)status=item.Status||"Cancelled";else{if("Timer"!==item.Type)return"";status=item.Status}return item.SeriesTimerId&&"Cancelled"!==status?"":""}RecordingButton.prototype.refresh=function(serverId,itemId){serverId=connectionManager.getApiClient(serverId);let self=this;serverId.getItem(serverId.getCurrentUserId(),itemId).then(function(item){self.refreshItem(item)})},RecordingButton.prototype.refreshItem=function(item){var button=this.options.button;this.item=item,button.querySelector("i").innerHTML=getIndicatorIcon(item),item.TimerId&&"Cancelled"!==(item.Status||"Cancelled")?button.classList.add("recordingIcon-active"):button.classList.remove("recordingIcon-active")},RecordingButton.prototype.destroy=function(){var clickFn,options=this.options;options&&(options=options.button,clickFn=this.clickFn)&&dom.removeEventListener(options,"click",clickFn,{passive:!0}),this.options=null,this.item=null};export default RecordingButton;
|