1 line
5.3 KiB
JavaScript
1 line
5.3 KiB
JavaScript
define(["exports","./../../modules/viewmanager/baseview.js","./../../modules/common/globalize.js","./../../modules/emby-elements/emby-input/emby-input.js","./../../modules/emby-elements/emby-button/emby-button.js","./../../modules/emby-elements/emby-checkbox/emby-checkbox.js","./../../modules/emby-elements/emby-select/emby-select.js","./../../modules/emby-elements/emby-scroller/emby-scroller.js","./../../modules/emby-apiclient/connectionmanager.js","./../../modules/approuter.js","./../../modules/formhelper.js"],function(_exports,_baseview,_globalize,_embyInput,_embyButton,_embyCheckbox,_embySelect,_embyScroller,_connectionmanager,_approuter,_formhelper){function onBackClick(){_approuter.default.back()}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0;function fillItems(elem,items,cssClass,idPrefix,currentList,isEnabledList){var html='<div class="checkboxList" style="padding: .5em 1em;">';html+=items.map(function(u){var isChecked=isEnabledList?-1!==currentList.indexOf(u.Id):-1===currentList.indexOf(u.Id);return'<label><input is="emby-checkbox" class="'+cssClass+'" type="checkbox" data-itemid="'+u.Id+'"'+(isChecked?' checked="checked"':"")+"/><span>"+u.Name+"</span></label>"}).join(""),elem.innerHTML=html+="</div>"}function onSelectUsersChange(){var view=this.closest(".page");"Custom"===this.value?view.querySelector(".selectCustomUsers").classList.remove("hide"):view.querySelector(".selectCustomUsers").classList.add("hide")}function View(view,params){_baseview.default.apply(this,arguments);var apiClient=_connectionmanager.default.currentApiClient();this.apiClient=apiClient,view.querySelector(".btnCancel").addEventListener("click",onBackClick),view.querySelector(".selectUsers").addEventListener("change",onSelectUsersChange),view.querySelector(".notificationSettingForm").addEventListener("submit",function(e){return function(page){var type=params.type,promise1=apiClient.getNamedConfiguration("notifications"),promise2=apiClient.getJSON(apiClient.getUrl("Notifications/Types"));Promise.all([promise1,promise2]).then(function(responses){var responses=responses[0],notificationConfig=responses.Options.filter(function(n){return n.Type===type})[0];notificationConfig||responses.Options.push(notificationConfig={Type:type}),notificationConfig.Enabled=page.querySelector(".chkEnabled").checked,notificationConfig.SendToUserMode=page.querySelector(".selectUsers").value,notificationConfig.DisabledMonitorUsers=Array.prototype.filter.call(page.querySelectorAll(".chkMonitor"),function(c){return!c.checked}).map(function(c){return c.getAttribute("data-itemid")}),notificationConfig.SendToUsers=Array.prototype.filter.call(page.querySelectorAll(".chkSendTo"),function(c){return c.checked}).map(function(c){return c.getAttribute("data-itemid")}),notificationConfig.DisabledServices=Array.prototype.filter.call(page.querySelectorAll(".chkService"),function(c){return!c.checked}).map(function(c){return c.getAttribute("data-itemid")}),apiClient.updateNamedConfiguration("notifications",responses).then(function(r){_formhelper.default.handleConfigurationSavedResponse(),_approuter.default.show("notificationsettings.html")})})}(this.closest(".page")),e.preventDefault(),e.stopPropagation(),!1}),view.querySelector(".additionalServicesDescription").innerHTML=_globalize.default.translate("Additional services can be installed from the {0}Emby plugin catalog.{1}",'<a is="emby-linkbutton" href="'+_approuter.default.getRouteUrl("PluginCatalog")+'" class="button-link">',"</a>")}Object.assign(View.prototype,_baseview.default.prototype),View.prototype.onResume=function(options){var page,params,apiClient,type,promise2,promise3;_baseview.default.prototype.onResume.apply(this,arguments),page=this.view,params=this.params,apiClient=this.apiClient,type=params.type,params=apiClient.getUsersQueryResult(),promise2=apiClient.getNamedConfiguration("notifications"),promise3=apiClient.getJSON(apiClient.getUrl("Notifications/Types")),apiClient=apiClient.getJSON(apiClient.getUrl("Notifications/Services")),Promise.all([params,promise2,promise3,apiClient]).then(function(responses){var users=responses[0].Items,notificationOptions=responses[1],types=responses[2],responses=responses[3],notificationOptions=notificationOptions.Options.filter(function(n){return n.Type===type})[0],types=types.filter(function(n){return n.Type===type})[0]||{},types=(types.IsBasedOnUserEvent?page.querySelector(".monitorUsers").classList.remove("hide"):page.querySelector(".monitorUsers").classList.add("hide"),page.querySelector(".notificationType").innerHTML=types.Name||"Unknown Notification",notificationOptions=notificationOptions||{DisabledMonitorUsers:[],SendToUsers:[],DisabledServices:[],SendToUserMode:"Admins"},fillItems(page.querySelector(".monitorUsersList"),users,"chkMonitor",0,notificationOptions.DisabledMonitorUsers),fillItems(page.querySelector(".sendToUsersList"),users,"chkSendTo",0,notificationOptions.SendToUsers,!0),fillItems(page.querySelector(".servicesList"),responses,"chkService",0,notificationOptions.DisabledServices),page.querySelector(".chkEnabled").checked=notificationOptions.Enabled||!1,page.querySelector(".selectUsers"));types.value=notificationOptions.SendToUserMode,onSelectUsersChange.call(types)})},View.prototype.destroy=function(){_baseview.default.prototype.destroy.apply(this,arguments),this.apiClient=null},_exports.default=View}); |