1 line
No EOL
13 KiB
JavaScript
1 line
No EOL
13 KiB
JavaScript
import globalize from"./../modules/common/globalize.js";import loading from"./../modules/loading/loading.js";import BaseTab from"./../modules/tabbedview/basetab.js";import formHelper from"./../modules/common/responsehelper.js";import"./../modules/emby-elements/emby-checkbox/emby-checkbox.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-select/emby-select.js";import"./../modules/emby-elements/emby-scroller/emby-scroller.js";import"./../modules/emby-elements/emby-itemscontainer/emby-itemscontainer.js";import"./../modules/emby-elements/emby-premierecontainer/emby-premierecontainer.js";function triggerChange(select){var evt=document.createEvent("HTMLEvents");evt.initEvent("change",!1,!0),select.dispatchEvent(evt)}function loadDeleteFolders(view,user,mediaFolders){ApiClient.getJSON(ApiClient.getUrl("Channels",{SupportsMediaDeletion:!0})).then(function(channelsResult){let html="",i,length,isChecked,checkedAttribute;for(i=0,length=mediaFolders.length;i<length;i++){var folder=mediaFolders[i],folderId=folder.Guid||folder.Id;isChecked=user.Policy.EnableContentDeletion||-1!==user.Policy.EnableContentDeletionFromFolders.indexOf(folderId),checkedAttribute=isChecked?' checked="checked"':"",html+='<label><input type="checkbox" is="emby-checkbox" class="chkFolder" data-id="'+folderId+'" '+checkedAttribute+"><span>"+folder.Name+"</span></label>"}for(i=0,length=channelsResult.Items.length;i<length;i++){let folder=channelsResult.Items[i],folderId=folder.Guid||folder.Id;isChecked=user.Policy.EnableContentDeletion||-1!==user.Policy.EnableContentDeletionFromFolders.indexOf(folderId),checkedAttribute=isChecked?' checked="checked"':"",html+='<label><input type="checkbox" is="emby-checkbox" class="chkFolder" data-id="'+folderId+'" '+checkedAttribute+"><span>"+folder.Name+"</span></label>"}view.querySelector(".deleteAccess").innerHTML=html,view.querySelector(".chkEnableDeleteAllFolders").checked=user.Policy.EnableContentDeletion,triggerChange(view.querySelector(".chkEnableDeleteAllFolders"))})}function loadAuthProviders(view,user,providers){1<providers.length&&!user.Policy.IsAdministrator?view.querySelector(".fldSelectLoginProvider").classList.remove("hide"):view.querySelector(".fldSelectLoginProvider").classList.add("hide");let currentProviderId=user.Policy.AuthenticationProviderId;view.querySelector(".selectLoginProvider").innerHTML=providers.map(function(provider){var selected=provider.Id===currentProviderId||providers.length<2?" selected":"";return'<option value="'+provider.Id+'"'+selected+">"+provider.Name+"</option>"})}function loadUser(view,user){ApiClient.getJSON(ApiClient.getUrl("Auth/Providers")).then(function(providers){loadAuthProviders(view,user,providers)}),ApiClient.getJSON(ApiClient.getUrl("Library/MediaFolders",{IsHidden:!1})).then(function(folders){loadDeleteFolders(view,user,folders.Items)}),user.Policy.IsDisabled?view.querySelector(".disabledUserBanner").classList.remove("hide"):view.querySelector(".disabledUserBanner").classList.add("hide"),view.querySelector(".lnkEditUserPreferences").setAttribute("href","settings?userId="+user.Id+"&serverId="+user.ServerId),view.querySelector(".txtUserName").value=user.Name,view.querySelector(".txtConnectUserName").value=user.ConnectUserName||"",view.querySelector(".chkIsAdmin").checked=user.Policy.IsAdministrator,view.querySelector(".chkDisabled").checked=user.Policy.IsDisabled,view.querySelector(".chkIsHidden").checked=user.Policy.IsHidden,view.querySelector(".chkIsHiddenRemotely").checked=user.Policy.IsHiddenRemotely||!1,view.querySelector(".chkHideFromUnusedDevices").checked=user.Policy.IsHiddenFromUnusedDevices||!1,view.querySelector(".chkRemoteControlSharedDevices").checked=user.Policy.EnableSharedDeviceControl,view.querySelector(".chkEnableRemoteControlOtherUsers").checked=user.Policy.EnableRemoteControlOfOtherUsers,view.querySelector(".chkEnableDownloading").checked=user.Policy.EnableContentDownloading,view.querySelector(".chkEnableSubtitleDownloading").checked=user.Policy.EnableSubtitleDownloading||!1,view.querySelector(".chkEnableSubtitleManagement").checked=user.Policy.EnableSubtitleManagement||!1,view.querySelector(".chkManageLiveTv").checked=user.Policy.EnableLiveTvManagement,view.querySelector(".chkEnableLiveTvAccess").checked=user.Policy.EnableLiveTvAccess,view.querySelector(".chkEnableMediaPlayback").checked=user.Policy.EnableMediaPlayback,view.querySelector(".chkEnableAudioPlaybackTranscoding").checked=user.Policy.EnableAudioPlaybackTranscoding,view.querySelector(".chkEnableVideoPlaybackTranscoding").checked=user.Policy.EnableVideoPlaybackTranscoding,view.querySelector(".chkEnableVideoPlaybackRemuxing").checked=user.Policy.EnablePlaybackRemuxing,view.querySelector(".chkRemoteAccess").checked=null==user.Policy.EnableRemoteAccess||user.Policy.EnableRemoteAccess,view.querySelector(".chkAllowChangeProfile").checked=user.Policy.EnableUserPreferenceAccess,view.querySelector(".chkEnableSyncTranscoding").checked=user.Policy.EnableSyncTranscoding,view.querySelector(".chkAllowCameraUpload").checked=user.Policy.AllowCameraUpload||!1,view.querySelector(".chkEnableConversion").checked=user.Policy.EnableMediaConversion||!1,view.querySelector(".chkSharePersonalContent").checked=user.Policy.AllowSharingPersonalItems||!1,view.querySelector(".chkEnableSharing").checked=user.Policy.EnablePublicSharing,view.querySelector(".txtRemoteClientBitrateLimit").value=user.Policy.RemoteClientBitrateLimit/1e6||"",view.querySelector(".selectStreamLimit").value=user.Policy.SimultaneousStreamLimit||"0";var chkDynamicFeatures=view.querySelectorAll(".chkDynamicFeature"),restrictedFeatures=user.Policy.RestrictedFeatures||[];for(let i=0,length=chkDynamicFeatures.length;i<length;i++)chkDynamicFeatures[i].checked=!restrictedFeatures.includes(chkDynamicFeatures[i].getAttribute("data-id"));user.Policy.IsAdministrator&&!user.Policy.IsDisabled?view.querySelector(".fldIsEnabled").classList.add("hide"):view.querySelector(".fldIsEnabled").classList.remove("hide"),ApiClient.isMinServerVersion("4.8.0.47")?view.querySelector(".fldAllowCameraUpload").classList.remove("hide"):view.querySelector(".fldAllowCameraUpload").classList.add("hide"),ApiClient.isMinServerVersion("4.8.0.62")?view.querySelector(".fldSharePersonalContent").classList.remove("hide"):view.querySelector(".fldSharePersonalContent").classList.add("hide"),loading.hide()}function fillStreamLimit(view){let html='<option value="0">'+globalize.translate("Unlimited")+"</option>";for(let i=1;i<=50;i++)html+='<option value="'+i+'">'+i+"</option>";view.querySelector(".selectStreamLimit").innerHTML=html}function onSubmit(e){let instance=this,view=this.view;return loading.show(),getUser(instance).then(function(result){saveUser(instance,result,view)}),e.preventDefault(),e.stopPropagation(),!1}function getUser(instance){instance=instance.params.userId;return ApiClient.getUser(instance,!1)}function getFeatureHtml(feature){var html="";return html+"<label>"+('<input type="checkbox" is="emby-checkbox" class="'+(feature.className||"chkDynamicFeature")+'" data-id="'+feature.Id+'" />')+("<span>"+feature.Name+"</span>")+"</label>"}function showFeature(feature){return!feature.Id.includes(".")}function fillFeatureList(view,features){features.unshift({Id:"livetv",Name:globalize.translate("LiveTV"),className:"chkEnableLiveTvAccess"},{Id:"livetv_manage",Name:globalize.translate("LiveTVRecordingManagement"),className:"chkManageLiveTv"}),view.querySelector(".featureList").innerHTML=features.filter(showFeature).map(getFeatureHtml).join("")}function loadData(instance,options){loading.show(),getUser(instance).then(function(user){instance.currentConnectUsername=user.ConnectUserName,ApiClient.getFeatures({FeatureType:"User"}).then(function(features){fillFeatureList(instance.view,features),loadUser(instance.view,user,features),options?.autoFocus&&instance.autoFocus()})})}function onSaveComplete(instance,user){loading.hide();var currentConnectUsername=instance.currentConnectUsername||"";let enteredConnectUsername=instance.view.querySelector(".txtConnectUserName").value;currentConnectUsername===enteredConnectUsername?formHelper.handleConfigurationSavedResponse():require(["connectHelper"],function(connectHelper){connectHelper.updateUserLink(ApiClient,user,enteredConnectUsername).then(function(){loadData(instance)})})}function saveUser(instance,user,view){user.Name=view.querySelector(".txtUserName").value,user.Policy.IsAdministrator=view.querySelector(".chkIsAdmin").checked,user.Policy.IsHidden=view.querySelector(".chkIsHidden").checked,user.Policy.IsHiddenRemotely=view.querySelector(".chkIsHiddenRemotely").checked,user.Policy.IsHiddenFromUnusedDevices=view.querySelector(".chkHideFromUnusedDevices").checked,user.Policy.IsDisabled=view.querySelector(".chkDisabled").checked,user.Policy.EnableRemoteControlOfOtherUsers=view.querySelector(".chkEnableRemoteControlOtherUsers").checked,user.Policy.EnableLiveTvManagement=view.querySelector(".chkManageLiveTv").checked,user.Policy.EnableLiveTvAccess=view.querySelector(".chkEnableLiveTvAccess").checked,user.Policy.EnableSharedDeviceControl=view.querySelector(".chkRemoteControlSharedDevices").checked,user.Policy.EnableMediaPlayback=view.querySelector(".chkEnableMediaPlayback").checked,user.Policy.EnableAudioPlaybackTranscoding=view.querySelector(".chkEnableAudioPlaybackTranscoding").checked,user.Policy.EnableVideoPlaybackTranscoding=view.querySelector(".chkEnableVideoPlaybackTranscoding").checked,user.Policy.EnablePlaybackRemuxing=view.querySelector(".chkEnableVideoPlaybackRemuxing").checked,user.Policy.EnableSubtitleDownloading=view.querySelector(".chkEnableSubtitleDownloading").checked,user.Policy.EnableSubtitleManagement=view.querySelector(".chkEnableSubtitleManagement").checked,user.Policy.EnableContentDownloading=view.querySelector(".chkEnableDownloading").checked,user.Policy.EnableSyncTranscoding=view.querySelector(".chkEnableSyncTranscoding").checked,user.Policy.EnableMediaConversion=view.querySelector(".chkEnableConversion").checked,user.Policy.AllowSharingPersonalItems=view.querySelector(".chkSharePersonalContent").checked,user.Policy.AllowCameraUpload=view.querySelector(".chkAllowCameraUpload").checked,user.Policy.EnablePublicSharing=view.querySelector(".chkEnableSharing").checked,user.Policy.EnableRemoteAccess=view.querySelector(".chkRemoteAccess").checked,user.Policy.RemoteClientBitrateLimit=parseInt(1e6*parseFloat(view.querySelector(".txtRemoteClientBitrateLimit").value||"0")),user.Policy.AuthenticationProviderId=view.querySelector(".selectLoginProvider").value,user.Policy.SimultaneousStreamLimit=view.querySelector(".selectStreamLimit").value,user.Policy.EnableUserPreferenceAccess=view.querySelector(".chkAllowChangeProfile").checked,user.Policy.EnableContentDeletion=view.querySelector(".chkEnableDeleteAllFolders").checked,user.Policy.EnableContentDeletionFromFolders=user.Policy.EnableContentDeletion?[]:Array.prototype.filter.call(view.querySelectorAll(".chkFolder"),function(c){return c.checked}).map(function(c){return c.getAttribute("data-id")}),user.Policy.RestrictedFeatures=Array.prototype.filter.call(view.querySelectorAll(".chkDynamicFeature"),function(c){return!c.checked}).map(function(c){return c.getAttribute("data-id")}),ApiClient.updateUser(user).then(function(){ApiClient.updateUserPolicy(user.Id,user.Policy).then(function(){onSaveComplete(instance,user)})})}function InfoTab(view,params,options){BaseTab.apply(this,arguments),this.apiClient=ApiClient,fillStreamLimit(view),view.querySelector(".streamLimitPremiereInfo").innerHTML=globalize.translate("FeatureRequiresEmbyPremiere",'<a href="https://emby.media/premiere" data-preset="premiereinfo" is="emby-linkbutton" type="button" class="button-link">',"</a>"),view.querySelector(".editUserProfileForm").addEventListener("submit",onSubmit.bind(this)),view.querySelector(".sharingHelp").innerHTML=globalize.translate("OptionAllowLinkSharingHelp",30),view.querySelector(".chkEnableDeleteAllFolders",view).addEventListener("change",function(){this.checked?view.querySelector(".deleteAccess").classList.add("hide"):view.querySelector(".deleteAccess").classList.remove("hide")}),ApiClient.getServerConfiguration().then(function(config){config.EnableRemoteAccess?view.querySelector(".fldRemoteAccess").classList.remove("hide"):view.querySelector(".fldRemoteAccess").classList.add("hide")});var userId=params.userId,btns=view.querySelectorAll(".userEditTabButton");for(let i=0,length=btns.length;i<length;i++)btns[i].href=btns[i].getAttribute("data-href")+"?userId="+userId+"&serverId="+ApiClient.serverId()}Object.assign(InfoTab.prototype,BaseTab.prototype),InfoTab.prototype.onResume=function(options){BaseTab.prototype.onResume.apply(this,arguments),loadData(this,options)};export default InfoTab; |