EmbyCrackedClient/web/settings/notifications.js

1 line
6.6 KiB
JavaScript
Raw Permalink Normal View History

2025-06-25 11:46:04 +08:00
import ListPage from"./../list/list.js";import globalize from"./../modules/common/globalize.js";import"./../modules/emby-elements/emby-button/emby-button.js";import"./../modules/emby-elements/emby-button/paper-icon-button-light.js";import"./../modules/emby-elements/emby-scroller/emby-scroller.js";import appRouter from"./../modules/approuter.js";import layoutManager from"./../modules/layoutmanager.js";import{appHost}from"./../modules/common/servicelocator.js";import EntryEditor from"./notificationeditor.js";import pluginManager from"./../modules/common/pluginmanager.js";import"./usernotificationcontroller.js";function showActionSheet(options){return Emby.importModule("./modules/actionsheet/actionsheet.js").then(function(ActionSheet){return ActionSheet.show(options)})}function getConfiguredNotifications(instance){var apiClient=instance.getApiClient();return apiClient.getJSON(apiClient.getUrl("Notifications/Services/Configured",{UserId:instance.getUserId()}))}function getEventTypes(instance){return instance.getApiClient().getNotificationTypes({userId:instance.getUserId()})}function mapService(service){return service.Icon||(service.Icon="notifications"),service}function getService(services,id){return services.filter(function(i){return i.Id===id})[0]}function getSetupModuleUrl(url,apiClient){return pluginManager.getConfigurationResourceUrl(url)}function getDefaultEntry(instance,service){var apiClient=instance.getApiClient();return apiClient.getJSON(apiClient.getUrl("Notifications/Services/Defaults",{UserId:instance.getUserId(),NotifierKey:service.Id}))}function addEntryWithService(instance,service){getEventTypes(instance).then(function(allEventTypes){getDefaultEntry(instance,service).then(function(entry){let apiClient=instance.getApiClient();require([getSetupModuleUrl(entry.SetupModuleUrl,apiClient)],function(EntryFormEditor){EntryFormEditor=EntryFormEditor.setFormValues?EntryFormEditor:new EntryFormEditor({apiClient:apiClient});(new EntryEditor).show({entry:entry,apiClient:apiClient,eventTypes:allEventTypes,entryFormEditor:EntryFormEditor,userId:instance.getUserId()})})})})}function showNewItemDialog(e){let instance=this,apiClient=instance.getApiClient();return apiClient.getJSON(apiClient.getUrl("Notifications/Services",{UserId:instance.getUserId()})).then(function(services){return apiClient.getCurrentUser().then(function(currentUser){currentUser=currentUser.Policy.IsAdministrator&&appHost.supports("serversetup")?globalize.translate("ForAdditionalNotificationOptions",'<a href="'+appRouter.getRouteUrl("PluginCatalog")+'" is="emby-linkbutton" class="button-link">',"</a>"):globalize.translate("ForAdditionalNotificationOptions","","");return showActionSheet({positionTo:e.target.closest("button"),positionY:"bottom",items:services.map(mapService),title:globalize.translate("AddNotification"),bottomText:currentUser,hasItemIcon:!0}).then(function(id){id=getService(services,id);addEntryWithService(instance,id)})})})}function UserNotificationsView(view,params){this.enableAlphaNumericShortcuts=!1,this.enableTotalRecordCountDisplay=!1,this.hasOtherViewButtons=!0,this.supportsViewSettings=!1,ListPage.apply(this,arguments),addNewItemButton(this,view),view.querySelector(".btnAddItem").addEventListener("click",showNewItemDialog.bind(this)),this.itemsContainer.setAttribute("data-monitor","UserNotifications")}function addNewItemButton(instance,view){view.querySelector(".itemsViewSettingsContainer").classList.add("itemsViewSettingsContainer-align-start","readOnlyContent"),view.querySelector(".listTotalRecordCount").insertAdjacentHTML("afterend",'<div><p style="margin-top:0;">'+globalize.translate("NotificationsDescription")+'</p><button is="emby-button" type="button" class="itemsViewSettingsContainer-button raised raised-mini btnAddItem submit" title="'+globalize.translate("AddNotification")+'" aria-label="'+globalize.translate("AddNotification")+'"><i class="md-icon button-icon button-icon-left">&#xe145;</i><span class="emby-button-text">'+globalize.translate("AddNotification")+"</span></button></div>"),instance.itemsContainer.classList.add("