Skip to content

Commit 3a5c161

Browse files
committed
Amelioration des logs
1 parent 1ad210d commit 3a5c161

File tree

5 files changed

+189
-3
lines changed

5 files changed

+189
-3
lines changed

src/components/table/top-left.vue

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,8 @@ function getTargetState(state: IdentityState) {
128128
129129
case IdentityState.ON_ERROR:
130130
return IdentityState.TO_SYNC
131+
case IdentityState.SYNCED:
132+
return IdentityState.TO_SYNC
131133
default:
132134
return state
133135
}

src/composables/useMenu.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,12 @@ function useMenu(identityStateStore, identityAffectationStore) {
121121
path: '/identities/export',
122122
color: 'primary',
123123
part: 'Données'
124+
},{
125+
icon: 'mdi-book-clock',
126+
label: 'Journal des jobs',
127+
path: '/jobs/table?filters[:state]=-1',
128+
color: 'primary',
129+
part: 'Données'
124130
}
125131
])
126132

src/pages/jobs/index.vue

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,13 @@ div
1717
q-spinner-dots(color="primary" size="40px")
1818

1919
template(v-for="(day, keyCompute) in computedJobsByDays" :key="keyCompute")
20-
q-timeline-entry(heading)
20+
q-timeline-entry.text-h5(
21+
22+
)
2123
time(v-text="keyCompute")
2224
q-timeline-entry(
2325
v-for="(job, key) in day" :key="key"
24-
icon="mdi-account" color="orange"
26+
:icon="getIconState(job.state)" :color="getColorState(job.state)"
2527
)
2628
template(#title)
2729
span(v-text="'[' + job.jobId + ']'")
@@ -117,6 +119,7 @@ const jobsByOptions = [
117119
{ label: 'Année', value: 'YYYY' },
118120
]
119121
122+
120123
const jobs = ref<any>([]);
121124
122125
const computedJobsByDays = computed(() => {
@@ -141,4 +144,21 @@ const load = async (index, done) => {
141144
jobs.value.push(...data.value.data);
142145
done(data.value.data.length === 0);
143146
}
147+
function getColorState(state){
148+
switch(state){
149+
case -1:
150+
return 'negative'
151+
case 9:
152+
return 'positive'
153+
}
154+
return 'primary'
155+
}
156+
function getIconState(state){
157+
switch(state){
158+
case -1:
159+
return "mdi-account-remove"
160+
case 9:
161+
return "mdi-account-check"
162+
}
163+
}
144164
</script>

src/pages/jobs/table.vue

Lines changed: 158 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,158 @@
1+
<template>
2+
<q-page class="container">
3+
<div class="col-12">
4+
<q-btn @click="push('/jobs/table')" color="positive" glossy label=" Afficher les 1000 dernieres entrées" />
5+
<q-btn @click="push('/jobs/table?filters[:state]=-1')" color="negative" glossy label=" Afficher que les erreurs" />
6+
</div>
7+
<q-table
8+
flat bordered
9+
title="Journal"
10+
dense
11+
:rows="rows"
12+
:columns="columns"
13+
row-key="jobId"
14+
:rows-per-page-options="[20,50,0]"
15+
>
16+
<template v-slot:header="props">
17+
<q-tr :props="props">
18+
<q-th>
19+
</q-th>
20+
<q-th
21+
v-for="col in props.cols"
22+
:key="col.name"
23+
:props="props"
24+
class="text-bold"
25+
>
26+
{{ col.label }}
27+
</q-th>
28+
</q-tr>
29+
</template>
30+
<template v-slot:body="props">
31+
<q-tr :props="props">
32+
<q-td auto-width>
33+
<q-btn size="xs" :color="getColorState(props.row.state)" round dense @click="props.expand = !props.expand" :icon="getIconState(props.row.state)" />
34+
</q-td>
35+
<q-td
36+
v-for="col in props.cols"
37+
:key="col.name"
38+
:props="props"
39+
>
40+
{{ col.name === 'state'?getStatusText(col.value):col.value }}
41+
</q-td>
42+
</q-tr>
43+
<q-tr v-show="props.expand" :props="props">
44+
<q-td colspan="100%">
45+
<pre class="text-caption" v-html="JSON.stringify(props.row?.result, null, 2)"/>
46+
</q-td>
47+
</q-tr>
48+
</template>
49+
50+
51+
52+
</q-table>
53+
</q-page>
54+
55+
</template>
56+
<script setup>
57+
58+
59+
60+
const $dayjs = useDayjs();
61+
const $route=useRoute()
62+
const router = useRouter()
63+
64+
const foptions=[
65+
"En erreur","Ok"
66+
]
67+
const columns=[
68+
{ name: 'state',
69+
title: 'Statut',
70+
field:'state',
71+
label: 'Statut'},
72+
{ name: 'jobId',
73+
title: 'Job Id',
74+
field:'jobId',
75+
align: 'right',
76+
label: 'N° Job'
77+
},
78+
{
79+
name: 'date',
80+
title: 'Date',
81+
field: (row)=>$dayjs(row.metadata?.lastUpdatedAt).format('DD/MM/YYYY HH:mm:ss').toString(),
82+
align: 'left',
83+
label: 'Date'
84+
},{
85+
name: 'identity',
86+
title: 'Identité',
87+
field: (row)=>row.params?.identity?.identity.inetOrgPerson.uid,
88+
align: 'left',
89+
label: 'Indentité'
90+
},{
91+
name: 'action',
92+
title: 'Action',
93+
field:'action',
94+
align: 'left',
95+
label: 'Action'
96+
}
97+
]
98+
const query = computed(() => {
99+
return {
100+
limit: 2000,
101+
skip: 0,
102+
'sort[metadata.lastUpdatedAt]': 'desc',
103+
...$route.query,
104+
};
105+
});
106+
const { data:rows, pending, error, refresh } = await useHttp('/core/jobs/', {
107+
method: 'GET',
108+
transform: (result) => {
109+
const data= result.data.map((enr) => {
110+
return enr
111+
});
112+
return data
113+
},
114+
query
115+
116+
});
117+
118+
function getColorState(state){
119+
switch(state){
120+
case -1:
121+
return 'negative'
122+
case 9:
123+
return 'positive'
124+
case 0:
125+
return 'warning'
126+
}
127+
return 'primary'
128+
}
129+
function getStatusText(state){
130+
switch(state){
131+
case -1:
132+
return 'ERR'
133+
case 9:
134+
return 'OK'
135+
136+
}
137+
return " "
138+
}
139+
function getIconState(state){
140+
switch(state){
141+
case -1:
142+
return "mdi-account-remove"
143+
case 9:
144+
return "mdi-account-check"
145+
case 0:
146+
return "mdi-account-sync"
147+
}
148+
}
149+
function push(path) {
150+
router.push(path)
151+
}
152+
</script>
153+
154+
155+
156+
<style scoped>
157+
158+
</style>

src/pages/login.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ q-card.col-4.shadow-24.row(style="max-width: 1200px;")
1414
q-spinner-grid(color='primary' size='50px')
1515
q-card-actions.column.justify-between
1616
.col.q-my-sm.flex.items-center
17-
q-btn(@click.prevent='submit' type='submit' color='primary') Se connecter
17+
q-btn(@click.prevent='submit' type='submit' color='primary' size="lg" ) Se connecter
1818

1919
</template>
2020

0 commit comments

Comments
 (0)