Files
jongryangje/app/Views/admin/code_detail/create.php

72 lines
4.1 KiB
PHP
Raw Normal View History

<section class="border-b border-gray-300 p-2 shrink-0 bg-control-panel">
<div class="flex items-center gap-2">
<a href="<?= base_url('bag/code-details/' . (int) $kind->ck_idx) ?>" class="text-blue-600 hover:underline text-sm">&larr; <?= esc($kind->ck_name) ?></a>
<span class="text-gray-400">|</span>
<span class="text-sm font-bold text-gray-700">세부코드 등록</span>
</div>
</section>
<div class="border border-gray-300 p-4 mt-2 bg-white max-w-3xl">
<form action="<?= base_url('admin/code-details/store') ?>" method="POST" class="space-y-4">
<?= csrf_field() ?>
<input type="hidden" name="cd_ck_idx" value="<?= (int) $kind->ck_idx ?>"/>
<div class="flex flex-wrap items-center gap-2">
<label class="block text-sm font-bold text-gray-700 w-28">코드 종류</label>
<span class="text-sm"><?= esc($kind->ck_name) ?> (<?= esc($kind->ck_code) ?>)</span>
</div>
<div class="flex flex-wrap items-center gap-2">
<label class="block text-sm font-bold text-gray-700 w-28">세부코드 <span class="text-red-500">*</span></label>
<input class="border border-gray-300 rounded px-3 py-1.5 text-sm w-32 font-mono" name="cd_code" type="text" value="<?= esc(old('cd_code')) ?>" maxlength="50" required placeholder="예: 10"/>
</div>
<div class="flex flex-wrap items-center gap-2">
<label class="block text-sm font-bold text-gray-700 w-28">코드명 <span class="text-red-500">*</span></label>
<input class="border border-gray-300 rounded px-3 py-1.5 text-sm w-72" name="cd_name" type="text" value="<?= esc(old('cd_name')) ?>" maxlength="100" required placeholder="코드 이름"/>
</div>
<div class="flex flex-wrap items-center gap-2">
<label class="block text-sm font-bold text-gray-700 w-28">정렬순서</label>
<input class="border border-gray-300 rounded px-3 py-1.5 text-sm w-24" name="cd_sort" type="number" value="<?= esc(old('cd_sort', '0')) ?>" min="0"/>
</div>
<?php if (! empty($canPlatformScope)): ?>
<div class="space-y-2 border-t border-gray-200 pt-3">
<p class="text-sm font-bold text-gray-700">등록 범위</p>
<label class="flex items-center gap-2 text-sm">
<input type="radio" name="cd_scope" value="platform" <?= old('cd_scope', 'platform') === 'platform' ? 'checked' : '' ?> class="cd-scope-radio"/>
플랫폼 공통 (CSV·시드와 동일 지자체, super/본부만 이후 수정)
</label>
<label class="flex items-center gap-2 text-sm">
<input type="radio" name="cd_scope" value="local" <?= old('cd_scope') === 'local' ? 'checked' : '' ?> class="cd-scope-radio"/>
지자체 전용 (해당 지자체 관리자가 수정·삭제)
</label>
<div id="cd-lg-wrap" class="<?= old('cd_scope') === 'local' ? '' : 'hidden' ?> flex flex-wrap items-center gap-2">
<label class="block text-sm font-bold text-gray-700 w-28">소속 지자체</label>
<select name="cd_lg_idx" class="border border-gray-300 rounded px-3 py-1.5 text-sm min-w-[14rem]">
<option value="">선택</option>
<?php foreach ($localGovernments as $gov): ?>
<option value="<?= (int) $gov->lg_idx ?>" <?= (string) old('cd_lg_idx') === (string) $gov->lg_idx ? 'selected' : '' ?>><?= esc($gov->lg_name) ?></option>
<?php endforeach; ?>
</select>
</div>
</div>
<script>
(function () {
document.querySelectorAll('.cd-scope-radio').forEach(function (r) {
r.addEventListener('change', function () {
var w = document.getElementById('cd-lg-wrap');
if (w) w.classList.toggle('hidden', document.querySelector('input[name="cd_scope"][value="local"]:checked') === null);
});
});
})();
</script>
<?php endif; ?>
<div class="flex gap-2 pt-2">
<button type="submit" class="bg-btn-search text-white px-6 py-1.5 rounded-sm text-sm shadow hover:opacity-90 transition">등록</button>
<a href="<?= base_url('bag/code-details/' . (int) $kind->ck_idx) ?>" class="bg-gray-200 text-gray-700 px-6 py-1.5 rounded-sm text-sm hover:bg-gray-300 transition">취소</a>
</div>
</form>
</div>