first
This commit is contained in:
118
resources/views/user/projects/create.blade.php
Normal file
118
resources/views/user/projects/create.blade.php
Normal file
@@ -0,0 +1,118 @@
|
||||
@extends('layouts.app')
|
||||
|
||||
@section('title', 'Projek Baru')
|
||||
|
||||
@section('content')
|
||||
<div class="d-flex justify-content-between align-items-center mb-4">
|
||||
<h4 class="fw-bold mb-0"><i class="bi bi-plus-circle me-2 text-primary"></i>Cipta Projek Transkripsi Baru</h4>
|
||||
<a href="{{ route('user.dashboard') }}" class="btn btn-outline-secondary">
|
||||
<i class="bi bi-arrow-left me-1"></i>Kembali
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-7">
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<form method="POST" action="{{ route('user.projects.store') }}" enctype="multipart/form-data">
|
||||
@csrf
|
||||
|
||||
<div class="mb-3">
|
||||
<label for="title" class="form-label fw-semibold">Tajuk Projek <span class="text-danger">*</span></label>
|
||||
<input type="text" class="form-control @error('title') is-invalid @enderror"
|
||||
id="title" name="title" value="{{ old('title') }}"
|
||||
placeholder="cth: Mesyuarat Jabatan Mac 2025" required>
|
||||
@error('title')
|
||||
<div class="invalid-feedback">{{ $message }}</div>
|
||||
@enderror
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label for="description" class="form-label fw-semibold">Penerangan</label>
|
||||
<textarea class="form-control @error('description') is-invalid @enderror"
|
||||
id="description" name="description" rows="3"
|
||||
placeholder="Penerangan ringkas tentang audio ini...">{{ old('description') }}</textarea>
|
||||
@error('description')
|
||||
<div class="invalid-feedback">{{ $message }}</div>
|
||||
@enderror
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label for="language" class="form-label fw-semibold">Bahasa Audio</label>
|
||||
<select class="form-select" id="language" name="language">
|
||||
<option value="ms" {{ old('language', 'ms') === 'ms' ? 'selected' : '' }}>Bahasa Melayu</option>
|
||||
<option value="en" {{ old('language') === 'en' ? 'selected' : '' }}>English</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="mb-4">
|
||||
<label for="audio" class="form-label fw-semibold">Fail Audio <span class="text-danger">*</span></label>
|
||||
<input type="file" class="form-control @error('audio') is-invalid @enderror"
|
||||
id="audio" name="audio" accept=".mp3,.wav,.m4a,.mp4,.aac,.ogg,.flac,.webm" required>
|
||||
<div class="form-text">
|
||||
Format disokong: MP3, WAV, M4A, MP4, AAC, OGG, FLAC, WEBM.
|
||||
Saiz maksimum: {{ config('speech2text.upload.max_mb') }}MB.
|
||||
</div>
|
||||
@error('audio')
|
||||
<div class="invalid-feedback">{{ $message }}</div>
|
||||
@enderror
|
||||
|
||||
{{-- Preview nama fail yang dipilih --}}
|
||||
<div id="file-info" class="mt-2 d-none">
|
||||
<span class="badge bg-light text-dark border">
|
||||
<i class="bi bi-file-earmark-music me-1"></i>
|
||||
<span id="file-name"></span>
|
||||
— <span id="file-size"></span>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="d-flex gap-2">
|
||||
<button type="submit" class="btn btn-primary" id="submit-btn">
|
||||
<i class="bi bi-upload me-1"></i>Muat Naik & Mulakan Transkripsi
|
||||
</button>
|
||||
<a href="{{ route('user.dashboard') }}" class="btn btn-outline-secondary">Batal</a>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-5">
|
||||
<div class="card bg-light border-0">
|
||||
<div class="card-body">
|
||||
<h6 class="fw-semibold mb-3"><i class="bi bi-info-circle me-2 text-info"></i>Maklumat</h6>
|
||||
<ul class="small text-muted mb-0">
|
||||
<li class="mb-2">Audio akan diproses secara automatik dalam barisan antrian.</li>
|
||||
<li class="mb-2">Masa pemprosesan bergantung pada panjang audio dan saiz model.</li>
|
||||
<li class="mb-2">Anda boleh menutup halaman ini — pemprosesan akan terus berjalan.</li>
|
||||
<li class="mb-2">Notifikasi status akan dikemaskini dalam halaman projek.</li>
|
||||
<li>Fail audio disimpan secara selamat dan tidak boleh diakses umum.</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@push('scripts')
|
||||
<script>
|
||||
$(function () {
|
||||
$('#audio').on('change', function () {
|
||||
const file = this.files[0];
|
||||
if (file) {
|
||||
const mb = (file.size / 1048576).toFixed(2);
|
||||
$('#file-name').text(file.name);
|
||||
$('#file-size').text(mb + ' MB');
|
||||
$('#file-info').removeClass('d-none');
|
||||
}
|
||||
});
|
||||
|
||||
$('form').on('submit', function () {
|
||||
$('#submit-btn').prop('disabled', true).html(
|
||||
'<span class="spinner-border spinner-border-sm me-2"></span>Sedang dimuat naik...'
|
||||
);
|
||||
});
|
||||
});
|
||||
</script>
|
||||
@endpush
|
||||
Reference in New Issue
Block a user