feat: migrate legacy playout workflow and scenes

This commit is contained in:
2026-07-10 23:58:45 +09:00
parent 491a740505
commit 8dae7b8e0d
128 changed files with 39177 additions and 205 deletions

View File

@@ -138,6 +138,18 @@
</div>
</div>
<div id="playoutStatusMessage" class="playout-status-message" role="status" aria-live="polite">송출 어댑터 상태를 확인하고 있습니다.</div>
<div class="playout-page-state" aria-label="장면 및 페이지 상태">
<span>SCENE <strong id="playoutSceneCode"></strong></span>
<span>ENTRY <strong id="playoutEntryId"></strong></span>
<span>BUILDER <strong id="playoutBuilderKey"></strong></span>
<span>PAGE <strong id="playoutPageNumber"></strong></span>
<span>PAGE SIZE <strong id="playoutPageSize"></strong></span>
<span>TOTAL ROWS <strong id="playoutItemCount">0</strong></span>
<span>PAGE ROWS <strong id="playoutCurrentRows">0</strong></span>
<span>LAST PAGE <strong id="playoutLastPage">YES</strong></span>
<span>NEXT <strong id="playoutNextKind">NONE</strong></span>
<span>REFRESH <strong id="playoutRefreshState">STOPPED</strong></span>
</div>
<div id="playoutError" class="playout-error" role="alert" hidden>
<div><strong>송출 명령 오류</strong><span id="playoutErrorMessage"></span></div>
<button id="clearPlayoutErrorButton" type="button" aria-label="송출 오류 닫기">닫기</button>
@@ -151,6 +163,33 @@
<div class="stage-corner top-left"></div><div class="stage-corner top-right"></div>
<div class="stage-corner bottom-left"></div><div class="stage-corner bottom-right"></div>
</div>
<section class="scene-data-preview" aria-label="실제 장면 DTO mutation 미리보기">
<div class="scene-data-preview-header"><strong>SCENE DATA</strong><span>asset 경로는 숨김 처리</span></div>
<div id="sceneDataPreview" class="scene-data-preview-body"></div>
</section>
<form id="sceneSelectionForm" class="scene-selection-form" autocomplete="off">
<label>CUT ALIAS<select id="sceneCutAlias" aria-label="CUT alias"></select></label>
<label>GROUP<input id="sceneGroupCode" maxlength="256" list="sceneGroupOptions" placeholder="KOSPI_STOCK"></label>
<label>SUBJECT<input id="sceneSubject" maxlength="256" placeholder="종목명 또는 지수명"></label>
<label>GRAPHIC<input id="sceneGraphicType" maxlength="256" placeholder="MA5,MA20 등 닫힌 옵션"></label>
<label>SUBTYPE<input id="sceneSubtype" maxlength="256" list="sceneSubtypeOptions" placeholder="PRICE"></label>
<label>DATA CODE<input id="sceneDataCode" maxlength="256" placeholder="종목·업종 코드"></label>
<label>FADE<input id="sceneFadeDuration" type="number" min="0" max="60" step="1" value="6"></label>
<button id="applySceneSelectionButton" type="submit">조회값 적용</button>
<datalist id="sceneGroupOptions">
<option value="KOSPI_INDEX"></option><option value="KOSDAQ_INDEX"></option>
<option value="KOSPI200_INDEX"></option><option value="KRX100_INDEX"></option>
<option value="FUTURES_INDEX"></option><option value="KOSPI_INDUSTRY"></option>
<option value="KOSDAQ_INDUSTRY"></option><option value="FOREIGN_INDEX"></option>
<option value="FOREIGN_STOCK"></option><option value="KOSPI_STOCK"></option>
<option value="KOSDAQ_STOCK"></option><option value="NXT_KOSPI"></option>
<option value="NXT_KOSDAQ"></option>
</datalist>
<datalist id="sceneSubtypeOptions">
<option value="PRICE"></option><option value="EXPECTED"></option>
<option value="VOLUME"></option><option value="TRADING_HALT"></option>
</datalist>
</form>
<div class="playout-controls">
<button id="prepareButton" class="prepare" type="button"><span>F2</span>PREPARE</button>
<button id="takeInButton" class="take-in" type="button"><span>F8</span>TAKE IN</button>