1
0
Fork 0
mirror of https://github.com/Eggbertx/gochan.git synced 2025-08-03 11:46:22 -07:00

Add flag preview functionality to frontend, add flag to QR

This commit is contained in:
Eggbertx 2024-01-21 18:02:35 -08:00
parent 6a102bce6a
commit 1e29426509
2 changed files with 38 additions and 0 deletions

36
frontend/ts/dom/flags.ts Normal file
View file

@ -0,0 +1,36 @@
import path from "path";
import { $qr } from "./qr";
function updateFlagPreview($sel: JQuery<HTMLSelectElement>) {
const $preview = $sel.next("img");
let val = $sel.val() as string;
if(val === "" || val === "geoip") {
val = "blank.gif";
}
$preview.attr("src", path.join(webroot || "/", "static/flags", val));
}
function setupQRFlags($flags: JQuery<HTMLSelectElement>) {
if(!$qr) return;
$qr.find("div#qrbuttons").before(
$("<div/>").append(
$flags.clone(true, true).attr("id", "qrpost-flag"),
$("<img/>").addClass("flag-preview")
.attr("src", path.join(webroot || "/", "static/flags/blank.gif"))
)
);
}
export function initFlags() {
const $flagChanger = $<HTMLSelectElement>("select")
.filter((_, el) => el.name == "post-flag");
if($flagChanger.length < 1) return;
updateFlagPreview($flagChanger);
$flagChanger.on("change", (ev:JQuery.ChangeEvent) => {
updateFlagPreview($(ev.target))
});
setupQRFlags($flagChanger);
}

View file

@ -10,6 +10,7 @@ import { initStaff, createStaffMenu } from "./management/manage";
import { getPageThread } from "./postinfo"; import { getPageThread } from "./postinfo";
import { prepareThumbnails, initPostPreviews } from "./postutil"; import { prepareThumbnails, initPostPreviews } from "./postutil";
import { addPostDropdown } from "./dom/postdropdown"; import { addPostDropdown } from "./dom/postdropdown";
import { initFlags } from "./dom/flags";
import { initQR } from "./dom/qr"; import { initQR } from "./dom/qr";
import { getBooleanStorageVal, getStorageVal } from "./storage"; import { getBooleanStorageVal, getStorageVal } from "./storage";
@ -56,6 +57,7 @@ $(() => {
addPostDropdown($(elem)); addPostDropdown($(elem));
}); });
$(document).on("keydown", handleKeydown); $(document).on("keydown", handleKeydown);
initFlags();
setCustomCSS(); setCustomCSS();
setCustomJS(); setCustomJS();
}); });