jellyfish-web/src/controllers/hometab.js

75 lines
2.3 KiB
JavaScript
Raw Normal View History

define(["userSettings", "loading", "connectionManager", "apphost", "layoutManager", "focusManager", "homeSections", "emby-itemscontainer"], function (userSettings, loading, connectionManager, appHost, layoutManager, focusManager, homeSections) {
2018-10-23 01:05:09 +03:00
"use strict";
function HomeTab(view, params) {
this.view = view;
this.params = params;
this.apiClient = connectionManager.currentApiClient();
this.sectionsContainer = view.querySelector(".sections");
view.querySelector(".sections").addEventListener("settingschange", onHomeScreenSettingsChanged.bind(this));
2018-10-23 01:05:09 +03:00
}
function onHomeScreenSettingsChanged() {
this.sectionsRendered = false;
if (!this.paused) {
this.onResume({
refresh: true
});
}
2018-10-23 01:05:09 +03:00
}
HomeTab.prototype.onResume = function (options) {
2018-10-23 01:05:09 +03:00
if (this.sectionsRendered) {
var sectionsContainer = this.sectionsContainer;
if (sectionsContainer) {
return homeSections.resume(sectionsContainer, options);
}
return Promise.resolve();
2018-10-23 01:05:09 +03:00
}
2018-10-23 01:05:09 +03:00
loading.show();
var view = this.view;
var apiClient = this.apiClient;
this.destroyHomeSections();
this.sectionsRendered = true;
return apiClient.getCurrentUser().then(function (user) {
return homeSections.loadSections(view.querySelector(".sections"), apiClient, user, userSettings).then(function () {
if (options.autoFocus) {
focusManager.autoFocus(view);
}
loading.hide();
});
});
};
HomeTab.prototype.onPause = function () {
2018-10-23 01:05:09 +03:00
var sectionsContainer = this.sectionsContainer;
if (sectionsContainer) {
homeSections.pause(sectionsContainer);
}
};
HomeTab.prototype.destroy = function () {
this.view = null;
this.params = null;
this.apiClient = null;
this.destroyHomeSections();
this.sectionsContainer = null;
};
HomeTab.prototype.destroyHomeSections = function () {
2018-10-23 01:05:09 +03:00
var sectionsContainer = this.sectionsContainer;
if (sectionsContainer) {
homeSections.destroySections(sectionsContainer);
}
};
return HomeTab;
});