mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
Migrates itembynamedetailpage.js to es6 module
This commit is contained in:
parent
ce8484e8f0
commit
89f0fe8564
1 changed files with 359 additions and 354 deletions
|
@ -1,8 +1,13 @@
|
||||||
define(['connectionManager', 'listView', 'cardBuilder', 'imageLoader', 'libraryBrowser', 'globalize', 'emby-itemscontainer', 'emby-button'], function (connectionManager, listView, cardBuilder, imageLoader, libraryBrowser, globalize) {
|
import connectionManager from 'connectionManager';
|
||||||
'use strict';
|
import listView from 'listView';
|
||||||
|
import cardBuilder from 'cardBuilder';
|
||||||
|
import imageLoader from 'imageLoader';
|
||||||
|
import globalize from 'globalize';
|
||||||
|
import 'emby-itemscontainer';
|
||||||
|
import 'emby-button';
|
||||||
|
|
||||||
function renderItems(page, item) {
|
function renderItems(page, item) {
|
||||||
var sections = [];
|
const sections = [];
|
||||||
|
|
||||||
if (item.ArtistCount) {
|
if (item.ArtistCount) {
|
||||||
sections.push({
|
sections.push({
|
||||||
|
@ -11,7 +16,7 @@ define(['connectionManager', 'listView', 'cardBuilder', 'imageLoader', 'libraryB
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
if (item.ProgramCount && item.Type == 'Person') {
|
if (item.ProgramCount && item.Type === 'Person') {
|
||||||
sections.push({
|
sections.push({
|
||||||
name: globalize.translate('HeaderUpcomingOnTV'),
|
name: globalize.translate('HeaderUpcomingOnTV'),
|
||||||
type: 'Program'
|
type: 'Program'
|
||||||
|
@ -60,10 +65,10 @@ define(['connectionManager', 'listView', 'cardBuilder', 'imageLoader', 'libraryB
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
var elem = page.querySelector('#childrenContent');
|
const elem = page.querySelector('#childrenContent');
|
||||||
elem.innerHTML = sections.map(function (section) {
|
elem.innerHTML = sections.map(function (section) {
|
||||||
var html = '';
|
let html = '';
|
||||||
var sectionClass = 'verticalSection';
|
let sectionClass = 'verticalSection';
|
||||||
|
|
||||||
if (section.type === 'Audio') {
|
if (section.type === 'Audio') {
|
||||||
sectionClass += ' verticalSection-extrabottompadding';
|
sectionClass += ' verticalSection-extrabottompadding';
|
||||||
|
@ -78,11 +83,12 @@ define(['connectionManager', 'listView', 'cardBuilder', 'imageLoader', 'libraryB
|
||||||
html += '</div>';
|
html += '</div>';
|
||||||
html += '<div is="emby-itemscontainer" class="itemsContainer padded-right">';
|
html += '<div is="emby-itemscontainer" class="itemsContainer padded-right">';
|
||||||
html += '</div>';
|
html += '</div>';
|
||||||
return html += '</div>';
|
html += '</div>';
|
||||||
|
return html;
|
||||||
}).join('');
|
}).join('');
|
||||||
var sectionElems = elem.querySelectorAll('.verticalSection');
|
const sectionElems = elem.querySelectorAll('.verticalSection');
|
||||||
|
|
||||||
for (var i = 0, length = sectionElems.length; i < length; i++) {
|
for (let i = 0, length = sectionElems.length; i < length; i++) {
|
||||||
renderSection(page, item, sectionElems[i], sectionElems[i].getAttribute('data-type'));
|
renderSection(page, item, sectionElems[i], sectionElems[i].getAttribute('data-type'));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -259,10 +265,10 @@ define(['connectionManager', 'listView', 'cardBuilder', 'imageLoader', 'libraryB
|
||||||
function loadItems(element, item, type, query, listOptions) {
|
function loadItems(element, item, type, query, listOptions) {
|
||||||
query = getQuery(query, item);
|
query = getQuery(query, item);
|
||||||
getItemsFunction(query, item)(query.StartIndex, query.Limit, query.Fields).then(function (result) {
|
getItemsFunction(query, item)(query.StartIndex, query.Limit, query.Fields).then(function (result) {
|
||||||
var html = '';
|
let html = '';
|
||||||
|
|
||||||
if (query.Limit && result.TotalRecordCount > query.Limit) {
|
if (query.Limit && result.TotalRecordCount > query.Limit) {
|
||||||
var link = element.querySelector('a');
|
const link = element.querySelector('a');
|
||||||
link.classList.remove('hide');
|
link.classList.remove('hide');
|
||||||
link.setAttribute('href', getMoreItemsHref(item, type));
|
link.setAttribute('href', getMoreItemsHref(item, type));
|
||||||
} else {
|
} else {
|
||||||
|
@ -270,9 +276,9 @@ define(['connectionManager', 'listView', 'cardBuilder', 'imageLoader', 'libraryB
|
||||||
}
|
}
|
||||||
|
|
||||||
listOptions.items = result.Items;
|
listOptions.items = result.Items;
|
||||||
var itemsContainer = element.querySelector('.itemsContainer');
|
const itemsContainer = element.querySelector('.itemsContainer');
|
||||||
|
|
||||||
if (type == 'Audio') {
|
if (type === 'Audio') {
|
||||||
html = listView.getListViewHtml(listOptions);
|
html = listView.getListViewHtml(listOptions);
|
||||||
itemsContainer.classList.remove('vertical-wrap');
|
itemsContainer.classList.remove('vertical-wrap');
|
||||||
itemsContainer.classList.add('vertical-list');
|
itemsContainer.classList.add('vertical-list');
|
||||||
|
@ -288,23 +294,23 @@ define(['connectionManager', 'listView', 'cardBuilder', 'imageLoader', 'libraryB
|
||||||
}
|
}
|
||||||
|
|
||||||
function getMoreItemsHref(item, type) {
|
function getMoreItemsHref(item, type) {
|
||||||
if (item.Type == 'Genre') {
|
if (item.Type === 'Genre') {
|
||||||
return 'list.html?type=' + type + '&genreId=' + item.Id + '&serverId=' + item.ServerId;
|
return 'list.html?type=' + type + '&genreId=' + item.Id + '&serverId=' + item.ServerId;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (item.Type == 'MusicGenre') {
|
if (item.Type === 'MusicGenre') {
|
||||||
return 'list.html?type=' + type + '&musicGenreId=' + item.Id + '&serverId=' + item.ServerId;
|
return 'list.html?type=' + type + '&musicGenreId=' + item.Id + '&serverId=' + item.ServerId;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (item.Type == 'Studio') {
|
if (item.Type === 'Studio') {
|
||||||
return 'list.html?type=' + type + '&studioId=' + item.Id + '&serverId=' + item.ServerId;
|
return 'list.html?type=' + type + '&studioId=' + item.Id + '&serverId=' + item.ServerId;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (item.Type == 'MusicArtist') {
|
if (item.Type === 'MusicArtist') {
|
||||||
return 'list.html?type=' + type + '&artistId=' + item.Id + '&serverId=' + item.ServerId;
|
return 'list.html?type=' + type + '&artistId=' + item.Id + '&serverId=' + item.ServerId;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (item.Type == 'Person') {
|
if (item.Type === 'Person') {
|
||||||
return 'list.html?type=' + type + '&personId=' + item.Id + '&serverId=' + item.ServerId;
|
return 'list.html?type=' + type + '&personId=' + item.Id + '&serverId=' + item.ServerId;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -312,23 +318,23 @@ define(['connectionManager', 'listView', 'cardBuilder', 'imageLoader', 'libraryB
|
||||||
}
|
}
|
||||||
|
|
||||||
function addCurrentItemToQuery(query, item) {
|
function addCurrentItemToQuery(query, item) {
|
||||||
if (item.Type == 'Person') {
|
if (item.Type === 'Person') {
|
||||||
query.PersonIds = item.Id;
|
query.PersonIds = item.Id;
|
||||||
} else if (item.Type == 'Genre') {
|
} else if (item.Type === 'Genre') {
|
||||||
query.Genres = item.Name;
|
query.Genres = item.Name;
|
||||||
} else if (item.Type == 'MusicGenre') {
|
} else if (item.Type === 'MusicGenre') {
|
||||||
query.Genres = item.Name;
|
query.Genres = item.Name;
|
||||||
} else if (item.Type == 'GameGenre') {
|
} else if (item.Type === 'GameGenre') {
|
||||||
query.Genres = item.Name;
|
query.Genres = item.Name;
|
||||||
} else if (item.Type == 'Studio') {
|
} else if (item.Type === 'Studio') {
|
||||||
query.StudioIds = item.Id;
|
query.StudioIds = item.Id;
|
||||||
} else if (item.Type == 'MusicArtist') {
|
} else if (item.Type === 'MusicArtist') {
|
||||||
query.AlbumArtistIds = item.Id;
|
query.AlbumArtistIds = item.Id;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function getQuery(options, item) {
|
function getQuery(options, item) {
|
||||||
var query = {
|
let query = {
|
||||||
SortOrder: 'Ascending',
|
SortOrder: 'Ascending',
|
||||||
IncludeItemTypes: '',
|
IncludeItemTypes: '',
|
||||||
Recursive: true,
|
Recursive: true,
|
||||||
|
@ -343,7 +349,7 @@ define(['connectionManager', 'listView', 'cardBuilder', 'imageLoader', 'libraryB
|
||||||
}
|
}
|
||||||
|
|
||||||
function getItemsFunction(options, item) {
|
function getItemsFunction(options, item) {
|
||||||
var query = getQuery(options, item);
|
const query = getQuery(options, item);
|
||||||
return function (index, limit, fields) {
|
return function (index, limit, fields) {
|
||||||
query.StartIndex = index;
|
query.StartIndex = index;
|
||||||
query.Limit = limit;
|
query.Limit = limit;
|
||||||
|
@ -352,7 +358,7 @@ define(['connectionManager', 'listView', 'cardBuilder', 'imageLoader', 'libraryB
|
||||||
query.Fields += ',' + fields;
|
query.Fields += ',' + fields;
|
||||||
}
|
}
|
||||||
|
|
||||||
var apiClient = connectionManager.getApiClient(item.ServerId);
|
const apiClient = connectionManager.getApiClient(item.ServerId);
|
||||||
|
|
||||||
if (query.IncludeItemTypes === 'MusicArtist') {
|
if (query.IncludeItemTypes === 'MusicArtist') {
|
||||||
query.IncludeItemTypes = null;
|
query.IncludeItemTypes = null;
|
||||||
|
@ -366,4 +372,3 @@ define(['connectionManager', 'listView', 'cardBuilder', 'imageLoader', 'libraryB
|
||||||
window.ItemsByName = {
|
window.ItemsByName = {
|
||||||
renderItems: renderItems
|
renderItems: renderItems
|
||||||
};
|
};
|
||||||
});
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue