1 line
9.2 KiB
JavaScript
1 line
9.2 KiB
JavaScript
define(["exports","./../modules/common/globalize.js","./../modules/loading/loading.js","./../modules/common/datetime.js","./../modules/tabbedview/basetab.js","./../components/accessschedule/accessschedule.js","./../modules/formhelper.js","./../modules/emby-elements/emby-checkbox/emby-checkbox.js","./../modules/emby-elements/emby-button/emby-button.js","./../modules/emby-elements/emby-button/paper-icon-button-light.js","./../modules/emby-elements/emby-select/emby-select.js","./../modules/listview/listview.js"],function(_exports,_globalize,_loading,_datetime,_basetab,_accessschedule,_formhelper,_embyCheckbox,_embyButton,_paperIconButtonLight,_embySelect,_listview){function loadUser(instance,page,user,allParentalRatings){!function(page,user){for(var items=[{name:_globalize.default.translate("Books"),value:"Book"},{name:_globalize.default.translate("Games"),value:"Game"},{name:_globalize.default.translate("OptionBlockChannelContent"),value:"ChannelContent"},{name:_globalize.default.translate("LiveTV"),value:"LiveTvChannel"},{name:_globalize.default.translate("Movies"),value:"Movie"},{name:_globalize.default.translate("Music"),value:"Music"},{name:_globalize.default.translate("Trailers"),value:"Trailer"},{name:_globalize.default.translate("TVShows"),value:"Series"}],html=(html="")+('<h3 class="checkboxListLabel">'+_globalize.default.translate("HeaderBlockItemsWithNoRating")+"</h3>")+'<div class="checkboxList">',i=0,length=items.length;i<length;i++){var item=items[i],checkedAttribute=-1!==user.Policy.BlockUnratedItems.indexOf(item.value)?' checked="checked"':"";html+='<label><input type="checkbox" is="emby-checkbox" class="chkUnratedItem" data-itemtype="'+item.value+'" type="checkbox"'+checkedAttribute+"><span>"+item.name+"</span></label>"}html+="</div>",page.querySelector(".blockUnratedItems").innerHTML=html}(page,user),instance.tags=user.Policy.BlockedTags,loadBlockedTags(page,instance.tags),function(allParentalRatings,page){for(var rating,html="",ratings=(html+="<option value=''></option>",[]),i=0,length=allParentalRatings.length;i<length;i++){if(rating=allParentalRatings[i],ratings.length){var lastRating=ratings[ratings.length-1];if(lastRating.Value===rating.Value){lastRating.Name+="/"+rating.Name;continue}}ratings.push({Name:rating.Name,Value:rating.Value})}for(i=0,length=ratings.length;i<length;i++)html+="<option value='"+(rating=ratings[i]).Value+"'>"+rating.Name+"</option>";page.querySelector(".selectMaxParentalRating").innerHTML=html}(allParentalRatings,page);var ratingValue="";if(user.Policy.MaxParentalRating)for(var i=0,length=allParentalRatings.length;i<length;i++){var rating=allParentalRatings[i];user.Policy.MaxParentalRating>=rating.Value&&(ratingValue=rating.Value)}page.querySelector(".selectMaxParentalRating").value=ratingValue,page.querySelector(".selectTagMode").value=user.Policy.IsTagBlockingModeInclusive?"include":"",user.Policy.IsAdministrator?page.querySelector(".accessScheduleSection").classList.add("hide"):page.querySelector(".accessScheduleSection").classList.remove("hide"),page.querySelector(".selectMultiRestrictionMode").value=user.Policy.AllowTagOrRating?"any":"all",instance.schedules=user.Policy.AccessSchedules||[],renderAccessSchedule(page,instance.schedules),_loading.default.hide(),onValueChange.call(instance)}function loadBlockedTags(page,tags){tags=(tags=tags.map(function(h){var li='<div class="listItem listItem-border">';return(li+='<div class="listItemBody">')+'<div class="listItemBodyText">'+h+"</div>"+"</div>"+('<button type="button" is="paper-icon-button-light" class="blockedTag btnDeleteTag listItemButton" data-tag="'+h+'"><i class="md-icon">delete</i></button>')+"</div>"}).join(""))&&"<div>"+tags+"</div>";page.querySelector(".blockedTags").innerHTML=tags}function renderAccessSchedule(page,schedules){var html="",index=0;html+=schedules.map(function(a){var itemHtml="",itemHtml=(itemHtml=(itemHtml=(itemHtml=(itemHtml+='<div class="liSchedule listItem listItem-border" data-day="'+a.DayOfWeek+'" data-start="'+a.StartHour+'" data-end="'+a.EndHour+'">')+'<div class="listItemBody two-line">'+'<div class="listItemBodyText">')+function(dayOfWeek){for(var date=new Date;0<date.getDay();)date.setDate(date.getDate()-1);var index=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"].indexOf(dayOfWeek);return-1!==index?(0<index&&date.setDate(date.getDate()+index),_datetime.default.toLocaleDateString(date,{weekday:"long"})):dayOfWeek}(a.DayOfWeek)+"</div>")+('<div class="listItemBodyText secondary">'+getDisplayTime(a.StartHour)+" - "+getDisplayTime(a.EndHour)+"</div>"))+"</div>"+('<button type="button" is="paper-icon-button-light" class="btnDeleteAccessScheduleItem listItemButton" data-index="'+index+'"><i class="md-icon">delete</i></button>');return index++,itemHtml+="</div>"}).join(""),page.querySelector(".accessScheduleList").innerHTML=html}function saveUser(user,page){user.Policy.MaxParentalRating=page.querySelector(".selectMaxParentalRating").value||null,user.Policy.IsTagBlockingModeInclusive="include"===page.querySelector(".selectTagMode").value,user.Policy.AllowTagOrRating="any"===page.querySelector(".selectMultiRestrictionMode").value,user.Policy.BlockUnratedItems=Array.prototype.filter.call(page.querySelectorAll(".chkUnratedItem"),function(i){return i.checked}).map(function(i){return i.getAttribute("data-itemtype")}),user.Policy.AccessSchedules=getSchedulesFromPage(page),user.Policy.BlockedTags=function(page){return Array.prototype.map.call(page.querySelectorAll(".blockedTag"),function(elem){return elem.getAttribute("data-tag")})}(page),ApiClient.updateUserPolicy(user.Id,user.Policy).then(function(){_loading.default.hide(),_formhelper.default.handleConfigurationSavedResponse()})}function getDisplayTime(hours){var minutes=0,pct=hours%1;return pct&&(minutes=parseInt(60*pct)),_datetime.default.getDisplayTime(new Date(2e3,1,1,hours,minutes,0,0))}function getSchedulesFromPage(page){return Array.prototype.map.call(page.querySelectorAll(".liSchedule"),function(elem){return{DayOfWeek:elem.getAttribute("data-day"),StartHour:elem.getAttribute("data-start"),EndHour:elem.getAttribute("data-end")}})}function showBlockedTagPopup(instance,page){var options;options={label:_globalize.default.translate("LabelTag")},Emby.importModule("./modules/prompt/prompt.js").then(function(prompt){return prompt(options)}).then(function(value){var tags=instance.tags;-1===tags.indexOf(value)&&(tags.push(value),loadBlockedTags(page,tags))})}function onValueChange(){var view=this.view,selectMaxParentalRating=view.querySelector(".selectMaxParentalRating"),selectTagMode=(selectMaxParentalRating.value?view.querySelector(".blockUnratedItems").classList.remove("hide"):view.querySelector(".blockUnratedItems").classList.add("hide"),view.querySelector(".selectTagMode"));selectMaxParentalRating.value&&"include"===selectTagMode.value?view.querySelector(".fldMultiRestrictionMode").classList.remove("hide"):view.querySelector(".fldMultiRestrictionMode").classList.add("hide")}function ParentalControlTab(view,params,options){_basetab.default.apply(this,arguments),this.apiClient=ApiClient,view.addEventListener("change",onValueChange.bind(this));var instance=this;view.querySelector(".btnAddSchedule").addEventListener("click",function(){var page,schedule,index;page=view,schedule={},index=-1,_accessschedule.default.show({schedule:schedule=schedule||{}}).then(function(updatedSchedule){var schedules=getSchedulesFromPage(page);schedules[index=-1===index?schedules.length:index]=updatedSchedule,renderAccessSchedule(page,schedules)})}),view.querySelector(".btnAddBlockedTag").addEventListener("click",function(){showBlockedTagPopup(instance,view)}),view.querySelector(".blockedTags").addEventListener("click",function(e){var tag,e=e.target.closest(".btnDeleteTag");e&&(tag=e.getAttribute("data-tag"),instance.tags=instance.tags.filter(function(t){return t!==tag}),loadBlockedTags(view,instance.tags))}),view.querySelector(".accessScheduleList").addEventListener("click",function(e){e=e.target.closest(".btnDeleteAccessScheduleItem");e&&!function(instance,page,index){(instance=instance.schedules).splice(index,1),renderAccessSchedule(page,instance)}(instance,view,parseInt(e.getAttribute("data-index")))}),view.querySelector(".userParentalControlForm").addEventListener("submit",function(e){var page=this.view,userId=(_loading.default.show(),params.userId);return ApiClient.getUser(userId,!1).then(function(result){saveUser(result,page)}),e.preventDefault(),e.stopPropagation(),!1}.bind(this));for(var btns=view.querySelectorAll(".userEditTabButton"),i=0,length=btns.length;i<length;i++)btns[i].href=btns[i].getAttribute("data-href")+"?userId="+params.userId+"&serverId="+ApiClient.serverId()}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,Object.assign(ParentalControlTab.prototype,_basetab.default.prototype),ParentalControlTab.prototype.onResume=function(options){_basetab.default.prototype.onResume.apply(this,arguments),_loading.default.show();var page=this.view,params=this.params,params=(_loading.default.show(),ApiClient.getUser(params.userId,!1)),promise2=ApiClient.getParentalRatings(),instance=this;Promise.all([params,promise2]).then(function(responses){loadUser(instance,page,responses[0],responses[1])})},ParentalControlTab.prototype.destroy=function(){_basetab.default.prototype.destroy.apply(this,arguments),this.apiClient=null},_exports.default=ParentalControlTab}); |