1 line
6.0 KiB
JavaScript
1 line
6.0 KiB
JavaScript
define(["exports","./../modules/tabbedview/basetab.js","./../modules/emby-apiclient/connectionmanager.js","./../modules/common/globalize.js","./../modules/emby-elements/emby-itemscontainer/emby-itemscontainer.js","./../modules/emby-elements/emby-button/emby-button.js","./../modules/emby-elements/emby-scroller/emby-scroller.js","./../modules/layoutmanager.js","./../modules/cardbuilder/cardbuilder.js"],function(_exports,_basetab,_connectionmanager,_globalize,_embyItemscontainer,_embyButton,_embyScroller,_layoutmanager,_cardbuilder){function getRecommendationHtml(recommendation){var html="",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)}return(html+='<div class="verticalSection verticalSection-cards focusable" data-focusabletype="nearest">')+('<h2 class="sectionTitle sectionTitle-cards padded-left padded-left-page">'+title+"</h2>")+'<div is="emby-scroller" class="padded-top-focusscale padded-bottom-focusscale padded-left padded-left-page padded-right" data-mousewheel="false" data-focusscroll="true">'+'<div is="emby-itemscontainer" class="scrollSlider focuscontainer-x itemsContainer">'+"</div>"+"</div>"+"</div>"}function loadSuggestions(instance,page,apiClient){var url=apiClient.getUrl("Movies/Recommendations",{userId:apiClient.getCurrentUserId(),categoryLimit:6,ItemLimit:12,Fields:instance.getRequestedItemFields()+",PrimaryImageAspectRatio,ProductionYear",ImageTypeLimit:1,EnableImageTypes:instance.getRequestedImageTypes(),GroupProgramsBySeries:!0});apiClient.getJSON(url).then(function(recommendations){for(var suggestionsElement=page.querySelector(".suggestions"),itemsContainers=(suggestionsElement.innerHTML=recommendations.map(getRecommendationHtml).join(""),suggestionsElement.querySelectorAll(".itemsContainer")),i=0,length=recommendations.length;i<length;i++)instance.addFocusBehavior(itemsContainers[i]),!function(instance,itemsContainer,recommendation){_cardbuilder.default.buildCards(recommendation.Items,{shape:"autooverflow",scalable:!0,overlayPlayButton:!0,fields:instance.enableFocusPreview()?[]:["ParentNameOrName","ProductionYear"],centerText:!0,itemsContainer:itemsContainer,focusTransformTitleAdjust:!0})}(instance,itemsContainers[i],recommendations[i])})}function MovieSuggestionsTab(view,params){_basetab.default.apply(this,arguments),this.view=view,this.params=params,this.apiClient=_connectionmanager.default.getApiClient(params.serverId),this.resumeItemsContainer=view.querySelector(".resumeSection .itemsContainer"),this.resumeItemsContainer.fetchData=function(query){var apiClient=this.apiClient,parentId=this.params.parentId;return apiClient.getResumableItems(apiClient.getCurrentUserId(),Object.assign({IncludeItemTypes:"Movie",Fields:this.getRequestedItemFields()+",PrimaryImageAspectRatio,ProductionYear",ParentId:parentId,ImageTypeLimit:1,EnableImageTypes:this.getRequestedImageTypes()},query||{}))}.bind(this),this.resumeItemsContainer.getListOptions=function(){return{renderer:_cardbuilder.default,options:{preferThumb:!0,shape:"backdrop",scalable:!0,fields:this.enableFocusPreview()?[]:["Name","ProductionYear"],centerText:!0,overlayPlayButton:!0,cardLayout:!1,focusTransformTitleAdjust:!0,animateProgressBar:!0},virtualScrollLayout:"horizontal-grid",commandOptions:{removeFromResume:!0}}}.bind(this),this.resumeItemsContainer.parentContainer=view.querySelector(".resumeSection"),this.addFocusBehavior(this.resumeItemsContainer),this.latestItemsContainer=view.querySelector(".latestSection .itemsContainer"),this.latestItemsContainer.fetchData=function(){var apiClient=this.apiClient,parentId=this.params.parentId;return apiClient.getLatestItems({Limit:24,Fields:this.getRequestedItemFields()+",PrimaryImageAspectRatio,ProductionYear",ParentId:parentId,ImageTypeLimit:1,EnableImageTypes:this.getRequestedImageTypes()})}.bind(this),this.latestItemsContainer.getListOptions=function(){return{renderer:_cardbuilder.default,options:{shape:"autooverflow",scalable:!0,fields:this.enableFocusPreview()?[]:["Name","ProductionYear"],centerText:!0,overlayPlayButton:!0,cardLayout:!1,focusTransformTitleAdjust:!0},virtualScrollLayout:"horizontal-grid"}}.bind(this),this.latestItemsContainer.parentContainer=view.querySelector(".latestSection"),this.addFocusBehavior(this.latestItemsContainer),params.parentId&&(this.resumeItemsContainer.setAttribute("data-parentid",params.parentId),this.latestItemsContainer.setAttribute("data-parentid",params.parentId))}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,Object.assign(MovieSuggestionsTab.prototype,_basetab.default.prototype),MovieSuggestionsTab.prototype.supportsFocusPreview=function(){return!0},MovieSuggestionsTab.prototype.enableFocusPreview=function(){return _layoutmanager.default.tv&&this.supportsFocusPreview()},MovieSuggestionsTab.prototype.onResume=function(options){_basetab.default.prototype.onResume.apply(this,arguments);var apiClient=this.apiClient,promises=[],instance=(promises.push(this.resumeItemsContainer.resume(options)),promises.push(this.latestItemsContainer.resume(options)),options&&options.refresh&&loadSuggestions(this,this.view,apiClient),this);Promise.all(promises).then(function(){options.autoFocus&&instance.autoFocus(),instance.fillFocusPreviewIfNeeded()})},MovieSuggestionsTab.prototype.onPause=function(){_basetab.default.prototype.onPause.apply(this,arguments),this.resumeItemsContainer.pause(),this.latestItemsContainer.pause()},MovieSuggestionsTab.prototype.destroy=function(){_basetab.default.prototype.destroy.apply(this,arguments),this.view=null,this.params=null,this.apiClient=null},_exports.default=MovieSuggestionsTab}); |