refactor: remove client-side required attributes from form inputs across admin views

This commit is contained in:
cukiprit 2026-04-13 08:56:52 +07:00
parent d076baff24
commit 0c3369262f
11 changed files with 41 additions and 41 deletions

View File

@ -20,7 +20,7 @@
<div class="mb-3">
<label for="judul" class="form-label">Judul Buku <span class="text-danger">*</span></label>
<input type="text" name="judul" class="form-control @error('judul') is-invalid @enderror" id="judul"
placeholder="Masukkan judul buku" value="{{ old('judul') }}" required minlength="3" maxlength="50">
placeholder="Masukkan judul buku" value="{{ old('judul') }}" maxlength="50">
@error('judul')
<div class="invalid-feedback">{{ $message }}</div>
@enderror
@ -28,7 +28,7 @@
<div class="mb-3">
<label for="penulis" class="form-label">Penulis <span class="text-danger">*</span></label>
<input type="text" name="penulis" class="form-control @error('penulis') is-invalid @enderror" id="penulis"
placeholder="Masukkan nama penulis" value="{{ old('penulis') }}" required minlength="3" maxlength="50" pattern="[a-zA-Z\s.,'\']+">
placeholder="Masukkan nama penulis" value="{{ old('penulis') }}" maxlength="50" pattern="[a-zA-Z\s.,'\']+">
@error('penulis')
<div class="invalid-feedback">{{ $message }}</div>
@enderror
@ -36,7 +36,7 @@
<div class="row">
<div class="col-md-3 mb-3">
<label for="category_id" class="form-label">Kategori <span class="text-danger">*</span></label>
<select name="category_id" class="form-select @error('category_id') is-invalid @enderror" id="category_id" required>
<select name="category_id" class="form-select @error('category_id') is-invalid @enderror" id="category_id">
<option value="" disabled selected>Pilih Kategori</option>
@foreach($categories as $category)
<option value="{{ $category->id }}" {{ old('category_id') == $category->id ? 'selected' : '' }}>{{ $category->name }}</option>
@ -48,7 +48,7 @@
</div>
<div class="col-md-3 mb-3">
<label for="tahun" class="form-label">Tahun Terbit <span class="text-danger">*</span></label>
<select name="tahun" class="form-select @error('tahun') is-invalid @enderror" id="tahun" required>
<select name="tahun" class="form-select @error('tahun') is-invalid @enderror" id="tahun">
<option value="" disabled selected>Pilih Tahun</option>
@for ($year = date('Y') + 1; $year >= 1500; $year--)
<option value="{{ $year }}" {{ old('tahun') == $year ? 'selected' : '' }}>{{ $year }}</option>
@ -70,7 +70,7 @@
<div class="col-md-3 mb-3">
<label for="stok" class="form-label">Stok <span class="text-danger">*</span></label>
<input type="number" name="stok" class="form-control @error('stok') is-invalid @enderror" id="stok"
value="{{ old('stok', 1) }}" required min="0" max="99" oninput="if(this.value.length > 2) this.value = this.value.slice(0, 2); this.value = this.value.replace(/[^0-9]/g, '')">
value="{{ old('stok', 1) }}" min="0" max="99" oninput="if(this.value.length > 2) this.value = this.value.slice(0, 2); this.value = this.value.replace(/[^0-9]/g, '')">
@error('stok')
<div class="invalid-feedback">{{ $message }}</div>
@enderror

View File

@ -21,7 +21,7 @@
<div class="mb-3">
<label for="judul" class="form-label">Judul Buku <span class="text-danger">*</span></label>
<input type="text" name="judul" class="form-control @error('judul') is-invalid @enderror" id="judul"
value="{{ old('judul', $buku->judul) }}" required minlength="3" maxlength="50">
value="{{ old('judul', $buku->judul) }}" maxlength="50">
@error('judul')
<div class="invalid-feedback">{{ $message }}</div>
@enderror
@ -29,7 +29,7 @@
<div class="mb-3">
<label for="penulis" class="form-label">Penulis <span class="text-danger">*</span></label>
<input type="text" name="penulis" class="form-control @error('penulis') is-invalid @enderror" id="penulis"
value="{{ old('penulis', $buku->penulis) }}" required minlength="3" maxlength="50" pattern="[a-zA-Z\s.,'\']+">
value="{{ old('penulis', $buku->penulis) }}" maxlength="50" pattern="[a-zA-Z\s.,'\']+">
@error('penulis')
<div class="invalid-feedback">{{ $message }}</div>
@enderror
@ -37,7 +37,7 @@
<div class="row">
<div class="col-md-4 mb-3">
<label for="category_id" class="form-label">Kategori <span class="text-danger">*</span></label>
<select name="category_id" class="form-select @error('category_id') is-invalid @enderror" id="category_id" required>
<select name="category_id" class="form-select @error('category_id') is-invalid @enderror" id="category_id">
@foreach($categories as $category)
<option value="{{ $category->id }}" {{ old('category_id', $buku->category_id) == $category->id ? 'selected' : '' }}>
{{ $category->name }}
@ -50,7 +50,7 @@
</div>
<div class="col-md-4 mb-3">
<label for="tahun" class="form-label">Tahun Terbit <span class="text-danger">*</span></label>
<select name="tahun" class="form-select @error('tahun') is-invalid @enderror" id="tahun" required>
<select name="tahun" class="form-select @error('tahun') is-invalid @enderror" id="tahun">
@for ($year = date('Y') + 1; $year >= 1500; $year--)
<option value="{{ $year }}" {{ old('tahun', $buku->tahun) == $year ? 'selected' : '' }}>
{{ $year }}
@ -64,7 +64,7 @@
<div class="col-md-4 mb-3">
<label for="stok" class="form-label">Stok <span class="text-danger">*</span></label>
<input type="number" name="stok" class="form-control @error('stok') is-invalid @enderror" id="stok"
value="{{ old('stok', $buku->stok ?? 1) }}" required min="0" max="99" oninput="if(this.value.length > 2) this.value = this.value.slice(0, 2); this.value = this.value.replace(/[^0-9]/g, '')">
value="{{ old('stok', $buku->stok ?? 1) }}" min="0" max="99" oninput="if(this.value.length > 2) this.value = this.value.slice(0, 2); this.value = this.value.replace(/[^0-9]/g, '')">
@error('stok')
<div class="invalid-feedback">{{ $message }}</div>
@enderror

View File

@ -54,14 +54,14 @@
<label for="tanggal_pinjam" class="form-label">Tanggal Pinjam <span class="text-danger">*</span></label>
<input type="text" class="form-control @error('tanggal_pinjam') is-invalid @enderror"
id="tanggal_pinjam" name="tanggal_pinjam" value="{{ old('tanggal_pinjam') }}"
placeholder="Pilih tanggal pinjam" required readonly>
placeholder="Pilih tanggal pinjam" readonly>
@error('tanggal_pinjam') <div class="invalid-feedback">{{ $message }}</div> @enderror
</div>
<div class="col-md-6">
<label for="tanggal_kembali" class="form-label">Tenggat Kembali <span class="text-danger">*</span></label>
<input type="text" class="form-control @error('tanggal_kembali') is-invalid @enderror"
id="tanggal_kembali" name="tanggal_kembali" value="{{ old('tanggal_kembali') }}"
placeholder="Pilih tenggat kembali" required readonly>
placeholder="Pilih tenggat kembali" readonly>
@error('tanggal_kembali') <div class="invalid-feedback">{{ $message }}</div> @enderror
</div>
</div>

View File

@ -11,7 +11,7 @@
<div class="input-group input-group-sm">
<span class="input-group-text bg-transparent border-0 text-muted small">Filter Bulan:</span>
<input type="date" name="bulan_laporan" class="form-control border-0 @error('bulan_laporan') is-invalid @enderror"
title="Pilih tanggal untuk filter bulan" required
title="Pilih tanggal untuk filter bulan"
min="1900-01-01" max="{{ date('Y-m-d') }}">
<button type="submit" class="btn btn-success text-nowrap">
<i class="bi bi-file-earmark-excel-fill me-1"></i>Excel

View File

@ -54,7 +54,7 @@
<label for="nama_lengkap" class="form-label">Nama Lengkap <span class="text-danger">*</span></label>
<input type="text" class="form-control @error('nama_lengkap') is-invalid @enderror"
id="nama_lengkap" name="nama_lengkap" value="{{ old('nama_lengkap', $prefilledData->nama_pemilik ?? '') }}"
{{ $prefilledData ? 'readonly' : '' }} required minlength="3" maxlength="50" pattern="[a-zA-Z\s.,'\']+">
{{ $prefilledData ? 'readonly' : '' }} maxlength="50" pattern="[a-zA-Z\s.,'\']+">
@error('nama_lengkap')
<div class="invalid-feedback">{{ $message }}</div>
@enderror
@ -67,7 +67,7 @@
@endif
<input type="text" class="form-control @error('nomor_induk') is-invalid @enderror"
id="nomor_induk" name="{{ $prefilledData ? '' : 'nomor_induk' }}" value="{{ old('nomor_induk', $prefilledData->nomor_induk ?? '') }}"
placeholder="Masukkan Nomor Induk" {{ $prefilledData ? 'readonly' : '' }} required maxlength="15">
placeholder="Masukkan Nomor Induk" {{ $prefilledData ? 'readonly' : '' }} maxlength="15" pattern="[0-9]*" oninput="this.value = this.value.replace(/[^0-9]/g, '')">
@error('nomor_induk')
<div class="invalid-feedback">{{ $message }}</div>
@enderror
@ -77,7 +77,7 @@
<div class="col-md-6 mb-3">
<label for="email" class="form-label">Email <span class="text-danger">*</span></label>
<input type="email" class="form-control @error('email') is-invalid @enderror"
id="email" name="email" value="{{ old('email') }}" required>
id="email" name="email" value="{{ old('email') }}">
@error('email')
<div class="invalid-feedback">{{ $message }}</div>
@enderror
@ -86,7 +86,7 @@
<label for="no_hp" class="form-label">Nomor Telepon</label>
<input type="text" class="form-control @error('phone') is-invalid @enderror" id="no_hp" name="phone"
value="{{ old('phone') }}" placeholder="Contoh: 08123456789"
minlength="13" maxlength="15" pattern="\+?[0-9]+">
maxlength="16" pattern="\+?[0-9]+" oninput="this.value = this.value.replace(/[^0-9+]/g, '')">
@error('phone')
<div class="invalid-feedback">{{ $message }}</div>
@enderror
@ -120,7 +120,7 @@
<div class="input-group has-validation">
<input type="password"
class="form-control @error('password') is-invalid @enderror" id="password"
name="password" required minlength="8">
name="password">
<button class="btn btn-outline-secondary toggle-password" type="button"
data-target="password">
<i class="bi bi-eye" id="icon-password"></i>
@ -135,7 +135,7 @@ class="form-control @error('password') is-invalid @enderror" id="password"
<label for="password_confirmation" class="form-label">Konfirmasi Password <span class="text-danger">*</span></label>
<div class="input-group">
<input type="password" class="form-control" id="password_confirmation"
name="password_confirmation" required minlength="8">
name="password_confirmation">
<button class="btn btn-outline-secondary toggle-password" type="button"
data-target="password_confirmation">
<i class="bi bi-eye" id="icon-password_confirmation"></i>

View File

@ -30,7 +30,7 @@
<label for="nama_lengkap" class="form-label">Nama Lengkap <span class="text-danger">*</span></label>
<input type="text" class="form-control @error('nama_lengkap') is-invalid @enderror"
id="nama_lengkap" name="nama_lengkap" value="{{ old('nama_lengkap', $pengguna->name) }}"
required minlength="3" maxlength="50" pattern="[a-zA-Z\s.,'\']+">
maxlength="50" pattern="[a-zA-Z\s.,'\']+">
@error('nama_lengkap') <div class="invalid-feedback">{{ $message }}</div> @enderror
</div>
@ -38,7 +38,7 @@
<label for="nomor_induk" class="form-label" id="label_nomor_induk">NISN / NIP <span class="text-danger">*</span></label>
<input type="text" class="form-control @error('nomor_induk') is-invalid @enderror"
id="nomor_induk" name="nomor_induk" value="{{ old('nomor_induk', $pengguna->nomor_induk) }}"
placeholder="Masukkan Nomor Induk" required maxlength="15">
placeholder="Masukkan Nomor Induk" maxlength="15" pattern="[0-9]*" oninput="this.value = this.value.replace(/[^0-9]/g, '')">
@error('nomor_induk') <div class="invalid-feedback">{{ $message }}</div> @enderror
</div>
@ -46,14 +46,14 @@
<div class="col-md-6 mb-3">
<label for="email" class="form-label">Email <span class="text-danger">*</span></label>
<input type="email" class="form-control @error('email') is-invalid @enderror"
id="email" name="email" value="{{ old('email', $pengguna->email) }}" required>
id="email" name="email" value="{{ old('email', $pengguna->email) }}">
@error('email') <div class="invalid-feedback">{{ $message }}</div> @enderror
</div>
<div class="col-md-6 mb-3">
<label for="no_hp" class="form-label">No. Handphone</label>
<input type="text" class="form-control @error('phone') is-invalid @enderror" id="phone" name="phone"
value="{{ old('phone', $pengguna->phone) }}"
minlength="13" maxlength="15" pattern="\+?[0-9]+">
maxlength="16" pattern="\+?[0-9]+" oninput="this.value = this.value.replace(/[^0-9+]/g, '')">
@error('phone') <div class="invalid-feedback">{{ $message }}</div> @enderror
</div>
</div>

View File

@ -217,24 +217,24 @@ class="form-delete-user" data-nama="{{ $user->name }}">
</div>
<div class="mb-3">
<label class="form-label">Role <span class="text-danger">*</span></label>
<select name="role" class="form-select @error('role') is-invalid @enderror" required>
<select name="role" class="form-select @error('role') is-invalid @enderror">
<option value="" disabled selected>Pilih Role...</option>
<option value="siswa" {{ old('role') == 'siswa' ? 'selected' : '' }}>Siswa</option>
<option value="guru" {{ old('role') == 'guru' ? 'selected' : '' }}>Guru</option>
<option value="penjaga perpus" {{ old('role') == 'penjaga perpus' ? 'selected' : '' }}>Petugas Perpustakaan</option>
</select>
@error('role') <div class="invalid-feedback">{{ $message }}</div> @enderror
</div>
<div class="mb-3">
<label class="form-label">NIP / NISN / NIK <span class="text-danger">*</span></label>
<input type="text" name="nomor_induk" class="form-control @error('nomor_induk') is-invalid @enderror"
placeholder="Contoh: 1234567890" maxlength="15" required
placeholder="Contoh: 1234567890" maxlength="15" pattern="[0-9]*" oninput="this.value = this.value.replace(/[^0-9]/g, '')"
value="{{ old('nomor_induk') }}">
@error('nomor_induk') <div class="invalid-feedback">{{ $message }}</div> @enderror
</div>
<div class="mb-3">
<label class="form-label">Nama Pemilik <span class="text-danger">*</span></label>
<input type="text" name="nama_pemilik" class="form-control @error('nama_pemilik') is-invalid @enderror"
placeholder="Nama Siswa/Guru..." value="{{ old('nama_pemilik') }}" required minlength="3" maxlength="50" pattern="[a-zA-Z\s.,'\']+">
placeholder="Nama Siswa/Guru..." value="{{ old('nama_pemilik') }}" maxlength="50" pattern="[a-zA-Z\s.,'\']+">
@error('nama_pemilik') <div class="invalid-feedback">{{ $message }}</div> @enderror
</div>
</div>

View File

@ -17,14 +17,14 @@
<div class="mb-3">
<label for="title" class="form-label">Judul Pengumuman <span class="text-danger">*</span></label>
<input type="text" name="title" class="form-control @error('title') is-invalid @enderror" id="title"
placeholder="Masukkan judul pengumuman" value="{{ old('title') }}" required minlength="3" maxlength="50">
placeholder="Masukkan judul pengumuman" value="{{ old('title') }}" maxlength="50">
@error('title')
<div class="invalid-feedback">{{ $message }}</div>
@enderror
</div>
<div class="mb-3">
<label for="type" class="form-label">Tipe Pengumuman <span class="text-danger">*</span></label>
<select name="type" class="form-select @error('type') is-invalid @enderror" id="type" required>
<select name="type" class="form-select @error('type') is-invalid @enderror" id="type">
<option value="" disabled selected>Pilih tipe...</option>
<option value="info" {{ old('type') == 'info' ? 'selected' : '' }}>Info</option>
<option value="success" {{ old('type') == 'success' ? 'selected' : '' }}>Success</option>
@ -37,7 +37,7 @@
</div>
<div class="mb-3">
<label for="content" class="form-label">Isi Pengumuman <span class="text-danger">*</span></label>
<textarea name="content" class="form-control @error('content') is-invalid @enderror" id="content" rows="5" placeholder="Tulis isi pengumuman di sini..." required minlength="3">{{ old('content') }}</textarea>
<textarea name="content" class="form-control @error('content') is-invalid @enderror" id="content" rows="5" placeholder="Tulis isi pengumuman di sini...">{{ old('content') }}</textarea>
@error('content')
<div class="invalid-feedback">{{ $message }}</div>
@enderror

View File

@ -18,14 +18,14 @@
<div class="mb-3">
<label for="title" class="form-label">Judul Pengumuman <span class="text-danger">*</span></label>
<input type="text" name="title" class="form-control @error('title') is-invalid @enderror" id="title"
value="{{ old('title', $pengumuman->title) }}" required minlength="3" maxlength="50">
value="{{ old('title', $pengumuman->title) }}" maxlength="50">
@error('title')
<div class="invalid-feedback">{{ $message }}</div>
@enderror
</div>
<div class="mb-3">
<label for="type" class="form-label">Tipe Pengumuman <span class="text-danger">*</span></label>
<select name="type" class="form-select @error('type') is-invalid @enderror" id="type" required>
<select name="type" class="form-select @error('type') is-invalid @enderror" id="type">
<option value="" disabled>Pilih tipe...</option>
<option value="info" @if (old('type', $pengumuman->type) == 'info') selected @endif>Info</option>
<option value="success" @if (old('type', $pengumuman->type) == 'success') selected @endif>Success</option>
@ -38,7 +38,7 @@
</div>
<div class="mb-3">
<label for="content" class="form-label">Isi Pengumuman <span class="text-danger">*</span></label>
<textarea name="content" class="form-control @error('content') is-invalid @enderror" id="content" rows="5" required minlength="3">{{ old('content', $pengumuman->content) }}</textarea>
<textarea name="content" class="form-control @error('content') is-invalid @enderror" id="content" rows="5">{{ old('content', $pengumuman->content) }}</textarea>
@error('content')
<div class="invalid-feedback">{{ $message }}</div>
@enderror

View File

@ -17,7 +17,7 @@
<div class="mb-3">
<label class="form-label">Judul <span class="text-danger">*</span></label>
<input type="text" name="judul" class="form-control @error('judul') is-invalid @enderror"
value="{{ old('judul') }}" required minlength="3" maxlength="50">
value="{{ old('judul') }}" maxlength="50">
@error('judul')
<div class="invalid-feedback">{{ $message }}</div>
@enderror
@ -25,7 +25,7 @@
<div class="mb-3">
<label class="form-label">Kategori <span class="text-danger">*</span></label>
<input type="text" name="kategori" class="form-control @error('kategori') is-invalid @enderror"
value="{{ old('kategori') }}" placeholder="Contoh: Teknologi, Sains, Biologi" required minlength="3" maxlength="50">
value="{{ old('kategori') }}" placeholder="Contoh: Teknologi, Sains, Biologi" maxlength="50">
@error('kategori')
<div class="invalid-feedback">{{ $message }}</div>
@enderror
@ -33,14 +33,14 @@
<div class="mb-3">
<label class="form-label">Link YouTube <span class="text-danger">*</span></label>
<input type="url" name="youtube_link" class="form-control @error('youtube_link') is-invalid @enderror"
value="{{ old('youtube_link') }}" placeholder="https://www.youtube.com/watch?v=xxxxxx" required>
value="{{ old('youtube_link') }}" placeholder="https://www.youtube.com/watch?v=xxxxxx">
@error('youtube_link')
<div class="invalid-feedback">{{ $message }}</div>
@enderror
</div>
<div class="mb-3">
<label class="form-label">Deskripsi <span class="text-danger">*</span></label>
<textarea name="deskripsi" id="editor" class="@error('deskripsi') is-invalid @enderror" required minlength="3">{{ old('deskripsi') }}</textarea>
<textarea name="deskripsi" id="editor" class="@error('deskripsi') is-invalid @enderror">{{ old('deskripsi') }}</textarea>
@error('deskripsi')
<div class="text-danger small mt-1">{{ $message }}</div>
@enderror

View File

@ -18,7 +18,7 @@
<div class="mb-3">
<label class="form-label">Judul <span class="text-danger">*</span></label>
<input type="text" name="judul" class="form-control @error('judul') is-invalid @enderror"
value="{{ old('judul', $rekomendasi->judul) }}" required minlength="3" maxlength="50">
value="{{ old('judul', $rekomendasi->judul) }}" maxlength="50">
@error('judul')
<div class="invalid-feedback">{{ $message }}</div>
@enderror
@ -26,7 +26,7 @@
<div class="mb-3">
<label class="form-label">Kategori <span class="text-danger">*</span></label>
<input type="text" name="kategori" class="form-control @error('kategori') is-invalid @enderror"
value="{{ old('kategori', $rekomendasi->kategori) }}" required minlength="3" maxlength="50">
value="{{ old('kategori', $rekomendasi->kategori) }}" maxlength="50">
@error('kategori')
<div class="invalid-feedback">{{ $message }}</div>
@enderror
@ -34,14 +34,14 @@
<div class="mb-3">
<label class="form-label">Link YouTube <span class="text-danger">*</span></label>
<input type="url" name="youtube_link" class="form-control @error('youtube_link') is-invalid @enderror"
value="{{ old('youtube_link', $rekomendasi->youtube_link) }}" required>
value="{{ old('youtube_link', $rekomendasi->youtube_link) }}">
@error('youtube_link')
<div class="invalid-feedback">{{ $message }}</div>
@enderror
</div>
<div class="mb-3">
<label class="form-label">Deskripsi <span class="text-danger">*</span></label>
<textarea name="deskripsi" id="editor" class="@error('deskripsi') is-invalid @enderror" required minlength="3">{{ old('deskripsi', $rekomendasi->deskripsi) }}</textarea>
<textarea name="deskripsi" id="editor" class="@error('deskripsi') is-invalid @enderror">{{ old('deskripsi', $rekomendasi->deskripsi) }}</textarea>
@error('deskripsi')
<div class="text-danger small mt-1">{{ $message }}</div>
@enderror