dashboard-ui/home_horiz/views.music.js
2023-08-31 15:30:17 +02:00

1 line
10 KiB
JavaScript

define(["exports","./../modules/emby-apiclient/connectionmanager.js","./../modules/cardbuilder/cardbuilder.js","./../modules/common/itemmanager/itemmanager.js","./../modules/emby-elements/emby-itemscontainer/emby-itemscontainer.js","./../modules/common/globalize.js","./../modules/approuter.js","./../modules/tabbedview/basetab.js"],function(_exports,_connectionmanager,_cardbuilder,_itemmanager,_embyItemscontainer,_globalize,_approuter,_basetab){function MusicTab(view,params){_basetab.default.apply(this,arguments),this.apiClient=_connectionmanager.default.currentApiClient()}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,Object.assign(MusicTab.prototype,_basetab.default.prototype),MusicTab.prototype.onTemplateLoaded=function(){_basetab.default.prototype.onTemplateLoaded.apply(this,arguments);var view=this.view;this.categoryItemsContainer=view.querySelector(".categoryItemsContainer"),this.categoryItemsContainer.fetchData=function(){var apiClient=this.apiClient,parentId=this.params.parentId,items=[];return items.push({Name:_globalize.default.translate("Albums"),Id:"music_albums",ServerId:apiClient.serverId(),ParentId:parentId,Icon:_itemmanager.default.getDefaultIcon({Type:"MusicAlbum"}),IsCategory:!0}),items.push({Name:_globalize.default.translate("Artists"),Id:"music_albumartists",ServerId:apiClient.serverId(),ParentId:parentId,Icon:_itemmanager.default.getDefaultIcon({Type:"MusicArtist"}),IsCategory:!0}),items.push({Name:_globalize.default.translate("Genres"),Id:"music_genres",ServerId:apiClient.serverId(),ParentId:parentId,Icon:_itemmanager.default.getDefaultIcon({Type:"MusicGenre"}),IsCategory:!0}),Promise.resolve({Items:items,TotalRecordCount:items.length})}.bind(this),this.categoryItemsContainer.getListOptions=function(){return{renderer:_cardbuilder.default,options:{shape:"square",multiSelect:!1,contextMenu:!1,overlayText:!0,fields:["Name"],action:"custom"},virtualScrollLayout:"vertical-grid"}}.bind(this),this.categoryItemsContainer.addEventListener("action-null",function(e){var e=e.detail.item,url="/music?serverId="+_connectionmanager.default.getApiClient(e).serverId()+"&parentId="+e.ParentId;1<(e=e.Id.split("_")).length&&(url+="&tab="+e[1]),_approuter.default.show(url)}.bind(this)),this.addFocusBehavior(this.categoryItemsContainer),this.latestItemsContainer=view.querySelector(".latestItemsContainer"),this.latestItemsContainer.fetchData=function(){var options={IncludeItemTypes:"Audio",Limit:9,Fields:this.getRequestedItemFields()+",PrimaryImageAspectRatio",EnableImageTypes:this.getRequestedImageTypes(),ParentId:this.params.parentId,ImageTypeLimit:1};return this.apiClient.getLatestItems(options)}.bind(this),this.latestItemsContainer.getListOptions=function(){return{renderer:_cardbuilder.default,options:{shape:"auto",rows:{portrait:2,square:3,backdrop:3,fourThree:3},scalable:!1,multiSelect:!1},virtualScrollLayout:"vertical-grid"}}.bind(this),this.latestItemsContainer.parentContainer=this.latestItemsContainer.closest(".horizontalSection"),this.addFocusBehavior(this.latestItemsContainer),this.playlistsItemsContainer=view.querySelector(".playlistsItemsContainer"),this.playlistsItemsContainer.fetchData=function(){var options={SortBy:"SortName",SortOrder:"Ascending",IncludeItemTypes:"Playlist",Recursive:!0,ParentId:this.params.parentId,Fields:"PrimaryImageAspectRatio,SortName,CumulativeRunTimeTicks,CanDelete",StartIndex:0,Limit:9,ImageTypeLimit:1},apiClient=this.apiClient;return apiClient.getItems(apiClient.getCurrentUserId(),options)}.bind(this),this.playlistsItemsContainer.getListOptions=function(){return{renderer:_cardbuilder.default,options:{shape:"auto",overlayText:!0,rows:{portrait:2,square:3,backdrop:3,fourThree:3},scalable:!1,multiSelect:!1},virtualScrollLayout:"vertical-grid"}}.bind(this),this.playlistsItemsContainer.parentContainer=this.playlistsItemsContainer.closest(".horizontalSection"),this.addFocusBehavior(this.playlistsItemsContainer),this.recentlyPlayedItemsContainer=view.querySelector(".recentlyPlayedItemsContainer"),this.recentlyPlayedItemsContainer.fetchData=function(){var options={SortBy:"DatePlayed",SortOrder:"Descending",IncludeItemTypes:"Audio",Limit:6,Recursive:!0,Fields:this.getRequestedItemFields()+",PrimaryImageAspectRatio",EnableImageTypes:this.getRequestedImageTypes(),Filters:"IsPlayed",ParentId:this.params.parentId,ImageTypeLimit:1},apiClient=this.apiClient;return apiClient.getItems(apiClient.getCurrentUserId(),options)}.bind(this),this.recentlyPlayedItemsContainer.getListOptions=function(){return{renderer:_cardbuilder.default,options:{shape:"auto",action:"instantmix",rows:{portrait:2,square:3,backdrop:3,fourThree:3},scalable:!1,multiSelect:!1},virtualScrollLayout:"vertical-grid"}}.bind(this),this.recentlyPlayedItemsContainer.parentContainer=this.recentlyPlayedItemsContainer.closest(".horizontalSection"),this.addFocusBehavior(this.recentlyPlayedItemsContainer),this.frequentlyPlayedItemsContainer=view.querySelector(".frequentlyPlayedItemsContainer"),this.frequentlyPlayedItemsContainer.fetchData=function(){var options={SortBy:"PlayCount",SortOrder:"Descending",IncludeItemTypes:"Audio",Limit:6,Recursive:!0,Fields:"PrimaryImageAspectRatio",Filters:"IsPlayed",ParentId:this.params.parentId,ImageTypeLimit:1,EnableImageTypes:"Primary,Backdrop,Thumb,Logo"},apiClient=this.apiClient;return apiClient.getItems(apiClient.getCurrentUserId(),options)}.bind(this),this.frequentlyPlayedItemsContainer.getListOptions=function(){return{renderer:_cardbuilder.default,options:{shape:"auto",action:"instantmix",rows:{portrait:2,square:3,backdrop:3,fourThree:3},scalable:!1,multiSelect:!1},virtualScrollLayout:"vertical-grid"}}.bind(this),this.frequentlyPlayedItemsContainer.parentContainer=this.frequentlyPlayedItemsContainer.closest(".horizontalSection"),this.addFocusBehavior(this.frequentlyPlayedItemsContainer),this.favoriteArtistsItemsContainer=view.querySelector(".favoriteArtistsItemsContainer"),this.favoriteArtistsItemsContainer.fetchData=function(){var options={SortBy:"Random",Limit:6,Recursive:!0,Fields:this.getRequestedItemFields()+",PrimaryImageAspectRatio",EnableImageTypes:this.getRequestedImageTypes(),Filters:"IsFavorite",ParentId:this.params.parentId,ImageTypeLimit:1},apiClient=this.apiClient;return apiClient.getArtists(apiClient.getCurrentUserId(),options)}.bind(this),this.favoriteArtistsItemsContainer.getListOptions=function(){return{renderer:_cardbuilder.default,options:{shape:"auto",rows:{portrait:2,square:3,backdrop:3,fourThree:3},scalable:!1,multiSelect:!1},virtualScrollLayout:"vertical-grid"}}.bind(this),this.favoriteArtistsItemsContainer.parentContainer=this.favoriteArtistsItemsContainer.closest(".horizontalSection"),this.addFocusBehavior(this.favoriteArtistsItemsContainer),this.favoriteAlbumsItemsContainer=view.querySelector(".favoriteAlbumsItemsContainer"),this.favoriteAlbumsItemsContainer.fetchData=function(){var options={SortBy:"Random",IncludeItemTypes:"MusicAlbum",Limit:6,Recursive:!0,Fields:this.getRequestedItemFields()+",PrimaryImageAspectRatio",EnableImageTypes:this.getRequestedImageTypes(),Filters:"IsFavorite",ParentId:this.params.parentId,ImageTypeLimit:1},apiClient=this.apiClient;return apiClient.getItems(apiClient.getCurrentUserId(),options)}.bind(this),this.favoriteAlbumsItemsContainer.getListOptions=function(){return{renderer:_cardbuilder.default,options:{shape:"auto",rows:{portrait:2,square:3,backdrop:3,fourThree:3},scalable:!1,multiSelect:!1},virtualScrollLayout:"vertical-grid"}}.bind(this),this.favoriteAlbumsItemsContainer.parentContainer=this.favoriteAlbumsItemsContainer.closest(".horizontalSection"),this.addFocusBehavior(this.favoriteAlbumsItemsContainer),this.favoriteSongsItemsContainer=view.querySelector(".favoriteSongsItemsContainer"),this.favoriteSongsItemsContainer.fetchData=function(){var options={SortBy:"Random",IncludeItemTypes:"Audio",Limit:6,Recursive:!0,Fields:this.getRequestedItemFields()+",PrimaryImageAspectRatio",EnableImageTypes:this.getRequestedImageTypes(),Filters:"IsFavorite",ParentId:this.params.parentId,ImageTypeLimit:1},apiClient=this.apiClient;return apiClient.getItems(apiClient.getCurrentUserId(),options)}.bind(this),this.favoriteSongsItemsContainer.getListOptions=function(){return{renderer:_cardbuilder.default,options:{shape:"auto",action:"instantmix",rows:{portrait:2,square:3,backdrop:3,fourThree:3},scalable:!1,multiSelect:!1},virtualScrollLayout:"vertical-grid"}}.bind(this),this.favoriteSongsItemsContainer.parentContainer=this.favoriteSongsItemsContainer.closest(".horizontalSection"),this.addFocusBehavior(this.favoriteSongsItemsContainer)},MusicTab.prototype.onResume=function(options){_basetab.default.prototype.onResume.apply(this,arguments);var instance=this;return Promise.all([this.categoryItemsContainer.resume(options).then(function(){return options.autoFocus&&instance.autoFocus(),Promise.resolve()}),this.latestItemsContainer.resume(options),this.playlistsItemsContainer.resume(options),this.recentlyPlayedItemsContainer.resume(options),this.frequentlyPlayedItemsContainer.resume(options),this.favoriteArtistsItemsContainer.resume(options),this.favoriteAlbumsItemsContainer.resume(options),this.favoriteSongsItemsContainer.resume(options)])},MusicTab.prototype.onPause=function(){_basetab.default.prototype.onPause.apply(this,arguments),this.categoryItemsContainer.pause(),this.latestItemsContainer.pause(),this.playlistsItemsContainer.pause(),this.recentlyPlayedItemsContainer.pause(),this.frequentlyPlayedItemsContainer.pause(),this.favoriteArtistsItemsContainer.pause(),this.favoriteAlbumsItemsContainer.pause(),this.favoriteSongsItemsContainer.pause()},MusicTab.prototype.destroy=function(){_basetab.default.prototype.destroy.apply(this,arguments),this.apiClient=null,this.categoryItemsContainer=null,this.latestItemsContainer=null,this.playlistsItemsContainer=null,this.recentlyPlayedItemsContainer=null,this.frequentlyPlayedItemsContainer=null,this.favoriteArtistsItemsContainer=null,this.favoriteAlbumsItemsContainer=null,this.favoriteSongsItemsContainer=null},MusicTab.prototype.onItemFocused=function(item){_basetab.default.prototype.onItemFocused.apply(this,arguments),this.onItemFocusedExternal(item)},MusicTab.prototype.onFocusOut=function(item){_basetab.default.prototype.onFocusOut.apply(this,arguments),this.onFocusOutExternal(item)},MusicTab.prototype.loadTemplate=function(){return require(["text!home_horiz/views.music.html"])},MusicTab.prototype.hasSelectedItemDisplay=function(){return!0},_exports.default=MusicTab});