feat: show NAS backup status badge in library
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XNQ8ghPfzAfsyVYd6HgFb6
This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
import React, { useState, useEffect, useCallback } from 'react';
|
import React, { useState, useEffect, useCallback } from 'react';
|
||||||
|
|
||||||
interface Item { id: string; filename: string; output_px: string; has_alpha: boolean;
|
interface Item { id: string; filename: string; output_px: string; has_alpha: boolean;
|
||||||
folder_id: string | null; by_name: string; tasks: string[]; delivery_status: string;
|
folder_id: string | null; by_name: string; tasks: string[]; delivery_status: string; nas_status: string;
|
||||||
model_used: string; variant_of: string | null; mode: string; thumb_path: string | null; created_at: string; }
|
model_used: string; variant_of: string | null; mode: string; thumb_path: string | null; created_at: string; }
|
||||||
|
|
||||||
export default function LibraryApp() {
|
export default function LibraryApp() {
|
||||||
@@ -172,6 +172,8 @@ export default function LibraryApp() {
|
|||||||
{v.delivery_status === 'delivered' && <span className="dbadge ok">Picdrop ✓</span>}
|
{v.delivery_status === 'delivered' && <span className="dbadge ok">Picdrop ✓</span>}
|
||||||
{v.delivery_status === 'pending' && <span className="dbadge">Picdrop …</span>}
|
{v.delivery_status === 'pending' && <span className="dbadge">Picdrop …</span>}
|
||||||
{v.delivery_status === 'failed' && <span className="dbadge err">Picdrop ✕</span>}
|
{v.delivery_status === 'failed' && <span className="dbadge err">Picdrop ✕</span>}
|
||||||
|
{v.nas_status === 'mirrored' && <span className="dbadge ok">NAS ✓</span>}
|
||||||
|
{v.nas_status === 'failed' && <span className="dbadge err">NAS ✕</span>}
|
||||||
</div>
|
</div>
|
||||||
<div className="reihe knapp">
|
<div className="reihe knapp">
|
||||||
{v.mode !== 'generate' && <button className="mini" onClick={() => setCompare(v)}>Vorher/Nachher</button>}
|
{v.mode !== 'generate' && <button className="mini" onClick={() => setCompare(v)}>Vorher/Nachher</button>}
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ export const GET: APIRoute = async ({ url, locals }) => {
|
|||||||
|
|
||||||
const rows = await query(
|
const rows = await query(
|
||||||
`SELECT i.id, i.filename, i.output_px, i.has_alpha, i.result_path, i.thumb_path, i.folder_id,
|
`SELECT i.id, i.filename, i.output_px, i.has_alpha, i.result_path, i.thumb_path, i.folder_id,
|
||||||
i.delivery_status, i.created_at, i.model_used, i.variant_of, j.mode, u.display_name AS by_name,
|
i.delivery_status, i.nas_status, i.created_at, i.model_used, i.variant_of, j.mode, u.display_name AS by_name,
|
||||||
j.recipe_snapshot->'tasks' AS tasks
|
j.recipe_snapshot->'tasks' AS tasks
|
||||||
FROM items i
|
FROM items i
|
||||||
JOIN jobs j ON j.id = i.job_id
|
JOIN jobs j ON j.id = i.job_id
|
||||||
|
|||||||
Reference in New Issue
Block a user