mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
enable unified routing
This commit is contained in:
parent
2360213901
commit
154f6b5fd8
133 changed files with 6988 additions and 7112 deletions
|
@ -1,12 +1,13 @@
|
|||
(function ($, document) {
|
||||
define([], function () {
|
||||
|
||||
$(document).on('pageshow', "#aboutPage", function () {
|
||||
return function (view, params) {
|
||||
|
||||
var page = this;
|
||||
|
||||
var elem = $('#appVersionNumber', page);
|
||||
var self = this;
|
||||
|
||||
elem.html(elem.html().replace('{0}', ConnectionManager.appVersion()));
|
||||
});
|
||||
view.addEventListener('viewbeforeshow', function (e) {
|
||||
var elem = view.querySelector('#appVersionNumber');
|
||||
|
||||
})(jQuery, document);
|
||||
elem.innerHTML = elem.innerHTML.replace('{0}', ConnectionManager.appVersion());
|
||||
});
|
||||
}
|
||||
});
|
|
@ -35,7 +35,7 @@
|
|||
var apiClient = result.ApiClient;
|
||||
|
||||
Dashboard.onServerChanged(apiClient.getCurrentUserId(), apiClient.accessToken(), apiClient);
|
||||
Dashboard.navigate('index.html');
|
||||
Dashboard.navigate('home.html');
|
||||
}
|
||||
break;
|
||||
case MediaBrowser.ConnectionState.ServerSignIn:
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
(function ($, document, window) {
|
||||
define(['historyManager'], function (historyManager) {
|
||||
|
||||
var currentItemId;
|
||||
|
||||
|
@ -26,12 +26,13 @@
|
|||
|
||||
var page = this;
|
||||
|
||||
MetadataEditor.setCurrentItemId(null);
|
||||
|
||||
$('.libraryTree', page).on('itemclicked', function (event, data) {
|
||||
|
||||
if (data.id != currentItemId) {
|
||||
|
||||
//$.mobile.urlHistory.ignoreNextHashChange = true;
|
||||
window.location.hash = 'editItemMetadataPage?id=' + data.id;
|
||||
MetadataEditor.setCurrentItemId(data.id);
|
||||
reload(page);
|
||||
}
|
||||
});
|
||||
|
@ -47,5 +48,4 @@
|
|||
var page = this;
|
||||
});
|
||||
|
||||
})(jQuery, document, window);
|
||||
|
||||
});
|
||||
|
|
|
@ -433,8 +433,17 @@
|
|||
|
||||
});
|
||||
|
||||
var itemId;
|
||||
function setCurrentItemId(id) {
|
||||
itemId = id;
|
||||
}
|
||||
|
||||
function getCurrentItemId() {
|
||||
|
||||
if (itemId) {
|
||||
return itemId;
|
||||
}
|
||||
|
||||
var url = window.location.hash || window.location.href;
|
||||
|
||||
return getParameterByName('id', url);
|
||||
|
@ -450,7 +459,8 @@
|
|||
|
||||
return ApiClient.getRootFolder(Dashboard.getCurrentUserId());
|
||||
},
|
||||
getCurrentItemId: getCurrentItemId
|
||||
getCurrentItemId: getCurrentItemId,
|
||||
setCurrentItemId: setCurrentItemId
|
||||
};
|
||||
|
||||
})(jQuery, document, window);
|
|
@ -1,4 +1,4 @@
|
|||
(function ($, document) {
|
||||
define(['libraryBrowser'], function (LibraryBrowser) {
|
||||
|
||||
var defaultFirstSection = 'smalllibrarytiles';
|
||||
|
||||
|
@ -264,13 +264,12 @@
|
|||
method = 'renderUpcoming';
|
||||
break;
|
||||
default:
|
||||
return;
|
||||
break;
|
||||
}
|
||||
|
||||
require(depends, function () {
|
||||
|
||||
window[scope][method](page, tabContent);
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -281,7 +280,7 @@
|
|||
var tabs = page.querySelector('paper-tabs');
|
||||
var pages = page.querySelector('neon-animated-pages');
|
||||
|
||||
LibraryBrowser.configurePaperLibraryTabs(page, tabs, pages, 'index.html');
|
||||
LibraryBrowser.configurePaperLibraryTabs(page, tabs, pages, 'home.html');
|
||||
|
||||
pages.addEventListener('tabchange', function (e) {
|
||||
loadTab(page, parseInt(e.target.selected));
|
||||
|
@ -301,7 +300,6 @@
|
|||
});
|
||||
|
||||
pageIdOn('pageshow', "indexPage", function () {
|
||||
|
||||
var page = this;
|
||||
Events.on(MediaController, 'playbackstop', onPlaybackStop);
|
||||
});
|
||||
|
@ -331,4 +329,4 @@
|
|||
renderHomeTab: loadHomeTab
|
||||
};
|
||||
|
||||
})(jQuery, document);
|
||||
});
|
|
@ -1391,7 +1391,7 @@
|
|||
|
||||
var onclick = item.PlayAccess == 'Full' && !isStatic ? ' onclick="ItemDetailPage.play(' + chapter.StartPositionTicks + ');"' : '';
|
||||
|
||||
html += '<a class="card ' + getThumbShape() + 'Card" href="#play-Chapter-' + i + '"' + onclick + '>';
|
||||
html += '<a class="card ' + getThumbShape() + 'Card" href="#"' + onclick + '>';
|
||||
|
||||
html += '<div class="cardBox">';
|
||||
html += '<div class="cardScalable">';
|
||||
|
@ -1972,7 +1972,7 @@
|
|||
if (currentItem.Type == 'Recording') {
|
||||
LibraryBrowser.showTab('livetv.html', 3);
|
||||
} else {
|
||||
Dashboard.navigate('index.html');
|
||||
Dashboard.navigate('home.html');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -141,10 +141,10 @@
|
|||
return true;
|
||||
}
|
||||
|
||||
if (NavHelper.isBack()) {
|
||||
console.log('Not refreshing data because IsBack=true');
|
||||
return false;
|
||||
}
|
||||
//if (NavHelper.isBack()) {
|
||||
// console.log('Not refreshing data because IsBack=true');
|
||||
// return false;
|
||||
//}
|
||||
|
||||
var now = new Date().getTime();
|
||||
var cacheDuration;
|
||||
|
@ -337,7 +337,7 @@
|
|||
$('.libraryViewNav', ownerpage).removeClass('libraryViewNavWithMinHeight');
|
||||
}
|
||||
|
||||
$(ownerpage).on('pagebeforeshow', LibraryBrowser.onTabbedpagebeforeshow);
|
||||
ownerpage.addEventListener('viewbeforeshow', LibraryBrowser.onTabbedpagebeforeshow);
|
||||
|
||||
pages.addEventListener('iron-select', function () {
|
||||
// When transition animations are used, add a content loading delay to allow the animations to finish
|
||||
|
@ -378,9 +378,9 @@
|
|||
}
|
||||
},
|
||||
|
||||
onTabbedpagebeforeshow: function () {
|
||||
onTabbedpagebeforeshow: function (e) {
|
||||
|
||||
var page = this;
|
||||
var page = e.target;
|
||||
var delay = 0;
|
||||
var isFirstLoad = false;
|
||||
|
||||
|
@ -393,14 +393,14 @@
|
|||
if (delay) {
|
||||
setTimeout(function () {
|
||||
|
||||
LibraryBrowser.onTabbedpagebeforeshowInternal(page, isFirstLoad);
|
||||
LibraryBrowser.onTabbedpagebeforeshowInternal(page, e, isFirstLoad);
|
||||
}, delay);
|
||||
} else {
|
||||
LibraryBrowser.onTabbedpagebeforeshowInternal(page, isFirstLoad);
|
||||
LibraryBrowser.onTabbedpagebeforeshowInternal(page, e, isFirstLoad);
|
||||
}
|
||||
},
|
||||
|
||||
onTabbedpagebeforeshowInternal: function (page, isFirstLoad) {
|
||||
onTabbedpagebeforeshowInternal: function (page, e, isFirstLoad) {
|
||||
|
||||
if (isFirstLoad) {
|
||||
|
||||
|
@ -428,7 +428,7 @@
|
|||
var pages = page.querySelector('neon-animated-pages');
|
||||
|
||||
// Go back to the first tab
|
||||
if (LibraryBrowser.enableFullPaperTabs() && !NavHelper.isBack()) {
|
||||
if (LibraryBrowser.enableFullPaperTabs() && !e.detail.isRestored) {
|
||||
if (pages.selected) {
|
||||
|
||||
var entryAnimation = pages.entryAnimation;
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
define(['appSettings', 'appStorage'], function (appSettings, appStorage) {
|
||||
define(['appSettings', 'appStorage', 'libraryBrowser'], function (appSettings, appStorage, LibraryBrowser) {
|
||||
|
||||
var showOverlayTimeout;
|
||||
|
||||
|
@ -715,7 +715,7 @@
|
|||
return elem;
|
||||
}
|
||||
|
||||
$.fn.createCardMenus = function (options) {
|
||||
LibraryBrowser.createCardMenus = function (curr, options) {
|
||||
|
||||
var preventHover = false;
|
||||
|
||||
|
@ -802,32 +802,37 @@
|
|||
preventHover = true;
|
||||
}
|
||||
|
||||
curr.removeEventListener('click', onCardClick);
|
||||
curr.addEventListener('click', onCardClick);
|
||||
|
||||
if (AppInfo.isTouchPreferred) {
|
||||
|
||||
curr.removeEventListener('contextmenu', disableEvent);
|
||||
curr.addEventListener('contextmenu', disableEvent);
|
||||
}
|
||||
else {
|
||||
curr.removeEventListener('contextmenu', onContextMenu);
|
||||
curr.addEventListener('contextmenu', onContextMenu);
|
||||
|
||||
curr.removeEventListener('mouseenter', onHoverIn);
|
||||
curr.addEventListener('mouseenter', onHoverIn, true);
|
||||
|
||||
curr.removeEventListener('mouseleave', onHoverOut);
|
||||
curr.addEventListener('mouseleave', onHoverOut, true);
|
||||
|
||||
curr.removeEventListener("touchstart", preventTouchHover);
|
||||
curr.addEventListener("touchstart", preventTouchHover);
|
||||
}
|
||||
|
||||
initTapHoldMenus(curr);
|
||||
};
|
||||
|
||||
$.fn.createCardMenus = function (options) {
|
||||
|
||||
for (var i = 0, length = this.length; i < length; i++) {
|
||||
|
||||
var curr = this[i];
|
||||
curr.removeEventListener('click', onCardClick);
|
||||
curr.addEventListener('click', onCardClick);
|
||||
|
||||
if (AppInfo.isTouchPreferred) {
|
||||
|
||||
curr.removeEventListener('contextmenu', disableEvent);
|
||||
curr.addEventListener('contextmenu', disableEvent);
|
||||
}
|
||||
else {
|
||||
curr.removeEventListener('contextmenu', onContextMenu);
|
||||
curr.addEventListener('contextmenu', onContextMenu);
|
||||
|
||||
curr.removeEventListener('mouseenter', onHoverIn);
|
||||
curr.addEventListener('mouseenter', onHoverIn, true);
|
||||
|
||||
curr.removeEventListener('mouseleave', onHoverOut);
|
||||
curr.addEventListener('mouseleave', onHoverOut, true);
|
||||
|
||||
curr.removeEventListener("touchstart", preventTouchHover);
|
||||
curr.addEventListener("touchstart", preventTouchHover);
|
||||
}
|
||||
|
||||
initTapHoldMenus(curr);
|
||||
LibraryBrowser.createCardMenus(curr, options);
|
||||
}
|
||||
|
||||
return this;
|
||||
|
@ -1177,7 +1182,7 @@
|
|||
break;
|
||||
case 'delete':
|
||||
LibraryBrowser.deleteItems(items).then(function () {
|
||||
Dashboard.navigate('index.html');
|
||||
Dashboard.navigate('home.html');
|
||||
});
|
||||
hideSelections();
|
||||
break;
|
||||
|
|
|
@ -116,7 +116,7 @@
|
|||
headerUserButton.src = src;
|
||||
} else if (icon) {
|
||||
headerUserButton.classList.remove('headerUserButtonRound');
|
||||
header.icon = icon;
|
||||
headerUserButton.icon = icon;
|
||||
} else {
|
||||
headerUserButton.classList.remove('headerUserButtonRound');
|
||||
}
|
||||
|
@ -319,7 +319,7 @@
|
|||
|
||||
var html = '';
|
||||
|
||||
var homeHref = window.ApiClient ? 'index.html' : 'selectserver.html?showuser=1';
|
||||
var homeHref = window.ApiClient ? 'home.html' : 'selectserver.html?showuser=1';
|
||||
|
||||
html += '<div style="margin-top:5px;"></div>';
|
||||
|
||||
|
@ -829,11 +829,11 @@
|
|||
updateTabLinks(page);
|
||||
});
|
||||
|
||||
pageClassOn('pageshow', 'page', function () {
|
||||
pageClassOn('pageshow', 'page', function (e) {
|
||||
|
||||
var page = this;
|
||||
|
||||
if (!NavHelper.isBack()) {
|
||||
if (!e.detail.isRestored) {
|
||||
// Scroll back up so in case vertical scroll was messed with
|
||||
window.scrollTo(0, 0);
|
||||
}
|
||||
|
@ -976,27 +976,4 @@
|
|||
|
||||
setDrawerClass();
|
||||
|
||||
});
|
||||
|
||||
(function () {
|
||||
|
||||
var isCurrentNavBack = false;
|
||||
|
||||
window.addEventListener("navigate", function (e) {
|
||||
|
||||
var data = e.detail.state || {};
|
||||
var direction = data.direction;
|
||||
|
||||
isCurrentNavBack = direction == 'back';
|
||||
});
|
||||
|
||||
function isBack() {
|
||||
|
||||
return isCurrentNavBack;
|
||||
}
|
||||
|
||||
window.NavHelper = {
|
||||
isBack: isBack
|
||||
};
|
||||
|
||||
})();
|
||||
});
|
|
@ -104,7 +104,7 @@
|
|||
if (user.Policy.IsAdministrator && !serverId) {
|
||||
newUrl = "dashboard.html";
|
||||
} else {
|
||||
newUrl = "index.html";
|
||||
newUrl = "home.html";
|
||||
}
|
||||
|
||||
Dashboard.hideLoadingMsg();
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
(function (window, document, $) {
|
||||
(function (window, document) {
|
||||
|
||||
function sendPlayCommand(options, playType) {
|
||||
|
||||
|
@ -396,4 +396,4 @@
|
|||
initializeApiClient(apiClient);
|
||||
});
|
||||
|
||||
})(window, document, jQuery);
|
||||
})(window, document);
|
|
@ -1,4 +1,4 @@
|
|||
(function ($, document, window, clearTimeout, setTimeout) {
|
||||
define(['jQuery', 'searchmenu'], function ($) {
|
||||
|
||||
var searchHintTimeout;
|
||||
|
||||
|
@ -128,7 +128,10 @@
|
|||
|
||||
if (!searchTerm) {
|
||||
|
||||
$('.itemsContainer', elem).empty();
|
||||
var itemsContainer = elem.querySelector('.itemsContainer');
|
||||
if (itemsContainer) {
|
||||
itemsContainer.innerHTML = '';
|
||||
}
|
||||
clearSearchHintTimeout();
|
||||
return;
|
||||
}
|
||||
|
@ -214,9 +217,9 @@
|
|||
|
||||
function bindSearchEvents() {
|
||||
|
||||
require(['searchmenu'], function () {
|
||||
Events.on(SearchMenu, 'closed', closeSearchResults);
|
||||
Events.on(SearchMenu, 'change', function (e, value) {
|
||||
require(['searchmenu'], function (searchmenu) {
|
||||
Events.on(window.SearchMenu, 'closed', closeSearchResults);
|
||||
Events.on(window.SearchMenu, 'change', function (e, value) {
|
||||
|
||||
onHeaderSearchChange(value);
|
||||
});
|
||||
|
@ -230,14 +233,14 @@
|
|||
}
|
||||
|
||||
function showSearchMenu() {
|
||||
require(['searchmenu'], function () {
|
||||
SearchMenu.show();
|
||||
require(['searchmenu'], function (searchmenu) {
|
||||
window.SearchMenu.show();
|
||||
});
|
||||
}
|
||||
|
||||
function hideSearchMenu() {
|
||||
require(['searchmenu'], function () {
|
||||
SearchMenu.hide();
|
||||
require(['searchmenu'], function (searchmenu) {
|
||||
window.SearchMenu.hide();
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -248,4 +251,4 @@
|
|||
bindSearchEvents();
|
||||
});
|
||||
|
||||
})(jQuery, document, window, clearTimeout, setTimeout);
|
||||
});
|
|
@ -1,4 +1,13 @@
|
|||
(function () {
|
||||
define(['jQuery'], function ($) {
|
||||
|
||||
function fadeIn(elem, iterations) {
|
||||
|
||||
var keyframes = [
|
||||
{ opacity: '0', offset: 0 },
|
||||
{ opacity: '1', offset: 1 }];
|
||||
var timing = { duration: 200, iterations: iterations };
|
||||
return elem.animate(keyframes, timing);
|
||||
}
|
||||
|
||||
function searchMenu() {
|
||||
|
||||
|
@ -6,7 +15,7 @@
|
|||
|
||||
self.show = function () {
|
||||
|
||||
require(['css!css/search.css'], function() {
|
||||
require(['css!css/search.css'], function () {
|
||||
$('.headerSearchInput').val('');
|
||||
|
||||
$('.btnCloseSearch').hide();
|
||||
|
@ -19,15 +28,6 @@
|
|||
});
|
||||
};
|
||||
|
||||
function fadeIn(elem, iterations) {
|
||||
|
||||
var keyframes = [
|
||||
{ opacity: '0', offset: 0 },
|
||||
{ opacity: '1', offset: 1 }];
|
||||
var timing = { duration: 200, iterations: iterations };
|
||||
return elem.animate(keyframes, timing);
|
||||
}
|
||||
|
||||
self.hide = function () {
|
||||
|
||||
var viewMenuSearch = document.querySelector('.viewMenuSearch');
|
||||
|
@ -82,5 +82,5 @@
|
|||
}
|
||||
|
||||
window.SearchMenu = new searchMenu();
|
||||
|
||||
})();
|
||||
return Window.SearchMenu;
|
||||
});
|
|
@ -1,4 +1,4 @@
|
|||
(function ($, document) {
|
||||
define(['libraryBrowser'], function (LibraryBrowser) {
|
||||
|
||||
function getUserViews(userId) {
|
||||
|
||||
|
@ -220,7 +220,7 @@
|
|||
elem.innerHTML = html;
|
||||
ImageLoader.lazyChildren(elem);
|
||||
|
||||
$(elem).createCardMenus();
|
||||
LibraryBrowser.createCardMenus(elem);
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -264,7 +264,7 @@
|
|||
elem.innerHTML = html;
|
||||
ImageLoader.lazyChildren(elem);
|
||||
|
||||
$(elem).createCardMenus();
|
||||
LibraryBrowser.createCardMenus(elem);
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -309,7 +309,7 @@
|
|||
elem.innerHTML = html;
|
||||
ImageLoader.lazyChildren(elem);
|
||||
|
||||
$(elem).createCardMenus();
|
||||
LibraryBrowser.createCardMenus(elem);
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -347,7 +347,7 @@
|
|||
elem.innerHTML = html;
|
||||
ImageLoader.lazyChildren(elem);
|
||||
|
||||
$(elem).createCardMenus();
|
||||
LibraryBrowser.createCardMenus(elem);
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -402,7 +402,7 @@
|
|||
elem.innerHTML = html;
|
||||
ImageLoader.lazyChildren(elem);
|
||||
|
||||
$(elem).createCardMenus({ showDetailsMenu: false });
|
||||
LibraryBrowser.createCardMenus(elem, { showDetailsMenu: false });
|
||||
|
||||
handleLibraryLinkNavigations(elem);
|
||||
});
|
||||
|
@ -457,7 +457,7 @@
|
|||
elem.innerHTML = html;
|
||||
|
||||
ImageLoader.lazyChildren(elem);
|
||||
$(elem).createCardMenus();
|
||||
LibraryBrowser.createCardMenus(elem);
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -501,7 +501,7 @@
|
|||
elem.innerHTML = html;
|
||||
|
||||
ImageLoader.lazyChildren(elem);
|
||||
$(elem).createCardMenus();
|
||||
LibraryBrowser.createCardMenus(elem);
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -598,7 +598,7 @@
|
|||
elem.innerHTML = html;
|
||||
ImageLoader.lazyChildren(elem);
|
||||
|
||||
$(elem).createCardMenus();
|
||||
LibraryBrowser.createCardMenus(elem);
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -644,7 +644,7 @@
|
|||
|
||||
elem.innerHTML = html;
|
||||
ImageLoader.lazyChildren(elem);
|
||||
$(elem).createCardMenus();
|
||||
LibraryBrowser.createCardMenus(elem);
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -661,4 +661,5 @@
|
|||
loadLatestEpisodes: loadLatestEpisodes
|
||||
};
|
||||
|
||||
})(jQuery, document);
|
||||
return window.Sections;
|
||||
});
|
|
@ -15,7 +15,7 @@
|
|||
case MediaBrowser.ConnectionState.SignedIn:
|
||||
{
|
||||
Dashboard.onServerChanged(apiClient.getCurrentUserId(), apiClient.accessToken(), apiClient);
|
||||
Dashboard.navigate('index.html');
|
||||
Dashboard.navigate('home.html');
|
||||
}
|
||||
break;
|
||||
case MediaBrowser.ConnectionState.ServerSignIn:
|
||||
|
|
File diff suppressed because it is too large
Load diff
Loading…
Add table
Add a link
Reference in a new issue