mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
Merge branch 'master' into playlist-access-checks
This commit is contained in:
commit
df0af31bb3
26 changed files with 537 additions and 177 deletions
|
@ -78,7 +78,7 @@ export function getPlayedIndicatorHtml(item) {
|
|||
if (enablePlayedIndicator(item)) {
|
||||
const userData = item.UserData || {};
|
||||
if (userData.UnplayedItemCount) {
|
||||
return '<div class="countIndicator indicator">' + datetime.toLocaleString(userData.UnplayedItemCount) + '</div>';
|
||||
return '<div class="countIndicator indicator">' + formatCountIndicator(userData.UnplayedItemCount) + '</div>';
|
||||
}
|
||||
|
||||
if (userData.PlayedPercentage && userData.PlayedPercentage >= 100 || (userData.Played)) {
|
||||
|
@ -93,12 +93,16 @@ export function getChildCountIndicatorHtml(item, options) {
|
|||
const minCount = options?.minCount ? options.minCount : 0;
|
||||
|
||||
if (item.ChildCount && item.ChildCount > minCount) {
|
||||
return '<div class="countIndicator indicator">' + datetime.toLocaleString(item.ChildCount) + '</div>';
|
||||
return '<div class="countIndicator indicator">' + formatCountIndicator(item.ChildCount) + '</div>';
|
||||
}
|
||||
|
||||
return '';
|
||||
}
|
||||
|
||||
function formatCountIndicator(count) {
|
||||
return count >= 100 ? '99+' : count.toString();
|
||||
}
|
||||
|
||||
export function getTimerIndicator(item) {
|
||||
let status;
|
||||
|
||||
|
|
|
@ -60,6 +60,10 @@ const enablePlayedIndicator = (item: ItemDto) => {
|
|||
return itemHelper.canMarkPlayed(item);
|
||||
};
|
||||
|
||||
const formatCountIndicator = (count: number) => {
|
||||
return count >= 100 ? '99+' : count.toString();
|
||||
};
|
||||
|
||||
const useIndicator = (item: ItemDto) => {
|
||||
const getMediaSourceIndicator = () => {
|
||||
const mediaSourceCount = item.MediaSourceCount ?? 0;
|
||||
|
@ -135,7 +139,7 @@ const useIndicator = (item: ItemDto) => {
|
|||
if (childCount > 1) {
|
||||
return (
|
||||
<Box className='countIndicator indicator childCountIndicator'>
|
||||
{datetime.toLocaleString(item.ChildCount)}
|
||||
{formatCountIndicator(childCount)}
|
||||
</Box>
|
||||
);
|
||||
}
|
||||
|
@ -149,7 +153,7 @@ const useIndicator = (item: ItemDto) => {
|
|||
if (userData.UnplayedItemCount) {
|
||||
return (
|
||||
<Box className='countIndicator indicator unplayedItemCount'>
|
||||
{datetime.toLocaleString(userData.UnplayedItemCount)}
|
||||
{formatCountIndicator(userData.UnplayedItemCount)}
|
||||
</Box>
|
||||
);
|
||||
}
|
||||
|
|
|
@ -173,6 +173,8 @@ function loadForm(context, user, userSettings, systemInfo, apiClient) {
|
|||
|
||||
context.querySelector('.chkPlayDefaultAudioTrack').checked = user.Configuration.PlayDefaultAudioTrack || false;
|
||||
context.querySelector('.chkPreferFmp4HlsContainer').checked = userSettings.preferFmp4HlsContainer();
|
||||
context.querySelector('.chkEnableDts').checked = appSettings.enableDts();
|
||||
context.querySelector('.chkEnableTrueHd').checked = appSettings.enableTrueHd();
|
||||
context.querySelector('.chkEnableCinemaMode').checked = userSettings.enableCinemaMode();
|
||||
context.querySelector('#selectAudioNormalization').value = userSettings.selectAudioNormalization();
|
||||
context.querySelector('.chkEnableNextVideoOverlay').checked = userSettings.enableNextVideoInfoOverlay();
|
||||
|
@ -216,6 +218,9 @@ function saveUser(context, user, userSettingsInstance, apiClient) {
|
|||
appSettings.maxVideoWidth(context.querySelector('.selectMaxVideoWidth').value);
|
||||
appSettings.limitSupportedVideoResolution(context.querySelector('.chkLimitSupportedVideoResolution').checked);
|
||||
|
||||
appSettings.enableDts(context.querySelector('.chkEnableDts').checked);
|
||||
appSettings.enableTrueHd(context.querySelector('.chkEnableTrueHd').checked);
|
||||
|
||||
setMaxBitrateFromField(context.querySelector('.selectVideoInNetworkQuality'), true, 'Video');
|
||||
setMaxBitrateFromField(context.querySelector('.selectVideoInternetQuality'), false, 'Video');
|
||||
setMaxBitrateFromField(context.querySelector('.selectMusicInternetQuality'), false, 'Audio');
|
||||
|
|
|
@ -159,6 +159,28 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<div class="verticalSection verticalSection-extrabottompadding">
|
||||
<h2 class="sectionTitle">
|
||||
${HeaderVideoAdvanced}
|
||||
</h2>
|
||||
|
||||
<div class="checkboxContainer checkboxContainer-withDescription fldEnableDts">
|
||||
<label>
|
||||
<input type="checkbox" is="emby-checkbox" class="chkEnableDts" />
|
||||
<span>${EnableDts}</span>
|
||||
</label>
|
||||
<div class="fieldDescription checkboxFieldDescription">${EnableDtsHelp}</div>
|
||||
</div>
|
||||
|
||||
<div class="checkboxContainer checkboxContainer-withDescription fldEnableTrueHd">
|
||||
<label>
|
||||
<input type="checkbox" is="emby-checkbox" class="chkEnableTrueHd" />
|
||||
<span>${EnableTrueHd}</span>
|
||||
</label>
|
||||
<div class="fieldDescription checkboxFieldDescription">${EnableTrueHdHelp}</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<button is="emby-button" type="submit" class="raised button-submit block btnSave hide">
|
||||
<span>${Save}</span>
|
||||
</button>
|
||||
|
|
|
@ -82,6 +82,7 @@ function createPlaylist(dlg: DialogElement) {
|
|||
.createPlaylist({
|
||||
createPlaylistDto: {
|
||||
Name: dlg.querySelector<HTMLInputElement>('#txtNewPlaylistName')?.value,
|
||||
IsPublic: dlg.querySelector<HTMLInputElement>('#chkPlaylistPublic')?.checked,
|
||||
Ids: itemIds?.split(','),
|
||||
UserId: apiClient.getCurrentUserId()
|
||||
}
|
||||
|
@ -227,6 +228,17 @@ function getEditorHtml(items: string[]) {
|
|||
html += `<input is="emby-input" type="text" id="txtNewPlaylistName" required="required" label="${globalize.translate('LabelName')}"${autoFocus} />`;
|
||||
html += '</div>';
|
||||
|
||||
html += `
|
||||
<div class="checkboxContainer checkboxContainer-withDescription">
|
||||
<label>
|
||||
<input type="checkbox" is="emby-checkbox" id="chkPlaylistPublic" />
|
||||
<span>${globalize.translate('PlaylistPublic')}</span>
|
||||
</label>
|
||||
<div class="fieldDescription checkboxFieldDescription">
|
||||
${globalize.translate('PlaylistPublicDescription')}
|
||||
</div>
|
||||
</div>`;
|
||||
|
||||
// newPlaylistInfo
|
||||
html += '</div>';
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue