Phase 4 — CSS 분리: - style.css(2,230→670줄)에서 탭별 스타일을 css/<tab>.css 8개로 분할 (t2s:437, pid:236, pb:106, hist:100, evt:50, opcsvr:14, llmchat:501, kbadmin:109) - 크로스탭 공유 스타일(nm-*, hist-status, dt-picker 등)은 style.css 잔류 - index.html head에 11개 CSS link 태그 (1 style.css + 8 tab + 2 lib) app.js 제거: - index.html에서 <script src=/js/app.js> 참조 제거 - app.js → 10줄 placeholder (이미 Phase 0-3에서 모든 로직 이전 완료) Pane wrapper 버그 수정: - 16개 pane 파일에서 <section class=pane id=pane-xxx> wrapper 제거 - activateTab이 innerHTML로 주입 시 중첩 section + display:none 발생 - 내용이 전혀 안 보이는 문제 해결 문서 갱신: - AGENTS.md: Frontend Architecture 섹션 추가 - 웹UI-개선플랜-byOPUS.md: Phase 0-4 완료 상태로 갱신, 결과 검증 추가 MCP: - server.py: timestamp 정밀도 개선 등
37 lines
1.4 KiB
HTML
37 lines
1.4 KiB
HTML
<header class="pane-hdr">
|
|
<div>
|
|
<h1>인증서 관리</h1>
|
|
<p>OPC UA 클라이언트 인증서를 생성합니다. 기존 파일이 있으면 재사용됩니다.</p>
|
|
</div>
|
|
<div class="pane-tag">PKI / X.509</div>
|
|
</header>
|
|
|
|
<div class="cols-2">
|
|
<div class="card">
|
|
<div class="card-cap">인증서 생성</div>
|
|
<div class="fg">
|
|
<label>Client Hostname</label>
|
|
<input id="c-host" class="inp" value="dbsvr"/>
|
|
</div>
|
|
<div class="fg">
|
|
<label>Subject Alt Names <em>(쉼표 구분)</em></label>
|
|
<input id="c-san" class="inp" value="localhost,192.168.0.50"/>
|
|
</div>
|
|
<div class="fg">
|
|
<label>PFX Password <em>(없으면 비워 두세요)</em></label>
|
|
<input id="c-pw" class="inp" type="password" placeholder=""/>
|
|
</div>
|
|
<button class="btn-a" onclick="certCreate()">🔑 인증서 생성</button>
|
|
</div>
|
|
|
|
<div class="card">
|
|
<div class="card-cap">현재 인증서 상태</div>
|
|
<button class="btn-b" onclick="certStatus()" style="margin-bottom:14px">상태 확인</button>
|
|
<div id="cert-disp" class="kv-box">
|
|
<span class="placeholder">상태 확인 버튼을 눌러 주세요</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div id="cert-log" class="logbox hidden"></div>
|