op editor: 플랫폼 설치파일 URL 필드 초기 렌더에서 플랫폼 타입에 맞게 숨김

증상: 플랫폼 타입이 fabric 인 음악퀴즈를 편집할 때 "플랫폼 설치파일
URL" 필드가 잠깐 보이고, 그 자리에 값을 입력해 저장해도 disk 에는
저장되지 않아 다시 비어 보였다 (normalizePackDefinition 이 fabric 의
downloadUrl 을 의도적으로 제거하기 때문).

원인: editor.ejs 가 platformDownloadField 를 항상 visible 로,
platformLoaderField 를 항상 hidden 으로 렌더한 뒤 JS 가 뒤늦게 보정.
이 짧은 깜빡임 동안 사용자가 URL 필드를 보고 입력하게 됨.

수정: 서버 렌더 시점에 pack.platform.type 에 따라 hidden 속성을 미리
붙여 둔다 (fabric/vanilla → URL 숨김, fabric → loader 표시).
This commit is contained in:
2026-05-14 00:06:15 +09:00
parent ea72051e43
commit 2a500a381f

View File

@@ -47,12 +47,12 @@
<% }) %> <% }) %>
</select> </select>
</label> </label>
<label class="fullSpan" id="platformDownloadField"> <label class="fullSpan" id="platformDownloadField"<%= (pack.platform.type === 'fabric' || pack.platform.type === 'vanilla') ? ' hidden' : '' %>>
<span><%= t('editor.platformDownloadUrl') %></span> <span><%= t('editor.platformDownloadUrl') %></span>
<input name="platformDownloadUrl" value="<%= pack.platform.downloadUrl || '' %>" placeholder="/forge-installer.jar 또는 https://example.com/forge-installer.jar" /> <input name="platformDownloadUrl" value="<%= pack.platform.downloadUrl || '' %>" placeholder="/forge-installer.jar 또는 https://example.com/forge-installer.jar" />
<small class="muted"><%- t('editor.platformDownloadHint') %></small> <small class="muted"><%- t('editor.platformDownloadHint') %></small>
</label> </label>
<label class="fullSpan" id="platformLoaderField" hidden> <label class="fullSpan" id="platformLoaderField"<%= pack.platform.type === 'fabric' ? '' : ' hidden' %>>
<span><%= t('editor.platformLoaderVersion') %></span> <span><%= t('editor.platformLoaderVersion') %></span>
<select name="platformLoaderVersion" id="platformLoaderVersion" data-current="<%= pack.platform.loaderVersion || '' %>"> <select name="platformLoaderVersion" id="platformLoaderVersion" data-current="<%= pack.platform.loaderVersion || '' %>">
<option value=""><%= t('common.loading') %></option> <option value=""><%= t('common.loading') %></option>