diff --git a/frontend/ts/dom/flags.ts b/frontend/ts/dom/flags.ts new file mode 100644 index 00000000..d3a31f6c --- /dev/null +++ b/frontend/ts/dom/flags.ts @@ -0,0 +1,36 @@ +import path from "path"; + +import { $qr } from "./qr"; + +function updateFlagPreview($sel: JQuery) { + 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) { + if(!$qr) return; + $qr.find("div#qrbuttons").before( + $("
").append( + $flags.clone(true, true).attr("id", "qrpost-flag"), + $("").addClass("flag-preview") + .attr("src", path.join(webroot || "/", "static/flags/blank.gif")) + ) + ); +} + + +export function initFlags() { + const $flagChanger = $("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); +} \ No newline at end of file diff --git a/frontend/ts/gochan.ts b/frontend/ts/gochan.ts index 97a50253..5ffee202 100755 --- a/frontend/ts/gochan.ts +++ b/frontend/ts/gochan.ts @@ -10,6 +10,7 @@ import { initStaff, createStaffMenu } from "./management/manage"; import { getPageThread } from "./postinfo"; import { prepareThumbnails, initPostPreviews } from "./postutil"; import { addPostDropdown } from "./dom/postdropdown"; +import { initFlags } from "./dom/flags"; import { initQR } from "./dom/qr"; import { getBooleanStorageVal, getStorageVal } from "./storage"; @@ -56,6 +57,7 @@ $(() => { addPostDropdown($(elem)); }); $(document).on("keydown", handleKeydown); + initFlags(); setCustomCSS(); setCustomJS(); });