11<script setup lang="ts">
22import type { Ref } from " vue"
33import type { QTableProps } from " quasar"
4- import { ref , inject } from " vue"
4+ import { ref , inject , computed } from " vue"
55import { useFetch } from " @/composables/ViperFetch"
66import { useDateFunctions } from " @/composables/DateFunctions"
77import type { Person } from " @/CTS/types"
@@ -17,7 +17,7 @@ const actions = ref([]) as Ref<string[]>
1717const areas = ref ([]) as Ref <string []>
1818const showDetail = ref (false )
1919
20- const auditColumns : QTableProps [" columns" ] = [
20+ const baseColumns : QTableProps [" columns" ] = [
2121 { name: " area" , label: " Area" , field: " area" , align: " left" , sortable: true },
2222 { name: " action" , label: " Action" , field: " action" , align: " left" , sortable: true },
2323 {
@@ -30,8 +30,9 @@ const auditColumns: QTableProps["columns"] = [
3030 },
3131 { name: " modifiedBy" , label: " By" , field: " modifiedByName" , align: " left" , sortable: true },
3232 { name: " modifiedPerson" , label: " Modified Person" , field: " modifiedPersonName" , align: " left" , sortable: true },
33- { name: " detail" , label: " Detail" , field: " detail" , align: " left" , sortable: false },
3433]
34+ const detailColumn = { name: " detail" , label: " Details" , field: " detail" , align: " left" as const , sortable: false }
35+ const auditColumns = computed (() => (showDetail .value ? [... baseColumns ! , detailColumn ] : baseColumns ! ))
3536const loading = ref (false )
3637const pagination = ref ({ page: 1 , sortBy: " timestamp" , descending: true , rowsPerPage: 25 , rowsNumber: 100 }) as Ref <any >
3738const filter = ref ({
@@ -66,10 +67,9 @@ async function loadAudit(page: number, perPage: number, sortBy: string, descendi
6667 const p = new URLSearchParams ()
6768 if (filter .value .area !== null ) p .append (" area" , filter .value .area )
6869 if (filter .value .action !== null ) p .append (" action" , filter .value .action )
69- if (filter .value .modifiedBy ?.personId !== null )
70- p .append (" modifiedById" , filter .value .modifiedBy ?.personId .toString ())
71- if (filter .value .modifiedPerson ?.personId !== null )
72- p .append (" modifiedPersonId" , filter .value .modifiedPerson ?.personId .toString ())
70+ if (filter .value .modifiedBy ?.personId != null ) p .append (" modifiedById" , filter .value .modifiedBy .personId .toString ())
71+ if (filter .value .modifiedPerson ?.personId != null )
72+ p .append (" modifiedPersonId" , filter .value .modifiedPerson .personId .toString ())
7373 if (filter .value .dateFrom !== null ) p .append (" dateFrom" , filter .value .dateFrom )
7474 if (filter .value .dateTo !== null ) p .append (" dateTo" , filter .value .dateTo )
7575
@@ -203,6 +203,11 @@ loadAreas()
203203 </div >
204204 </div >
205205 </q-form >
206+ <q-toggle
207+ v-model =" showDetail"
208+ label =" Show Details"
209+ class =" q-mb-sm"
210+ />
206211 <q-table
207212 row-key =" ctsAuditId"
208213 :rows =" auditRows"
@@ -212,27 +217,17 @@ loadAreas()
212217 :rows-per-page-options =" [5, 10, 15, 25, 50, 100]"
213218 @request =" loadAuditRows"
214219 >
215- <template #header-cell-detail =" props " >
216- <q-th :props =" props" >
217- <q-toggle
218- v-model =" showDetail"
219- label =" Details"
220- />
221- </q-th >
222- </template >
223220 <template #body-cell-detail =" props " >
224221 <q-td
225222 :props =" props"
226223 style =" max-width : 300px "
227224 >
228- <template v-if =" showDetail " >
229- <div
230- v-for =" (value, key) in props.row.detail2"
231- :key =" key"
232- >
233- {{ key }}: {{ value }}
234- </div >
235- </template >
225+ <div
226+ v-for =" (value, key) in props.row.detail2"
227+ :key =" key"
228+ >
229+ {{ key }}: {{ value }}
230+ </div >
236231 </q-td >
237232 </template >
238233 </q-table >
0 commit comments