Skip to content

Commit 43776aa

Browse files
committed
Update path for agents in useMenu.ts and router.push in identities/index.vue and identityForm/actions.vue
1 parent 9daaf00 commit 43776aa

File tree

5 files changed

+164
-115
lines changed

5 files changed

+164
-115
lines changed

src/components/identityForm/actions.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ async function sync() {
5757
}
5858
5959
function logs() {
60-
router.push(`/jobs?filters[%concernedTo]=${(props.identity as any)._id}`)
60+
router.push(`/jobs?filters[:concernedTo.id]=${(props.identity as any)._id}`)
6161
}
6262
6363
function back() {

src/composables/useMenu.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ function useMenu(identityStateStore, identityAffectationStore) {
3333
{
3434
icon: 'mdi-card-account-details',
3535
label: 'Liste des agents',
36-
path: '/account',
36+
path: '/agents',
3737
color: 'primary',
3838
part: 'Listes',
3939
},

src/layouts/default.vue

Lines changed: 71 additions & 71 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ q-layout
1212
q-list(v-for="part in menuParts" :key="part")
1313
q-item(
1414
v-for="menu in getMenuByPart(part)" :key="part" clickable v-ripple
15-
@click="push(menu.path)"
15+
:href="menu.path" :active="menu.path === $route.fullPath"
1616
)
1717
q-item-section(avatar)
1818
q-icon(:name="menu.icon")
@@ -24,81 +24,81 @@ q-layout
2424
//- q-item-label {{ part }}
2525
//- q-tooltip.text-body2(anchor="center right" self="center left") {{ part }}
2626
//- q-badge(v-if="badgesValues[part]" color="primary" floating) {{ badgesValues[part] }}
27-
//- q-item(@click="push('/')" clickable v-ripple)
28-
//- q-item-section(avatar)
29-
//- q-icon(name="mdi-home")
30-
//- q-tooltip.text-body2(anchor="center right" self="center left") Accueil
31-
//- q-item(@click="push('/agents')" clickable)
32-
//- q-item-section(avatar)
33-
//- q-icon(name="mdi-card-account-details")
34-
//- q-tooltip.text-body2(anchor="center right" self="center left") Liste des agents
35-
//- q-item(@click="push('/identities')" clickable)
36-
//- q-item-section(avatar)
37-
//- q-icon(name="mdi-account")
38-
//- q-badge(color="primary" floating) {{ TOTAL }}
39-
//- q-tooltip.text-body2(anchor="center right" self="center left") Liste des identités
40-
//- q-space
41-
//- q-separator
42-
//- q-item(@click="push(`/identities?sort[metadata.lastUpdatedAt]=desc&skip=0&limit=10&filters[@state][]=${IdentityState.TO_VALIDATE}`)" clickable)
43-
//- q-item-section(avatar)
44-
//- q-icon(name="mdi-account-check")
45-
//- q-badge(color="primary" floating ) {{ TO_VALIDATE }}
46-
//- q-tooltip.text-body2(anchor="center right" self="center left") A valider
27+
//- q-item(@click="push('/')" clickable v-ripple)
28+
//- q-item-section(avatar)
29+
//- q-icon(name="mdi-home")
30+
//- q-tooltip.text-body2(anchor="center right" self="center left") Accueil
31+
//- q-item(@click="push('/agents')" clickable)
32+
//- q-item-section(avatar)
33+
//- q-icon(name="mdi-card-account-details")
34+
//- q-tooltip.text-body2(anchor="center right" self="center left") Liste des agents
35+
//- q-item(@click="push('/identities')" clickable)
36+
//- q-item-section(avatar)
37+
//- q-icon(name="mdi-account")
38+
//- q-badge(color="primary" floating) {{ TOTAL }}
39+
//- q-tooltip.text-body2(anchor="center right" self="center left") Liste des identités
40+
//- q-space
41+
//- q-separator
42+
//- q-item(@click="push(`/identities?sort[metadata.lastUpdatedAt]=desc&skip=0&limit=10&filters[@state][]=${IdentityState.TO_VALIDATE}`)" clickable)
43+
//- q-item-section(avatar)
44+
//- q-icon(name="mdi-account-check")
45+
//- q-badge(color="primary" floating ) {{ TO_VALIDATE }}
46+
//- q-tooltip.text-body2(anchor="center right" self="center left") A valider
4747
48-
//- q-item(@click="push(`/identities?sort[metadata.lastUpdatedAt]=desc&skip=0&limit=10&filters[@state][]=${IdentityState.TO_COMPLETE}`)" clickable)
49-
//- q-item-section(avatar)
50-
//- q-icon(name="mdi-account-alert")
51-
//- q-badge(color="primary" floating) {{ TO_COMPLETE }}
52-
//- q-tooltip.text-body2(anchor="center right" self="center left") A compléter
53-
//- q-item(@click="push(`/identities?sort[metadata.lastUpdatedAt]=desc&skip=0&limit=10&filters[@state][]=${IdentityState.ON_ERROR}`)" clickable)
54-
//- q-item-section(avatar)
55-
//- q-icon(name="mdi-account-remove")
56-
//- q-tooltip.text-body2(anchor="center right" self="center left") En erreur
57-
//- q-badge(color="primary" floating) {{ ON_ERROR }}
48+
//- q-item(@click="push(`/identities?sort[metadata.lastUpdatedAt]=desc&skip=0&limit=10&filters[@state][]=${IdentityState.TO_COMPLETE}`)" clickable)
49+
//- q-item-section(avatar)
50+
//- q-icon(name="mdi-account-alert")
51+
//- q-badge(color="primary" floating) {{ TO_COMPLETE }}
52+
//- q-tooltip.text-body2(anchor="center right" self="center left") A compléter
53+
//- q-item(@click="push(`/identities?sort[metadata.lastUpdatedAt]=desc&skip=0&limit=10&filters[@state][]=${IdentityState.ON_ERROR}`)" clickable)
54+
//- q-item-section(avatar)
55+
//- q-icon(name="mdi-account-remove")
56+
//- q-tooltip.text-body2(anchor="center right" self="center left") En erreur
57+
//- q-badge(color="primary" floating) {{ ON_ERROR }}
5858
59-
//- q-item(@click="push(`/identities?sort[metadata.lastUpdatedAt]=desc&skip=0&limit=10&filters[@state][]=${IdentityState.TO_SYNC}`)" clickable)
60-
//- q-item-section(avatar)
61-
//- q-icon(name="mdi-sync")
62-
//- q-tooltip.text-body2(anchor="center right" self="center left") A synchroniser
63-
//- q-badge(color="primary" floating) {{ TO_SYNC }}
59+
//- q-item(@click="push(`/identities?sort[metadata.lastUpdatedAt]=desc&skip=0&limit=10&filters[@state][]=${IdentityState.TO_SYNC}`)" clickable)
60+
//- q-item-section(avatar)
61+
//- q-icon(name="mdi-sync")
62+
//- q-tooltip.text-body2(anchor="center right" self="center left") A synchroniser
63+
//- q-badge(color="primary" floating) {{ TO_SYNC }}
6464
65-
//- q-item(@click="push(`/identities?sort[metadata.lastUpdatedAt]=desc&skip=0&limit=10&filters[@state][]=${IdentityState.PROCESSING}`)" clickable)
66-
//- q-item-section(avatar)
67-
//- q-icon(name="mdi-loading")
68-
//- q-tooltip.text-body2(anchor="center right" self="center left") En cours de synchronisation
69-
//- q-badge(color="primary" floating) {{ PROCESSING }}
65+
//- q-item(@click="push(`/identities?sort[metadata.lastUpdatedAt]=desc&skip=0&limit=10&filters[@state][]=${IdentityState.PROCESSING}`)" clickable)
66+
//- q-item-section(avatar)
67+
//- q-icon(name="mdi-loading")
68+
//- q-tooltip.text-body2(anchor="center right" self="center left") En cours de synchronisation
69+
//- q-badge(color="primary" floating) {{ PROCESSING }}
7070
71-
//- q-item(@click="push(`/identities?sort[metadata.lastUpdatedAt]=desc&skip=0&limit=10&filters[@state][]=${IdentityState.SYNCED}`)" clickable)
72-
//- q-item-section(avatar)
73-
//- q-icon(name="mdi-check")
74-
//- q-tooltip.text-body2(anchor="center right" self="center left") Synchronisées
75-
//- q-badge(color="primary" floating) {{ SYNCED }}
71+
//- q-item(@click="push(`/identities?sort[metadata.lastUpdatedAt]=desc&skip=0&limit=10&filters[@state][]=${IdentityState.SYNCED}`)" clickable)
72+
//- q-item-section(avatar)
73+
//- q-icon(name="mdi-check")
74+
//- q-tooltip.text-body2(anchor="center right" self="center left") Synchronisées
75+
//- q-badge(color="primary" floating) {{ SYNCED }}
7676
77-
//- q-separator
78-
//- q-item(@click="push('/identities?sort[metadata.lastUpdatedAt]=desc&skip=0&limit=10&filters[^additionalFields.attributes.supann.supannTypeEntiteAffectation]=/etd/i')" clickable)
79-
//- q-item-section(avatar)
80-
//- q-icon(name="mdi-account-off")
81-
//- q-tooltip.text-body2(anchor="center right" self="center left") Etudiants
82-
//- q-badge(color="primary" floating) {{ ETD }}
83-
//- q-item(@click="push('/identities?sort[metadata.lastUpdatedAt]=desc&skip=0&limit=10&filters[^additionalFields.attributes.supann.supannTypeEntiteAffectation]=/adm/i')" clickable)
84-
//- q-item-section(avatar)
85-
//- q-icon(name="mdi-account-tie")
86-
//- q-tooltip.text-body2(anchor="center right" self="center left") Administratifs
87-
//- q-badge(color="primary" floating) {{ ADM }}
88-
//- q-item(@click="push('/identities?sort[metadata.lastUpdatedAt]=desc&skip=0&limit=10&filters[^additionalFields.attributes.supann.supannTypeEntiteAffectation]=/esn/i')" clickable)
89-
//- q-item-section(avatar)
90-
//- q-icon(name="mdi-account-group")
91-
//- q-tooltip.text-body2(anchor="center right" self="center left") Enseignants
92-
//- q-badge(color="primary" floating) {{ ESN }}
93-
//- q-separator
94-
//- q-item(@click="push('/settings')" clickable)
95-
//- q-item-section(avatar)
96-
//- q-icon(name="mdi-cog")
97-
//- q-tooltip.text-body2(anchor="center right" self="center left") Paramètres
98-
//- q-item(@click="test" clickable)
99-
//- q-item-section(avatar)
100-
//- q-icon(name="mdi-logout")
101-
//- q-tooltip.text-body2(anchor="center right" self="center left") Déconnexion
77+
//- q-separator
78+
//- q-item(@click="push('/identities?sort[metadata.lastUpdatedAt]=desc&skip=0&limit=10&filters[^additionalFields.attributes.supann.supannTypeEntiteAffectation]=/etd/i')" clickable)
79+
//- q-item-section(avatar)
80+
//- q-icon(name="mdi-account-off")
81+
//- q-tooltip.text-body2(anchor="center right" self="center left") Etudiants
82+
//- q-badge(color="primary" floating) {{ ETD }}
83+
//- q-item(@click="push('/identities?sort[metadata.lastUpdatedAt]=desc&skip=0&limit=10&filters[^additionalFields.attributes.supann.supannTypeEntiteAffectation]=/adm/i')" clickable)
84+
//- q-item-section(avatar)
85+
//- q-icon(name="mdi-account-tie")
86+
//- q-tooltip.text-body2(anchor="center right" self="center left") Administratifs
87+
//- q-badge(color="primary" floating) {{ ADM }}
88+
//- q-item(@click="push('/identities?sort[metadata.lastUpdatedAt]=desc&skip=0&limit=10&filters[^additionalFields.attributes.supann.supannTypeEntiteAffectation]=/esn/i')" clickable)
89+
//- q-item-section(avatar)
90+
//- q-icon(name="mdi-account-group")
91+
//- q-tooltip.text-body2(anchor="center right" self="center left") Enseignants
92+
//- q-badge(color="primary" floating) {{ ESN }}
93+
//- q-separator
94+
//- q-item(@click="push('/settings')" clickable)
95+
//- q-item-section(avatar)
96+
//- q-icon(name="mdi-cog")
97+
//- q-tooltip.text-body2(anchor="center right" self="center left") Paramètres
98+
//- q-item(@click="test" clickable)
99+
//- q-item-section(avatar)
100+
//- q-icon(name="mdi-logout")
101+
//- q-tooltip.text-body2(anchor="center right" self="center left") Déconnexion
102102
103103
q-page-container
104104
nuxt-page

src/pages/identities/index.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -236,7 +236,7 @@ async function sync(identity: Identity) {
236236
}
237237
238238
function logs(identity: Identity & { _id: string }) {
239-
router.push(`/logs?filters[concernedTo]=${identity._id}`)
239+
router.push(`/logs?filters[:concernedTo.id]=${identity._id}`)
240240
}
241241
242242
const actions = {

src/pages/jobs/index.vue

Lines changed: 90 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -1,53 +1,65 @@
11
<template lang="pug">
22
div
3-
//- .q-px-md
3+
.q-px-md.row
4+
q-space
5+
q-select.col-4(
6+
v-model="jobsBy"
7+
:options="jobsByOptions"
8+
label="Regrouper par"
9+
emit-value
10+
map-options
11+
)
412
//- sesame-searchfilters(:fields="fieldsList")
513
q-timeline.q-px-lg
614
q-infinite-scroll.q-px-lg(@load="load" :offset="250")
715
template(#loading)
816
.row.justify-center.q-my-md
917
q-spinner-dots(color="primary" size="40px")
1018

11-
q-timeline-entry(heading) November, 2017
12-
q-timeline-entry(
13-
v-for="(job, key) in jobs" :key="key"
14-
icon="mdi-account" color="orange"
15-
)
16-
template(#title)
17-
span(v-text="'[' + job.jobId + ']'")
18-
| &nbsp; - &nbsp;
19-
span(v-text="job.params?.identity?.identity?.inetOrgPerson?.cn")
20-
| &nbsp;
21-
span(v-text="job.params?.identity?.identity?.inetOrgPerson?.givenName")
22-
template(#subtitle)
23-
q-card.bg-transparent(flat)
24-
q-card-actions
25-
div(v-text="job.action")
26-
q-space
27-
div
28-
q-icon(name="mdi-clock" size="20px" left)
29-
time(v-text="$dayjs(job.metadata?.createdAt).format('DD/MM/YYYY HH:mm:ss').toString()")
30-
q-card(flat)
31-
q-tabs(
32-
v-model="tabs[key]"
33-
align="justify"
34-
dense
35-
)
36-
q-tab(name="params") Paramètres d'appel
37-
q-tab(name="result") Résultat
38-
q-btn(
39-
v-if="tabs[key]"
40-
@click="delete tabs[key]"
41-
slot="right"
42-
color="primary"
43-
icon="mdi-close"
44-
flat
19+
template(v-for="(day, keyCompute) in computedJobsByDays" :key="keyCompute")
20+
q-timeline-entry(heading)
21+
time(v-text="keyCompute")
22+
q-timeline-entry(
23+
v-for="(job, key) in day" :key="key"
24+
icon="mdi-account" color="orange"
25+
)
26+
template(#title)
27+
span(v-text="'[' + job.jobId + ']'")
28+
| &nbsp; - &nbsp;
29+
span(v-text="job.params?.identity?.identity?.inetOrgPerson?.cn")
30+
| &nbsp;
31+
span(v-text="job.params?.identity?.identity?.inetOrgPerson?.givenName")
32+
template(#subtitle)
33+
q-card.bg-transparent(flat)
34+
q-card-actions
35+
div(v-text="job.action")
36+
q-space
37+
div
38+
q-icon(name="mdi-clock" size="20px" left)
39+
time(v-text="$dayjs(job.metadata?.createdAt).format('DD/MM/YYYY HH:mm:ss').toString()")
40+
q-card(flat)
41+
q-tabs(
42+
v-model="tabs[keyCompute + '_' + key]"
43+
align="justify"
44+
dense
4545
)
46-
q-tab-panels.overflow-auto(v-model="tabs[key]" style="max-height: 300px")
47-
q-tab-panel(name="params")
48-
pre(v-html="JSON.stringify(job.params, null, 2)")
49-
q-tab-panel(name="result")
50-
pre(v-html="JSON.stringify(job.result, null, 2)")
46+
q-tab(name="params") Paramètres d'appel
47+
q-separator(vertical)
48+
q-tab(name="result") Résultat
49+
template(v-if="tabs[keyCompute + '_' + key]")
50+
q-separator(vertical)
51+
q-btn(
52+
@click="delete tabs[keyCompute + '_' + key]"
53+
slot="right"
54+
color="white"
55+
icon="mdi-close"
56+
flat
57+
)
58+
q-tab-panels.overflow-auto(v-model="tabs[keyCompute + '_' + key]" style="max-height: 300px")
59+
q-tab-panel(name="params")
60+
pre(v-html="JSON.stringify(job.params, null, 2)")
61+
q-tab-panel(name="result")
62+
pre(v-html="JSON.stringify(job.result, null, 2)")
5163
</template>
5264

5365
<script lang="ts" setup>
@@ -69,6 +81,8 @@ const scrollTargetRef = ref(null)
6981
const tabs = ref([])
7082
7183
const $route = useRoute();
84+
const $router = useRouter();
85+
const $dayjs = useDayjs();
7286
7387
const offset = ref(0);
7488
const query = computed(() => {
@@ -80,10 +94,45 @@ const query = computed(() => {
8094
};
8195
});
8296
97+
const jobsBy = computed({
98+
get: () => $route.query.jobsBy ? `${$route.query.jobsBy}` : undefined,
99+
set: (value) => {
100+
tabs.value = [] // Reset tabs when changing jobsBy
101+
$router.replace({
102+
query: {
103+
...$route.query,
104+
jobsBy: value,
105+
},
106+
})
107+
},
108+
})
109+
if (!jobsBy.value) {
110+
console.log('jobsBy.value', jobsBy.value)
111+
jobsBy.value = 'DD/MM/YYYY'
112+
}
113+
114+
const jobsByOptions = [
115+
{ label: 'Jour', value: 'DD/MM/YYYY' },
116+
{ label: 'Mois', value: 'MM/YYYY' },
117+
{ label: 'Année', value: 'YYYY' },
118+
]
119+
83120
const jobs = ref<any>([]);
84121
122+
const computedJobsByDays = computed(() => {
123+
const jobsByDays = {}
124+
jobs.value.forEach((job) => {
125+
const day = $dayjs(job.metadata?.createdAt).format(jobsBy.value)
126+
if (!jobsByDays[day]) {
127+
jobsByDays[day] = []
128+
}
129+
jobsByDays[day].push(job)
130+
})
131+
return jobsByDays
132+
});
133+
85134
const load = async (index, done) => {
86-
offset.value = index;
135+
offset.value = index - 1;
87136
const { data, pending, error, refresh } = await useHttp<any>(`/core/jobs/`, {
88137
method: 'GET',
89138
query,

0 commit comments

Comments
 (0)