Toggle 'Pokaži tudi že naložene' + recut prepiše Nextcloud
User feedback: 'načeloma bi se moral samo če kaj spregledamo in že sejvamo pa ne moremo nazaj vrniti in popraviti' Frontend: - Nov toggle '☁ Pokaži tudi že naložene' nad 'moji reels' headerjem - Default OFF: vidiš samo aktivne (ki niso uploaded) - ON: vidiš VSE, vključno z uploaded (z zelenim borderjem) - buildJobEl: uploaded reels imajo border-left zelen + bg #4ade80 0.04 opacity - Listener: change event sproži refreshJobs() Backend: - recut endpoint: reset hidden_after_upload=false, nextcloud_status='recutting' - Po končanem recut: avto-upload na Nextcloud (PUT prepiše obstoječi file) - Hidden_after_upload=true spet po uspešnem re-uploadu Workflow: 1. Reel uploaded → hidden, ni v UI 2. Klik toggle 'Pokaži tudi že naložene' → vidiš ga (zelen border) 3. Edit → Save → re-render (visible spet, status='processing') 4. Re-upload PUT na Nextcloud → prepiše obstoječi file (ista pot, isto ime) 5. Hidden=true → izgine spet (osim če toggle on)
This commit is contained in:
parent
129f7d5f33
commit
bdc1d14498
@ -1869,12 +1869,16 @@ async def recut_job(job_id: str, payload: RecutRequest, user: str = Depends(chec
|
|||||||
analysis_path.write_text(json.dumps(analysis, indent=2, ensure_ascii=False))
|
analysis_path.write_text(json.dumps(analysis, indent=2, ensure_ascii=False))
|
||||||
|
|
||||||
# Re-queue job v processing (worker ga bo obdelal)
|
# Re-queue job v processing (worker ga bo obdelal)
|
||||||
|
# Reset upload flags da se reel pojavi v UI med renderiranjem,
|
||||||
|
# po končanem renderu pa avto-upload spet (in spet izgine).
|
||||||
update_job(
|
update_job(
|
||||||
job_id,
|
job_id,
|
||||||
status="queued",
|
status="queued",
|
||||||
no_subs=no_subs,
|
no_subs=no_subs,
|
||||||
custom_clip=True, # flag da preskoči Soniox + Claude
|
custom_clip=True, # flag da preskoči Soniox + Claude
|
||||||
auto_upload_to_nextcloud=payload.auto_upload, # avto-upload po končanem recut
|
auto_upload_to_nextcloud=payload.auto_upload, # avto-upload po končanem recut
|
||||||
|
hidden_after_upload=False, # vidno med renderiranjem
|
||||||
|
nextcloud_status="recutting", # signal: ima staro Nextcloud verzijo, čaka novo
|
||||||
current_step="V vrsti za recut",
|
current_step="V vrsti za recut",
|
||||||
error=None,
|
error=None,
|
||||||
chorus_error=None,
|
chorus_error=None,
|
||||||
|
|||||||
@ -409,7 +409,13 @@
|
|||||||
|
|
||||||
<!-- ─── JOBS ────────────────────────────────────── -->
|
<!-- ─── JOBS ────────────────────────────────────── -->
|
||||||
<section class="card">
|
<section class="card">
|
||||||
<h2>moji reels</h2>
|
<div style="display:flex; justify-content:space-between; align-items:center; margin-bottom:8px; flex-wrap:wrap; gap:8px;">
|
||||||
|
<h2 style="margin:0;">moji reels</h2>
|
||||||
|
<label style="display:flex; align-items:center; gap:6px; font-size:13px; color:var(--muted); cursor:pointer;">
|
||||||
|
<input type="checkbox" id="show-uploaded">
|
||||||
|
☁ Pokaži tudi že naložene
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
<div class="jobs-list" id="jobs-list">
|
<div class="jobs-list" id="jobs-list">
|
||||||
<div class="empty">Še ni obdelav</div>
|
<div class="empty">Še ni obdelav</div>
|
||||||
</div>
|
</div>
|
||||||
@ -979,10 +985,13 @@
|
|||||||
if (!r.ok) return;
|
if (!r.ok) return;
|
||||||
const data = await r.json();
|
const data = await r.json();
|
||||||
const list = $("#jobs-list");
|
const list = $("#jobs-list");
|
||||||
// Filtriraj ven jobe ki so že naloženi in skriti
|
const showUploaded = $("#show-uploaded") && $("#show-uploaded").checked;
|
||||||
const visible = data.jobs.filter(j => !j.hidden_after_upload);
|
// Filtriraj ven jobe ki so že naloženi in skriti — RAZEN če checkbox vklopljen
|
||||||
|
const visible = data.jobs.filter(j => showUploaded || !j.hidden_after_upload);
|
||||||
if (!visible.length) {
|
if (!visible.length) {
|
||||||
list.innerHTML = '<div class="empty">Še ni obdelav</div>';
|
list.innerHTML = showUploaded
|
||||||
|
? '<div class="empty">Še ni obdelav</div>'
|
||||||
|
: '<div class="empty">Vse obdelano in naloženo. Klikni "Pokaži tudi že naložene" če želiš popraviti.</div>';
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
list.innerHTML = "";
|
list.innerHTML = "";
|
||||||
@ -994,6 +1003,12 @@
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Toggle pokaži/skrij že naložene
|
||||||
|
document.addEventListener("DOMContentLoaded", () => {
|
||||||
|
const toggle = $("#show-uploaded");
|
||||||
|
if (toggle) toggle.addEventListener("change", refreshJobs);
|
||||||
|
});
|
||||||
|
|
||||||
function updateJobInList(job) {
|
function updateJobInList(job) {
|
||||||
const existing = document.getElementById(`job-${job.id}`);
|
const existing = document.getElementById(`job-${job.id}`);
|
||||||
@ -1012,6 +1027,12 @@
|
|||||||
el.className = "job";
|
el.className = "job";
|
||||||
el.id = `job-${job.id}`;
|
el.id = `job-${job.id}`;
|
||||||
el.dataset.id = job.id;
|
el.dataset.id = job.id;
|
||||||
|
|
||||||
|
// Vizualni hint če je že naložen na Nextcloud
|
||||||
|
if (job.nextcloud_status === "uploaded") {
|
||||||
|
el.style.borderLeft = "3px solid #4ade80";
|
||||||
|
el.style.background = "rgba(74,222,128,0.04)";
|
||||||
|
}
|
||||||
|
|
||||||
const title = job.source_type === "youtube"
|
const title = job.source_type === "youtube"
|
||||||
? (job.youtube_url || "YouTube")
|
? (job.youtube_url || "YouTube")
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user