121 lines
9.1 KiB
PHP
121 lines
9.1 KiB
PHP
<x-master-page title="Branding Aplikasi" description="Atur nama aplikasi, logo utama, favicon, dan logo portal publik dari satu halaman pengaturan.">
|
|
<x-master-card title="Identitas Aplikasi" subtitle="Kelola branding utama yang dipakai di berbagai halaman dashboard dan portal publik.">
|
|
<form method="POST" action="{{ route('settings.branding.update') }}" enctype="multipart/form-data" class="space-y-8">
|
|
@csrf
|
|
@method('PUT')
|
|
|
|
<div class="grid grid-cols-1 gap-6 lg:grid-cols-2">
|
|
<div>
|
|
<label for="app_name" class="mb-2 block text-sm font-medium text-slate-700">Nama Aplikasi</label>
|
|
<input id="app_name" name="app_name" type="text" value="{{ old('app_name', $branding['app_name']) }}" class="h-12 w-full rounded-2xl border border-slate-200 bg-white px-4 text-sm text-slate-700 focus:border-indigo-300 focus:outline-none focus:ring-4 focus:ring-indigo-100" required>
|
|
<x-input-error :messages="$errors->get('app_name')" class="mt-2" />
|
|
</div>
|
|
<div>
|
|
<label for="app_short_name" class="mb-2 block text-sm font-medium text-slate-700">Nama Singkat / Inisial</label>
|
|
<input id="app_short_name" name="app_short_name" type="text" value="{{ old('app_short_name', $branding['app_short_name']) }}" class="h-12 w-full rounded-2xl border border-slate-200 bg-white px-4 text-sm text-slate-700 focus:border-indigo-300 focus:outline-none focus:ring-4 focus:ring-indigo-100" required>
|
|
<x-input-error :messages="$errors->get('app_short_name')" class="mt-2" />
|
|
<p class="mt-2 text-xs text-slate-500">Dipakai sebagai fallback teks jika logo belum diupload, misalnya: DK.</p>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="rounded-3xl border border-slate-200 bg-slate-50 p-5">
|
|
<div class="flex flex-col gap-4 lg:flex-row lg:items-center lg:justify-between">
|
|
<div>
|
|
<h3 class="text-sm font-semibold text-slate-900">Kontrol Portal Publik</h3>
|
|
<p class="mt-1 text-xs text-slate-500">Atur apakah card Dokumen Kelengkapan Siswa boleh tampil di halaman publik.</p>
|
|
</div>
|
|
<label class="inline-flex items-center gap-3 rounded-2xl border border-slate-200 bg-white px-4 py-3 text-sm font-medium text-slate-700">
|
|
<input type="hidden" name="public_show_student_documents" value="0">
|
|
<input type="checkbox" name="public_show_student_documents" value="1" class="h-5 w-5 rounded border-slate-300 text-indigo-600 focus:ring-indigo-500" @checked(old('public_show_student_documents', $branding['public_show_student_documents']) == '1')>
|
|
<span>Tampilkan card Dokumen Kelengkapan Siswa di portal publik</span>
|
|
</label>
|
|
</div>
|
|
<p class="mt-3 text-xs text-slate-500">Jika dimatikan, pengunjung publik tetap bisa mencari data siswa, tetapi card dokumen tidak akan ditampilkan.</p>
|
|
</div>
|
|
|
|
<div class="grid grid-cols-1 gap-6 xl:grid-cols-3">
|
|
<div class="rounded-3xl border border-slate-200 bg-slate-50 p-5">
|
|
<div class="mb-4 flex items-center justify-between gap-3">
|
|
<div>
|
|
<h3 class="text-sm font-semibold text-slate-900">Logo Utama</h3>
|
|
<p class="mt-1 text-xs text-slate-500">Untuk dashboard, login, dan area admin.</p>
|
|
</div>
|
|
@if ($branding['app_logo'])
|
|
<label class="inline-flex items-center gap-2 text-xs text-rose-600">
|
|
<input type="checkbox" name="remove_app_logo" value="1" class="rounded border-slate-300 text-rose-600 focus:ring-rose-500">
|
|
<span>Hapus</span>
|
|
</label>
|
|
@endif
|
|
</div>
|
|
<div class="mb-4 flex h-32 items-center justify-center rounded-2xl border border-dashed border-slate-300 bg-white p-4">
|
|
@if ($branding['app_logo'])
|
|
<img src="{{ asset('storage/' . $branding['app_logo']) }}" alt="Logo utama" class="max-h-24 max-w-full object-contain">
|
|
@else
|
|
<div class="text-center text-sm text-slate-400">Belum ada logo utama</div>
|
|
@endif
|
|
</div>
|
|
<input type="file" name="app_logo" accept=".jpg,.jpeg,.png,.webp,.svg" class="block w-full text-sm text-slate-600 file:mr-4 file:rounded-xl file:border-0 file:bg-white file:px-4 file:py-2 file:font-semibold file:text-slate-700 hover:file:bg-slate-100">
|
|
<x-input-error :messages="$errors->get('app_logo')" class="mt-2" />
|
|
</div>
|
|
|
|
<div class="rounded-3xl border border-slate-200 bg-slate-50 p-5">
|
|
<div class="mb-4 flex items-center justify-between gap-3">
|
|
<div>
|
|
<h3 class="text-sm font-semibold text-slate-900">Favicon</h3>
|
|
<p class="mt-1 text-xs text-slate-500">Untuk tab browser dan shortcut ikon kecil.</p>
|
|
</div>
|
|
@if ($branding['app_favicon'])
|
|
<label class="inline-flex items-center gap-2 text-xs text-rose-600">
|
|
<input type="checkbox" name="remove_app_favicon" value="1" class="rounded border-slate-300 text-rose-600 focus:ring-rose-500">
|
|
<span>Hapus</span>
|
|
</label>
|
|
@endif
|
|
</div>
|
|
<div class="mb-4 flex h-32 items-center justify-center rounded-2xl border border-dashed border-slate-300 bg-white p-4">
|
|
@if ($branding['app_favicon'])
|
|
<img src="{{ asset('storage/' . $branding['app_favicon']) }}" alt="Favicon" class="max-h-16 max-w-full object-contain">
|
|
@else
|
|
<div class="text-center text-sm text-slate-400">Belum ada favicon</div>
|
|
@endif
|
|
</div>
|
|
<input type="file" name="app_favicon" accept=".jpg,.jpeg,.png,.webp,.svg,.ico" class="block w-full text-sm text-slate-600 file:mr-4 file:rounded-xl file:border-0 file:bg-white file:px-4 file:py-2 file:font-semibold file:text-slate-700 hover:file:bg-slate-100">
|
|
<x-input-error :messages="$errors->get('app_favicon')" class="mt-2" />
|
|
</div>
|
|
|
|
<div class="rounded-3xl border border-slate-200 bg-slate-50 p-5">
|
|
<div class="mb-4 flex items-center justify-between gap-3">
|
|
<div>
|
|
<h3 class="text-sm font-semibold text-slate-900">Logo Portal Publik</h3>
|
|
<p class="mt-1 text-xs text-slate-500">Opsional untuk portal pencarian dan pelengkapan siswa.</p>
|
|
</div>
|
|
@if ($branding['public_portal_logo'])
|
|
<label class="inline-flex items-center gap-2 text-xs text-rose-600">
|
|
<input type="checkbox" name="remove_public_portal_logo" value="1" class="rounded border-slate-300 text-rose-600 focus:ring-rose-500">
|
|
<span>Hapus</span>
|
|
</label>
|
|
@endif
|
|
</div>
|
|
<div class="mb-4 flex h-32 items-center justify-center rounded-2xl border border-dashed border-slate-300 bg-white p-4">
|
|
@if ($branding['public_portal_logo'])
|
|
<img src="{{ asset('storage/' . $branding['public_portal_logo']) }}" alt="Logo portal publik" class="max-h-24 max-w-full object-contain">
|
|
@else
|
|
<div class="text-center text-sm text-slate-400">Belum ada logo portal publik</div>
|
|
@endif
|
|
</div>
|
|
<input type="file" name="public_portal_logo" accept=".jpg,.jpeg,.png,.webp,.svg" class="block w-full text-sm text-slate-600 file:mr-4 file:rounded-xl file:border-0 file:bg-white file:px-4 file:py-2 file:font-semibold file:text-slate-700 hover:file:bg-slate-100">
|
|
<x-input-error :messages="$errors->get('public_portal_logo')" class="mt-2" />
|
|
</div>
|
|
</div>
|
|
|
|
<div class="flex flex-wrap items-center gap-3">
|
|
<button type="submit" class="inline-flex items-center rounded-2xl bg-indigo-600 px-5 py-3 text-sm font-semibold text-white shadow-lg shadow-indigo-200 transition hover:bg-indigo-700">
|
|
Simpan Branding
|
|
</button>
|
|
<a href="{{ route('dashboard') }}" class="rounded-2xl border border-slate-200 px-5 py-3 text-sm font-semibold text-slate-700 transition hover:bg-slate-50">
|
|
Kembali
|
|
</a>
|
|
</div>
|
|
</form>
|
|
</x-master-card>
|
|
</x-master-page>
|