feat(downloads): edit + remove actions on shared-with-me items (no re-share)

A shared-with-me item only had a download button. Add two actions (Share is intentionally NOT
offered — no chain re-sharing of someone else's file):
- Edit: the editor now accepts an accessible (owned OR shared) source, so editing a shared video
  produces the editor's OWN clip in their library (counts against their quota, fully theirs
  including share); the source file is only read. Route uses _accessible_job.
- Remove from my list: DELETE /api/downloads/shared/{job_id} deletes only the recipient's share
  grant — the owner's job and physical file are untouched (per-user dismissal).
i18n en/hu/de. Verified in a real browser (edit a shared 70-min video → own 2:31 clip; remove
confirm shows 'won't delete the owner's file').
This commit is contained in:
npeter83 2026-07-04 05:21:50 +02:00
parent b7f365dd5a
commit 1e3fad9a8f
6 changed files with 66 additions and 8 deletions

View file

@ -57,7 +57,8 @@
"download": "Auf mein Gerät speichern",
"rename": "Umbenennen",
"share": "Teilen",
"edit": "Bearbeiten / schneiden"
"edit": "Bearbeiten / schneiden",
"removeShared": "Aus meiner Liste entfernen"
},
"empty": {
"queue": "Die Warteschlange ist leer.",
@ -110,7 +111,9 @@
"cancelTitle": "Download abbrechen?",
"cancelBody": "Dies stoppt den Download und entfernt ihn aus deiner Warteschlange.",
"deleteTitle": "Download entfernen?",
"deleteBody": "Dies entfernt ihn aus deiner Liste. Die Datei kann bis zum Ablauf für andere Nutzer im Cache bleiben."
"deleteBody": "Dies entfernt ihn aus deiner Liste. Die Datei kann bis zum Ablauf für andere Nutzer im Cache bleiben.",
"removeSharedTitle": "Aus deiner Liste entfernen?",
"removeSharedBody": "Entfernt es nur aus deiner geteilten Liste — die Datei des Besitzers wird nicht gelöscht."
},
"profiles": {
"manage": "Formate verwalten",

View file

@ -57,7 +57,8 @@
"download": "Save to my device",
"rename": "Rename",
"share": "Share",
"edit": "Edit / trim"
"edit": "Edit / trim",
"removeShared": "Remove from my list"
},
"empty": {
"queue": "Nothing in the queue.",
@ -110,7 +111,9 @@
"cancelTitle": "Cancel download?",
"cancelBody": "This stops the download and removes it from your queue.",
"deleteTitle": "Remove download?",
"deleteBody": "This removes it from your list. The file may stay cached for other users until it expires."
"deleteBody": "This removes it from your list. The file may stay cached for other users until it expires.",
"removeSharedTitle": "Remove from your list?",
"removeSharedBody": "This removes it from your shared list only — it won't delete the owner's file."
},
"profiles": {
"manage": "Manage formats",

View file

@ -57,7 +57,8 @@
"download": "Mentés a gépemre",
"rename": "Átnevezés",
"share": "Megosztás",
"edit": "Szerkesztés / vágás"
"edit": "Szerkesztés / vágás",
"removeShared": "Eltávolítás a listámból"
},
"empty": {
"queue": "A sor üres.",
@ -110,7 +111,9 @@
"cancelTitle": "Megszakítod a letöltést?",
"cancelBody": "Ez leállítja a letöltést és eltávolítja a sorból.",
"deleteTitle": "Eltávolítod a letöltést?",
"deleteBody": "Ez eltávolítja a listádról. A fájl a lejáratáig még a gyorsítótárban maradhat mások számára."
"deleteBody": "Ez eltávolítja a listádról. A fájl a lejáratáig még a gyorsítótárban maradhat mások számára.",
"removeSharedTitle": "Eltávolítod a listádból?",
"removeSharedBody": "Csak a te megosztott listádból tűnik el — a tulajdonos fájlját nem törli."
},
"profiles": {
"manage": "Formátumok kezelése",