diff --git a/ismism.ts/src/eid/is.ts b/ismism.ts/src/eid/is.ts index 0b94f00..fa5e1a9 100644 --- a/ismism.ts/src/eid/is.ts +++ b/ismism.ts/src/eid/is.ts @@ -6,7 +6,7 @@ export const lim_re = 64 export const lim_sec = 8 export const lim_uid_def = lim_re export const lim_uid_max = lim_re * lim_sec / req_re -export const lim_res_def = 0 +export const lim_res_def = 16 export const lim_res_max = 64 export const len_code = 6 diff --git a/ismism.ts/src/pra/con.ts b/ismism.ts/src/pra/con.ts index 13590e1..30d48b1 100644 --- a/ismism.ts/src/pra/con.ts +++ b/ismism.ts/src/pra/con.ts @@ -139,8 +139,8 @@ function is_put_idrel( else if ("rol" in p) switch (p.rol) { case "sec": return is_pre_rel(pas) case "uid": return "uid" in p && p.uid === pas.uid && p.add === false || is_sec(pas, id) - case "res": return "uid" in p && p.uid === pas.uid && (p.add === false || is_re(pas)) - || !("uid" in p) && is_sec(pas, id) + case "res": return "uid" in p && p.uid === pas.uid && (p.add === false || !is_rej(pas)) + || !("uid" in p) && (is_aut(pas.aut, "aut") || is_sec(pas, id)) } return false } diff --git a/ismism.ts/ui/bind/nav.ts b/ismism.ts/ui/bind/nav.ts index 69fc445..f206ec7 100644 --- a/ismism.ts/ui/bind/nav.ts +++ b/ismism.ts/ui/bind/nav.ts @@ -118,7 +118,7 @@ window.addEventListener("hashchange", () => { export async function load( ) { - console.log("ismism-20230308") + console.log("ismism-20230311") console.log(`\n主义主义开发小组!成员招募中!\n\n发送自我介绍至网站维护邮箱,或微信联系 728 万大可\n \n`) await navpas() window.dispatchEvent(new Event("hashchange")) diff --git a/ismism.ts/ui/bind/section.ts b/ismism.ts/ui/bind/section.ts index 02f638e..268e2af 100644 --- a/ismism.ts/ui/bind/section.ts +++ b/ismism.ts/ui/bind/section.ts @@ -6,7 +6,7 @@ import { adm, adm1_def, adm2_def } from "../../src/ont/adm.ts" import { utc_medium } from "../../src/ont/utc.ts" import { nav, navpas } from "./nav.ts" import { bind, pos, que, Section, utc_refresh } from "./template.ts" -import { is_re, is_ref, is_rej, is_sec } from "../../src/pra/con.ts" +import { is_ref, is_rej, is_sec } from "../../src/pra/con.ts" import { is_aut, lim_re, lim_sec } from "../../src/eid/is.ts" export function label( @@ -280,9 +280,14 @@ export function putrel( }, alert: `无效志愿者名或志愿者已满\n增删的志愿者需先作为申请人或志愿者出现在${id === "sid" ? "社团" : "活动"}名单`, refresh: async () => { await navpas(); refresh() }, - }); else t.putuid.remove() + }); else t.putuid.remove() // deno-lint-ignore no-explicit-any + if (is_aut(nav.pas.aut, "aut") || is_sec(nav.pas, { [id]: d._id } as any)) btn(t.putresn, t.putresn.innerText, d.res.length > 0 ? { + confirm: "清空申请人名单?", + pos: () => pos("put", { [id]: d._id, rol: "res" }), + refresh, + } : undefined); else t.putresn.remove() const [isuid, isres] = [d.uid.includes(nav.pas.uid), d.res.includes(nav.pas.uid)] - if (!isuid && is_re(d) || isres) btn(t.putres, isres ? "取消申请" : "申请加入", !isres && d.res.length >= d.reslim ? undefined : { + if (!isuid && !is_rej(d) || isres) btn(t.putres, isres ? "取消申请" : "申请加入", !isres && d.res.length >= d.reslim ? undefined : { pos: () => pos("put", { [id]: d._id, rol: "res", uid: nav.pas!.uid, add: !isres }), refresh, alert: "申请人已满", diff --git a/ismism.ts/ui/bind/template.ts b/ismism.ts/ui/bind/template.ts index 3d81102..f5ea492 100644 --- a/ismism.ts/ui/bind/template.ts +++ b/ismism.ts/ui/bind/template.ts @@ -73,7 +73,7 @@ const section = { }, putrel: { - putrel: t("section"), putsec: t("button"), putuid: t("button"), putres: t("button"), + putrel: t("section"), putsec: t("button"), putuid: t("button"), putresn: t("button"), putres: t("button"), }, putpro: { diff --git a/ismism.ts/ui/index/template.html b/ismism.ts/ui/index/template.html index d6b8e52..453fee8 100644 --- a/ismism.ts/ui/index/template.html +++ b/ismism.ts/ui/index/template.html @@ -159,6 +159,7 @@
+

@@ -257,6 +258,7 @@
+