1 line
12 KiB
JavaScript
1 line
12 KiB
JavaScript
|
|
import dom from"./../dom.js";import playbackManager from"./../common/playback/playbackmanager.js";import connectionManager from"./../emby-apiclient/connectionmanager.js";import itemManager from"./../common/itemmanager/itemmanager.js";import itemShortcuts from"./../shortcuts.js";import commandProcessor from"./../commandprocessor.js";import textEncoding from"./../common/textencoding.js";require(["css!modules/multiselect/multiselect.css"]);let rangeSelectionInfo,selectedItems=[],selectedItemsMap={},currentSelectionCommandsPanel,appHeader=document.querySelector(".skinHeader"),currentHeader;function getSelectedItemsMap(serverId){return serverId=serverId||"0",selectedItemsMap[serverId]||(selectedItemsMap[serverId]={})}function hideSelections(){dom.removeEventListener(window,"keydown",onKeyDown,{});var selectionCommandsPanel=currentSelectionCommandsPanel;if(selectionCommandsPanel){selectionCommandsPanel.remove(),currentSelectionCommandsPanel=null,selectedItems=[],selectedItemsMap={},rangeSelectionInfo=null;let elems=document.querySelectorAll(".multi-select-active"),i,length;for(i=0,length=elems.length;i<length;i++)elems[i].classList.remove("multi-select-active"),dom.removeEventListener(elems[i],"pointerenter",onPointerEnter,{passive:!0,capture:!0}),elems[i].dispatchEvent(new CustomEvent("multiselectinactive",{bubbles:!0,cancelable:!1,detail:{}}));for(elems=document.querySelectorAll(".chkItemSelect:checked"),i=0,length=elems.length;i<length;i++)elems[i].checked=!1,elems[i].classList.remove("chkItemSelect-selecthint");for(elems=document.querySelectorAll(".item-multiselected"),i=0,length=elems.length;i<length;i++)elems[i].classList.remove("item-multiselected")}currentHeader&&(currentHeader.classList.remove("headroomDisabled"),currentHeader=null)}function getSelectedItemsContainer(){return rangeSelectionInfo?.itemsContainer||document.querySelector(".multi-select-active")}function executeCommand(command,hideSelectionsEarly){var items=selectedItems,itemsContainer=getSelectedItemsContainer();return hideSelectionsEarly&&hideSelections(),commandProcessor.executeCommand(command,items,{itemsContainer:itemsContainer}).then(hideSelections)}function onCommandButtonClick(e){e=e.target.closest("button");e&&executeCommand(e.getAttribute("data-command"))}function showSelectionCommands(chkItemSelect){var header,selectionCommandsPanel=currentSelectionCommandsPanel;selectionCommandsPanel||((selectionCommandsPanel=document.createElement("div")).classList.add("selectionCommandsPanel"),header=(chkItemSelect=chkItemSelect.closest(".dialog"))?.querySelector(".formDialogHeader")||appHeader,(currentHeader=header).appendChild(selectionCommandsPanel),header.classList.add("headroomDisabled"),chkItemSelect&&(chkItemSelect.removeEventListener("close",hideSelections),chkItemSelect.addEventListener("close",hideSelections)),(currentSelectionCommandsPanel=selectionCommandsPanel).innerHTML='<button is="paper-icon-button-light" class="btnCloseSelectionPanel"><i class="md-icon">close</i></button><h1 class="itemSelectionCount"></h1><div class="multiSelectActionsContainer flex align-items-center"><div class="multiSelectPrimaryButtons flex align-items-center"></div><button is="paper-icon-button-light" class="btnSelectionPanelOptions md-icon"></button></div>',selectionCommandsPanel.querySelector(".btnCloseSelectionPanel").addEventListener("click",hideSelections),selectionCommandsPanel.querySelector(".multiSelectPrimaryButtons").addEventListener("click",onCommandButtonClick),header=selectionCommandsPanel.querySelector(".btnSelectionPanelOptions"),dom.addEventListener(header,"click",showMenuForSelectedItems,{passive:!0}))}function mapApiClientArrayToObject(responses){var map={};for(let i=0,length=responses.length;i<length;i++){var user=responses[i];map[user.ServerId]=user}return map}function getUsersFromServersForSelectedItems(items){var promises=[],servers={};for(let i=0,length=items.length;i<length;i++){var item=items[i],serverId=item.ServerId;serverId&&!servers[serverId]&&(servers[serverId]=!0,promises.push(connectionManager.getApiClient(item).getCurrentUser())
|