버그픽스 - 배포 확정 활성화: tojson 따옴표가 oninput 속성을 깨뜨리던 것 → data-confirm 비교로 수정 - ghost 버튼 호버 시 글자 하얘짐 → 호버 색 명시(새로고침/페이저/테마토글 공통) UX/디자인 - 배포 모달: 취소·배포확정 한 줄, 저장소명만 mono, 순 변화 +초록/−빨강, 표 chrome 제거 - 배포 성공: 별도 다이얼로그 제거 → 모달 닫힘 + 배지 이동 + 완료 배너(여백·크기 정돈) - 대시보드 백링크: ghost 버튼 + 화살표, 제목과 간격 확보 - 표 액션 셀 고정 박스(172x36) → 동기화/완료/진행 전환 시 행·열 안 흔들림 (완료 'v3', 진행 'n/m·NN%', 실패는 축약+title 로 사유) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
51 lines
2.0 KiB
HTML
51 lines
2.0 KiB
HTML
<dialog open>
|
|
<article class="deploy-modal">
|
|
<header>
|
|
<h3>이 버전을 운영망에 배포</h3>
|
|
</header>
|
|
|
|
{% if error %}
|
|
<p class="status-line status-bad">{{ error }}</p>
|
|
{% endif %}
|
|
|
|
<p class="deploy-note">운영 서버(yum/dnf)가 실제로 내려받는 버전이 바뀝니다. 신중히 확인하세요.</p>
|
|
|
|
{% if preview %}
|
|
<table class="deploy-preview">
|
|
<tbody>
|
|
<tr>
|
|
<th>현재 운영</th>
|
|
<td class="num">{% if preview.current_version is not none %}v{{ preview.current_version }} · {{ preview.current_count }}개{% else %}없음{% endif %}</td>
|
|
</tr>
|
|
<tr>
|
|
<th>배포 대상</th>
|
|
<td class="num">v{{ preview.target_version }} · {{ preview.target_count }}개</td>
|
|
</tr>
|
|
<tr>
|
|
<th>순 변화</th>
|
|
<td class="num">
|
|
<span class="{{ 'delta-add' if preview.net_sign == '+' else 'delta-del' }}">{{ preview.net_sign }}{{ preview.net }}개</span>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
{% endif %}
|
|
|
|
<form hx-post="/repos/{{ uuid }}/deploy" hx-target="#modal" hx-swap="innerHTML">
|
|
<input type="hidden" name="version_href" value="{{ version_href }}">
|
|
<label class="confirm-label">
|
|
확인을 위해 저장소 이름 <strong class="mono">{{ repo_name }}</strong> 을(를) 입력하세요
|
|
<input type="text" name="confirm_name" autocomplete="off" required class="mono"
|
|
data-confirm="{{ repo_name }}"
|
|
oninput="document.getElementById('deploy-confirm-btn').disabled = (this.value !== this.dataset.confirm)">
|
|
</label>
|
|
{# TODO(auth): 로그인 도입 시 배포 비밀번호 재확인 입력 추가 #}
|
|
<div class="modal-actions">
|
|
<button type="button" class="ghost"
|
|
onclick="document.getElementById('modal').innerHTML=''">취소</button>
|
|
<button type="submit" id="deploy-confirm-btn" class="danger" disabled>배포 확정</button>
|
|
</div>
|
|
</form>
|
|
</article>
|
|
</dialog>
|