@extends('layouts.app') @php $pageTitle = 'Edit Device'; $pageHeading = 'Active Device Parameter'; $pageDescription = 'Edit parameter device aktif berdasarkan field yang memang tersedia di `iclock_terminal`, sambil memisahkan info yang hanya layak dibaca.'; $formatCommandPreview = function ($content, $limit = 84) { $full = trim(preg_replace('/\s+/', ' ', (string) $content)); $short = \Illuminate\Support\Str::limit($full, $limit); return [ 'full' => $full, 'short' => $short, 'truncated' => $short !== $full, ]; }; @endphp @section('content')

{{ $device->alias ?: $device->sn }}

Kelola parameter operasional dan pantau snapshot perangkat.

{{ (int) $device->status === 1 ? 'APPROVED' : 'PENDING' }} · {{ $device->sn }}
@if (session('status'))
Berhasil disimpan
{{ session('status') }}
@endif @if ((int) $device->status !== 1)
Pending Approval / Ping Blocked
Device baru tetap tercatat di registry, tetapi heartbeat, transaksi, data user, dan command sync sengaja ditahan sampai status device diubah menjadi Approved.
@elseif (empty($device->first_sync_at))
Waiting First Sync
Device sudah approved, tetapi feedback pertama dari mesin belum masuk ke database. Setelah mesin kirim `INFO`, `ATTLOG`, `OPERLOG`, atau `USERINFO`, status ini akan berubah menjadi synced.
@endif @if ($errors->any())
Beberapa input perlu diperbaiki
@endif

Edit Parameter

Hanya field operasional yang aman untuk diperbarui.
@csrf
Export User Lihat User Kembali
@csrf @method('PUT')
@foreach ($editableFields as $field => $meta) @endforeach

Snapshot Device

@foreach ($readOnlyFields as $field => $label)
{{ $label }}
{{ $device->{$field} !== null && $device->{$field} !== '' ? $device->{$field} : '-' }}
@endforeach
Basis Mapping dan Catatan Teknis
PDF PullSDK: kelompok terminal/device parameter dipakai sebagai acuan bahwa parameter waktu, nama terminal, mode autentikasi, dan kontrol reboot memang masuk keluarga parameter device.
Schema database: hanya field yang benar-benar ada pada `iclock_terminal` yang dibuat editable agar tidak bikin admin mengubah parameter fiktif.
Read only: versi firmware, platform, stamp counter, dan statistik biometric tetap ditampilkan sebagai data report perangkat.
Pull user: tombol Pull User Dari Mesin akan mengirim command QUERY USERINFO ke queue. Setelah device mengambil command itu, server akan menyimpan payload user/template yang masuk ke personnel_employee dan iclock_biodata.
Bootstrap Sync
Setelah approve pertama, device wajib melewati bootstrap command INFO dan CHECK. Untuk first connect, QUERY USERINFO juga ikut dikirim sekali untuk mulai menarik master user dari mesin.
@foreach ($bootstrapStatus as $row) @php($preview = $formatCommandPreview($row['content'], 64)) @endforeach
Command Status Queued Sent
{{ $preview['short'] }}
@if ($preview['truncated'])
Lihat full command {{ $preview['full'] }}
@endif
{{ $row['label'] }} {{ $row['command']?->commit_time ?: '-' }} {{ $row['command']?->transfer_time ?: '-' }}
Command History · {{ $commandHistory->count() }} data terbaru
@forelse ($commandHistory as $command) @php($preview = $formatCommandPreview($command->content, 78)) @empty @endforelse
ID Command Queued Sent Result
{{ $command->id }}
{{ $preview['short'] }}
@if ($preview['truncated'])
Lihat full command {{ $preview['full'] }}
@endif @if ($command->context_label)
{{ $command->context_label }}
@endif
{{ $command->commit_time }} {{ $command->transfer_time ?: '-' }} {{ $command->result_label }} @if ($command->return_time)
{{ $command->return_time }}
@endif
Belum ada history command untuk device ini.
@endsection