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

Function saveSettings

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

Source from the content-addressed store, hash-verified

5306 }
5307
5308 async function saveSettings() {
5309 const values = {};
5310 document.querySelectorAll("[data-env-key]").forEach((input) => {
5311 values[input.dataset.envKey] = input.value;
5312 });
5313 if ($("maxConcurrencyInput")) {
5314 values.PAPERFLOW_MAX_CONCURRENCY = $("maxConcurrencyInput").value;
5315 }
5316 if ($("fallbackModelInput")) {
5317 values.PAPERFLOW_FALLBACK_LLM_MODEL = $("fallbackModelInput").value;
5318 }
5319 values.PAPERFLOW_DEFAULT_ARXIV_CATEGORIES = Array.from($("settingArxivCategories").querySelectorAll("span")).map((item) => item.textContent.trim()).filter(Boolean).join(",");
5320 values.PAPERFLOW_DEFAULT_CONFERENCES = selectedSettingConferences().join(",");
5321 values.PAPERFLOW_CUSTOM_RSS_URLS = rssUrls().filter((url) => url !== ui().settings.customRssMissing).join(",");
5322 values.PAPERFLOW_ENABLE_ARXIV = String($("settingEnableArxiv").checked);
5323 values.PAPERFLOW_ENABLE_SEMANTIC_SCHOLAR = String($("settingEnableSemanticScholar").checked);
5324 values.PAPERFLOW_ENABLE_OPENREVIEW = String($("settingEnableOpenReview").checked);
5325 values.PAPERFLOW_ENABLE_CUSTOM_RSS = String($("settingEnableCustomRss").checked);
5326 values.PAPERFLOW_CONFERENCE_ACCESS_MODE = document.querySelector('input[name="conferenceAccessMode"]:checked')?.value || "public";
5327 values.PAPERFLOW_REPORT_STYLE = document.querySelector("[data-pref-mode].active")?.dataset.prefMode || "standard";
5328 values.PAPERFLOW_WRITE_FEISHU = String($("writeFeishuReports").checked || $("directWriteFeishu").checked || $("directPdfWriteFeishu").checked);
5329 values.PAPERFLOW_WIKI_INGEST = String($("wikiIngestSetting").checked);
5330 values.PAPERFLOW_READING_NOTES_GIT_LLM_REVIEW = String($("notesGitLlmReviewSetting")?.checked !== false);
5331 values.PAPERFLOW_DAILY_LIMIT = $("dailyLimitInput").value;
5332 values.PAPERFLOW_RELEVANCE_THRESHOLD = $("relevanceThreshold").value;
5333 values.HTTP_PROXY = $("proxyInput").value;
5334 values.HTTPS_PROXY = $("proxyInput").value;
5335 const data = await api("/api/settings", { method: "POST", body: JSON.stringify({ values }) });
5336 renderSettings(data);
5337 state.reports = [];
5338 state.currentReport = null;
5339 state.wikiNodes = [];
5340 state.wikiGraph = null;
5341 state.wikiMap = null;
5342 state.currentWikiNodeId = "";
5343 state.currentWikiEditNodeId = "";
5344 if ($("wikiQuery")) $("wikiQuery").value = "";
5345 if (state.currentView === "wiki") {
5346 await loadWiki();
5347 } else if (state.currentView === "reports") {
5348 await refreshReports({ keepSelection: false });
5349 }
5350 showSettingsMessage(ui().settings.settingsSavedMessage);
5351 showFeedbackToast("success", ui().settings.save, ui().settings.settingsSavedToast);
5352 }
5353
5354 function joinPath(base, suffix) {
5355 const root = String(base || "").trim().replace(/[\\/]+$/, "");

Callers

nothing calls this directly

Calls 10

rssUrlsFunction · 0.85
uiFunction · 0.85
renderSettingsFunction · 0.85
loadWikiFunction · 0.85
showSettingsMessageFunction · 0.85
showFeedbackToastFunction · 0.85
$Function · 0.70
apiFunction · 0.70
refreshReportsFunction · 0.70

Tested by

no test coverage detected