feat: add common utilities and feedback handling scripts

- Introduced common.js for shared functions including API calls, error reporting, and UI helpers.
- Implemented feedback.js for the feedback reporting page, including form handling and displaying feedback status.
- Added layout.js for managing galaxy and section layouts in the visualization.
- Created login.js for user authentication with session management.
- Developed search.js for term searching based on user input and synonyms.
- Implemented signup.js for user registration with validation and immediate login.
This commit is contained in:
jsahn
2026-10-06 23:14:45 +09:00
parent 04158ac442
commit 4e943700fc
62 changed files with 158771 additions and 0 deletions
+52
View File
@@ -0,0 +1,52 @@
<!doctype html>
<html lang="ko">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>관리 · 지역사회간호학 개념 우주</title>
<meta name="robots" content="noindex">
<link rel="icon" href="/static/favicon.svg" type="image/svg+xml">
<link rel="stylesheet" href="/static/css/base.css">
<link rel="stylesheet" href="/static/css/admin.css">
</head>
<body>
<a class="skip-link" href="#view">본문으로 건너뛰기</a>
<header class="topbar" id="topbar">
<a class="brand" href="/">
<span class="brand-logo" aria-hidden="true"></span>
<span>
<span class="brand-title">지역사회간호학 개념 우주</span><br>
<span class="brand-sub">교과서 색인으로 만든 개념 지도</span>
</span>
</a>
<nav class="topnav" aria-label="주 메뉴">
<a href="/">개념 우주</a>
<a href="/feedback">오류 신고</a>
<a href="/admin" aria-current="page">관리</a>
</nav>
<div class="who" id="who" hidden>
<span class="who-name" id="who-name"></span>
<button type="button" class="btn small ghost" id="logout">로그아웃</button>
</div>
</header>
<!-- 관리 화면 -->
<div id="app-view" hidden>
<nav class="tabs" id="tabs" aria-label="관리 메뉴">
<a href="#dashboard" data-tab="dashboard">대시보드</a>
<a href="#feedback" data-tab="feedback">피드백 <span class="count" id="tab-fb-count" hidden></span></a>
<a href="#terms" data-tab="terms">용어</a>
<a href="#relations" data-tab="relations">관계</a>
<a href="#questions" data-tab="questions">문제</a>
<a href="#codes" data-tab="codes">가입 코드</a>
<a href="#members" data-tab="members">회원 관리 <span class="count" id="tab-mem-count" hidden></span></a>
<a href="#structure" data-tab="structure">은하·단원</a>
<a href="#settings" data-tab="settings">설정</a>
<a href="#audit" data-tab="audit">기록</a>
</nav>
<main id="view" class="view" tabindex="-1"></main>
</div>
<script type="module" src="/static/js/admin.js"></script>
</body>
</html>