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
4.6 KiB
JavaScript
Raw Normal View History

2017-11-27 15:14:43 -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)}).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")}},ItemsTab.prototype.getSettingsKey=function(){return this.params.parentId},ItemsTab.prototype.onResume=function(options){var view=this.view;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")}},ItemsTab.prototype.getVisibleFilters=function(){return["IsUnplayed","IsPlayed","IsFavorite"]},ItemsTab.prototype.setFilterStatus=function(hasFilters){var btnFilter=this.btnFilter;if(btnFilter){var bubble=btnFilter.querySelector(".filterButtonBubble");if(!bubble){if(!hasFilters)return;btnFilter.insertAdjacentHTML("afterbegin",'<