0.12.0-18 Tests and Converter Fixes
This commit is contained in:
@@ -22,6 +22,7 @@ import {
|
||||
normalizeStatus,
|
||||
STATUS_FILTER_OPTIONS
|
||||
} from '../utils/statusPresentation';
|
||||
import { confirmModal } from '../utils/confirmModal';
|
||||
|
||||
const MEDIA_FILTER_OPTIONS = [
|
||||
{ label: 'Alle Medien', value: '' },
|
||||
@@ -274,25 +275,50 @@ function resolveAudiobookDetails(row) {
|
||||
};
|
||||
}
|
||||
|
||||
function getOutputLabelForRow(row) {
|
||||
const mediaType = resolveMediaType(row);
|
||||
if (mediaType === 'cd') {
|
||||
return 'Audio-Dateien';
|
||||
function resolveConverterMediaType(row) {
|
||||
const encodePlan = row?.encodePlan && typeof row.encodePlan === 'object' ? row.encodePlan : {};
|
||||
const value = String(
|
||||
encodePlan?.converterMediaType
|
||||
|| row?.converterMediaType
|
||||
|| ''
|
||||
).trim().toLowerCase();
|
||||
if (value === 'audio') {
|
||||
return 'audio';
|
||||
}
|
||||
if (mediaType === 'audiobook') {
|
||||
if (value === 'video' || value === 'iso') {
|
||||
return 'video';
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
function hasAudioOutput(row) {
|
||||
const mediaType = resolveMediaType(row);
|
||||
if (mediaType === 'cd' || mediaType === 'audiobook') {
|
||||
return true;
|
||||
}
|
||||
if (mediaType === 'converter') {
|
||||
return resolveConverterMediaType(row) === 'audio';
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
function getOutputLabelForRow(row) {
|
||||
if (resolveMediaType(row) === 'audiobook') {
|
||||
return 'Audiobook-Datei(en)';
|
||||
}
|
||||
if (hasAudioOutput(row)) {
|
||||
return 'Audio-Dateien';
|
||||
}
|
||||
return 'Movie-Datei(en)';
|
||||
}
|
||||
|
||||
function getOutputShortLabelForRow(row) {
|
||||
const mediaType = resolveMediaType(row);
|
||||
if (mediaType === 'cd') {
|
||||
return 'Audio';
|
||||
}
|
||||
if (mediaType === 'audiobook') {
|
||||
if (resolveMediaType(row) === 'audiobook') {
|
||||
return 'Audiobook';
|
||||
}
|
||||
if (hasAudioOutput(row)) {
|
||||
return 'Audio';
|
||||
}
|
||||
return 'Movie';
|
||||
}
|
||||
|
||||
@@ -717,7 +743,12 @@ export default function HistoryPage({ refreshToken = 0 }) {
|
||||
} else if (action === 'restart_review') {
|
||||
const title = job?.title || job?.detected_title || `Job #${job?.id}`;
|
||||
if (!skipConfirm) {
|
||||
const confirmed = window.confirm(`Review für "${title}" neu starten?\nDer Job wird erneut analysiert. Spur- und Skriptauswahl kann danach im Dashboard neu getroffen werden.`);
|
||||
const confirmed = await confirmModal({
|
||||
header: 'Review neu starten',
|
||||
message: `Review für "${title}" neu starten?\nDer Job wird erneut analysiert. Spur- und Skriptauswahl kann danach im Dashboard neu getroffen werden.`,
|
||||
acceptLabel: 'Review starten',
|
||||
rejectLabel: 'Abbrechen'
|
||||
});
|
||||
if (!confirmed) {
|
||||
return;
|
||||
}
|
||||
@@ -743,7 +774,12 @@ export default function HistoryPage({ refreshToken = 0 }) {
|
||||
} else if (action === 'restart_cd_review') {
|
||||
const title = job?.title || job?.detected_title || `Job #${job?.id}`;
|
||||
if (!skipConfirm) {
|
||||
const confirmed = window.confirm(`CD-Vorprüfung für "${title}" starten?\nMusicBrainz-Suche, Trackauswahl und Ausgabeeinstellungen werden im Dashboard geöffnet.`);
|
||||
const confirmed = await confirmModal({
|
||||
header: 'CD-Vorprüfung starten',
|
||||
message: `CD-Vorprüfung für "${title}" starten?\nMusicBrainz-Suche, Trackauswahl und Ausgabeeinstellungen werden im Dashboard geöffnet.`,
|
||||
acceptLabel: 'Vorprüfung starten',
|
||||
rejectLabel: 'Abbrechen'
|
||||
});
|
||||
if (!confirmed) {
|
||||
return;
|
||||
}
|
||||
@@ -848,7 +884,13 @@ export default function HistoryPage({ refreshToken = 0 }) {
|
||||
const outputShortLabel = getOutputShortLabelForRow(row);
|
||||
const label = target === 'raw' ? 'RAW-Dateien' : target === 'movie' ? outputLabel : `RAW + ${outputShortLabel}`;
|
||||
const title = row.title || row.detected_title || `Job #${row.id}`;
|
||||
const confirmed = window.confirm(`${label} für "${title}" wirklich löschen?`);
|
||||
const confirmed = await confirmModal({
|
||||
header: 'Dateien löschen',
|
||||
message: `${label} für "${title}" wirklich löschen?`,
|
||||
acceptLabel: 'Löschen',
|
||||
rejectLabel: 'Abbrechen',
|
||||
danger: true
|
||||
});
|
||||
if (!confirmed) {
|
||||
return;
|
||||
}
|
||||
@@ -998,7 +1040,12 @@ export default function HistoryPage({ refreshToken = 0 }) {
|
||||
const title = row?.title || row?.detected_title || `Job #${row?.id}`;
|
||||
const mediaType = resolveMediaType(row);
|
||||
const actionLabel = mediaType === 'cd' ? 'CD-Rip' : 'Retry';
|
||||
const confirmed = window.confirm(`${actionLabel} für "${title}" neu starten?`);
|
||||
const confirmed = await confirmModal({
|
||||
header: `${actionLabel} neu starten`,
|
||||
message: `${actionLabel} für "${title}" neu starten?`,
|
||||
acceptLabel: 'Neu starten',
|
||||
rejectLabel: 'Abbrechen'
|
||||
});
|
||||
if (!confirmed) {
|
||||
return;
|
||||
}
|
||||
@@ -1415,6 +1462,7 @@ export default function HistoryPage({ refreshToken = 0 }) {
|
||||
const listItem = (row) => {
|
||||
const mediaMeta = resolveMediaTypeMeta(row);
|
||||
const isCdJob = mediaMeta.mediaType === 'cd';
|
||||
const outputIsAudio = hasAudioOutput(row);
|
||||
const cdDetails = isCdJob ? resolveCdDetails(row) : null;
|
||||
const subtitle = isCdJob
|
||||
? [
|
||||
@@ -1460,8 +1508,8 @@ export default function HistoryPage({ refreshToken = 0 }) {
|
||||
|
||||
<div className="history-dv-flags-row">
|
||||
{renderPresenceChip('RAW', Boolean(row?.rawStatus?.exists))}
|
||||
{renderPresenceChip(isCdJob || mediaMeta.mediaType === 'audiobook' ? 'Audio' : 'Movie', Boolean(row?.outputStatus?.exists))}
|
||||
{renderPresenceChip('Encode', isCdJob || mediaMeta.mediaType === 'audiobook' ? Boolean(row?.ripSuccessful) : Boolean(row?.encodeSuccess))}
|
||||
{renderPresenceChip(outputIsAudio ? 'Audio' : 'Movie', Boolean(row?.outputStatus?.exists))}
|
||||
{renderPresenceChip('Encode', Boolean(row?.encodeSuccess))}
|
||||
</div>
|
||||
|
||||
<div className="history-dv-ratings-row">{renderSupplementalInfo(row)}</div>
|
||||
@@ -1476,6 +1524,7 @@ export default function HistoryPage({ refreshToken = 0 }) {
|
||||
const gridItem = (row) => {
|
||||
const mediaMeta = resolveMediaTypeMeta(row);
|
||||
const isCdJob = mediaMeta.mediaType === 'cd';
|
||||
const outputIsAudio = hasAudioOutput(row);
|
||||
const cdDetails = isCdJob ? resolveCdDetails(row) : null;
|
||||
const subtitle = isCdJob
|
||||
? [
|
||||
@@ -1523,8 +1572,8 @@ export default function HistoryPage({ refreshToken = 0 }) {
|
||||
|
||||
<div className="history-dv-flags-row">
|
||||
{renderPresenceChip('RAW', Boolean(row?.rawStatus?.exists))}
|
||||
{renderPresenceChip(isCdJob || mediaMeta.mediaType === 'audiobook' ? 'Audio' : 'Movie', Boolean(row?.outputStatus?.exists))}
|
||||
{renderPresenceChip('Encode', isCdJob || mediaMeta.mediaType === 'audiobook' ? Boolean(row?.ripSuccessful) : Boolean(row?.encodeSuccess))}
|
||||
{renderPresenceChip(outputIsAudio ? 'Audio' : 'Movie', Boolean(row?.outputStatus?.exists))}
|
||||
{renderPresenceChip('Encode', Boolean(row?.encodeSuccess))}
|
||||
</div>
|
||||
|
||||
<div className="history-dv-ratings-row">{renderSupplementalInfo(row)}</div>
|
||||
|
||||
Reference in New Issue
Block a user