feat: split seatmap admin and readonly flows

This commit is contained in:
hyunho
2026-03-26 11:32:33 +09:00
parent 8efb5da65f
commit 69a14fab51
7 changed files with 852 additions and 182 deletions

View File

@@ -68,62 +68,102 @@
<iframe id="organization-frame" src="/legacy/organization?v=20260325-11" data-src="/legacy/organization?v=20260325-11" title="조직도 메인 화면"></iframe>
</div>
</section>
<section id="seatmap-stage" class="main-stage" hidden>
<section id="seatmap-admin-stage" class="main-stage" hidden>
<div class="seatmap-layout">
<div class="seatmap-topbar">
<div>
<p class="eyebrow">Seat Layout</p>
<h3 id="seatmap-name">자리배치도</h3>
<h3 id="seatmap-admin-name">자리배치도</h3>
</div>
<div class="seatmap-actions">
<button id="seatmap-save-btn" class="ghost-button" type="button" hidden disabled>저장</button>
<button id="seatmap-cancel-btn" class="ghost-button ghost-button-soft" type="button" hidden>취소</button>
<div id="seatmap-admin-office-tabs" class="seatmap-office-tabs"></div>
<div class="seatmap-actions" id="seatmap-admin-actions">
<button id="seatmap-admin-exit-btn" class="ghost-button ghost-button-soft" type="button" hidden>나가기</button>
<button id="seatmap-admin-save-btn" class="ghost-button" type="button" hidden disabled>저장</button>
</div>
</div>
<p id="seatmap-status" class="seatmap-status" role="status"></p>
<p id="seatmap-admin-status" class="seatmap-status" role="status"></p>
<div class="seatmap-content">
<div class="seatmap-board-panel">
<div id="seatmap-empty" class="seatmap-empty hidden"></div>
<div id="seatmap-board-wrap" class="seatmap-board-wrap hidden">
<div id="seatmap-board" class="seatmap-board"></div>
<div id="seatmap-admin-empty" class="seatmap-empty hidden"></div>
<div id="seatmap-admin-board-wrap" class="seatmap-board-wrap hidden">
<div id="seatmap-admin-board" class="seatmap-board"></div>
</div>
</div>
<aside class="seatmap-sidebar">
<section id="seatmap-settings-panel" class="seatmap-panel hidden">
<section id="seatmap-admin-settings-panel" class="seatmap-panel hidden">
<div class="seatmap-panel-head">
<h4>도면 설정</h4>
<p>현재는 기술개발센터 고정 도면을 사용합니다.</p>
</div>
<form id="seatmap-settings-form" class="seatmap-form">
<form id="seatmap-admin-settings-form" class="seatmap-form">
<label>
<span>도면 이름</span>
<input id="seatmap-form-name" name="name" type="text" placeholder="예: 기술개발센터" required>
<input id="seatmap-admin-form-name" name="name" type="text" placeholder="예: 기술개발센터" required>
</label>
<div>
<span>DXF 파일</span>
<label class="seatmap-file-input" for="seatmap-form-image">
<input id="seatmap-form-image" name="image" type="file" accept=".dxf" required>
<label class="seatmap-file-input" for="seatmap-admin-form-image">
<input id="seatmap-admin-form-image" name="image" type="file" accept=".dxf" required>
<span class="seatmap-file-button">DXF 선택</span>
<strong id="seatmap-file-name" class="seatmap-file-name">선택된 파일 없음</strong>
<strong id="seatmap-admin-file-name" class="seatmap-file-name">선택된 파일 없음</strong>
</label>
</div>
<button id="seatmap-settings-submit" type="submit">DXF 업로드</button>
<button id="seatmap-admin-settings-submit" type="submit">DXF 업로드</button>
</form>
</section>
<section class="seatmap-panel">
<div class="seatmap-panel-head">
<h4>미배치 인원</h4>
<p>이름을 검색하고 자리배치도에 바로 드래그하세요.</p>
<h4 id="seatmap-admin-sidebar-title">전체 인원</h4>
<p id="seatmap-admin-sidebar-desc">미배치 인원은 상단, 배치 완료 인원은 하단에 표시됩니다.</p>
</div>
<label class="seatmap-search">
<span class="hidden">구성원 검색</span>
<input id="seatmap-search" type="search" placeholder="이름 또는 부서 검색">
<input id="seatmap-admin-search" type="search" placeholder="이름 또는 부서 검색">
</label>
<div id="seatmap-unassigned" class="seatmap-member-list"></div>
<div id="seatmap-admin-unassigned" class="seatmap-member-list"></div>
</section>
</aside>
</div>
</div>
</section>
<section id="seatmap-readonly-stage" class="main-stage" hidden>
<div class="seatmap-layout">
<div class="seatmap-topbar">
<div>
<p class="eyebrow">Seat Layout</p>
<h3 id="seatmap-readonly-name">자리배치도</h3>
</div>
<div id="seatmap-readonly-office-tabs" class="seatmap-office-tabs"></div>
<div class="seatmap-actions" id="seatmap-readonly-actions">
<button id="seatmap-readonly-exit-btn" class="ghost-button ghost-button-soft" type="button" hidden>나가기</button>
</div>
</div>
<p id="seatmap-readonly-status" class="seatmap-status" role="status"></p>
<div class="seatmap-content">
<div class="seatmap-board-panel">
<div id="seatmap-readonly-empty" class="seatmap-empty hidden"></div>
<div id="seatmap-readonly-board-wrap" class="seatmap-board-wrap hidden">
<div id="seatmap-readonly-board" class="seatmap-board"></div>
</div>
</div>
<aside class="seatmap-sidebar">
<section class="seatmap-panel">
<div class="seatmap-panel-head">
<h4 id="seatmap-readonly-sidebar-title">배치 인원 검색</h4>
<p id="seatmap-readonly-sidebar-desc">이름이나 부서를 검색하고 클릭하면 해당 좌석으로 바로 확대 이동합니다.</p>
</div>
<label class="seatmap-search">
<span class="hidden">구성원 검색</span>
<input id="seatmap-readonly-search" type="search" placeholder="이름 또는 부서 검색">
</label>
<div id="seatmap-readonly-unassigned" class="seatmap-member-list"></div>
</section>
</aside>
</div>