1
0
Fork 0
mirror of https://github.com/Eggbertx/gochan.git synced 2025-08-17 10:56:24 -07:00

Save flag selection on post submission and load it on page start (per board)

This commit is contained in:
Eggbertx 2024-01-22 00:17:52 -08:00
parent 1e29426509
commit 77f8ad9bcd
2 changed files with 38 additions and 4 deletions

View file

@ -22,15 +22,49 @@ function setupQRFlags($flags: JQuery<HTMLSelectElement>) {
);
}
function getBoard() {
const pathParts = location.pathname.split("/");
if(pathParts.length < 2) return null;
return pathParts[1];
}
function loadFlagSelection() {
const board = getBoard();
const savedFlag = localStorage.getItem(`flag_${board}`);
if(board !== null && savedFlag !== null) {
const $sel = $<HTMLSelectElement>("select")
.filter((_,el) => el.name === "post-flag");
const num = $sel.find("option")
.filter((_,el) => el.value === savedFlag).length;
if(num > 0) {
$sel.val(savedFlag);
$sel.trigger("change");
}
}
}
function saveFlagSelection(ev: JQuery.SubmitEvent) {
const board = getBoard();
if(!board) return;
const flag = $(ev.target)
.find<HTMLSelectElement>("select")
.filter((_,ev) => ev.name === "post-flag")
.val() as string;
localStorage.setItem(`flag_${board}`, flag);
}
export function initFlags() {
const $flagChanger = $<HTMLSelectElement>("select")
.filter((_, el) => el.name == "post-flag");
.filter((_, el) => el.name === "post-flag");
if($flagChanger.length < 1) return;
updateFlagPreview($flagChanger);
$flagChanger.on("change", (ev:JQuery.ChangeEvent) => {
updateFlagPreview($(ev.target))
});
$flagChanger.on("change", (ev:JQuery.ChangeEvent) =>
updateFlagPreview($(ev.target)));
setupQRFlags($flagChanger);
loadFlagSelection();
$("form").filter((_,el) =>
el.getAttribute("action") === path.join(webroot || "/", "post"))
.on("submit", saveFlagSelection);
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 727 B