first commit

This commit is contained in:
Saufi
2026-06-24 20:32:14 +08:00
commit 10fb30ad69
201 changed files with 21356 additions and 0 deletions

View File

@@ -0,0 +1,63 @@
@csrf
<div class="row g-3">
<div class="col-md-8">
<label class="form-label">Nama Perunding <span class="text-danger">*</span></label>
<input type="text" name="nama_perunding" value="{{ old('nama_perunding', $consultant->nama_perunding) }}" class="form-control @error('nama_perunding') is-invalid @enderror" required>
@error('nama_perunding')<div class="invalid-feedback">{{ $message }}</div>@enderror
</div>
<div class="col-md-4">
<label class="form-label">Status</label>
<select name="aktif" class="form-select">
<option value="1" @selected(old('aktif', $consultant->aktif ?? true))>Aktif</option>
<option value="0" @selected(!old('aktif', $consultant->aktif ?? true))>Tidak Aktif</option>
</select>
</div>
<div class="col-md-6">
<label class="form-label">No. Pendaftaran Syarikat</label>
<input type="text" name="no_pendaftaran_syarikat" value="{{ old('no_pendaftaran_syarikat', $consultant->no_pendaftaran_syarikat) }}" class="form-control">
</div>
<div class="col-md-6">
<label class="form-label">Emel</label>
<input type="email" name="emel" value="{{ old('emel', $consultant->emel) }}" class="form-control">
</div>
<div class="col-md-6">
<label class="form-label">Telefon</label>
<input type="text" name="telefon" value="{{ old('telefon', $consultant->telefon) }}" class="form-control">
</div>
<div class="col-12">
<label class="form-label">Alamat</label>
<textarea name="alamat" rows="2" class="form-control">{{ old('alamat', $consultant->alamat) }}</textarea>
</div>
</div>
@if (!$consultant->user_id)
<hr class="my-4">
<div class="form-check form-switch mb-3">
<input type="checkbox" name="buat_akaun" value="1" id="buatAkaun" class="form-check-input" @checked(old('buat_akaun')) onchange="document.getElementById('akaunFields').classList.toggle('d-none', !this.checked)">
<label for="buatAkaun" class="form-check-label fw-semibold">Cipta akaun log masuk untuk perunding ini</label>
</div>
<div id="akaunFields" class="row g-3 {{ old('buat_akaun') ? '' : 'd-none' }}">
<div class="col-md-4">
<label class="form-label">Nama Pengguna</label>
<input type="text" name="user_name" value="{{ old('user_name', $consultant->nama_perunding) }}" class="form-control @error('user_name') is-invalid @enderror">
@error('user_name')<div class="invalid-feedback">{{ $message }}</div>@enderror
</div>
<div class="col-md-4">
<label class="form-label">Emel Akaun</label>
<input type="email" name="user_email" value="{{ old('user_email', $consultant->emel) }}" class="form-control @error('user_email') is-invalid @enderror">
@error('user_email')<div class="invalid-feedback">{{ $message }}</div>@enderror
</div>
<div class="col-md-4">
<label class="form-label">Kata Laluan</label>
<input type="password" name="user_password" class="form-control @error('user_password') is-invalid @enderror">
@error('user_password')<div class="invalid-feedback">{{ $message }}</div>@enderror
</div>
</div>
@else
<div class="alert alert-light border mt-3 mb-0"><i class="bi bi-link-45deg"></i> Akaun log masuk telah dipautkan.</div>
@endif
<div class="mt-4">
<button type="submit" class="btn btn-success"><i class="bi bi-save me-1"></i> Simpan</button>
<a href="{{ route('consultants.index') }}" class="btn btn-link">Batal</a>
</div>

View File

@@ -0,0 +1,12 @@
@extends('layouts.app')
@section('title', 'Daftar Perunding')
@section('heading', 'Perunding')
@section('page-title', 'Daftar Perunding Baharu')
@section('content')
<div class="card"><div class="card-body">
<form method="POST" action="{{ route('consultants.store') }}">
@include('consultants._form')
</form>
</div></div>
@endsection

View File

@@ -0,0 +1,13 @@
@extends('layouts.app')
@section('title', 'Kemaskini Perunding')
@section('heading', 'Perunding')
@section('page-title', 'Kemaskini Perunding')
@section('content')
<div class="card"><div class="card-body">
<form method="POST" action="{{ route('consultants.update', $consultant) }}">
@method('PUT')
@include('consultants._form')
</form>
</div></div>
@endsection

View File

@@ -0,0 +1,55 @@
@extends('layouts.app')
@section('title', 'Senarai Perunding')
@section('heading', 'Perunding')
@section('page-title', 'Senarai Perunding')
@section('actions')
@can('create', App\Models\Consultant::class)
<a href="{{ route('consultants.create') }}" class="btn btn-success"><i class="bi bi-plus-lg me-1"></i> Daftar Perunding</a>
@endcan
@endsection
@section('content')
<div class="card">
<div class="card-body">
<form class="row g-2 mb-3">
<div class="col-md-6">
<input type="text" name="cari" value="{{ request('cari') }}" class="form-control" placeholder="Cari nama / no pendaftaran / emel...">
</div>
<div class="col-md-3">
<select name="status" class="form-select">
<option value="">Semua status</option>
<option value="aktif" @selected(request('status')==='aktif')>Aktif</option>
<option value="tidak_aktif" @selected(request('status')==='tidak_aktif')>Tidak Aktif</option>
</select>
</div>
<div class="col-md-3 d-grid"><button class="btn btn-outline-primary"><i class="bi bi-search me-1"></i> Cari</button></div>
</form>
<div class="table-responsive">
<table class="table table-hover align-middle">
<thead><tr><th>Nama Perunding</th><th>No. Pendaftaran</th><th>Emel</th><th>Pusat Data</th><th>Status</th><th></th></tr></thead>
<tbody>
@forelse ($consultants as $c)
<tr>
<td><a href="{{ route('consultants.show', $c) }}" class="text-decoration-none fw-semibold">{{ $c->nama_perunding }}</a></td>
<td>{{ $c->no_pendaftaran_syarikat ?: '—' }}</td>
<td>{{ $c->emel ?: '—' }}</td>
<td><span class="badge bg-light text-dark">{{ $c->data_centres_count }}</span></td>
<td>
<span class="badge bg-{{ $c->aktif ? 'success' : 'secondary' }}">{{ $c->aktif ? 'Aktif' : 'Tidak Aktif' }}</span>
</td>
<td class="text-end">
<a href="{{ route('consultants.edit', $c) }}" class="btn btn-sm btn-outline-secondary"><i class="bi bi-pencil"></i></a>
</td>
</tr>
@empty
<tr><td colspan="6" class="text-center text-muted py-3">Tiada perunding dijumpai.</td></tr>
@endforelse
</tbody>
</table>
</div>
{{ $consultants->links() }}
</div>
</div>
@endsection

View File

@@ -0,0 +1,63 @@
@extends('layouts.app')
@section('title', 'Maklumat Perunding')
@section('heading', 'Perunding')
@section('page-title', $consultant->nama_perunding)
@section('actions')
@can('update', $consultant)
<a href="{{ route('consultants.edit', $consultant) }}" class="btn btn-outline-secondary"><i class="bi bi-pencil me-1"></i> Kemaskini</a>
@endcan
@endsection
@section('content')
<div class="row g-3">
<div class="col-lg-4">
<div class="card"><div class="card-body">
<h6 class="text-muted">Maklumat Perunding</h6>
<dl class="row mb-0 small">
<dt class="col-5">Status</dt><dd class="col-7"><span class="badge bg-{{ $consultant->aktif ? 'success':'secondary' }}">{{ $consultant->aktif ? 'Aktif':'Tidak Aktif' }}</span></dd>
<dt class="col-5">No. Pendaftaran</dt><dd class="col-7">{{ $consultant->no_pendaftaran_syarikat ?: '—' }}</dd>
<dt class="col-5">Emel</dt><dd class="col-7">{{ $consultant->emel ?: '—' }}</dd>
<dt class="col-5">Telefon</dt><dd class="col-7">{{ $consultant->telefon ?: '—' }}</dd>
<dt class="col-5">Alamat</dt><dd class="col-7">{{ $consultant->alamat ?: '—' }}</dd>
<dt class="col-5">Akaun</dt><dd class="col-7">{{ $consultant->user?->email ?? 'Tiada akaun' }}</dd>
</dl>
</div></div>
</div>
<div class="col-lg-8">
<div class="card mb-3"><div class="card-header bg-white fw-semibold">Pusat Data Ditugaskan (Aktif)</div>
<div class="card-body p-0"><table class="table mb-0">
<thead><tr><th class="ps-3">Pusat Data</th><th>Lokasi</th><th>Status</th></tr></thead>
<tbody>
@forelse ($consultant->dataCentres as $dc)
<tr><td class="ps-3"><a href="{{ route('data-centres.show',$dc) }}" class="text-decoration-none">{{ $dc->nama_pusat_data }}</a></td><td>{{ $dc->lokasi_pusat_data }}</td><td><span class="badge bg-light text-dark">{{ $dc->status }}</span></td></tr>
@empty
<tr><td colspan="3" class="text-center text-muted py-3">Tiada pusat data aktif.</td></tr>
@endforelse
</tbody>
</table></div>
</div>
<div class="card"><div class="card-header bg-white fw-semibold">Sejarah Penugasan</div>
<div class="card-body p-0"><table class="table mb-0 small">
<thead><tr><th class="ps-3">Pusat Data</th><th>Mula</th><th>Tamat</th><th>Sebab</th><th>Oleh</th><th>Status</th></tr></thead>
<tbody>
@forelse ($consultant->assignments as $a)
<tr>
<td class="ps-3">{{ $a->dataCentre->nama_pusat_data ?? '—' }}</td>
<td>{{ $a->start_date?->format('d/m/Y') }}</td>
<td>{{ $a->end_date?->format('d/m/Y') ?: '—' }}</td>
<td>{{ $a->reason ?: '—' }}</td>
<td>{{ $a->assignedBy->name ?? '—' }}</td>
<td><span class="badge bg-{{ $a->is_active ? 'success':'secondary' }}">{{ $a->is_active ? 'Aktif':'Tamat' }}</span></td>
</tr>
@empty
<tr><td colspan="6" class="text-center text-muted py-3">Tiada rekod.</td></tr>
@endforelse
</tbody>
</table></div>
</div>
</div>
</div>
@endsection