MCPcopy Create free account
hub / github.com/OpenRaiser/PaperFlow / bindEvents

Function bindEvents

deployments/desktop/static/desktop.js:5441–5794  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

5439 }
5440
5441 function bindEvents() {
5442 bindButtonFeedback();
5443 $("languageSelect")?.addEventListener("change", (event) => setLocale(event.target.value));
5444 document.querySelectorAll(".rail-item").forEach((button) => {
5445 button.addEventListener("click", () => setView(button.dataset.view));
5446 });
5447 window.addEventListener("hashchange", () => setView(window.location.hash.slice(1) || "papers", false));
5448 $("refreshUsersBtn").addEventListener("click", () => runAction(async () => {
5449 await loadUsers();
5450 await loadCurrentProfile();
5451 }, "刷新用户"));
5452 $("userSelect").addEventListener("change", () => {
5453 state.dailyPollToken += 1;
5454 setDailyTaskState("", "", false);
5455 state.currentUser = currentUser();
5456 runAction(async () => {
5457 startNewChat({ silent: true });
5458 await loadLatestPush();
5459 await loadWiki();
5460 await loadCurrentProfile();
5461 if (document.querySelector(".view.active")?.id === "chat") {
5462 await loadChatSessions({ openLatest: true });
5463 }
5464 await resumeDailyTask();
5465 }, "切换用户");
5466 });
5467
5468 $("paperDate").value = todayDateValue();
5469 syncDateControls();
5470 $("prevDayBtn").addEventListener("click", () => shiftDate(-1));
5471 $("nextDayBtn").addEventListener("click", () => shiftDate(1));
5472 $("paperDate").addEventListener("change", syncDateControls);
5473 $("daysInput").addEventListener("change", syncDateControls);
5474 $("runDailyBtn").addEventListener("click", () => runAction(runDaily, "拉取论文"));
5475 $("sortRelevanceBtn")?.addEventListener("click", () => {
5476 if (!state.push?.papers?.length) {
5477 showFeedbackToast("warning", ui().papers.noSortableTitle, ui().papers.noSortableDetail);
5478 return;
5479 }
5480 state.push.papers.sort((a, b) => Number(b.score || 0) - Number(a.score || 0));
5481 renderPush(state.push);
5482 showFeedbackToast("success", ui().papers.sortedTitle, ui().papers.sortedDetail(state.push.papers.length));
5483 });
5484 $("paperList").addEventListener("click", (event) => {
5485 const button = event.target.closest("[data-action]");
5486 if (!button) return;
5487 const number = Number(button.dataset.number);
5488 if (button.dataset.action === "read") {
5489 runAction(() => readSinglePaper(number), "选择精读论文");
5490 return;
5491 } else if (button.dataset.action === "skip") {
5492 setPaperDisposition(number, "skip");
5493 } else if (button.dataset.action === "later") {
5494 setPaperDisposition(number, "later");
5495 }
5496 });
5497 $("selectAllSourcesBtn").addEventListener("click", () => {
5498 toggleAllSources(true);

Callers 1

initFunction · 0.70

Calls 15

bindButtonFeedbackFunction · 0.85
setLocaleFunction · 0.85
loadCurrentProfileFunction · 0.85
setDailyTaskStateFunction · 0.85
currentUserFunction · 0.85
startNewChatFunction · 0.85
loadWikiFunction · 0.85
loadChatSessionsFunction · 0.85
resumeDailyTaskFunction · 0.85
todayDateValueFunction · 0.85
syncDateControlsFunction · 0.85
shiftDateFunction · 0.85

Tested by

no test coverage detected