5 lines
No EOL
3.3 KiB
JavaScript
5 lines
No EOL
3.3 KiB
JavaScript
import BaseTab from"./basetab.js";import cardBuilder from"./../modules/cardbuilder/cardbuilder.js";import connectionManager from"./../modules/emby-apiclient/connectionmanager.js";import itemManager from"./../modules/common/itemmanager/itemmanager.js";import globalize from"./../modules/common/globalize.js";import userSettings from"./../modules/common/usersettings/usersettings.js";function showAlert(options){return Emby.importModule("./modules/common/dialogs/alert.js").then(function(alert){return alert(options)})}function fetchItems(query){var item=this.currentOptions.displayItem;let serverId=item.ServerId,people=(item.People||[]).map(function(p){return(p=Object.assign({},p)).ServerId=serverId,"Person"!==p.Type&&(p.PersonType=p.Type,p.Type="Person"),p});item=people.length;return query&&(people=people.slice(query.StartIndex||0),query.Limit)&&people.length>query.Limit&&(people.length=query.Limit),Promise.resolve({Items:people,TotalRecordCount:item})}function getListOptions(items){return{renderer:cardBuilder,options:{shape:"portrait",cardLayout:!1,centerText:!0,sideFooter:!1,fields:["Name","PersonRole"],cardFooterAside:!1,showPersonRoleOrType:!0,multiSelect:!1,coverImage:!0,draggable:!1,contextMenu:!1,playedButton:!1,ratingButton:!1,cardClass:"videoOsd-itemstab-card videoOsd-itemstab-card-twoline",action:userSettings.enableVideoUnderUI()?null:"custom",enableUserData:!1,allowBottomPadding:!1,textLinks:!1,imageClass:null,enableFocusScaling:!1},virtualScrollLayout:"horizontal-grid"}}function onCardAction(e){var e=e.detail.item,apiClient=connectionManager.getApiClient(e);apiClient.getItem(apiClient.getCurrentUserId(),e.Id).then(function(item){return showAlert({html:item.Overview||"",confirmButton:!1,title:itemManager.getDisplayName(item),centerText:!1,confirmText:globalize.translate("Close"),item:item})})}function PeopleTab(view){BaseTab.apply(this,arguments)}Object.assign(PeopleTab.prototype,BaseTab.prototype),PeopleTab.prototype.loadTemplate=function(){var view=this.view;return view.innerHTML=`
|
|
<div is="emby-scroller" data-mousewheel="false" data-focusscroll="true" class="padded-top-focusscale padded-bottom-focusscale">
|
|
<div is="emby-itemscontainer" data-focusabletype="nearest" class="focusable focuscontainer-x scrollSlider itemsContainer videoosd-padded-left videoosd-padded-right" data-virtualscrolllayout="horizontal-grid"></div>
|
|
</div>
|
|
`,this.itemsContainer=view.querySelector(".itemsContainer"),this.itemsContainer.fetchData=fetchItems.bind(this),this.itemsContainer.getListOptions=getListOptions.bind(this),this.itemsContainer.addEventListener("action-null",onCardAction.bind(this)),Promise.resolve()},PeopleTab.prototype.onResume=function(options){let instance=this;return BaseTab.prototype.onResume.apply(this,arguments).then(function(){var optionsWithoutRefresh=Object.assign(Object.assign({},options),{refresh:!1});return instance.itemsContainer.resume(optionsWithoutRefresh).then(function(){options.refresh&&instance.refreshItem()})})},PeopleTab.prototype.refreshItem=function(){BaseTab.prototype.refreshItem.apply(this,arguments),this.itemsContainer.refreshItems()},PeopleTab.prototype.onPause=function(){BaseTab.prototype.onPause.apply(this,arguments),this.itemsContainer.pause()},PeopleTab.prototype.destroy=function(){BaseTab.prototype.destroy.apply(this,arguments),this.itemsContainer=null};export default PeopleTab; |