1
0
Fork 0
mirror of https://github.com/jellyfin/jellyfin-web synced 2025-03-30 19:56:21 +00:00

fixes #1958 - Title does not reset on home browse (Web Interface)

This commit is contained in:
Luke Pulverenti 2016-09-02 00:11:10 -04:00
parent 96a169fb05
commit 2737d1f9f9
39 changed files with 97 additions and 139 deletions

View file

@ -203,7 +203,7 @@ define(['loading', 'viewManager', 'skinManager', 'pluginManager', 'backdrop', 'b
return;
//}
}
viewManager.tryRestoreView(currentRequest).then(function () {
viewManager.tryRestoreView(currentRequest, function () {
// done
currentRouteInfo = {
@ -211,7 +211,12 @@ define(['loading', 'viewManager', 'skinManager', 'pluginManager', 'backdrop', 'b
path: ctx.path
};
}, onNewViewNeeded);
}).catch(function (result) {
if (!result || !result.cancelled) {
onNewViewNeeded();
}
});
}
var firstConnectionResult;

View file

@ -35,8 +35,6 @@ define(['viewcontainer', 'focusManager', 'queryString', 'layoutManager'], functi
function onViewChange(view, options, isRestore) {
var viewType = options.type;
var lastView = currentView;
if (lastView) {
dispatchViewEvent(lastView, 'viewhide');
@ -123,25 +121,10 @@ define(['viewcontainer', 'focusManager', 'queryString', 'layoutManager'], functi
//events.on(connectionManager, 'localusersignedin', resetCachedViews);
//events.on(connectionManager, 'localusersignedout', resetCachedViews);
function tryRestoreInternal(viewcontainer, options, resolve, reject) {
if (options.cancel) {
return;
}
viewcontainer.tryRestoreView(options).then(function (view) {
onViewChange(view, options, true);
resolve();
}, reject);
}
function ViewManager() {
}
var self = this;
self.loadView = function (options) {
ViewManager.prototype.loadView = function (options) {
var lastView = currentView;
@ -160,11 +143,10 @@ define(['viewcontainer', 'focusManager', 'queryString', 'layoutManager'], functi
});
};
self.tryRestoreView = function (options) {
return new Promise(function (resolve, reject) {
ViewManager.prototype.tryRestoreView = function (options, onViewChanging) {
if (options.cancel) {
return;
return Promise.reject({ cancelled: true });
}
// Record the element that has focus
@ -172,18 +154,21 @@ define(['viewcontainer', 'focusManager', 'queryString', 'layoutManager'], functi
currentView.activeElement = document.activeElement;
}
tryRestoreInternal(viewcontainer, options, resolve, reject);
return viewcontainer.tryRestoreView(options).then(function (view) {
onViewChanging();
onViewChange(view, options, true);
});
};
self.currentView = function () {
ViewManager.prototype.currentView = function () {
return currentView;
};
self.dispatchPageEvents = function (value) {
ViewManager.prototype.dispatchPageEvents = function (value) {
dispatchPageEvents = value;
};
}
return new ViewManager();
});

View file

@ -1,4 +1,4 @@
<div id="syncPreferencesPage" data-role="page" class="page libraryPage userPreferencesPage noSecondaryNavPage" data-title="${ButtonSyncSettings}" data-backbutton="true" data-menubutton="false">
<div id="syncPreferencesPage" data-role="page" class="page libraryPage userPreferencesPage noSecondaryNavPage" data-title="${ButtonSyncSettings}" data-menubutton="false">
<div data-role="content">
<form class="userProfileSettingsForm" style="margin: 0 auto;">

View file

@ -1,4 +1,4 @@
<div id="channelItemsPage" data-role="page" class="page libraryPage channelsPage noSecondaryNavPage" data-require="scripts/channelitems" data-backbutton="true" data-menubutton="false">
<div id="channelItemsPage" data-role="page" class="page libraryPage channelsPage noSecondaryNavPage" data-require="scripts/channelitems" data-menubutton="false">
<div data-role="content">
<div class="viewSettings">

View file

@ -1,4 +1,4 @@
<div id="channelsPage" data-role="page" data-dom-cache="true" class="page libraryPage channelsPage pageWithAbsoluteTabs" data-contextname="${HeaderChannels}">
<div id="channelsPage" data-role="page" data-dom-cache="true" class="page libraryPage channelsPage pageWithAbsoluteTabs" data-title="${HeaderChannels}">
<div is="emby-tabs" class="libraryViewNav">
<div class="emby-tabs-slider">

View file

@ -75,7 +75,7 @@
html += '<h1 style="display:inline-block; vertical-align:middle;" class="listHeader">' + Globalize.translate(section.name) + '</h1>';
if (options.Limit && result.Items.length >= options.Limit) {
var href = "secondaryitems.html?type=" + section.types + "&filters=IsFavorite&titlekey=" + section.name;
var href = "secondaryitems.html?type=" + section.types + "&filters=IsFavorite";
html += '<a class="clearLink" href="' + href + '" style="margin-left:2em;"><button is="emby-button" type="button" class="raised more mini">' + Globalize.translate('ButtonMore') + '</button></a>';
}

View file

@ -91,7 +91,7 @@
.libraryMenuButtonText {
text-decoration: none;
font-weight: 500 !important;
font-weight: 400 !important;
display: inline-flex;
vertical-align: middle;
padding-left: 0 !important;
@ -102,7 +102,7 @@
overflow: hidden;
text-overflow: ellipsis;
align-items: center;
margin-left: .5em;
margin-left: .75em;
font-size: 108%;
}

View file

@ -1,4 +1,8 @@
@media all and (min-width: 300px) {
.libraryMenuButtonText {
font-weight: 500 !important;
}
@media all and (min-width: 300px) {
.libraryViewNav, .emby-tabs-slider {
display: flex;

View file

@ -72,6 +72,10 @@ h1, h1 a {
font-weight: 400 !important;
}
.libraryMenuButtonText {
font-weight: 500 !important;
}
.btnNotificationsInner {
font-weight: 400;
}

View file

@ -1,4 +1,4 @@
<div id="editItemMetadataPage" data-role="page" class="page libraryPage metadataEditorPage noSecondaryNavPage" data-contextname="${MetadataManager}" data-require="scripts/editorsidebar,scripts/edititemmetadata">
<div id="editItemMetadataPage" data-role="page" class="page libraryPage metadataEditorPage noSecondaryNavPage" data-title="${MetadataManager}" data-require="scripts/editorsidebar,scripts/edititemmetadata">
<style>
#editItemMetadataPage .editMetadataForm {

View file

@ -1,4 +1,4 @@
<div id="liveTvSuggestedPage" data-dom-cache="true" data-role="page" class="page libraryPage liveTvPage pageWithAbsoluteTabs" data-contextname="${HeaderLiveTv}" data-backdroptype="series,movie">
<div id="liveTvSuggestedPage" data-dom-cache="true" data-role="page" class="page libraryPage liveTvPage pageWithAbsoluteTabs" data-title="${HeaderLiveTv}" data-backdroptype="series,movie">
<div is="emby-tabs" class="libraryViewNav">
<div class="emby-tabs-slider">

View file

@ -1,4 +1,4 @@
<div id="liveTvItemsPage" data-role="page" class="page libraryPage liveTvPage noSecondaryNavPage" data-contextname="${HeaderLiveTv}" data-require="scripts/livetvitems,livetvcss" data-backbutton="true" data-menubutton="false">
<div id="liveTvItemsPage" data-role="page" class="page libraryPage liveTvPage noSecondaryNavPage" data-title="${HeaderLiveTv}" data-require="scripts/livetvitems,livetvcss" data-menubutton="false">
<div data-role="content">
<div class="viewSettings">

View file

@ -1,4 +1,4 @@
<div id="liveTvRecordingListPage" data-role="page" class="page libraryPage liveTvPage noSecondaryNavPage" data-contextname="${HeaderLiveTv}" data-require="scripts/livetvrecordinglist,livetvcss" data-backbutton="true" data-menubutton="false">
<div id="liveTvRecordingListPage" data-role="page" class="page libraryPage liveTvPage noSecondaryNavPage" data-title="${HeaderLiveTv}" data-require="scripts/livetvrecordinglist,livetvcss" data-menubutton="false">
<div data-role="content">
<div class="viewSettings" style="margin:.5em 0;">

View file

@ -1,4 +1,4 @@
<div id="liveTvSeriesTimerPage" data-role="page" class="page libraryPage liveTvPage noSecondaryNavPage" data-contextname="${HeaderLiveTv}" data-backbutton="true" data-menubutton="false">
<div id="liveTvSeriesTimerPage" data-role="page" class="page libraryPage liveTvPage noSecondaryNavPage" data-title="${HeaderLiveTv}" data-menubutton="false">
<div data-role="content">

View file

@ -1,4 +1,4 @@
<div id="displayPreferencesPage" data-role="page" class="page libraryPage userPreferencesPage noSecondaryNavPage" data-title="${HeaderDisplaySettings}" data-backbutton="true" data-menubutton="false">
<div id="displayPreferencesPage" data-role="page" class="page libraryPage userPreferencesPage noSecondaryNavPage" data-title="${HeaderDisplaySettings}" data-menubutton="false">
<div data-role="content">
<form class="displayPreferencesForm userProfileSettingsForm" style="margin: 0 auto;">
<div class="detailSection languageSection hide">

View file

@ -1,4 +1,4 @@
<div id="homeScreenPreferencesPage" data-role="page" class="page libraryPage userPreferencesPage noSecondaryNavPage" data-title="${HeaderHomeScreenSettings}" data-backbutton="true" data-menubutton="false">
<div id="homeScreenPreferencesPage" data-role="page" class="page libraryPage userPreferencesPage noSecondaryNavPage" data-title="${HeaderHomeScreenSettings}" data-menubutton="false">
<div data-role="content">
<form class="homeScreenPreferencesForm userProfileSettingsForm" style="margin: 0 auto;">

View file

@ -1,4 +1,4 @@
<div id="languagePreferencesPage" data-role="page" class="page libraryPage userPreferencesPage noSecondaryNavPage" data-title="${HeaderPlaybackSettings}" data-backbutton="true" data-menubutton="false">
<div id="languagePreferencesPage" data-role="page" class="page libraryPage userPreferencesPage noSecondaryNavPage" data-title="${HeaderPlaybackSettings}" data-menubutton="false">
<div data-role="content">

View file

@ -1,4 +1,4 @@
<div id="myPreferencesMenuPage" data-role="page" class="page libraryPage userPreferencesPage noSecondaryNavPage" data-contextname="${HeaderSettings}">
<div id="myPreferencesMenuPage" data-role="page" class="page libraryPage userPreferencesPage noSecondaryNavPage" data-title="${HeaderSettings}">
<div data-role="content">
<div class="readOnlyContent" style="margin: 0 auto;">

View file

@ -1,4 +1,4 @@
<div id="userImagePage" data-role="page" class="page libraryPage userPreferencesPage userPasswordPage noSecondaryNavPage" data-title="${HeaderProfile}" data-backbutton="true" data-menubutton="false">
<div id="userImagePage" data-role="page" class="page libraryPage userPreferencesPage userPasswordPage noSecondaryNavPage" data-title="${HeaderProfile}" data-menubutton="false">
<div data-role="content">
<br />

View file

@ -1,4 +1,4 @@
<div id="mySyncActivityPage" data-role="page" class="page libraryPage syncActivityPage mySyncPage noSecondaryNavPage" data-contextname="${TitleSync}">
<div id="mySyncActivityPage" data-role="page" class="page libraryPage syncActivityPage mySyncPage noSecondaryNavPage" data-title="${TitleSync}">
<style>
.status-text-icon {

View file

@ -1,4 +1,4 @@
<div id="mySyncJobPage" data-role="page" class="page libraryPage syncJobPage mySyncPage noSecondaryNavPage" data-contextname="${TitleSync}" data-backbutton="true" data-menubutton="false">
<div id="mySyncJobPage" data-role="page" class="page libraryPage syncJobPage mySyncPage noSecondaryNavPage" data-title="${TitleSync}" data-menubutton="false">
<div data-role="content">

View file

@ -1,4 +1,4 @@
<div id="syncPreferencesPage" data-role="page" class="page libraryPage userPreferencesPage noSecondaryNavPage" data-title="${ButtonSyncSettings}" data-backbutton="true" data-menubutton="false">
<div id="syncPreferencesPage" data-role="page" class="page libraryPage userPreferencesPage noSecondaryNavPage" data-title="${ButtonSyncSettings}" data-menubutton="false">
<div data-role="content">
<form class="userProfileSettingsForm" style="margin: 0 auto;">

View file

@ -1,4 +1,4 @@
<div id="nowPlayingPage" data-role="page" class="page libraryPage nowPlayingPage noSecondaryNavPage selfBackdropPage" data-contextname="${TitleRemoteControl}" data-theme="b" style="padding:0;">
<div id="nowPlayingPage" data-role="page" class="page libraryPage nowPlayingPage noSecondaryNavPage selfBackdropPage" data-title="${TitleRemoteControl}" data-theme="b" style="padding:0;">
<div class="remoteControlContent">

View file

@ -1,4 +1,4 @@
<div id="libraryReportManagerPage" data-role="page" class="page libraryPage noSecondaryNavPage reportsPage" data-contextname="${HeaderReports}" data-require="jQuery,paper-icon-button-light,jqmcheckbox,jqmpanel,jqmcollapsible,jqmtable,scripts/reports,detailtablecss">
<div id="libraryReportManagerPage" data-role="page" class="page libraryPage noSecondaryNavPage reportsPage" data-title="${HeaderReports}" data-require="jQuery,paper-icon-button-light,jqmcheckbox,jqmpanel,jqmcollapsible,jqmtable,scripts/reports,detailtablecss">
<style>
/* Page and overlay */
.ui-page-theme-b .ui-panel-wrapper {

View file

@ -303,23 +303,23 @@
if (context == 'sync') {
page.setAttribute('data-helpurl', 'https://github.com/MediaBrowser/Wiki/wiki/Sync');
Dashboard.setPageTitle(Globalize.translate('TitleSync'));
LibraryMenu.setTitle(Globalize.translate('TitleSync'));
}
else if (context == 'livetv') {
Dashboard.setPageTitle(Globalize.translate('TitleLiveTV'));
LibraryMenu.setTitle(Globalize.translate('TitleLiveTV'));
page.setAttribute('data-helpurl', 'https://github.com/MediaBrowser/Wiki/wiki/Live%20TV');
}
else if (context == 'notifications') {
$('.notificationsTabs', page).show();
Dashboard.setPageTitle(Globalize.translate('TitleNotifications'));
LibraryMenu.setTitle(Globalize.translate('TitleNotifications'));
page.setAttribute('data-helpurl', 'https://github.com/MediaBrowser/Wiki/wiki/Notifications');
}
else {
page.setAttribute('data-helpurl', 'https://github.com/MediaBrowser/Wiki/wiki/Plugins');
Dashboard.setPageTitle(Globalize.translate('TitlePlugins'));
LibraryMenu.setTitle(Globalize.translate('TitlePlugins'));
}
});

View file

@ -83,15 +83,15 @@
var context = getParameterByName('context');
if (context == 'sync') {
Dashboard.setPageTitle(Globalize.translate('TitleSync'));
LibraryMenu.setTitle(Globalize.translate('TitleSync'));
page.setAttribute('data-helpurl', 'https://github.com/MediaBrowser/Wiki/wiki/Sync');
}
else if (context == 'livetv') {
Dashboard.setPageTitle(Globalize.translate('TitleLiveTV'));
LibraryMenu.setTitle(Globalize.translate('TitleLiveTV'));
page.setAttribute('data-helpurl', 'https://github.com/MediaBrowser/Wiki/wiki/Live%20TV');
}
else if (context == 'notifications') {
Dashboard.setPageTitle(Globalize.translate('TitleNotifications'));
LibraryMenu.setTitle(Globalize.translate('TitleNotifications'));
page.setAttribute('data-helpurl', 'https://github.com/MediaBrowser/Wiki/wiki/Notifications');
}

View file

@ -100,8 +100,6 @@
var context = params.context;
LibraryMenu.setBackButtonVisible(true);
LibraryBrowser.renderName(item, page.querySelector('.itemName'), false, context);
LibraryBrowser.renderParentName(item, page.querySelector('.parentName'), context);
LibraryMenu.setTitle(item.SeriesName || item.Name);

View file

@ -361,7 +361,6 @@
view.addEventListener('viewbeforeshow', function (e) {
reloadItems(view);
updateFilterControls();
LibraryMenu.setBackButtonVisible(params.context);
});
view.addEventListener('viewdestroy', function (e) {

View file

@ -423,7 +423,7 @@
includeParentInfo: false
});
Dashboard.setPageTitle(name);
LibraryMenu.setTitle(name);
if (linkToElement) {
nameElem.innerHTML = '<a class="detailPageParentLink" href="' + LibraryBrowser.getHref(item, context) + '">' + name + '</a>';

View file

@ -368,7 +368,7 @@
var documentTitle = secondaryTitle;
Dashboard.setPageTitle(title, documentTitle);
LibraryMenu.setTitle(title, documentTitle);
} else {
link.classList.remove('selectedSidebarLink');
@ -697,19 +697,8 @@
if (libraryMenuButtonText) {
libraryMenuButtonText.innerHTML = html;
}
},
setBackButtonVisible: function (visible) {
var backButton = document.querySelector('.headerBackButton');
if (backButton) {
if (visible) {
backButton.classList.remove('hide');
} else {
backButton.classList.add('hide');
}
}
document.title = title;
},
setTransparentMenu: function (transparent) {
@ -908,15 +897,8 @@
});
function updateTitle(page) {
var title = page.getAttribute('data-title') || page.getAttribute('data-contextname');
if (!title) {
var titleKey = getParameterByName('titlekey');
if (titleKey) {
title = Globalize.translate(titleKey);
}
}
var title = page.getAttribute('data-title');
if (title) {
LibraryMenu.setTitle(title);
@ -925,18 +907,10 @@
function updateBackButton(page) {
var canGoBack = !page.classList.contains('homePage') && history.length > 0;
var backButton = document.querySelector('.headerBackButton');
var showBackButton = AppInfo.enableBackButton;
if (!showBackButton) {
showBackButton = page.getAttribute('data-backbutton') == 'true';
}
if (backButton) {
if (canGoBack && showBackButton) {
if (Emby.Page.canGoBack()) {
backButton.classList.remove('hide');
} else {
backButton.classList.add('hide');

View file

@ -15,7 +15,7 @@
uploadUserImage.value = '';
uploadUserImage.dispatchEvent(new CustomEvent('change', {}));
Dashboard.setPageTitle(user.Name);
LibraryMenu.setTitle(user.Name);
var imageUrl;

View file

@ -591,16 +591,6 @@ var Dashboard = {
}
},
setPageTitle: function (title, documentTitle) {
LibraryMenu.setTitle(title || 'Emby');
documentTitle = documentTitle || title;
if (documentTitle) {
document.title = documentTitle;
}
},
getSupportedRemoteCommands: function () {
// Full list
@ -966,8 +956,6 @@ var AppInfo = {};
AppInfo.hasPhysicalVolumeButtons = isCordova || browserInfo.mobile;
AppInfo.enableBackButton = isIOS && (window.navigator.standalone || AppInfo.isNativeApp);
if (isCordova && isIOS) {
AppInfo.moreIcon = 'more-horiz';
} else {
@ -2111,7 +2099,8 @@ var AppInfo = {};
dependencies: [],
autoFocus: false,
controller: 'scripts/indexpage',
transition: 'fade'
transition: 'fade',
type: 'home'
});
defineRoute({

View file

@ -22,7 +22,7 @@
$('.lnkEditUserPreferences', page).attr('href', 'mypreferencesmenu.html?userId=' + user.Id);
Dashboard.setPageTitle(user.Name);
LibraryMenu.setTitle(user.Name);
$('#txtUserName', page).val(user.Name);
$('#txtConnectUserName', page).val(currentUser.ConnectUserName);

View file

@ -90,7 +90,7 @@
$(page).trigger('userloaded', [user]);
Dashboard.setPageTitle(user.Name);
LibraryMenu.setTitle(user.Name);
loadChannels(page, user, channels);
loadMediaFolders(page, user, mediaFolders);

View file

@ -75,7 +75,7 @@
function loadUser(page, user, allParentalRatings) {
Dashboard.setPageTitle(user.Name);
LibraryMenu.setTitle(user.Name);
loadUnratedItems(page, user);
loadBlockedTags(page, user.Policy.BlockedTags);

View file

@ -2,7 +2,7 @@
function loadUser(page, user) {
Dashboard.setPageTitle(user.Name);
LibraryMenu.setTitle(user.Name);
if (user.ConnectLinkType == 'Guest') {

View file

@ -8,7 +8,7 @@
Dashboard.getCurrentUser().then(function (loggedInUser) {
Dashboard.setPageTitle(user.Name);
LibraryMenu.setTitle(user.Name);
var showPasswordSection = true;
var showLocalAccessSection = false;

View file

@ -1,4 +1,4 @@
<div id="searchPage" data-role="page" class="page libraryPage allLibraryPage noSecondaryNavPage" data-title="${ButtonSearch}" data-backbutton="true" style="padding-top:0!important;">
<div id="searchPage" data-role="page" class="page libraryPage allLibraryPage noSecondaryNavPage" data-title="${ButtonSearch}" style="padding-top:0!important;">
<style>
@media all and (max-width: 800px) {

View file

@ -1,4 +1,4 @@
<div id="secondaryItemsPage" data-role="page" class="page libraryPage noSecondaryNavPage" data-backbutton="true" data-menubutton="false">
<div id="secondaryItemsPage" data-role="page" class="page libraryPage noSecondaryNavPage" data-menubutton="false">
<div data-role="content">
<div class="viewSettings">