1 line
No EOL
3 KiB
JavaScript
1 line
No EOL
3 KiB
JavaScript
import connectionManager from"./../emby-apiclient/connectionmanager.js";import loading from"./../loading/loading.js";import globalize from"./globalize.js";import itemManager from"./itemmanager/itemmanager.js";function showDialog(options){return Emby.importModule("./modules/dialog/dialog.js").then(function(dialog){return dialog(options)})}function showToast(options){return Emby.importModule("./modules/toast/toast.js").then(function(toast){return toast(options)})}function changeRecordingToSeries(apiClient,timerId,programId,confirmTimerCancellation){return loading.show(),apiClient.getItem(apiClient.getCurrentUserId(),programId).then(function(item){return item.IsSeries?apiClient.getNewLiveTvTimerDefaults({programId:programId}).then(function(timerDefaults){return apiClient.createLiveTvSeriesTimer(timerDefaults).then(function(){loading.hide(),showToast(globalize.translate("SeriesRecordingScheduled"))})}):cancelTimer(apiClient,timerId,confirmTimerCancellation).then(function(result){return loading.hide(),Promise.resolve(result)})})}function cancelTimer(apiClient,timerId,confirm){return itemManager.deleteItems({items:[{Id:timerId,ServerId:apiClient.serverId(),Type:"Timer"}],confirm:!0===confirm,navigate:!1})}function createRecording(apiClient,programId,isSeries){return loading.show(),apiClient.getNewLiveTvTimerDefaults({programId:programId}).then(function(item){return(isSeries?apiClient.createLiveTvSeriesTimer(item):apiClient.createLiveTvTimer(item)).then(function(){loading.hide(),showToast(globalize.translate("RecordingScheduled"))})})}function showMultiCancellationPrompt(serverId,programId,timerId,timerStatus,seriesTimerId){var items=[];return items.push({name:globalize.translate("HeaderKeepRecording"),id:"cancel",type:"submit"}),items.push("InProgress"===timerStatus?{name:globalize.translate("HeaderStopRecording"),id:"canceltimer",type:"cancel"}:{name:globalize.translate("HeaderCancelRecording"),id:"canceltimer",type:"cancel"}),items.push({name:globalize.translate("HeaderCancelSeries"),id:"cancelseriestimer",type:"cancel"}),showDialog({text:globalize.translate("MessageConfirmRecordingCancellation"),buttons:items}).then(function(result){var apiClient=connectionManager.getApiClient(serverId);return"canceltimer"===result?(loading.show(),cancelTimer(apiClient,timerId,!0)):"cancelseriestimer"===result?(loading.show(),apiClient.cancelLiveTvSeriesTimer(seriesTimerId).then(function(){showToast(globalize.translate("SeriesCancelled")),loading.hide()})):Promise.resolve()})}function toggleRecording(serverId,programId,timerId,timerStatus,seriesTimerId){var apiClient=connectionManager.getApiClient(serverId),hasTimer=timerId&&"Cancelled"!==timerStatus;return seriesTimerId&&hasTimer?showMultiCancellationPrompt(serverId,programId,timerId,timerStatus,seriesTimerId):hasTimer&&programId?changeRecordingToSeries(apiClient,timerId,programId,!0):programId?createRecording(apiClient,programId):Promise.reject()}export default{cancelTimer:cancelTimer,createRecording:createRecording,changeRecordingToSeries:changeRecordingToSeries,toggleRecording:toggleRecording}; |