Compare commits
4 Commits
96c220825f
...
staging
| Author | SHA1 | Date | |
|---|---|---|---|
| 0be268307e | |||
| 0072716733 | |||
| 9b1090b614 | |||
| 87eb6a0f84 |
+551
-95
File diff suppressed because it is too large
Load Diff
@@ -7,7 +7,7 @@ interface Props {
|
||||
data: {
|
||||
title: string;
|
||||
purpose?: string | null;
|
||||
status?: string | null;
|
||||
parity_status?: string | null;
|
||||
source_cms?: string | null;
|
||||
target_cms?: string | null;
|
||||
};
|
||||
@@ -19,7 +19,7 @@ const d = entry.data;
|
||||
<li class="plugin-card">
|
||||
<h3><a href={`/plugins/${entry.id}`}>{d.title}</a></h3>
|
||||
<div class="meta">
|
||||
<StatusBadge status={d.status} />
|
||||
<StatusBadge status={d.parity_status} />
|
||||
{d.source_cms && <span>{d.source_cms}{d.target_cms ? ` → ${d.target_cms}` : ""}</span>}
|
||||
</div>
|
||||
{d.purpose && <p>{d.purpose}</p>}
|
||||
|
||||
Vendored
+1
-1
@@ -28,7 +28,7 @@ declare module "emdash" {
|
||||
source_cms: string;
|
||||
target_cms?: string | null;
|
||||
category?: string | null;
|
||||
status: string;
|
||||
parity_status: string;
|
||||
source_repo_url?: string | null;
|
||||
target_repo_url?: string | null;
|
||||
notes?: import("emdash").PortableTextBlock[] | null;
|
||||
|
||||
@@ -20,13 +20,13 @@ const statusFilter = url.searchParams.get("status") ?? "";
|
||||
const sourceFilter = url.searchParams.get("source") ?? "";
|
||||
|
||||
const sources = Array.from(new Set(plugins.map((p) => p.data.source_cms).filter(Boolean))).sort();
|
||||
const present = new Set(plugins.map((p) => p.data.status).filter(Boolean));
|
||||
const present = new Set(plugins.map((p) => p.data.parity_status).filter(Boolean));
|
||||
const statuses = STATUSES.filter((s) => present.has(s.value));
|
||||
|
||||
const filtered = plugins.filter((p) => {
|
||||
const d = p.data;
|
||||
if (q && !(`${d.title} ${d.purpose ?? ""}`.toLowerCase().includes(q))) return false;
|
||||
if (statusFilter && d.status !== statusFilter) return false;
|
||||
if (statusFilter && d.parity_status !== statusFilter) return false;
|
||||
if (sourceFilter && d.source_cms !== sourceFilter) return false;
|
||||
return true;
|
||||
});
|
||||
|
||||
@@ -50,7 +50,7 @@ const targetCmsSlug = resolveCmsSlug(d?.target_cms, cmsIndex);
|
||||
</p>
|
||||
<h1>{d.title}</h1>
|
||||
<p class="meta">
|
||||
<StatusBadge status={d.status} />
|
||||
<StatusBadge status={d.parity_status} />
|
||||
{d.source_cms && <span class="source-target">{d.source_cms}{d.target_cms ? ` → ${d.target_cms}` : ""}</span>}
|
||||
</p>
|
||||
{d.purpose && <p class="lead">{d.purpose}</p>}
|
||||
|
||||
+10
-1
@@ -15,7 +15,16 @@ mkdir -p /app/state/uploads
|
||||
# upgrades against an existing PVC and never recover a partial first-run init.)
|
||||
echo "[entrypoint] running emdash init (applies pending migrations)"
|
||||
node_modules/.bin/emdash init
|
||||
|
||||
# Seed is best-effort: unlike migrations, a content-seed failure (e.g. a bad
|
||||
# seed.json entry) must NOT crash-loop the whole site, so it is NOT under the
|
||||
# `set -e` abort. We still surface a non-zero rc loudly in the logs rather than
|
||||
# swallowing it silently.
|
||||
echo "[entrypoint] running emdash seed (applies seed/seed.json, onConflict=skip)"
|
||||
node_modules/.bin/emdash seed
|
||||
if node_modules/.bin/emdash seed; then
|
||||
echo "[entrypoint] emdash seed ok"
|
||||
else
|
||||
echo "[entrypoint] WARNING: emdash seed failed (rc=$?) — serving without full seed" >&2
|
||||
fi
|
||||
|
||||
exec "$@"
|
||||
|
||||
Reference in New Issue
Block a user