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

2018-09-12 19:26:21 +02:00
define(["playbackManager","userSettings","alphaPicker","alphaNumericShortcuts","connectionManager","focusManager","loading","globalize"],function(playbackManager,userSettings,AlphaPicker,AlphaNumericShortcuts,connectionManager,focusManager,loading,globalize){"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();trySelectValue(this,this.scroller,this.itemsContainer,value)}function initAlphaPicker(instance,view){instance.itemsContainer=view.querySelector(".itemsContainer"),instance.alphaPicker=new AlphaPicker({element:instance.alphaPickerElement,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 updateAlphaPickerState(instance){if(instance.alphaPicker){var alphaPicker=instance.alphaPickerElement;if(alphaPicker){var values=instance.getSortValues();"SortName"===values.sortBy&&"Ascending"===values.sortOrder?alphaPicker.classList.remove("hide"):alphaPicker.classList.add("hide")}}}function showSortMenu(){var instance=this;require(["sortMenu"],function(SortMenu){(new SortMenu).show({settingsKey:instance.getSettingsKey(),settings:instance.getSortValues(),onChange:instance.itemsContainer.refreshItems.bind(instance.itemsContainer),serverId:instance.params.serverId,sortOptions:instance.getSortMenuOptions()}).then(function(){updateSortText(instance),updateAlphaPickerState(instance),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(){updateItemsContainerForViewType(instance),instance.itemsContainer.refreshItems()})})}function updateItemsContainerForViewType(instance){"list"===instance.getViewSettings().imageType?(instance.itemsContainer.classList.remove("vertical-wrap"),instance.itemsContainer.classList.add("vertical-list")):(instance.itemsContainer.classList.add("vertical-wrap"),instance.itemsContainer.classList.remove("vertical-list"))}function updateSortText(instance){var btnSortText=instance.btnSortText;if(btnSortText){for(var options=instance.getSortMenuOptions(),values=instance.getSortValues(),sortBy=values.sortBy,i=0,length=options.length;i<length;i++)if(sortBy===options[i].value){btnSortText.innerHTML=globalize.translate("sharedcomponents#SortByValue",options[i].name);break}var btnSortIcon=instance.btnSortIcon;btnSortIcon&&(btnSortIcon.innerHTML="Descending"===values.sortOrder?"&#xE5DB;":"&#xE5D8;")}}function bindAll(elems,eventName,fn){for(var i=0,length=elems.length;i<length;i++)elems[i].addEventListener(eventName,fn)}function play(){this.fetchData().then(function(result){playbackManager.play({items:result.Items||result})})}function shuffle(){this.fetchData().then(function(result){playbackManager.play({items:result.Items||result})})}function hideOrShowAll(elems,hide){for(var i=0,length=elems.length;i<length;i++)hi