dashboard-ui/metadatamanager/librarytree.js
2023-08-31 15:30:17 +02:00

1 line
4.9 KiB
JavaScript

define(["exports","./../modules/emby-elements/emby-itemscontainer/emby-itemscontainer.js","./../modules/listview/listview.js","./../modules/shortcuts.js","./../modules/common/globalize.js"],function(_exports,_embyItemscontainer,_listview,_shortcuts,_globalize){function getListViewOptions(){return{fields:["Name"],highlight:!1,mediaInfo:!1,enableSideMediaInfo:!1,dropTarget:!1,hoverPlayButton:!1,imagePlayButton:!1,multiSelect:!1,draggable:!1,contextMenu:!1,enableOverview:!1,hoverMenu:!1,action:"custom",enableUserDataButtons:!1,moreButton:!1,listItemBodyClassName:"libraryTreeListItemBody",imageContainerClass:"libraryTreeListItemImageContainer",iconClass:"libraryTreeItemIcon",enableDefaultIcon:!0,preferIcon:!0,treeButton:!0,treeButtonClass:"btnToggleLibraryTreeNode",itemClass:"libraryTreeItem",artist:!1,gameSystem:!1,isBoundListItem:!1}}function onItemAction(e){var _instance$getCurrentI,item=e.detail.item;"livetv"===item.CollectionType||"UserView"===item.Type||"CollectionFolder"===item.Type||item.CollectionType||item.Id!==(null==(_instance$getCurrentI=this.getCurrentItem())?void 0:_instance$getCurrentI.Id)&&((_instance$getCurrentI=e.target.closest(".listItem")).classList.add("navMenuOption-selected"),this.setCurrentItem(item,_instance$getCurrentI),this.options.view.dispatchEvent(new CustomEvent("itemchange",{detail:{item:item},bubbles:!0,cancelable:!1})))}function getSubtree(instance,listItem,create){var tree=listItem.nextElementSibling;return tree&&tree.classList.contains("librarySubTree")?tree:create?(listItem.insertAdjacentHTML("afterend",'<div class="librarySubTree itemsContainer vertical-list" is="emby-itemscontainer"></div>'),(tree=listItem.nextElementSibling).addEventListener("click",onClick.bind(instance)),tree.addEventListener("action-null",onItemAction.bind(instance)),tree):null}function compareByName(a,b){a=a.Name,b=b.Name;return a<b?-1:b<a?1:0}function getSubtreeItems(listItem){var apiClient=ApiClient,listItem=_shortcuts.default.getItemFromElement(listItem);return"livetv"===listItem.CollectionType?apiClient.getLiveTvChannels({AddCurrentProgram:!1}):"categories"===listItem.Id?function(apiClient){var items=[],apiClient=apiClient.serverId();return items.push({Id:"category_videos",ServerId:apiClient,Type:"Video",MediaType:"Video",Name:_globalize.default.translate("Videos")}),items.push({Id:"category_books",ServerId:apiClient,Type:"Book",MediaType:"Book",Name:_globalize.default.translate("Books")}),items.push({Id:"category_games",ServerId:apiClient,Type:"Game",MediaType:"Game",Name:_globalize.default.translate("Games")}),items.push({Id:"category_photos",ServerId:apiClient,Type:"Photo",MediaType:"Photo",Name:_globalize.default.translate("Photos")}),items.push({Id:"category_audio",ServerId:apiClient,Type:"Audio",MediaType:"Audio",Name:_globalize.default.translate("Audio")}),items.sort(compareByName),Promise.resolve(items)}(apiClient):(listItem={ParentId:listItem.Id,Fields:"Settings",IsVirtualUnaired:!1,IsMissing:!1,EnableTotalRecordCount:!1,EnableImages:!1,EnableUserData:!1},apiClient.getItems(apiClient.getCurrentUserId(),listItem))}function showSubtree(instance,listItem){instance=getSubtree(instance,listItem,!0);instance._itemsLoaded||(instance._itemsLoaded=!0,function(listItem,tree){getSubtreeItems(listItem).then(function(result){var result=result.Items||result,options=getListViewOptions();options.itemsContainer=tree,_listview.default.buildItems(result,options)})}(listItem,instance)),instance.classList.remove("hide")}function onClick(e){var listItem,e=e.target.closest(".btnToggleLibraryTreeNode");e&&(listItem=e.closest(".listItem"),e.classList.toggle("btnToggleLibraryTreeNode-expanded")?showSubtree(this,listItem):null!=(e=getSubtree(this,listItem))&&e.classList.add("hide"))}function LibraryTree(options){this.options=options;options=this.options.view;options.addEventListener("click",onClick.bind(this)),options.addEventListener("action-null",onItemAction.bind(this)),options.fetchData=function(query){return ApiClient.getUserViews(Object.assign({},query),ApiClient.getCurrentUserId()).then(function(result){return result.Items.slice(0)})}.bind(this),options.getListOptions=function(){return{renderer:_listview.default,options:getListViewOptions(),virtualScrollLayout:"vertical-grid"}}.bind(this),this.itemsContainer=options}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,require(["material-icons","css!metadatamanager/metadatamanager.css"]),LibraryTree.prototype.getCurrentItem=function(){return this.currentItem},LibraryTree.prototype.setCurrentItem=function(item,listItem){var _this$currentListItem;null!=(_this$currentListItem=this.currentListItem)&&_this$currentListItem.classList.remove("navMenuOption-selected"),this.currentListItem=listItem,this.currentItem=item},LibraryTree.prototype.resume=function(options){return this.itemsContainer.resume(options)},LibraryTree.prototype.destroy=function(){this.options=null,this.currentListItem=null,this.currentItem=null},_exports.default=LibraryTree});