1 line
8.9 KiB
JavaScript
1 line
8.9 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","./spotlight.js","./../modules/tabbedview/basetab.js"],function(_exports,_connectionmanager,_cardbuilder,_itemmanager,_embyItemscontainer,_globalize,_approuter,_spotlight,_basetab){function loadRecommendations(instance,element,apiClient){return apiClient.getMovieRecommendations({categoryLimit:4,ItemLimit:8,UserId:apiClient.getCurrentUserId(),ImageTypeLimit:1,EnableImageTypes:instance.getRequestedImageTypes(),Fields:instance.getRequestedItemFields()+",PrimaryImageAspectRatio"}).then(function(recommendations){var itemsContainer,recommendation,values=recommendations.map(getRecommendationHtml),recs=element.querySelector(".recommendations");if(recs){recs.innerHTML='<div class="horizontalSectionsContainer">'+values.join("")+"</div>";for(var itemsContainers=recs.querySelectorAll(".itemsContainer"),i=0,length=recommendations.length;i<length;i++)itemsContainer=itemsContainers[i],recommendation=recommendations[i],_cardbuilder.default.buildCards(recommendation.Items,{shape:"portrait",rows:2,scalable:!1,multiSelect:!1,itemsContainer:itemsContainer}),instance.addFocusBehavior(itemsContainers[i])}})}function getRecommendationHtml(recommendation){var title="";switch(recommendation.RecommendationType){case"SimilarToRecentlyPlayed":title=_globalize.default.translate("BecauseYouWatchedValue",recommendation.BaselineItemName);break;case"SimilarToLikedItem":title=_globalize.default.translate("BecauseYouLikeValue",recommendation.BaselineItemName);break;case"HasDirectorFromRecentlyPlayed":case"HasLikedDirector":title=_globalize.default.translate("DirectedByValue",recommendation.BaselineItemName);break;case"HasActorFromRecentlyPlayed":case"HasLikedActor":title=_globalize.default.translate("StarringValue",recommendation.BaselineItemName)}var html="";return(html+='<div class="horizontalSection">')+('<div class="sectionTitle">'+title+"</div>")+'<div is="emby-itemscontainer" class="itemsContainer">'+"</div>"+"</div>"}function backdropImageUrl(item,options){return(options=options||{}).type=options.type||"Backdrop",options.maxWidth||options.width||options.maxHeight||options.height||(options.quality=100),item.BackdropImageTags&&item.BackdropImageTags.length?(options.tag=item.BackdropImageTags[0],_connectionmanager.default.getApiClient(item.ServerId).getImageUrl(item.Id,options)):null}function MoviesTab(view,params){_basetab.default.apply(this,arguments),this.apiClient=_connectionmanager.default.currentApiClient()}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,Object.assign(MoviesTab.prototype,_basetab.default.prototype),MoviesTab.prototype.onTemplateLoaded=function(){_basetab.default.prototype.onTemplateLoaded.apply(this,arguments);var view=this.view;this.latestItemsContainer=view.querySelector(".latestSection .itemsContainer"),this.latestItemsContainer.fetchData=function(){var options={IncludeItemTypes:"Movie",Limit:12,ParentId:this.params.parentId,EnableImageTypes:this.getRequestedImageTypes(),Fields:this.getRequestedItemFields()+",PrimaryImageAspectRatio",ImageTypeLimit:1,EnableTotalRecordCount:!1};return this.apiClient.getLatestItems(options)}.bind(this),this.latestItemsContainer.getListOptions=function(){return{renderer:_cardbuilder.default,options:{shape:"portrait",rows:2,scalable:!1,multiSelect:!1},virtualScrollLayout:"vertical-grid"}}.bind(this),this.latestItemsContainer.parentContainer=this.latestItemsContainer.closest(".horizontalSection"),this.addFocusBehavior(this.latestItemsContainer),this.resumeItemsContainer=view.querySelector(".resumeSection .itemsContainer"),this.resumeItemsContainer.fetchData=function(){var options={IncludeItemTypes:"Movie",Limit:6,ParentId:this.params.parentId,ImageTypeLimit:1,EnableImageTypes:this.getRequestedImageTypes(),EnableTotalRecordCount:!1},apiClient=this.apiClient;return apiClient.getResumableItems(apiClient.getCurrentUserId(),options)}.bind(this),this.resumeItemsContainer.getListOptions=function(){return{renderer:_cardbuilder.default,options:{shape:"backdrop",rows:3,preferThumb:!0,scalable:!1,multiSelect:!1},virtualScrollLayout:"vertical-grid"}}.bind(this),this.resumeItemsContainer.parentContainer=this.resumeItemsContainer.closest(".horizontalSection"),this.addFocusBehavior(this.resumeItemsContainer),this.categoryItemsContainer=view.querySelector(".categoryItemsContainer"),this.categoryItemsContainer.fetchData=function(){var apiClient=this.apiClient,parentId=this.params.parentId,instance=this;return apiClient.getItems(apiClient.getCurrentUserId(),{SortBy:"IsFavoriteOrLiked,Random",SortOrder:"Descending",IncludeItemTypes:"BoxSet",Limit:1,Recursive:!0,ParentId:parentId,EnableImageTypes:instance.getRequestedImageTypes(),ImageTypes:"Backdrop",Fields:instance.getRequestedItemFields(),ImageTypeLimit:1}).then(function(collectionResult){var collectionItems=collectionResult.Items;return apiClient.getItems(apiClient.getCurrentUserId(),{SortBy:"IsFavoriteOrLiked,Random",SortOrder:"Descending",IncludeItemTypes:"Movie",Limit:2,Recursive:!0,ParentId:parentId,EnableImageTypes:instance.getRequestedImageTypes(),ImageTypes:"Backdrop",Fields:instance.getRequestedItemFields(),ImageTypeLimit:1}).then(function(movieResult){var movieResult=movieResult.Items,imgOptions={maxWidth:600},items=[];return items.push({Name:_globalize.default.translate("Movies"),Id:"movies_movies",ServerId:apiClient.serverId(),ParentId:parentId,Icon:_itemmanager.default.getDefaultIcon({CollectionType:"movies"}),IsCategory:!0,ImageUrl:1<movieResult.length?backdropImageUrl(movieResult[1],imgOptions):null}),items.push({Name:_globalize.default.translate("Favorites"),Id:"movies_favorites",ServerId:apiClient.serverId(),ParentId:parentId,Icon:"favorite",IsCategory:!0,ImageUrl:movieResult.length?backdropImageUrl(movieResult[0],imgOptions):null}),items.push({Name:_globalize.default.translate("Collections"),Id:"movies_collections",ServerId:apiClient.serverId(),ParentId:parentId,Icon:_itemmanager.default.getDefaultIcon({CollectionType:"boxsets"}),IsCategory:!0,ImageUrl:collectionItems.length?backdropImageUrl(collectionItems[0],imgOptions):null}),Promise.resolve({Items:items,TotalRecordCount:items.length})})})}.bind(this),this.categoryItemsContainer.getListOptions=function(){return{renderer:_cardbuilder.default,options:{shape:"backdrop",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="/videos?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.spotlight=new _spotlight.default(view.querySelector(".spotlightItemsContainer"),function(query){var apiClient=this.apiClient;return apiClient.getItems(apiClient.getCurrentUserId(),Object.assign({SortBy:"Random",IncludeItemTypes:"Movie",Recursive:!0,ParentId:this.params.parentId,EnableImageTypes:"Backdrop,Logo",ImageTypes:"Backdrop",Fields:this.getRequestedItemFields()+",Taglines",ImageTypeLimit:1},query))}.bind(this),function(query){var apiClient=this.apiClient;return{Id:this.params.parentId,ServerId:apiClient.serverId(),CollectionType:"movies",Name:_globalize.default.translate("Movies"),IsFolder:!0}}.bind(this))},MoviesTab.prototype.onResume=function(options){_basetab.default.prototype.onResume.apply(this,arguments);var promises=[this.spotlight.resume(options),this.categoryItemsContainer.resume(options),this.resumeItemsContainer.resume(options),this.latestItemsContainer.resume(options)],instance=(options.refresh&&promises.push(loadRecommendations(this,this.view,this.apiClient,this.params.parentId)),this);Promise.all(promises).then(function(){options.autoFocus&&instance.autoFocus()})},MoviesTab.prototype.onPause=function(){_basetab.default.prototype.onPause.apply(this,arguments),this.spotlight.pause(),this.latestItemsContainer.pause(),this.resumeItemsContainer.pause(),this.categoryItemsContainer.pause()},MoviesTab.prototype.destroy=function(){_basetab.default.prototype.destroy.apply(this,arguments),this.spotlight&&(this.spotlight.destroy(),this.spotlight=null),this.latestItemsContainer=null,this.resumeItemsContainer=null,this.categoryItemsContainer=null,this.apiClient=null},MoviesTab.prototype.onItemFocused=function(item){_basetab.default.prototype.onItemFocused.apply(this,arguments),this.onItemFocusedExternal(item)},MoviesTab.prototype.onFocusOut=function(item){_basetab.default.prototype.onFocusOut.apply(this,arguments),this.onFocusOutExternal(item)},MoviesTab.prototype.loadTemplate=function(){return require(["text!home_horiz/views.movies.html"])},MoviesTab.prototype.hasSelectedItemDisplay=function(){return!0},_exports.default=MoviesTab}); |