Add curator Movement links config with proof URLs and admin-gated delete votes.
Persist lineage in PostgreSQL, seed documented edges, and keep timeline/tree consumers API-backed with a static fallback. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
1 parent
2b4cdc5a9f
commit
1b760faf0d
36 files changed
+2051
-43
No files matched your search
@@ -15,6 +15,7 @@
|
||||
"checkup": "Checkup",
|
||||
"translations": "Translations",
|
||||
"influences": "Influences",
|
||||
"movementLinks": "Movement links",
|
||||
"tours": "Tours",
|
||||
"toursEditor": "Tour editor",
|
||||
"users": "Users",
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
{
|
||||
"title": "Influence links",
|
||||
"back": "← Back to gallery",
|
||||
"openMovementLinks": "Movement links →",
|
||||
"tabList": "List",
|
||||
"tabImport": "Import",
|
||||
"tabGraph": "Graph",
|
||||
|
||||
@@ -0,0 +1,52 @@
|
||||
{
|
||||
"title": "Movement links",
|
||||
"back": "← Back to gallery",
|
||||
"intro": "Predecessor → successor edges used by the timeline flow and Tree of Art. Every link needs a proof URL (museum essay, literature, or other web reference).",
|
||||
"introCurator": "Curators can vote to delete a link and must give a reason. Only an admin can perform the final delete after reviewing votes.",
|
||||
"introAdmin": "As admin you can delete links directly. Review curator delete votes (reasons) before confirming.",
|
||||
"loadFailed": "Failed to load movement links",
|
||||
"saveFailed": "Failed to save movement link",
|
||||
"deleteFailed": "Failed to delete movement link",
|
||||
"voteFailed": "Failed to cast delete vote",
|
||||
"withdrawFailed": "Failed to withdraw vote",
|
||||
"searchPlaceholder": "Search source, target, proof…",
|
||||
"refresh": "Refresh",
|
||||
"loading": "Loading…",
|
||||
"loadingVotes": "Loading votes…",
|
||||
"votesLoadFailed": "Could not load votes.",
|
||||
"total": "{{count}} links",
|
||||
"noLinks": "No movement links yet.",
|
||||
"addLink": "Add link",
|
||||
"cancelAdd": "Cancel",
|
||||
"addTitle": "New movement link",
|
||||
"source": "Source (from)",
|
||||
"target": "Target (to)",
|
||||
"pickMovement": "Select movement…",
|
||||
"proofUrl": "Proof URL",
|
||||
"proofLabel": "Proof label",
|
||||
"proofLabelPlaceholder": "e.g. Met — Cubism",
|
||||
"linkYear": "Link date ≈",
|
||||
"linkYearPlaceholder": "e.g. 1907",
|
||||
"notes": "Notes",
|
||||
"saveLink": "Save link",
|
||||
"saving": "Saving…",
|
||||
"addRequiresMovements": "Pick both source and target movements",
|
||||
"proofRequired": "Proof URL is required",
|
||||
"voteTitle": "Vote to delete",
|
||||
"voteReason": "Reason",
|
||||
"voteReasonPlaceholder": "Explain why this link should be removed (min. 10 characters)…",
|
||||
"voteReasonRequired": "Reason must be at least 10 characters",
|
||||
"submitVote": "Submit vote",
|
||||
"cancelVote": "Cancel",
|
||||
"voteDelete": "Vote to delete",
|
||||
"withdrawVote": "Withdraw vote",
|
||||
"voteCount": "{{count}} vote(s)",
|
||||
"colSource": "Source",
|
||||
"colTarget": "Target",
|
||||
"colYear": "Link date ≈",
|
||||
"colProof": "Reference / proof",
|
||||
"colVotes": "Delete votes",
|
||||
"colActions": "Actions",
|
||||
"delete": "Delete",
|
||||
"confirmDelete": "Delete this movement link? Curator vote reasons will be recorded in the audit log."
|
||||
}
|
||||
@@ -25,7 +25,7 @@
|
||||
"perm_checkup": "Checkup",
|
||||
"perm_curator_notes": "Curator notes",
|
||||
"perm_translations": "Translations",
|
||||
"perm_influences": "Influences",
|
||||
"perm_influences": "Influences & movement links",
|
||||
"perm_tours": "Tours",
|
||||
"perm_users": "Users",
|
||||
"adminAllPerms": "Admins have all permissions automatically.",
|
||||
|
||||
Reference in new issue
Block a user