91 lines
6.1 KiB
PHP
91 lines
6.1 KiB
PHP
<x-filament-panels::page>
|
|
<div class="space-y-4">
|
|
<div class="rounded-xl border border-slate-200 bg-white p-4">
|
|
<div class="text-base font-semibold text-slate-900">Gestione documentale mobile</div>
|
|
<div class="mt-1 text-xs text-slate-600">Pagina dedicata alla lettura QR, al codice mnemonico e all'apertura rapida del contenuto archivistico da telefono o tablet.</div>
|
|
</div>
|
|
|
|
@include('filament.components.archive-code-launcher', [
|
|
'title' => 'Lettore documenti mobile',
|
|
'description' => 'Scansiona il QR o inserisci il codice mnemonico per aprire il contenuto della cartella, del faldone o della scatola nel lettore archivio.',
|
|
])
|
|
|
|
<div class="rounded-xl border border-slate-200 bg-white p-4"
|
|
x-data="{
|
|
nfcSupported: 'NDEFReader' in window,
|
|
nfcReading: false,
|
|
nfcMessage: '',
|
|
async startNfc() {
|
|
if (!this.nfcSupported) {
|
|
this.nfcMessage = 'Web NFC non disponibile in questo browser. Su iPhone Safari al momento non e esposto: usa QR o codice mnemonico.';
|
|
return;
|
|
}
|
|
try {
|
|
const reader = new NDEFReader();
|
|
await reader.scan();
|
|
this.nfcReading = true;
|
|
this.nfcMessage = 'Avvicina il tag NFC al telefono.';
|
|
reader.onreading = ({ message }) => {
|
|
const record = message.records?.[0];
|
|
if (!record) {
|
|
return;
|
|
}
|
|
let value = '';
|
|
if (record.recordType === 'text') {
|
|
value = new TextDecoder(record.encoding || 'utf-8').decode(record.data);
|
|
} else {
|
|
value = new TextDecoder('utf-8').decode(record.data);
|
|
}
|
|
window.location.href = `/admin-filament/strumenti/documenti?tab=lettore-codici&code=${encodeURIComponent(value)}`;
|
|
};
|
|
} catch (error) {
|
|
this.nfcReading = false;
|
|
this.nfcMessage = 'Lettura NFC non avviata: ' + (error?.message || 'permesso negato');
|
|
}
|
|
},
|
|
}"
|
|
>
|
|
<div class="flex flex-col gap-3 xl:flex-row xl:items-start xl:justify-between">
|
|
<div>
|
|
<div class="text-sm font-semibold text-slate-900">Prova NFC da browser</div>
|
|
<div class="mt-1 text-xs text-slate-600">Facciamo test progressivi: sui browser compatibili puoi avviare la lettura del tag NFC direttamente dalla pagina e aprire il lettore archivio con il codice letto.</div>
|
|
</div>
|
|
<div class="rounded-full bg-slate-100 px-3 py-1 text-xs font-semibold text-slate-700" x-text="nfcSupported ? 'Web NFC disponibile' : 'Web NFC non disponibile'"></div>
|
|
</div>
|
|
|
|
<div class="mt-4 flex flex-wrap gap-2">
|
|
<button type="button" x-on:click="startNfc()" class="inline-flex items-center rounded-lg border border-slate-300 bg-white px-4 py-2 text-sm font-medium text-slate-700 shadow-sm hover:bg-slate-50">Avvia lettura NFC</button>
|
|
<a href="{{ \App\Filament\Pages\Strumenti\DocumentiArchivio::getUrl(panel: 'admin-filament') }}?tab=lettore-codici" class="inline-flex items-center rounded-lg bg-slate-900 px-4 py-2 text-sm font-medium text-white shadow-sm hover:bg-slate-800">Apri lettore completo</a>
|
|
</div>
|
|
|
|
<div class="mt-3 rounded-lg border border-dashed border-slate-300 bg-slate-50 px-3 py-3 text-xs text-slate-600" x-text="nfcMessage !== '' ? nfcMessage : 'Sugli iPhone via Safari il Web NFC normalmente non e disponibile: per ora il percorso affidabile resta QR o codice mnemonico.'"></div>
|
|
</div>
|
|
|
|
<div class="grid gap-4 lg:grid-cols-3">
|
|
<div class="rounded-xl border border-slate-200 bg-white p-4">
|
|
<div class="text-sm font-semibold text-slate-900">Contenuto archivio</div>
|
|
<div class="mt-1 text-xs text-slate-600">Apri il lettore archivio per vedere catena contenitori, documenti interni e ubicazione del nodo scansionato.</div>
|
|
<div class="mt-3">
|
|
<a href="{{ \App\Filament\Pages\Strumenti\DocumentiArchivio::getUrl(panel: 'admin-filament') }}?tab=lettore-codici" class="inline-flex items-center rounded-md bg-sky-700 px-3 py-1.5 text-xs font-medium text-white hover:bg-sky-600">Apri contenuto</a>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="rounded-xl border border-slate-200 bg-white p-4">
|
|
<div class="text-sm font-semibold text-slate-900">Archivio digitale</div>
|
|
<div class="mt-1 text-xs text-slate-600">Apri l'archivio digitale per vedere la lista documenti collegata al contenitore o al protocollo trovato.</div>
|
|
<div class="mt-3">
|
|
<a href="{{ \App\Filament\Pages\Strumenti\DocumentiArchivio::getUrl(panel: 'admin-filament') }}?tab=archivio-digitale" class="inline-flex items-center rounded-md bg-emerald-700 px-3 py-1.5 text-xs font-medium text-white hover:bg-emerald-600">Apri archivio digitale</a>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="rounded-xl border border-slate-200 bg-white p-4">
|
|
<div class="text-sm font-semibold text-slate-900">Movimentazione</div>
|
|
<div class="mt-1 text-xs text-slate-600">Dal lettore puoi poi passare alla movimentazione per spostare il contenitore in altro faldone, scaffale o postazione.</div>
|
|
<div class="mt-3">
|
|
<a href="{{ \App\Filament\Pages\Strumenti\DocumentiArchivio::getUrl(panel: 'admin-filament') }}?tab=movimentazione-codici" class="inline-flex items-center rounded-md bg-amber-700 px-3 py-1.5 text-xs font-medium text-white hover:bg-amber-600">Apri movimentazione</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</x-filament-panels::page>
|