Mobile-first Quasar PWA for field technicians at erp.gigafibre.ca/field/: - Multi-barcode scanner (photo + live + manual) with device lookup - Tasks page: today's Dispatch Jobs + assigned tickets - Diagnostic: speed test, HTTP resolve, batch service check - Device detail with customer linking - Offline support: IndexedDB queue, API cache, auto-sync - Standalone nginx container with Traefik StripPrefix + Authentik SSO Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
65 lines
1.9 KiB
Vue
65 lines
1.9 KiB
Vue
<template>
|
|
<q-page padding>
|
|
<div class="text-h6 q-mb-md">Plus</div>
|
|
|
|
<q-list>
|
|
<!-- Offline queue -->
|
|
<q-item>
|
|
<q-item-section avatar><q-icon name="cloud_sync" /></q-item-section>
|
|
<q-item-section>
|
|
<q-item-label>File d'attente hors ligne</q-item-label>
|
|
<q-item-label caption>{{ offline.pendingCount }} action(s) en attente</q-item-label>
|
|
</q-item-section>
|
|
<q-item-section side>
|
|
<q-btn flat dense icon="sync" :loading="offline.syncing" @click="offline.syncQueue()"
|
|
:disable="!offline.online || offline.pendingCount === 0" />
|
|
</q-item-section>
|
|
</q-item>
|
|
|
|
<q-separator />
|
|
|
|
<!-- Connectivity -->
|
|
<q-item>
|
|
<q-item-section avatar>
|
|
<q-icon :name="offline.online ? 'wifi' : 'wifi_off'" :color="offline.online ? 'positive' : 'negative'" />
|
|
</q-item-section>
|
|
<q-item-section>
|
|
<q-item-label>{{ offline.online ? 'En ligne' : 'Hors ligne' }}</q-item-label>
|
|
</q-item-section>
|
|
</q-item>
|
|
|
|
<q-separator />
|
|
|
|
<!-- User -->
|
|
<q-item>
|
|
<q-item-section avatar><q-icon name="person" /></q-item-section>
|
|
<q-item-section>
|
|
<q-item-label>{{ auth.user || '—' }}</q-item-label>
|
|
</q-item-section>
|
|
</q-item>
|
|
|
|
<q-separator />
|
|
|
|
<!-- Logout -->
|
|
<q-item clickable @click="auth.doLogout()">
|
|
<q-item-section avatar><q-icon name="logout" color="negative" /></q-item-section>
|
|
<q-item-section>
|
|
<q-item-label class="text-negative">Déconnexion</q-item-label>
|
|
</q-item-section>
|
|
</q-item>
|
|
</q-list>
|
|
|
|
<div class="text-caption text-grey text-center q-mt-xl">
|
|
Targo Field v0.1.0
|
|
</div>
|
|
</q-page>
|
|
</template>
|
|
|
|
<script setup>
|
|
import { useOfflineStore } from 'src/stores/offline'
|
|
import { useAuthStore } from 'src/stores/auth'
|
|
|
|
const offline = useOfflineStore()
|
|
const auth = useAuthStore()
|
|
</script>
|