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

Refactor cardBuilder to follow max-params rule

This commit is contained in:
Pier-Luc Ducharme 2022-12-30 10:40:20 -05:00
parent 47c13444cc
commit dc5ab265f6
No known key found for this signature in database

View file

@ -773,27 +773,24 @@ import { appRouter } from '../appRouter';
* @param {Object} item - Item used to generate the footer text. * @param {Object} item - Item used to generate the footer text.
* @param {Object} apiClient - API client instance. * @param {Object} apiClient - API client instance.
* @param {Object} options - Options used to generate the footer text. * @param {Object} options - Options used to generate the footer text.
* @param {string} showTitle - Flag to show the title in the footer.
* @param {boolean} forceName - Flag to force showing the name of the item.
* @param {boolean} overlayText - Flag to show overlay text.
* @param {Object} imgUrl - Object representing the card's image URL.
* @param {string} footerClass - CSS classes of the footer element. * @param {string} footerClass - CSS classes of the footer element.
* @param {string} progressHtml - HTML markup of the progress bar element. * @param {string} progressHtml - HTML markup of the progress bar element.
* @param {string} logoUrl - URL of the logo for the item. * @param {Object} flags - Various flags for the footer
* @param {boolean} isOuterFooter - Flag to mark the text as outer footer. * @param {Object} urls - Various urls for the footer
* @returns {string} HTML markup of the card's footer text element. * @returns {string} HTML markup of the card's footer text element.
*/ */
function getCardFooterText(item, apiClient, options, showTitle, forceName, overlayText, imgUrl, footerClass, progressHtml, logoUrl, isOuterFooter) { function getCardFooterText(item, apiClient, options, footerClass, progressHtml, flags, urls) {
item = item.ProgramInfo || item; item = item.ProgramInfo || item;
let html = ''; let html = '';
if (logoUrl) { if (urls.logoUrl) {
html += '<div class="lazy cardFooterLogo" data-src="' + logoUrl + '"></div>'; html += '<div class="lazy cardFooterLogo" data-src="' + urls.logoUrl + '"></div>';
} }
const showOtherText = isOuterFooter ? !overlayText : overlayText; const showTitle = options.showTitle === 'auto' ? true : (options.showTitle || item.Type === 'PhotoAlbum' || item.Type === 'Folder');
const showOtherText = flags.isOuterFooter ? !flags.overlayText : flags.overlayText;
if (isOuterFooter && options.cardLayout && layoutManager.mobile && options.cardFooterAside !== 'none') { if (flags.isOuterFooter && options.cardLayout && layoutManager.mobile && options.cardFooterAside !== 'none') {
html += `<button is="paper-icon-button-light" class="itemAction btnCardOptions cardText-secondary" data-action="menu" title="${globalize.translate('ButtonMore')}"><span class="material-icons more_vert" aria-hidden="true"></span></button>`; html += `<button is="paper-icon-button-light" class="itemAction btnCardOptions cardText-secondary" data-action="menu" title="${globalize.translate('ButtonMore')}"><span class="material-icons more_vert" aria-hidden="true"></span></button>`;
} }
@ -805,7 +802,7 @@ import { appRouter } from '../appRouter';
let titleAdded; let titleAdded;
if (showOtherText && (options.showParentTitle || options.showParentTitleOrTitle) && !parentTitleUnderneath) { if (showOtherText && (options.showParentTitle || options.showParentTitleOrTitle) && !parentTitleUnderneath) {
if (isOuterFooter && item.Type === 'Episode' && item.SeriesName) { if (flags.isOuterFooter && item.Type === 'Episode' && item.SeriesName) {
if (item.SeriesId) { if (item.SeriesId) {
lines.push(getTextActionButton({ lines.push(getTextActionButton({
Id: item.SeriesId, Id: item.SeriesId,
@ -835,7 +832,7 @@ import { appRouter } from '../appRouter';
} }
let showMediaTitle = (showTitle && !titleAdded) || (options.showParentTitleOrTitle && !lines.length); let showMediaTitle = (showTitle && !titleAdded) || (options.showParentTitleOrTitle && !lines.length);
if (!showMediaTitle && !titleAdded && (showTitle || forceName)) { if (!showMediaTitle && !titleAdded && (showTitle || flags.forceName)) {
showMediaTitle = true; showMediaTitle = true;
} }
@ -856,7 +853,7 @@ import { appRouter } from '../appRouter';
if (showOtherText) { if (showOtherText) {
if (options.showParentTitle && parentTitleUnderneath) { if (options.showParentTitle && parentTitleUnderneath) {
if (isOuterFooter && item.AlbumArtists && item.AlbumArtists.length) { if (flags.isOuterFooter && item.AlbumArtists && item.AlbumArtists.length) {
item.AlbumArtists[0].Type = 'MusicArtist'; item.AlbumArtists[0].Type = 'MusicArtist';
item.AlbumArtists[0].IsFolder = true; item.AlbumArtists[0].IsFolder = true;
lines.push(getTextActionButton(item.AlbumArtists[0], null, serverId)); lines.push(getTextActionButton(item.AlbumArtists[0], null, serverId));
@ -991,23 +988,23 @@ import { appRouter } from '../appRouter';
} }
} }
if ((showTitle || !imgUrl) && forceName && overlayText && lines.length === 1) { if ((showTitle || !urls.imgUrl) && flags.forceName && flags.overlayText && lines.length === 1) {
lines = []; lines = [];
} }
if (overlayText && showTitle) { if (flags.overlayText && showTitle) {
lines = [escapeHtml(item.Name)]; lines = [escapeHtml(item.Name)];
} }
const addRightTextMargin = isOuterFooter && options.cardLayout && !options.centerText && options.cardFooterAside !== 'none' && layoutManager.mobile; const addRightTextMargin = flags.isOuterFooter && options.cardLayout && !options.centerText && options.cardFooterAside !== 'none' && layoutManager.mobile;
html += getCardTextLines(lines, cssClass, !options.overlayText, isOuterFooter, options.cardLayout, addRightTextMargin, options.lines); html += getCardTextLines(lines, cssClass, !options.overlayText, flags.isOuterFooter, options.cardLayout, addRightTextMargin, options.lines);
if (progressHtml) { if (progressHtml) {
html += progressHtml; html += progressHtml;
} }
if (html && (!isOuterFooter || logoUrl || options.cardLayout)) { if (html && (!flags.isOuterFooter || urls.logoUrl || options.cardLayout)) {
html = '<div class="' + footerClass + '">' + html; html = '<div class="' + footerClass + '">' + html;
//cardFooter //cardFooter
@ -1217,7 +1214,6 @@ import { appRouter } from '../appRouter';
const forceName = imgInfo.forceName; const forceName = imgInfo.forceName;
const showTitle = options.showTitle === 'auto' ? true : (options.showTitle || item.Type === 'PhotoAlbum' || item.Type === 'Folder');
const overlayText = options.overlayText; const overlayText = options.overlayText;
let cardImageContainerClass = 'cardImageContainer'; let cardImageContainerClass = 'cardImageContainer';
@ -1265,7 +1261,7 @@ import { appRouter } from '../appRouter';
logoUrl = null; logoUrl = null;
footerCssClass = progressHtml ? 'innerCardFooter fullInnerCardFooter' : 'innerCardFooter'; footerCssClass = progressHtml ? 'innerCardFooter fullInnerCardFooter' : 'innerCardFooter';
innerCardFooter += getCardFooterText(item, apiClient, options, showTitle, forceName, overlayText, imgUrl, footerCssClass, progressHtml, logoUrl, false); innerCardFooter += getCardFooterText(item, apiClient, options, footerCssClass, progressHtml, {forceName: forceName, overlayText: overlayText, isOuterFooter: false}, {imgUrl: imgUrl, logoUrl: logoUrl});
footerOverlayed = true; footerOverlayed = true;
} else if (progressHtml) { } else if (progressHtml) {
innerCardFooter += '<div class="innerCardFooter fullInnerCardFooter innerCardFooterClear">'; innerCardFooter += '<div class="innerCardFooter fullInnerCardFooter innerCardFooterClear">';
@ -1292,7 +1288,7 @@ import { appRouter } from '../appRouter';
logoUrl = null; logoUrl = null;
} }
outerCardFooter = getCardFooterText(item, apiClient, options, showTitle, forceName, overlayText, imgUrl, footerCssClass, progressHtml, logoUrl, true); outerCardFooter = getCardFooterText(item, apiClient, options, footerCssClass, progressHtml, {forceName: forceName, overlayText: overlayText, isOuterFooter: true}, {imgUrl: imgUrl, logoUrl: logoUrl});
} }
if (outerCardFooter && !options.cardLayout) { if (outerCardFooter && !options.cardLayout) {