1
0
Fork 0
mirror of https://github.com/jellyfin/jellyfin-web synced 2025-03-30 19:56:21 +00:00
jellyfin-web/dashboard-ui/bower_components/emby-webcomponents/tabbedview/itemstab.js

1 line
6 KiB
JavaScript
Raw Normal View History

2017-12-05 13:33:44 -05:00
define(["userSettings","alphaPicker","alphaNumericShortcuts","connectionManager","focusManager"],function(userSettings,AlphaPicker,AlphaNumericShortcuts,connectionManager,focusManager){"use strict";function trySelectValue(instance,scroller,view,value){var card;if("#"===value&&(card=view.querySelector(".card")))return void scroller.toStart(card,!1);if(card=view.querySelector(".card[data-prefix^='"+value+"']"))return void scroller.toStart(card,!1);var values=instance.alphaPicker.values(),index=values.indexOf(value);if(index<values.length-2)trySelectValue(instance,scroller,view,values[index+1]);else{var all=view.querySelectorAll(".card");card=all.length?all[all.length-1]:null,card&&scroller.toStart(card,!1)}}function onAlphaValueChanged(){var value=this.alphaPicker.value(),scroller=this.scroller;trySelectValue(this,scroller,this.itemsContainer,value)}function initAlphaPicker(instance,view){instance.itemsContainer=view.querySelector(".itemsContainer"),instance.alphaPicker=new AlphaPicker({element:view.querySelector(".alphaPicker"),itemsContainer:instance.itemsContainer,itemClass:"card"}),instance.alphaPicker.on("alphavaluechanged",onAlphaValueChanged.bind(instance))}function showFilterMenu(){var instance=this;require(["filterMenu"],function(FilterMenu){(new FilterMenu).show({settingsKey:instance.getSettingsKey(),settings:instance.getFilters(),visibleSettings:instance.getVisibleFilters(),onChange:instance.itemsContainer.refreshItems.bind(instance.itemsContainer),parentId:instance.params.parentId,itemTypes:instance.getItemTypes?instance.getItemTypes():[],serverId:instance.apiClient.serverId(),filterMenuOptions:instance.getFilterMenuOptions()}).then(function(){instance.itemsContainer.refreshItems()})})}function showViewSettingsMenu(){var instance=this;require(["viewSettings"],function(ViewSettings){(new ViewSettings).show({settingsKey:instance.getSettingsKey(),settings:instance.getViewSettings(),visibleSettings:instance.getVisibleViewSettings()}).then(function(){instance.itemsContainer.refreshItems()})})}function ItemsTab(view,params){this.view=view,this.params=params,params.serverId&&(this.apiClient=connectionManager.getApiClient(params.serverId)),this.itemsContainer=view.querySelector(".itemsContainer"),this.scroller=view.querySelector(".scrollFrameY"),this.itemsContainer.fetchData=this.fetchData.bind(this),this.itemsContainer.getItemsHtml=this.getItemsHtml.bind(this),params.parentId&&this.itemsContainer.setAttribute("data-parentid",params.parentId);var btnViewSettings=view.querySelector(".btnViewSettings");btnViewSettings&&btnViewSettings.addEventListener("click",showViewSettingsMenu.bind(this));var btnFilter=view.querySelector(".btnFilter");this.btnFilter=btnFilter,btnFilter&&btnFilter.addEventListener("click",showFilterMenu.bind(this))}return ItemsTab.prototype.getViewSettings=function(){var basekey=this.getSettingsKey();return{showTitle:"false"!==userSettings.get(basekey+"-showTitle"),showYear:"false"!==userSettings.get(basekey+"-showYear"),imageType:userSettings.get(basekey+"-imageType")||this.getDefaultImageType()}},ItemsTab.prototype.getDefaultImageType=function(){return"primary"},ItemsTab.prototype.getSettingsKey=function(){return this.params.parentId+"-1"},ItemsTab.prototype.onResume=function(options){var view=this.view,scroller=this.scroller;scroller&&scroller.resume(),this.enableAlphaPicker&&!this.alphaPicker&&initAlphaPicker(this,view),this.enableAlphaNumericShortcuts!==!1&&(this.alphaNumericShortcuts=new AlphaNumericShortcuts({itemsContainer:this.itemsContainer}));var instance=this,autoFocus=options.autoFocus;this.itemsContainer.resume(options).then(function(result){autoFocus&&focusManager.autoFocus(instance.itemsContainer)})},ItemsTab.prototype.getVisibleViewSettings=function(){return["showTitle","showYear","imageType"]},ItemsTab.prototype.getFilters=function(){var basekey=this.getSettingsKey();return{IsPlayed:"true"===userSettings.getFilter(basekey+"-filter-IsPlayed"),IsUnplayed:"true"===userSettings.getFilter(basekey+"-filter-IsUnplayed"),IsFavorite:"true"===userSettings.getFilter(basekey+"-filter-IsFavorite"