SPFFR

Sistem Pengurusan Fail Fizikal & Rekod

Powered by Cloudflare D1
{{ loginError }}

{{ pageTitle }}

{{ currentDate }} • {{ currentTime }}

Notifikasi ({{ notifications.length }})

Tiada notifikasi

{{ n.msg }}

{{ n.time }}

Selamat Kembali, {{ currentUser?.name }}

Ringkasan sistem hari ini

Jumlah Fail

{{ stats.totalFiles }}

Peti Masuk

{{ stats.newDocs }}

Sedang Dipinjam

{{ stats.borrowed }}

⚠ {{ stats.overdue }} lewat pulang

Fail Rahsia Besar

{{ stats.highSecurity }}

Statistik Fail Mengikut Kategori

Status Fail

Jejak Aktiviti Terkini

Live

{{ log.user_name }}

{{ getRelativeTime(log.timestamp) }}

{{ getActivityAction(log.action) }}

{{ log.details }}

{{ log.module }}

Tiada aktiviti terkini

Pautan Pantas

Rekod Fail

Urus semua fail fizikal dalam sistem

Maklumat FailPenempatanStatusAksi

{{ file.no_fail }}

{{ file.title }}

{{ file.cat_name }} {{ getSecurityLabel(file.security_level) }}
{{ file.location_name || '-' }} {{ file.status }}

👤 {{ file.borrowed_by }}

📅 {{ file.due_date }}

Tiada rekod fail dijumpai

Memaparkan {{ (currentPage - 1) * itemsPerPage + 1 }} - {{ Math.min(currentPage * itemsPerPage, filteredFiles.length) }} dari {{ filteredFiles.length }} rekod

Peti Masuk Dokumen

Urus surat masuk dan keluar

RujukanPerkaraAliranStatusAksi

{{ doc.ref_no }}

{{ doc.date }}

{{ doc.title }}

📁 {{ doc.file_title }}

{{ doc.doc_type }}

{{ doc.flow }}

{{ doc.status }}

Tiada dokumen

Susunan Pokok Fail

Lihat struktur fail mengikut kategori

{{ cat.name }}

{{ getCategoryFileCount(cat.id) }} fail
{{ file.no_fail }}
{{ file.title }}
{{ file.location_name || 'Tidak ditetapkan' }}

Tiada fail dalam kategori ini

Klik "Buka Semua" untuk lihat fail

📂

Tiada kategori dijumpai

Kaunter Sirkulasi

Pinjam Fail

{{ f.no_fail }}
{{ f.title }}
Tiada fail dijumpai
{{ u.name }}
{{ getRoleName(u.role_id) }}
Tiada staf dijumpai
{{ calculatedDueDate || '-' }}

Dikira berdasarkan had pinjaman: {{ systemSettings.borrow_limit_days || 7 }} hari

Pulang Fail

TOTAL DIPINJAM

{{ borrowedFiles.length }}

LEWAT PULANG

{{ borrowedFiles.filter(f => f.due_date < today).length }}

HAMPIR TAMAT

{{ borrowedFiles.filter(f => { const d = new Date(f.due_date); const t = new Date(); return (d - t) / (1000*60*60*24) <= 3 && (d - t) / (1000*60*60*24) > 0; }).length }}

AKTIF

{{ borrowedFiles.filter(f => f.due_date >= today).length }}

No Fail Peminjam Tarikh Akhir Status Tindakan

{{ f.no_fail }}

{{ f.title }}

{{ f.borrowed_by }}

{{ f.due_date }}

{{ Math.ceil((new Date(f.due_date) - new Date()) / (1000*60*60*24)) }} hari lagi

LEWAT AKTIF

Tiada fail sedang dipinjam

Mesej Dalaman

DariTajukTarikhStatusAksi
{{ msg.sender_name }} {{ msg.subject }} {{ msg.sent_at }} BaruDibaca
Tiada mesej

Pusat Laporan

Laporan Excel

Muat turun senarai fail dalam format .xlsx

Laporan Dokumen

Muat turun senarai semua dokumen/minit

Laporan Sirkulasi

Muat turun sejarah pergerakan fail

Backup & Restore Data

Muat Turun Backup

Simpan semua data dalam format JSON

Restore Data

Pulihkan data dari fail JSON backup

Tetapan Sistem

Tetapan Umum

Pengurusan Master Data (CRUD)

Kategori Fail
{{ c.name }}

Lokasi Rak

{{ l.name }}

{{ lokasiSearch ? 'Tiada lokasi sepadan' : 'Tiada lokasi' }}

Jenis Dokumen
{{ d.name }}

Pengurusan Pengguna

NamaEmailPerananClearanceAksi
{{ u.name }} {{ u.email }} {{ getRoleName(u.role_id) }} Level {{ u.clearance }}

Peranan & Kebenaran

Nama KumpulanJumlah AksesAksi
{{ r.name }} {{ getPermissionCount(r.permissions) }} / {{ availablePermissions.length }} Modul

{{ toast.message }}