update list components

This commit is contained in:
Luke Pulverenti 2017-11-25 23:40:28 -05:00
parent 902a5f062e
commit ba214a02af
88 changed files with 230 additions and 107 deletions

View file

@ -0,0 +1 @@
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 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))}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.onPause=function(){var alphaNumericShortcuts=this.alphaNumericShortcuts;alphaNumericShortcuts&&(alphaNumericShortcuts.destroy(),this.alphaNumericShortcuts=null)},ItemsTab.prototype.destroy=function(){this.view=null,this.itemsContainer=null,this.params=null,this.apiClient=null,this.scroller=null,this.alphaPicker&&(this.alphaPicker.destroy(),this.alphaPicker=null)},ItemsTab});

View file

@ -0,0 +1 @@
define(["backdrop","mainTabsManager","emby-tabs"],function(backdrop,mainTabsManager){"use strict";function onViewDestroy(e){var tabControllers=this.tabControllers;tabControllers&&(tabControllers.forEach(function(t){t.destroy&&t.destroy()}),this.tabControllers=null),this.view=null,this.params=null}function onBeforeTabChange(){}function TabbedView(view,params){function validateTabLoad(index){return self.validateTabLoad?self.validateTabLoad(index):Promise.resolve()}function loadTab(index){validateTabLoad(index).then(function(){self.getTabController(index).then(function(controller){var refresh=!controller.refreshed;controller.onResume({autoFocus:null!=initialTabIndex,refresh:refresh}),controller.refreshed=!0,initialTabIndex=null,currentTabIndex=index,currentTabController=controller})})}function getTabContainers(){return view.querySelectorAll(".tabContent")}function onTabChange(e){var newIndex=parseInt(e.detail.selectedTabIndex),previousTabController=null==e.detail.previousIndex?null:self.tabControllers[e.detail.previousIndex];previousTabController&&previousTabController.onPause&&previousTabController.onPause(),loadTab(newIndex)}this.tabControllers=[],this.view=view,this.params=params;var currentTabController,self=this,currentTabIndex=parseInt(params.tab||this.getDefaultTabIndex(params.parentId)),initialTabIndex=currentTabIndex;view.addEventListener("viewbeforehide",function(e){currentTabController&&currentTabController.onPause&&currentTabController.onPause()}),view.addEventListener("viewbeforeshow",function(e){mainTabsManager.setTabs(view,currentTabIndex,self.getTabs,getTabContainers,onBeforeTabChange,onTabChange,!1)}),view.addEventListener("viewshow",function(e){var isViewRestored=e.detail.isRestored;Emby.Page.setTitle(""),backdrop.clear(),isViewRestored?currentTabController&&currentTabController.onResume&&currentTabController.onResume({}):mainTabsManager.selectedTabIndex(initialTabIndex)}),view.addEventListener("viewdestroy",onViewDestroy.bind(this))}return TabbedView});