feat: add native runtime settings
This commit is contained in:
@@ -220,30 +220,163 @@
|
||||
</div>
|
||||
<div>
|
||||
<h2>운영 설정</h2>
|
||||
<p>화면 구성과 운영 단축키를 확인합니다. 송출 대상과 데이터베이스 연결은 검증된 로컬 설정을 그대로 사용합니다.</p>
|
||||
<p>이 PC에서 사용할 디자인·설정·배경 폴더와 시작 화면 환경을 관리합니다. 폴더는 Windows 선택 창에서만 지정할 수 있습니다.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="operator-settings-message" class="settings-message" role="status"
|
||||
aria-live="polite" aria-atomic="true" hidden></div>
|
||||
<div id="operator-settings-restart" class="settings-restart-banner" role="status"
|
||||
aria-live="polite" aria-atomic="true" hidden>
|
||||
<svg viewBox="0 0 24 24" aria-hidden="true" focusable="false">
|
||||
<path d="M20 11a8 8 0 1 0-2.3 5.7M20 5v6h-6"></path>
|
||||
</svg>
|
||||
<div>
|
||||
<strong>앱을 다시 시작하면 새 폴더가 적용됩니다.</strong>
|
||||
<span>현재 송출 작업은 그대로 유지되며, 다음 실행부터 변경된 위치를 사용합니다.</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="settings-grid">
|
||||
<article class="settings-card settings-card-wide settings-folder-card">
|
||||
<div class="settings-card-heading">
|
||||
<div>
|
||||
<h3>운영 폴더</h3>
|
||||
<p>경로를 직접 입력하지 않고 폴더 선택 창으로 안전하게 지정합니다.</p>
|
||||
</div>
|
||||
<span class="settings-card-label">로컬 PC</span>
|
||||
</div>
|
||||
|
||||
<div class="settings-folder-list">
|
||||
<section class="settings-folder-row" data-operator-folder="design"
|
||||
aria-labelledby="operator-design-folder-title">
|
||||
<div class="settings-folder-icon" aria-hidden="true">
|
||||
<svg viewBox="0 0 24 24" focusable="false">
|
||||
<path d="M3.5 6.5h6l2 2h9v10h-17Z"></path>
|
||||
<path d="m14.5 12.5 1.5-3 1.5 3 3 .5-2.2 2.1.5 3-2.8-1.5-2.8 1.5.5-3-2.2-2.1Z"></path>
|
||||
</svg>
|
||||
</div>
|
||||
<div class="settings-folder-copy">
|
||||
<div class="settings-folder-title-line">
|
||||
<h4 id="operator-design-folder-title">디자인 폴더</h4>
|
||||
<span class="settings-folder-kind">Cuts</span>
|
||||
</div>
|
||||
<p>송출 장면(.t2s)과 장면별 디자인 자산의 기준 위치입니다.</p>
|
||||
<div class="settings-folder-value">
|
||||
<strong id="operator-design-folder-name">앱 기본 디자인 폴더</strong>
|
||||
<span id="operator-design-folder-status" class="settings-status-badge neutral">확인 중</span>
|
||||
<span id="operator-design-folder-source" class="settings-folder-source">앱 기본값</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="settings-folder-actions">
|
||||
<button id="operator-design-folder-select" class="settings-primary-action"
|
||||
type="button">폴더 선택</button>
|
||||
<button id="operator-design-folder-reset" type="button" disabled>기본값</button>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="settings-folder-row" data-operator-folder="resource"
|
||||
aria-labelledby="operator-resource-folder-title">
|
||||
<div class="settings-folder-icon" aria-hidden="true">
|
||||
<svg viewBox="0 0 24 24" focusable="false">
|
||||
<path d="M3.5 6.5h6l2 2h9v10h-17Z"></path>
|
||||
<path d="M9 12h7M9 15h5"></path>
|
||||
</svg>
|
||||
</div>
|
||||
<div class="settings-folder-copy">
|
||||
<div class="settings-folder-title-line">
|
||||
<h4 id="operator-resource-folder-title">설정 폴더</h4>
|
||||
<span class="settings-folder-kind">Res</span>
|
||||
</div>
|
||||
<p>종목 목록 등 UI 설정과, MmoneyCoder.ini가 있으면 다음 시작부터 적용할 DB 프로필의 위치입니다.</p>
|
||||
<div class="settings-folder-value">
|
||||
<strong id="operator-resource-folder-name">앱 기본 설정 폴더</strong>
|
||||
<span id="operator-resource-folder-status" class="settings-status-badge neutral">확인 중</span>
|
||||
<span id="operator-resource-folder-source" class="settings-folder-source">앱 기본값</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="settings-folder-actions">
|
||||
<button id="operator-resource-folder-select" class="settings-primary-action"
|
||||
type="button">폴더 선택</button>
|
||||
<button id="operator-resource-folder-reset" type="button" disabled>기본값</button>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="settings-folder-row" data-operator-folder="background"
|
||||
aria-labelledby="operator-background-folder-title">
|
||||
<div class="settings-folder-icon" aria-hidden="true">
|
||||
<svg viewBox="0 0 24 24" focusable="false">
|
||||
<path d="M3.5 6.5h6l2 2h9v10h-17Z"></path>
|
||||
<path d="m7.5 16 3-3 2 2 2.5-3 3.5 4"></path>
|
||||
</svg>
|
||||
</div>
|
||||
<div class="settings-folder-copy">
|
||||
<div class="settings-folder-title-line">
|
||||
<h4 id="operator-background-folder-title">운영 배경 폴더</h4>
|
||||
<span class="settings-folder-kind">VRV</span>
|
||||
</div>
|
||||
<p>F2에서 선택할 수 있는 검증된 .vrv 배경의 기준·허용 위치입니다.</p>
|
||||
<div class="settings-folder-value">
|
||||
<strong id="operator-background-folder-name">앱 기본 배경 폴더</strong>
|
||||
<span id="operator-background-folder-status" class="settings-status-badge neutral">확인 중</span>
|
||||
<span id="operator-background-folder-source" class="settings-folder-source">앱 기본값</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="settings-folder-actions">
|
||||
<button id="operator-background-folder-select" class="settings-primary-action"
|
||||
type="button">폴더 선택</button>
|
||||
<button id="operator-background-folder-reset" type="button" disabled>기본값</button>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</article>
|
||||
|
||||
<article class="settings-card">
|
||||
<h3>화면 구성</h3>
|
||||
<dl>
|
||||
<div><dt>왼쪽 메뉴</dt><dd>상단 메뉴 버튼으로 접기·펼치기</dd></div>
|
||||
<div><dt>작업 화면</dt><dd>선택한 종목 또는 그래픽 작업 표시</dd></div>
|
||||
<div><dt>송출 스케줄</dt><dd>오른쪽에 항상 고정 표시</dd></div>
|
||||
</dl>
|
||||
</article>
|
||||
<article class="settings-card">
|
||||
<h3>운영 단축키</h3>
|
||||
<dl class="settings-shortcuts">
|
||||
<div><dt><kbd>F2</kbd></dt><dd>배경 파일</dd></div>
|
||||
<div><dt><kbd>F3</kbd></dt><dd>배경 없음</dd></div>
|
||||
<div><dt><kbd>F8</kbd></dt><dd>TAKE IN</dd></div>
|
||||
<div><dt><kbd>Esc</kbd></dt><dd>TAKE OUT</dd></div>
|
||||
<div class="settings-card-heading">
|
||||
<div>
|
||||
<h3>시작 화면</h3>
|
||||
<p>앱을 열었을 때의 작업 공간 표시 방식을 정합니다.</p>
|
||||
</div>
|
||||
</div>
|
||||
<label class="settings-switch-row" for="operator-navigation-expanded">
|
||||
<span>
|
||||
<strong>왼쪽 메뉴 펼쳐서 시작</strong>
|
||||
<small>끄면 아이콘만 보이는 간결한 메뉴로 시작합니다.</small>
|
||||
</span>
|
||||
<input id="operator-navigation-expanded" type="checkbox" checked>
|
||||
<span class="settings-switch" aria-hidden="true"></span>
|
||||
</label>
|
||||
</article>
|
||||
|
||||
<article class="settings-card settings-diagnostics-card">
|
||||
<div class="settings-card-heading">
|
||||
<div>
|
||||
<h3>현재 상태</h3>
|
||||
<p>문제 확인에 필요한 읽기 전용 정보입니다.</p>
|
||||
</div>
|
||||
<span class="settings-card-label settings-card-label-readonly">읽기 전용</span>
|
||||
</div>
|
||||
<dl class="settings-diagnostics">
|
||||
<div><dt>앱 버전</dt><dd id="operator-settings-app-version">확인 중</dd></div>
|
||||
<div><dt>송출 모드</dt><dd id="operator-settings-playout-mode">확인 중</dd></div>
|
||||
<div><dt>송출 연결</dt><dd id="operator-settings-playout-connection">확인 중</dd></div>
|
||||
<div><dt>Oracle</dt><dd id="operator-settings-oracle-state">확인 중</dd></div>
|
||||
<div><dt>MariaDB</dt><dd id="operator-settings-maria-state">확인 중</dd></div>
|
||||
<div><dt>DB 상태 감시</dt><dd id="operator-settings-db-monitor">10초마다</dd></div>
|
||||
</dl>
|
||||
</article>
|
||||
|
||||
<article class="settings-card settings-card-wide">
|
||||
<h3>보호되는 로컬 설정</h3>
|
||||
<p>DB 자격 증명, Tornado2 송출 대상, 자산 경로와 Live/DryRun 권한은 이 화면에서 변경하지 않습니다. 현재 PC에 검증된 운영 프로필이 계속 적용됩니다.</p>
|
||||
<div class="settings-protected-copy">
|
||||
<svg viewBox="0 0 24 24" aria-hidden="true" focusable="false">
|
||||
<rect x="5" y="10" width="14" height="10" rx="2"></rect>
|
||||
<path d="M8 10V7a4 4 0 0 1 8 0v3M12 14v2"></path>
|
||||
</svg>
|
||||
<div>
|
||||
<h3>보호되는 운영 설정</h3>
|
||||
<p>DB 자격 증명의 내용은 이 화면에 표시하거나 직접 편집할 수 없습니다. 다만 선택한 설정(Res) 폴더에 검증된 MmoneyCoder.ini가 있으면 일반 실행의 다음 시작부터 그 DB 프로필을 사용합니다. Gate A 검증 실행에서는 선택한 프로필 대신 검증 계획에 고정된 DB 구성을 사용합니다. Tornado2 송출 대상, Live/DryRun 권한과 장면 허용 목록은 변경할 수 없으며 기존 송출 안전 규칙이 계속 적용됩니다.</p>
|
||||
</div>
|
||||
</div>
|
||||
</article>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
Reference in New Issue
Block a user