1 line
3.3 KiB
JavaScript
1 line
3.3 KiB
JavaScript
|
|
import globalize from"./common/globalize.js";import events from"./emby-apiclient/events.js";import serverNotifications from"./common/input/api.js";function showToast(options){return Emby.importModule("./modules/toast/toast.js").then(function(toast){return toast(options)})}function showToastFromNotification(notification){return showToast(notification.title)}function showNotification(notification,apiClient){if("undefined"==typeof Notification||!navigator.serviceWorker||!Emby.serviceWorkerEnabled)return showToastFromNotification(notification);notification.timestamp=Date.now(),notification.renotify=!0,notification.tag+=apiClient.serverId(),!notification.data&¬ification.actions&&(notification.data=apiClient.serverId());function onFailure(){return showToastFromNotification(notification)}return navigator.serviceWorker.getRegistration().then(function(reg){return Notification.requestPermission().then(permission=>"granted"!==permission?showToastFromNotification(notification):reg.showNotification(notification.title,notification).catch(onFailure))},onFailure)}function showPackageInstallNotification(apiClient,installation,status){apiClient.getCurrentUser().then(function(user){user.Policy.IsAdministrator&&(user={tag:status},"PackageInstallationCompleted"===status?(user.title=globalize.translate("PackageInstallCompleted").replace("{0}",installation.Name+" "+installation.Version),user.actions=[{action:"restartserver",title:globalize.translate("RestartServer")}]):"PackageInstallationCancelled"===status?user.title=globalize.translate("PackageInstallCancelled").replace("{0}",installation.Name+" "+installation.Version):"PackageInstallationFailed"===status?user.title=globalize.translate("PackageInstallFailed").replace("{0}",installation.Name+" "+installation.Version):"PackageInstalling"===status&&(user.title=globalize.translate("InstallingPackage").replace("{0}",installation.Name+" "+installation.Version),installation.PercentComplete)&&(user.body=installation.PercentComplete+"%"),user.title)&&showNotification(user,apiClient)})}events.on(serverNotifications,"PackageInstallationCompleted",function(e,apiClient,data){showPackageInstallNotification(apiClient,data,"PackageInstallationCompleted")}),events.on(serverNotifications,"PackageInstallationFailed",function(e,apiClient,data){showPackageInstallNotification(apiClient,data,"PackageInstallationFailed")}),events.on(serverNotifications,"PackageInstallationCancelled",function(e,apiClient,data){showPackageInstallNotification(apiClient,data,"PackageInstallationCancelled")}),events.on(serverNotifications,"PackageInstalling",function(e,apiClient,data){showPackageInstallNotification(apiClient,data,"PackageInstalling")}),events.on(serverNotifications,"ServerShuttingDown",function(e,apiClient,data){showNotification({title:globalize.translate("ServerNameIsShuttingDown",apiClient.serverName()),tag:"ServerShuttingDown"},apiClient)}),events.on(serverNotifications,"ServerRestarting",function(e,apiClient,data){showNotification({title:globalize.translate("ServerNameIsRestarting",apiClient.serverName()),tag:"ServerRestarting"},apiClient)}),events.on(serverNotifications,"RestartRequired",function(e,apiClient){showNotification({title:globalize.translate("PleaseRestartServerName",apiClient.serverName()),tag:"RestartRequired",actions:[{action:"restartserver",title:globalize.translate("RestartServer")}]},apiClient)});
|