This commit is contained in:
Saufi
2026-06-02 17:35:45 +08:00
commit 4ef99b1f81
148 changed files with 21134 additions and 0 deletions

View File

@@ -0,0 +1,109 @@
@extends('layouts.app')
@section('title', 'Sejarah Versi — ' . $project->title)
@section('content')
<div class="d-flex justify-content-between align-items-center mb-4">
<div>
<h5 class="fw-bold mb-1"><i class="bi bi-clock-history me-2 text-secondary"></i>Sejarah Versi</h5>
<p class="text-muted mb-0 small">{{ $project->title }}</p>
</div>
<a href="{{ route('user.projects.show', $project) }}" class="btn btn-outline-secondary">
<i class="bi bi-arrow-left me-1"></i>Kembali ke Projek
</a>
</div>
@if($versions->isEmpty())
<div class="alert alert-info">
<i class="bi bi-info-circle me-2"></i>Tiada sejarah versi untuk projek ini.
</div>
@else
<div class="card">
<div class="card-body p-0">
<div class="table-responsive">
<table class="table table-hover mb-0">
<thead class="table-light">
<tr>
<th style="width:60px">Versi</th>
<th>Penyunting</th>
<th>Ringkasan Perubahan</th>
<th>Tarikh</th>
<th style="width:100px">Tindakan</th>
</tr>
</thead>
<tbody>
@foreach($versions as $version)
<tr>
<td class="text-center">
<span class="badge bg-secondary">v{{ $version->version_number }}</span>
</td>
<td>{{ $version->editor->name ?? '—' }}</td>
<td class="text-muted small">{{ $version->change_summary ?? '—' }}</td>
<td class="small text-muted">{{ $version->created_at->format('d/m/Y H:i') }}</td>
<td>
<div class="d-flex gap-1">
<button class="btn btn-sm btn-outline-secondary"
data-bs-toggle="modal"
data-bs-target="#modalPreview{{ $version->id }}"
title="Lihat teks">
<i class="bi bi-eye"></i>
</button>
@can('restoreVersion', $project)
<form method="POST"
action="{{ route('user.projects.versions.restore', [$project, $version]) }}"
onsubmit="return confirm('Pulihkan ke versi {{ $version->version_number }}? Teks semasa akan disimpan sebagai versi baru.')">
@csrf
<button class="btn btn-sm btn-outline-warning" title="Pulihkan versi ini">
<i class="bi bi-arrow-counterclockwise"></i>
</button>
</form>
@endcan
</div>
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
</div>
{{ $versions->links() }}
{{-- Modals: preview versi --}}
@foreach($versions as $version)
<div class="modal fade" id="modalPreview{{ $version->id }}" tabindex="-1">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<h6 class="modal-title">
Versi {{ $version->version_number }}
<span class="text-muted fw-normal small ms-2">{{ $version->created_at->format('d/m/Y H:i') }}</span>
</h6>
<button type="button" class="btn-close" data-bs-dismiss="modal"></button>
</div>
<div class="modal-body">
<div class="p-3 bg-light rounded" style="white-space: pre-wrap; font-size: 0.9rem; line-height: 1.8; max-height: 60vh; overflow-y: auto;">{{ $version->new_text }}</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary btn-sm" data-bs-dismiss="modal">Tutup</button>
@can('restoreVersion', $project)
<form method="POST"
action="{{ route('user.projects.versions.restore', [$project, $version]) }}"
onsubmit="return confirm('Pulihkan ke versi {{ $version->version_number }}?')">
@csrf
<button type="submit" class="btn btn-warning btn-sm">
<i class="bi bi-arrow-counterclockwise me-1"></i>Pulihkan Versi Ini
</button>
</form>
@endcan
</div>
</div>
</div>
</div>
@endforeach
@endif
@endsection