jellyfin-web/dashboard-ui/scripts/userlibraryaccess.js
2017-01-27 22:16:59 -05:00

1 line
5.3 KiB
JavaScript

define(["jQuery","fnchecked"],function($){"use strict";function loadMediaFolders(page,user,mediaFolders){var html="";html+='<h3 class="checkboxListLabel">'+Globalize.translate("HeaderLibraries")+"</h3>",html+='<div class="checkboxList paperList checkboxList-paperList">';for(var i=0,length=mediaFolders.length;i<length;i++){var folder=mediaFolders[i],isChecked=user.Policy.EnableAllFolders||user.Policy.EnabledFolders.indexOf(folder.Id)!=-1,checkedAttribute=isChecked?' checked="checked"':"";html+='<label><input type="checkbox" is="emby-checkbox" class="chkFolder" data-id="'+folder.Id+'" '+checkedAttribute+"><span>"+folder.Name+"</span></label>"}html+="</div>",$(".folderAccess",page).html(html).trigger("create"),$("#chkEnableAllFolders",page).checked(user.Policy.EnableAllFolders).trigger("change")}function loadChannels(page,user,channels){var html="";html+='<h3 class="checkboxListLabel">'+Globalize.translate("HeaderChannels")+"</h3>",html+='<div class="checkboxList paperList checkboxList-paperList">';for(var i=0,length=channels.length;i<length;i++){var folder=channels[i],isChecked=user.Policy.EnableAllChannels||user.Policy.EnabledChannels.indexOf(folder.Id)!=-1,checkedAttribute=isChecked?' checked="checked"':"";html+='<label><input type="checkbox" is="emby-checkbox" class="chkChannel" data-id="'+folder.Id+'" '+checkedAttribute+"><span>"+folder.Name+"</span></label>"}html+="</div>",$(".channelAccess",page).show().html(html).trigger("create"),channels.length?$(".channelAccessContainer",page).show():$(".channelAccessContainer",page).hide(),$("#chkEnableAllChannels",page).checked(user.Policy.EnableAllChannels).trigger("change")}function loadDevices(page,user,devices){var html="";html+='<h3 class="checkboxListLabel">'+Globalize.translate("HeaderDevices")+"</h3>",html+='<div class="checkboxList paperList checkboxList-paperList">';for(var i=0,length=devices.length;i<length;i++){var device=devices[i],checkedAttribute=user.Policy.EnableAllDevices||user.Policy.EnabledDevices.indexOf(device.Id)!=-1?' checked="checked"':"";html+='<label><input type="checkbox" is="emby-checkbox" class="chkDevice" data-id="'+device.Id+'" '+checkedAttribute+"><span>"+device.Name+" - "+device.AppName+"</span></label>"}html+="</div>",$(".deviceAccess",page).show().html(html).trigger("create"),$("#chkEnableAllDevices",page).checked(user.Policy.EnableAllDevices).trigger("change"),user.Policy.IsAdministrator?page.querySelector(".deviceAccessContainer").classList.add("hide"):page.querySelector(".deviceAccessContainer").classList.remove("hide")}function loadUser(page,user,loggedInUser,mediaFolders,channels,devices){$(page).trigger("userloaded",[user]),LibraryMenu.setTitle(user.Name),loadChannels(page,user,channels),loadMediaFolders(page,user,mediaFolders),loadDevices(page,user,devices),Dashboard.hideLoadingMsg()}function onSaveComplete(page){Dashboard.hideLoadingMsg(),require(["toast"],function(toast){toast(Globalize.translate("SettingsSaved"))})}function saveUser(user,page){user.Policy.EnableAllFolders=$("#chkEnableAllFolders",page).checked(),user.Policy.EnabledFolders=user.Policy.EnableAllFolders?[]:$(".chkFolder",page).get().filter(function(c){return c.checked}).map(function(c){return c.getAttribute("data-id")}),user.Policy.EnableAllChannels=$("#chkEnableAllChannels",page).checked(),user.Policy.EnabledChannels=user.Policy.EnableAllChannels?[]:$(".chkChannel",page).get().filter(function(c){return c.checked}).map(function(c){return c.getAttribute("data-id")}),user.Policy.EnableAllDevices=$("#chkEnableAllDevices",page).checked(),user.Policy.EnabledDevices=user.Policy.EnableAllDevices?[]:$(".chkDevice",page).get().filter(function(c){return c.checked}).map(function(c){return c.getAttribute("data-id")}),user.Policy.BlockedChannels=null,user.Policy.BlockedMediaFolders=null,ApiClient.updateUserPolicy(user.Id,user.Policy).then(function(){onSaveComplete(page)})}function onSubmit(){var page=$(this).parents(".page");Dashboard.showLoadingMsg();var userId=getParameterByName("userId");return ApiClient.getUser(userId).then(function(result){saveUser(result,page)}),!1}$(document).on("pageinit","#userLibraryAccessPage",function(){var page=this;$("#chkEnableAllDevices",page).on("change",function(){this.checked?$(".deviceAccessListContainer",page).hide():$(".deviceAccessListContainer",page).show()}),$("#chkEnableAllChannels",page).on("change",function(){this.checked?$(".channelAccessListContainer",page).hide():$(".channelAccessListContainer",page).show()}),$("#chkEnableAllFolders",page).on("change",function(){this.checked?$(".folderAccessListContainer",page).hide():$(".folderAccessListContainer",page).show()}),$(".userLibraryAccessForm").off("submit",onSubmit).on("submit",onSubmit)}).on("pageshow","#userLibraryAccessPage",function(){var page=this;Dashboard.showLoadingMsg();var promise1,userId=getParameterByName("userId");if(userId)promise1=ApiClient.getUser(userId);else{var deferred=$.Deferred();deferred.resolveWith(null,[{Configuration:{}}]),promise1=deferred.promise()}var promise2=Dashboard.getCurrentUser(),promise4=ApiClient.getJSON(ApiClient.getUrl("Library/MediaFolders",{IsHidden:!1})),promise5=ApiClient.getJSON(ApiClient.getUrl("Channels")),promise6=ApiClient.getJSON(ApiClient.getUrl("Devices",{SupportsPersistentIdentifier:!0}));Promise.all([promise1,promise2,promise4,promise5,promise6]).then(function(responses){loadUser(page,responses[0],responses[1],responses[2].Items,responses[3].Items,responses[4].Items)})})});