From 6fa369ee3a52ff63ea950b653ccadbea31ccaed3 Mon Sep 17 00:00:00 2001 From: Kengwang Date: Thu, 22 Aug 2024 01:42:42 +0800 Subject: [PATCH] feat(monitor/event): hide flags in events --- .../ClientApp/src/locales/en_US/game.json | 10 +++++++--- .../ClientApp/src/locales/ja_JP/game.json | 6 +++++- .../ClientApp/src/locales/zh_CN/game.json | 6 +++++- .../src/pages/games/[id]/monitor/Events.tsx | 20 ++++++++++++++++--- 4 files changed, 34 insertions(+), 8 deletions(-) diff --git a/src/GZCTF/ClientApp/src/locales/en_US/game.json b/src/GZCTF/ClientApp/src/locales/en_US/game.json index 486b4c72e..3410cf90f 100644 --- a/src/GZCTF/ClientApp/src/locales/en_US/game.json +++ b/src/GZCTF/ClientApp/src/locales/en_US/game.json @@ -41,6 +41,10 @@ "description": "Hide container creation/destroying events", "label": "Hide container events" }, + "hide_flag": { + "description": "Don't show Flag in events", + "label": "Hide Flag" + }, "join": { "confirm": "Confirm Registration", "content": [ @@ -146,14 +150,14 @@ "score": "Score", "score_formatter": "{value} pts", "score_table": { + "rank_nopub": "No Public", "rank_organization": "Rank", "rank_total": "Overall", - "rank_nopub": "No Public", - "tag_all": "All", - "tag_empty": "Nothing found", "score": "Score", "score_total": "Score", "solved_count": "Solved", + "tag_all": "All", + "tag_empty": "Nothing found", "team": "Team", "type": "Type" }, diff --git a/src/GZCTF/ClientApp/src/locales/ja_JP/game.json b/src/GZCTF/ClientApp/src/locales/ja_JP/game.json index 32fb6e502..db4aae7a1 100644 --- a/src/GZCTF/ClientApp/src/locales/ja_JP/game.json +++ b/src/GZCTF/ClientApp/src/locales/ja_JP/game.json @@ -41,6 +41,10 @@ "description": "コンテナ開始/破棄イベントを非表示にする", "label": "コンテナイベントを非表示にする" }, + "hide_flag": { + "description": "イベント中にフラグを表示しない", + "label": "フラグを隠す" + }, "join": { "confirm": "申請確認", "content": [ @@ -146,9 +150,9 @@ "score": "点数", "score_formatter": "{value} 点", "score_table": { + "rank_nopub": "非公開順位", "rank_organization": "順位", "rank_total": "総合順位", - "rank_nopub": "非公開順位", "score": "得点", "score_total": "合計得点", "solved_count": "解答数", diff --git a/src/GZCTF/ClientApp/src/locales/zh_CN/game.json b/src/GZCTF/ClientApp/src/locales/zh_CN/game.json index 58ab5e71a..4d98b5917 100644 --- a/src/GZCTF/ClientApp/src/locales/zh_CN/game.json +++ b/src/GZCTF/ClientApp/src/locales/zh_CN/game.json @@ -41,6 +41,10 @@ "description": "隐藏容器启动/销毁事件", "label": "隐藏容器事件" }, + "hide_flag": { + "description": "不在事件中显示 Flag", + "label": "隐藏 Flag" + }, "join": { "confirm": "确认报名", "content": [ @@ -146,9 +150,9 @@ "score": "分数", "score_formatter": "{value} 分", "score_table": { + "rank_nopub": "全部校内赛道", "rank_organization": "排名", "rank_total": "总排名", - "rank_nopub": "全部校内赛道", "score": "得分", "score_total": "总分", "solved_count": "解题数量", diff --git a/src/GZCTF/ClientApp/src/pages/games/[id]/monitor/Events.tsx b/src/GZCTF/ClientApp/src/pages/games/[id]/monitor/Events.tsx index 828d39624..27364d857 100644 --- a/src/GZCTF/ClientApp/src/pages/games/[id]/monitor/Events.tsx +++ b/src/GZCTF/ClientApp/src/pages/games/[id]/monitor/Events.tsx @@ -79,14 +79,14 @@ const formatAnswer = (t: TFunction, res: AnswerResult) => { } } -const formatEvent = (t: TFunction, event: GameEvent) => { +const formatEvent = (t: TFunction, event: GameEvent, hideFlag: boolean) => { switch (event.type) { case EventType.Normal: return event.values.at(-1) || '' case EventType.FlagSubmit: return t('game.event.flag_submit', { status: formatAnswer(t, event.values.at(0) as AnswerResult), - flag: event.values.at(1), + flag: hideFlag ? "******" : event.values.at(1), chal: event.values.at(2), id: event.values.at(3), }) @@ -121,6 +121,12 @@ const Events: FC = () => { getInitialValueInEffect: false, }) + const [hideFlagInEvents, setHideFlagInEvents] = useLocalStorage({ + key: 'hide-flag-events', + defaultValue: false, + getInitialValueInEffect: false, + }) + const [activePage, setPage] = useState(1) const [, update] = useState(new Date()) @@ -216,6 +222,14 @@ const Events: FC = () => { checked={hideContainerEvents} onChange={(e) => setHideContainerEvents(e.currentTarget.checked)} /> + setHideFlagInEvents(e.currentTarget.checked)} + /> setPage(activePage - 1)}> @@ -248,7 +262,7 @@ const Events: FC = () => {