From b50f269c41cb38c5cfd27e896460ad34042be4d0 Mon Sep 17 00:00:00 2001 From: Nikola Petrov Date: Wed, 14 Oct 2026 17:02:10 +0200 Subject: [PATCH] Don't mark a job as seen when opening it Jobs now stay in New until 'Mark seen' is clicked. Co-Authored-By: Claude Opus 5.5 --- scrapper/README.md | 2 +- scrapper/src/server.ts | 11 ----------- 2 files changed, 1 insertion(+), 12 deletions(-) diff --git a/scrapper/README.md b/scrapper/README.md index be92da3..72368a7 100644 --- a/scrapper/README.md +++ b/scrapper/README.md @@ -72,7 +72,7 @@ WantedBy=multi-user.target ## UI -- **New / Seen / All** tabs. Opening a job, or clicking *Mark seen*, moves it to Seen. +- **New / Seen / All** tabs. Click *Mark seen* to move a job to Seen (opening a job does not mark it). - **no longer listed** means the job was missing from that source's latest successful scrape. - Search filters on title, company and tags. Recent scrape runs (and errors) are listed at the bottom. diff --git a/scrapper/src/server.ts b/scrapper/src/server.ts index b6830d8..add84f1 100644 --- a/scrapper/src/server.ts +++ b/scrapper/src/server.ts @@ -175,17 +175,6 @@ function page(url: URL) { } document.querySelectorAll(".job").forEach((li) => { li.querySelector(".toggle").addEventListener("click", () => setSeen(li, !li.classList.contains("seen"))); - // Opening a job counts as seeing it (the card stays until you reload). - li.querySelector(".title").addEventListener("click", () => { - if (li.classList.contains("seen")) return; - fetch("/api/jobs/" + li.dataset.id + "/seen", { - method: "POST", headers: { "content-type": "application/json" }, - body: JSON.stringify({ seen: true }), keepalive: true, - }); - li.classList.add("seen"); li.classList.remove("new"); - li.querySelector(".new-badge")?.remove(); - li.querySelector(".toggle").textContent = "Mark new"; - }); }); document.getElementById("all-seen")?.addEventListener("click", async () => { const ids = [...document.querySelectorAll(".job.new")].map((li) => Number(li.dataset.id));