Skip to content

Commit 1d331d5

Browse files
committed
refactor: simplify navigation items in settings and add cron page
1 parent 8bbc359 commit 1d331d5

File tree

3 files changed

+54
-59
lines changed

3 files changed

+54
-59
lines changed

apps/web/src/pages/settings.vue

Lines changed: 11 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -12,35 +12,11 @@
1212
<q-drawer v-model="drawer" show-if-above :width="200" :breakpoint="500" bordered :class="$q.dark.isActive ? 'bg-grey-9' : 'bg-grey-3'">
1313
<q-scroll-area class="fit">
1414
<q-list>
15-
<q-item clickable @click="$router.push('/settings/agents')">
15+
<q-item v-for="item in navItems" :key="item.route" clickable @click="$router.push(item.route)" :active="$route.path === item.route">
1616
<q-item-section avatar>
17-
<q-icon name="mdi-account" />
17+
<q-icon :name="item.icon" />
1818
</q-item-section>
19-
<q-item-section> Utilisateurs </q-item-section>
20-
</q-item>
21-
</q-list>
22-
<q-list>
23-
<q-item clickable @click="$router.push('/settings/password-policy')">
24-
<q-item-section avatar>
25-
<q-icon name="mdi-form-textbox-password" />
26-
</q-item-section>
27-
<q-item-section> Politique de mot de passe </q-item-section>
28-
</q-item>
29-
</q-list>
30-
<q-list>
31-
<q-item clickable @click="$router.push('/settings/smtp')">
32-
<q-item-section avatar>
33-
<q-icon name="mdi-mail" />
34-
</q-item-section>
35-
<q-item-section> Serveur SMTP </q-item-section>
36-
</q-item>
37-
</q-list>
38-
<q-list>
39-
<q-item clickable @click="$router.push('/settings/sms')">
40-
<q-item-section avatar>
41-
<q-icon name="mdi-message-processing" />
42-
</q-item-section>
43-
<q-item-section> Serveur SMS </q-item-section>
19+
<q-item-section> {{ item.label }} </q-item-section>
4420
</q-item>
4521
</q-list>
4622
</q-scroll-area>
@@ -59,4 +35,12 @@
5935
<script setup>
6036
import { ref } from 'vue'
6137
const drawer = ref(false)
38+
39+
const navItems = [
40+
{ route: '/settings/agents', icon: 'mdi-account', label: 'Utilisateurs' },
41+
{ route: '/settings/password-policy', icon: 'mdi-form-textbox-password', label: 'Politique de mot de passe' },
42+
{ route: '/settings/smtp', icon: 'mdi-mail', label: 'Serveur SMTP' },
43+
{ route: '/settings/sms', icon: 'mdi-message-processing', label: 'Serveur SMS' },
44+
{ route: '/settings/cron', icon: 'mdi-clipboard-list', label: 'Tâches planifiés' },
45+
]
6246
</script>

apps/web/src/pages/settings/agents.vue

Lines changed: 40 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,13 @@ q-page.container
1414
:fieldsList="fieldsList"
1515
:selected="selected"
1616
:pending="pending"
17+
:pagination="pagination"
1718
:refresh="refreshEvent"
1819
:error="error"
1920
:titleKey=["username"]
2021
:crud="crud"
2122
:actions="actions"
2223
:defaultRightPanelButton="true"
23-
hide-pagination
24-
hidePanModeSwitch
2524
)
2625
//- template(#top-left)
2726
//- sesame-table-top-left(:selected="selected" @updateLifestep="updateLifestep($event)" @clear="selected = []")
@@ -72,16 +71,16 @@ const $q = useQuasar()
7271
const { handleError } = useErrorHandling()
7372
const form = ref<any>(null)
7473
75-
// onMounted(() => {
76-
// // initializePagination(agents.value?.total)
77-
// })
74+
onMounted(() => {
75+
initializePagination(agents.value?.total)
76+
})
7877
79-
// const { pagination, onRequest, initializePagination } = usePagination()
78+
const { pagination, onRequest, initializePagination } = usePagination()
8079
81-
// const queryWithoutRead = computed(() => {
82-
// const { read, ...rest } = route.query
83-
// return rest
84-
// })
80+
const queryWithoutRead = computed(() => {
81+
const { read, ...rest } = route.query
82+
return rest
83+
})
8584
8685
const {
8786
data: agents,
@@ -90,9 +89,10 @@ const {
9089
error,
9190
} = await useHttp<Response>('/core/agents', {
9291
method: 'get',
93-
query: {
94-
limit: 99999,
95-
},
92+
query: queryWithoutRead,
93+
// query: {
94+
// limit: 99999,
95+
// },
9696
})
9797
9898
if (error.value) {
@@ -105,7 +105,7 @@ if (error.value) {
105105
const columns = ref<QTableProps['columns']>([
106106
{
107107
name: 'username',
108-
label: 'Nom d\'utilisateur',
108+
label: "Nom d'utilisateur",
109109
field: (row: Agent) => row.username,
110110
align: 'left',
111111
sortable: true,
@@ -124,11 +124,7 @@ const columns = ref<QTableProps['columns']>([
124124
align: 'left',
125125
},
126126
])
127-
const visibleColumns = ref<QTableProps['visibleColumns']>([
128-
'username',
129-
'email',
130-
'actions',
131-
])
127+
const visibleColumns = ref<QTableProps['visibleColumns']>(['username', 'email', 'actions'])
132128
const columnsType = ref([
133129
{ name: 'username', type: 'text' },
134130
{ name: 'email', type: 'text' },
@@ -171,20 +167,24 @@ const actions = {
171167
validations.value = {}
172168
},
173169
create: async (row: Agent) => {
174-
175170
// console.log('row', row)
176171
177172
const sanitizedAgent = { ...row }
178173
delete sanitizedAgent.metadata
179174
180-
const { data: result, pending, error, refresh } = await useHttp(`/core/agents`, {
175+
const {
176+
data: result,
177+
pending,
178+
error,
179+
refresh,
180+
} = await useHttp(`/core/agents`, {
181181
method: 'POST',
182182
body: { ...sanitizedAgent },
183-
});
183+
})
184184
if (error.value) {
185185
handleError({
186186
error: error.value,
187-
message: 'Erreur lors de la création'
187+
message: 'Erreur lors de la création',
188188
})
189189
validations.value = error.value.data.validations
190190
} else {
@@ -201,14 +201,19 @@ const actions = {
201201
const sanitizedAgent = { ...row }
202202
delete sanitizedAgent.metadata
203203
204-
const { data: result, pending, error, refresh } = await useHttp(`/core/agents/${row._id}`, {
204+
const {
205+
data: result,
206+
pending,
207+
error,
208+
refresh,
209+
} = await useHttp(`/core/agents/${row._id}`, {
205210
method: 'PATCH',
206211
body: sanitizedAgent,
207-
});
212+
})
208213
if (error.value) {
209214
handleError({
210215
error: error.value,
211-
message: 'Erreur lors de la sauvegarde'
216+
message: 'Erreur lors de la sauvegarde',
212217
})
213218
validations.value = error.value.data.validations
214219
} else {
@@ -224,7 +229,7 @@ const actions = {
224229
delete: async (row: Agent) => {
225230
$q.dialog({
226231
dark: true,
227-
title: 'Suppresion d\'un l\'agent',
232+
title: "Suppresion d'un l'agent",
228233
message: `Vous êtes sur le point de supprimer l\'agent <b>${row.username}</b>. Êtes-vous sûr ?`,
229234
persistent: true,
230235
html: true,
@@ -239,9 +244,14 @@ const actions = {
239244
label: 'Annuler',
240245
},
241246
}).onOk(async () => {
242-
const { data: result, pending, error, refresh } = await useHttp(`/core/agents/${row._id}`, {
247+
const {
248+
data: result,
249+
pending,
250+
error,
251+
refresh,
252+
} = await useHttp(`/core/agents/${row._id}`, {
243253
method: 'DELETE',
244-
});
254+
})
245255
if (error.value) {
246256
handleError({
247257
error: error.value,
@@ -256,7 +266,6 @@ const actions = {
256266
icon: 'mdi-check-circle-outline',
257267
})
258268
}
259-
260269
})
261270
return row
262271
},
@@ -282,8 +291,7 @@ const actions = {
282291
// }
283292
}
284293
return null
285-
}
286-
294+
},
287295
}
288296
289297
const fieldsList = computed(() => {
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
<template lang="pug">
2+
div cron
3+
</template>

0 commit comments

Comments
 (0)