EmbyCrackedClient/web/modules/itemaccessdialog/itemaccessdialog.js

1 line
6.9 KiB
JavaScript
Raw Permalink Normal View History

2025-06-25 11:46:04 +08:00
import connectionManager from"./../emby-apiclient/connectionmanager.js";import"./../emby-elements/emby-button/emby-button.js";import"./../emby-elements/emby-select/emby-select.js";import"./../emby-elements/emby-scroller/emby-scroller.js";import"./../emby-elements/emby-itemscontainer/emby-itemscontainer.js";import"./../emby-elements/emby-dialogclosebutton/emby-dialogclosebutton.js";import dialogHelper from"./../dialoghelper/dialoghelper.js";import layoutManager from"./../layoutmanager.js";import dom from"./../dom.js";import globalize from"./../common/globalize.js";import focusManager from"./../focusmanager.js";import listView from"./../listview/listview.js";import itemShortcuts from"./../shortcuts.js";import formHelper from"./../common/responsehelper.js";function ItemAccessDialog(){}function getEditorHtml(options){let html="";html=(html+='<div is="emby-scroller" data-horizontal="false" data-forcescrollbar="true" data-focusscroll="true" class="formDialogContent virtualScrollerScrollContainer">')+'<div class="scrollSlider"><form class="dialogContentInner dialog-content-centered padded-left padded-right">';options=options.item;return html=(html=(html+='<div class="selectContainer flex-shrink-zero">')+('<select is="emby-select" class="selectVisibility emby-select-dynamicfielddescription" required="required" label="'+globalize.translate("Visibility")+'" data-menu="custom">'))+('<option value="private" data-description="'+globalize.translate("MakePrivateDescription")+'">'+globalize.translate("Private")+"</option>"),"Playlist"===options.Type?html+='<option value="public" data-description="'+globalize.translate("MakePublicDescription")+'">'+globalize.translate("Collaborative")+"</option>":html+='<option value="public" data-description="'+globalize.translate("MakePublicDescription")+'">'+globalize.translate("Public")+"</option>",html=(html=(html=(html=(html=(html=(html=(html=(html+="</select>")+'<div class="fieldDescription dynamicFieldDescription hide"></div>'+"</div>")+'<div class="userItemAccessContainer hide">'+'<div class="flex secondaryText" style="margin:2em 0 0;">')+('<h3 class="flex-grow" style="margin:0;">'+globalize.translate("User"))+"</h3>")+('<h3 style="margin:0;">'+globalize.translate("Access")))+"</h3>"+"</div>")+'<div is="emby-itemscontainer" data-virtualscrolllayout="vertical-grid" class="itemsContainer allItemsContainer itemsContainer-defaultCardSize vertical-wrap padded-bottom-page">'+"</div>")+"</div>"+"</form>")+"</div>"+"</div>"}function autoFocus(){var dlg=this.dlg;focusManager.autoFocus(dlg,{skipIfNotEnabled:!0})}function onDialogClosed(){return this.result?(this.cleanup(),Promise.resolve()):(this.cleanup(),Promise.reject())}function onItemAction(e){layoutManager.tv&&e.target.closest(".listItem").querySelector("select").click()}function onAllItemsContainerUpgraded(){this.itemsContainer.resume({refresh:!0}).then(autoFocus.bind(this))}function onOpened(){var itemsContainer=this.itemsContainer;itemsContainer.resume?onAllItemsContainerUpgraded.call(this):dom.addEventListener(itemsContainer,"upgraded",onAllItemsContainerUpgraded.bind(this),{once:!0})}function onVisibilityChange(e){let instance=this,options=instance.options;var item=options.item;let apiClient=connectionManager.getApiClient(item);e=e.target.value;let promise;return(promise="public"===e?apiClient.makePublic(item.Id):apiClient.makePrivate(item.Id)).then(function(){return apiClient.getItem(apiClient.getCurrentUserId(),options.item.Id,{fields:"ShareLevel",ExcludeFields:"Chapters,MediaSources,MediaStreams,People,Overview,Subviews"}).then(function(item){options.item=item,instance.itemsContainer.refreshItems()})})}function onUserAccessChange(e){var item=this.options.item,e=e.target;let itemsContainer=this.itemsContainer;var itemElement=itemShortcuts.getItemElementFromChildNode(e,!1,itemsContainer),itemElement=itemsContainer.getItemFromElement(itemElement),e=e.value;connectionManager.getApiClient(itemElement).updateUserItemAccess({UserIds:[itemElement.Id],ItemIds:[item.Id],ItemAccess:e}).then(function(){itemsContainer.refreshItems()},formHelper.handleEr