codevdesign 0.0.8 → 0.0.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +16 -8
- package/composants/csqcChaise/chaiseConteneur.vue +330 -0
- package/composants/csqcChaise/chaiseItem.vue +53 -0
- package/index.ts +2 -0
- package/locales/en.json +48 -4
- package/locales/fr.json +3 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
#
|
|
1
|
+
# CODEV DESIGN
|
|
2
2
|
|
|
3
3
|
## À propos
|
|
4
4
|
|
|
@@ -24,13 +24,16 @@ Typescript 5
|
|
|
24
24
|
|
|
25
25
|
## Installation
|
|
26
26
|
|
|
27
|
+
Installez le package via npm en exécutant la commande suivante dans votre projet :
|
|
28
|
+
```
|
|
27
29
|
npm install codevdesign
|
|
30
|
+
```
|
|
28
31
|
|
|
29
32
|
## Utilisation
|
|
30
33
|
|
|
31
|
-
|
|
34
|
+
Pour utiliser les traductions fournies par Codev Design, vous devez d'abord configurer Vue-i18n. Voici un exemple de configuration :
|
|
32
35
|
|
|
33
|
-
|
|
36
|
+
```
|
|
34
37
|
import { createI18n } from 'vue-i18n'
|
|
35
38
|
import { csqcEn, csqcFr } from 'codevdesign' // Importation des traductions du package `codevdesign`
|
|
36
39
|
|
|
@@ -90,21 +93,26 @@ export default createI18n({
|
|
|
90
93
|
fallbackLocale: window.langue,
|
|
91
94
|
silentTranslationWarn: true,
|
|
92
95
|
})
|
|
96
|
+
```
|
|
93
97
|
|
|
98
|
+
Vous pouvez importer les composants directement depuis le package Codev Design comme suit :
|
|
94
99
|
|
|
95
|
-
|
|
96
|
-
exemple d'importation:
|
|
100
|
+
```
|
|
97
101
|
import { pivFooter, pivEntete, csqcMenu, csqcAlerteErreur, csqcSnackbar } from 'codevdesign'
|
|
102
|
+
```
|
|
103
|
+
Ces composants sont prêts à être utilisés dans vos pages ou vos composants Vue.js.
|
|
98
104
|
|
|
99
105
|
|
|
100
106
|
## Documentation
|
|
101
107
|
|
|
102
|
-
Un bac à sable avec
|
|
108
|
+
Un bac à sable interactif avec la documentation détaillée des props des composants est disponible pour les membres de la CDPVD. Vous pouvez y accéder ici : https://espacedev.csqc.ca/codevdesign
|
|
109
|
+
|
|
103
110
|
|
|
104
111
|
## Gestion des versions
|
|
105
112
|
|
|
106
|
-
|
|
113
|
+
Toutes les versions disponibles ainsi que les journaux des changements apportés sont disponibles sur la page npm du package : https://www.npmjs.com/package/codevdesign?activeTab=versions.
|
|
114
|
+
|
|
107
115
|
|
|
108
116
|
## Licence
|
|
109
117
|
|
|
110
|
-
|
|
118
|
+
Ce package Codev Design est fourni sans licence spécifique. Vous pouvez l'utiliser dans vos projets à votre discrétion, mais il n'y a aucune garantie légale.
|
|
@@ -0,0 +1,330 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="pa-2 mt-2 mb-1 mr-1">
|
|
3
|
+
<!--on affiche une div avec les infos de préférences si le user a déjà au moins une préférence, au moins une unité et si activerDiv est à true.-->
|
|
4
|
+
<div v-if="preferences && unites && unites.length > 0 && activerDivPreferences">
|
|
5
|
+
<v-card
|
|
6
|
+
width="375"
|
|
7
|
+
outlined
|
|
8
|
+
>
|
|
9
|
+
<v-card-text
|
|
10
|
+
flat
|
|
11
|
+
class="pt-0 mt-0"
|
|
12
|
+
>
|
|
13
|
+
<v-progress-linear
|
|
14
|
+
v-if="chargementEnCours"
|
|
15
|
+
indeterminate
|
|
16
|
+
/>
|
|
17
|
+
<div
|
|
18
|
+
v-if="!chargementEnCours"
|
|
19
|
+
class="pt-2"
|
|
20
|
+
>
|
|
21
|
+
<div class="text-overline text-h6 mb-2">{{ texteTitre }}</div>
|
|
22
|
+
<!-- <div v-if="existePreference == false">
|
|
23
|
+
Cliquer sur modifier ou lors de la soumission, vous pourrez sélectionner vos préférences de suivi.
|
|
24
|
+
</div>-->
|
|
25
|
+
<div>
|
|
26
|
+
<v-list-item
|
|
27
|
+
v-for="uniteId in Object.keys(dictChaisesReleve).map(Number)"
|
|
28
|
+
:key="uniteId"
|
|
29
|
+
class="mb-1"
|
|
30
|
+
>
|
|
31
|
+
<chaiseItem
|
|
32
|
+
:uniteId="uniteId"
|
|
33
|
+
:preferences="preferences"
|
|
34
|
+
:dictChaisesReleve="dictChaisesReleve"
|
|
35
|
+
:unites="unites"
|
|
36
|
+
/>
|
|
37
|
+
</v-list-item>
|
|
38
|
+
</div>
|
|
39
|
+
</div>
|
|
40
|
+
</v-card-text>
|
|
41
|
+
<v-card-actions>
|
|
42
|
+
<div class="flex-grow-1"></div>
|
|
43
|
+
<v-btn
|
|
44
|
+
v-if="chargementEnCours == false"
|
|
45
|
+
rounded
|
|
46
|
+
outlined
|
|
47
|
+
small
|
|
48
|
+
@click.stop="modifier"
|
|
49
|
+
>{{ $t('csqc.bouton.modifier') }}</v-btn
|
|
50
|
+
>
|
|
51
|
+
</v-card-actions>
|
|
52
|
+
</v-card>
|
|
53
|
+
</div>
|
|
54
|
+
|
|
55
|
+
<v-dialog
|
|
56
|
+
max-width="largeur"
|
|
57
|
+
:fullscreen="display.name.value == 'xs'"
|
|
58
|
+
v-model="visible"
|
|
59
|
+
@click:outside="annuler"
|
|
60
|
+
@keydown.esc="annuler"
|
|
61
|
+
>
|
|
62
|
+
<v-card :class="['pa-0', display.name.value != 'xs' ? 'v-card-color-solid' : 'v-card-color-solid-xs']">
|
|
63
|
+
<v-container :class="display.name.value == 'xs' ? 'pl-1 pr-3' : ''">
|
|
64
|
+
<h3 class="pb-3 pl-2">{{ texteTitre }}</h3>
|
|
65
|
+
<hr class="pl-2" />
|
|
66
|
+
<v-card-text flat>
|
|
67
|
+
<i>{{ info }}</i>
|
|
68
|
+
<v-progress-linear
|
|
69
|
+
v-if="chargementEnCours"
|
|
70
|
+
indeterminate
|
|
71
|
+
/>
|
|
72
|
+
<div
|
|
73
|
+
v-if="!chargementEnCours"
|
|
74
|
+
class="pt-4"
|
|
75
|
+
>
|
|
76
|
+
<v-row v-if="toutesUnitesPreferencesSelectionnees === false">
|
|
77
|
+
<v-col cols="12">
|
|
78
|
+
<v-alert
|
|
79
|
+
dismissible
|
|
80
|
+
v-model="afficherErreur"
|
|
81
|
+
type="error"
|
|
82
|
+
>{{ $t('csqc.message.chaiseSelectionToutes') }}</v-alert
|
|
83
|
+
>
|
|
84
|
+
</v-col>
|
|
85
|
+
</v-row>
|
|
86
|
+
<v-row>
|
|
87
|
+
<v-col
|
|
88
|
+
cols="12"
|
|
89
|
+
sm="4"
|
|
90
|
+
md="3"
|
|
91
|
+
v-for="uniteId in Object.keys(dictChaisesReleve).map(Number)"
|
|
92
|
+
:key="uniteId"
|
|
93
|
+
>
|
|
94
|
+
<label>{{ getUnite(uniteId)?.nom || '' }}</label>
|
|
95
|
+
<br />
|
|
96
|
+
<v-radio-group v-model="selection[uniteId]">
|
|
97
|
+
<v-radio
|
|
98
|
+
v-for="chaise in dictChaisesReleve[uniteId]"
|
|
99
|
+
:key="chaise.id"
|
|
100
|
+
:label="chaise.nom"
|
|
101
|
+
:value="chaise.id"
|
|
102
|
+
></v-radio>
|
|
103
|
+
</v-radio-group>
|
|
104
|
+
</v-col>
|
|
105
|
+
</v-row>
|
|
106
|
+
</div>
|
|
107
|
+
</v-card-text>
|
|
108
|
+
</v-container>
|
|
109
|
+
|
|
110
|
+
<v-card-actions>
|
|
111
|
+
<div class="flex-grow-1"></div>
|
|
112
|
+
<v-btn
|
|
113
|
+
color="primary"
|
|
114
|
+
outlined
|
|
115
|
+
@click.stop="annuler"
|
|
116
|
+
>Annuler</v-btn
|
|
117
|
+
>
|
|
118
|
+
<v-btn
|
|
119
|
+
color="primary"
|
|
120
|
+
@click.stop="ok"
|
|
121
|
+
>Ok</v-btn
|
|
122
|
+
>
|
|
123
|
+
</v-card-actions>
|
|
124
|
+
</v-card>
|
|
125
|
+
</v-dialog>
|
|
126
|
+
</div>
|
|
127
|
+
</template>
|
|
128
|
+
|
|
129
|
+
<script lang="ts" setup>
|
|
130
|
+
import { ref, computed, defineProps, defineEmits, onMounted } from 'vue'
|
|
131
|
+
import axios from '@/outils/appAxios.ts'
|
|
132
|
+
import chaiseItem from './chaiseItem.vue'
|
|
133
|
+
import { useDisplay } from 'vuetify'
|
|
134
|
+
const display = useDisplay()
|
|
135
|
+
|
|
136
|
+
// Définition des props
|
|
137
|
+
const props = defineProps<{
|
|
138
|
+
activerDivPreferences: boolean
|
|
139
|
+
typeintervenant: string
|
|
140
|
+
demandeid: string
|
|
141
|
+
formulaireid: string
|
|
142
|
+
urlbase: string
|
|
143
|
+
titre?: string
|
|
144
|
+
texteinfo?: string
|
|
145
|
+
largeur?: number
|
|
146
|
+
}>()
|
|
147
|
+
|
|
148
|
+
// Définition des emits
|
|
149
|
+
const emit = defineEmits<{
|
|
150
|
+
(event: 'annuler'): void
|
|
151
|
+
(event: 'confirmer'): void
|
|
152
|
+
}>()
|
|
153
|
+
|
|
154
|
+
// Variables réactives
|
|
155
|
+
const visible = ref(false)
|
|
156
|
+
const chargementEnCours = ref(false)
|
|
157
|
+
const afficherErreur = ref(false)
|
|
158
|
+
const unites = ref<Array<{ id: number; nom: string }>>([])
|
|
159
|
+
const preferences = ref<Array<{ uniteId: number; chaiseId: number }>>([])
|
|
160
|
+
const dictChaisesReleve = ref<Record<number, Array<{ id: number; nom: string }>>>({})
|
|
161
|
+
const selection = ref<Record<number, number>>({})
|
|
162
|
+
const modeModifier = ref(false)
|
|
163
|
+
|
|
164
|
+
// Méthodes
|
|
165
|
+
const soumettre = async () => {
|
|
166
|
+
modeModifier.value = false
|
|
167
|
+
await ouvrir()
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
const ouvrir = async () => {
|
|
171
|
+
// Mode sans les divs
|
|
172
|
+
if (props.activerDivPreferences === false) {
|
|
173
|
+
await chargementPreferences()
|
|
174
|
+
visible.value = true
|
|
175
|
+
return
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
// Mode avec div, mais il manque une sélection
|
|
179
|
+
if (!toutesUnitesPreferencesSelectionnees.value) {
|
|
180
|
+
visible.value = true
|
|
181
|
+
return
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
// Tout est beau
|
|
185
|
+
await ok()
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
const definitionSelectionDepart = () => {
|
|
189
|
+
for (let uniteId in dictChaisesReleve.value) {
|
|
190
|
+
const chaises = dictChaisesReleve.value[uniteId]
|
|
191
|
+
const uniteIdNum = Number(uniteId) // Convert to number
|
|
192
|
+
|
|
193
|
+
const pref = preferences.value.find(
|
|
194
|
+
pref => pref.uniteId === uniteIdNum && chaises.some(chaise => chaise.id === pref.chaiseId),
|
|
195
|
+
)
|
|
196
|
+
|
|
197
|
+
const chaiseIdDefaut = pref?.chaiseId ?? (chaises.length === 1 ? chaises[0].id : -1)
|
|
198
|
+
selection.value[uniteIdNum] = chaiseIdDefaut // Ensure key consistency
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
const estPrefere = (uniteId: number, chaiseId: number) => {
|
|
202
|
+
return preferences.value.some(x => x.uniteId === uniteId && x.chaiseId === chaiseId)
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
const annuler = () => {
|
|
206
|
+
visible.value = false
|
|
207
|
+
modeModifier.value = false
|
|
208
|
+
emit('annuler')
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
const getUnite = (uniteId: number) => {
|
|
212
|
+
return unites.value.find(x => x.id === uniteId)
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
const modifier = () => {
|
|
216
|
+
modeModifier.value = true
|
|
217
|
+
visible.value = true
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
const ok = async () => {
|
|
221
|
+
await sauvegarder()
|
|
222
|
+
if (toutesUnitesPreferencesSelectionnees.value) {
|
|
223
|
+
if (!modeModifier.value) {
|
|
224
|
+
emit('confirmer')
|
|
225
|
+
}
|
|
226
|
+
visible.value = false
|
|
227
|
+
modeModifier.value = false
|
|
228
|
+
} else {
|
|
229
|
+
afficherErreur.value = true
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
const sauvegarder = async () => {
|
|
234
|
+
for (let uniteId in dictChaisesReleve.value) {
|
|
235
|
+
const chaiseId = selection.value[uniteId]
|
|
236
|
+
if (chaiseId <= 0) {
|
|
237
|
+
continue
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
// Cibler l'ancienne préférence reliée à une des chaises de cette unité
|
|
241
|
+
let prefIndexDeUnite = -1
|
|
242
|
+
for (let i = 0; i < dictChaisesReleve.value[uniteId].length; i++) {
|
|
243
|
+
prefIndexDeUnite = preferences.value.findIndex(p => p.chaiseId === dictChaisesReleve.value[uniteId][i].id)
|
|
244
|
+
if (prefIndexDeUnite >= 0) {
|
|
245
|
+
break
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
try {
|
|
250
|
+
const response = await axios
|
|
251
|
+
.getAxios()
|
|
252
|
+
.put(
|
|
253
|
+
`${props.urlbase}/api/ComposantUI/Preferences/${props.formulaireid}/Unite/${uniteId}/Chaise/${chaiseId}/TypeIntervenant/${props.typeintervenant}`,
|
|
254
|
+
)
|
|
255
|
+
|
|
256
|
+
const itemRecu = response.data // Extract the actual data
|
|
257
|
+
|
|
258
|
+
// Écraser l'ancienne sélection
|
|
259
|
+
if (prefIndexDeUnite >= 0) {
|
|
260
|
+
preferences.value[prefIndexDeUnite] = itemRecu
|
|
261
|
+
} else {
|
|
262
|
+
preferences.value = [itemRecu]
|
|
263
|
+
}
|
|
264
|
+
} catch (e) {
|
|
265
|
+
console.error(e)
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
const chargementPreferences = async () => {
|
|
271
|
+
chargementEnCours.value = true
|
|
272
|
+
// Ramasse les infos des chaises par unité
|
|
273
|
+
dictChaisesReleve.value = await axios
|
|
274
|
+
.getAxios()
|
|
275
|
+
.get(`${props.urlbase}/api/ComposantUI/ReleveDe/${props.typeintervenant}/Demande/${props.demandeid}`)
|
|
276
|
+
|
|
277
|
+
// Ramasse les préférences de l'usager
|
|
278
|
+
preferences.value = await axios
|
|
279
|
+
.getAxios()
|
|
280
|
+
.get(
|
|
281
|
+
`${props.urlbase}/api/ComposantUI/Preferences/${props.formulaireid}/TypeIntervenant/${props.typeintervenant}`,
|
|
282
|
+
)
|
|
283
|
+
definitionSelectionDepart()
|
|
284
|
+
|
|
285
|
+
await sauvegarder() // Immédiatement on sauvegarde pour les choix uniques.
|
|
286
|
+
|
|
287
|
+
chargementEnCours.value = false
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
const texteTitre = computed(() => {
|
|
291
|
+
return props.titre || ''
|
|
292
|
+
})
|
|
293
|
+
|
|
294
|
+
const info = computed(() => {
|
|
295
|
+
return props.texteinfo || ''
|
|
296
|
+
})
|
|
297
|
+
|
|
298
|
+
const existePreference = computed(() => {
|
|
299
|
+
for (let uniteId in dictChaisesReleve.value) {
|
|
300
|
+
for (let i = 0; i < dictChaisesReleve.value[uniteId].length; i++) {
|
|
301
|
+
if (preferences.value.some(p => p.chaiseId === dictChaisesReleve.value[uniteId][i].id)) {
|
|
302
|
+
return true
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
return false
|
|
307
|
+
})
|
|
308
|
+
|
|
309
|
+
const toutesUnitesPreferencesSelectionnees = computed(() => {
|
|
310
|
+
for (let uniteId in dictChaisesReleve.value) {
|
|
311
|
+
let uniteOk = false
|
|
312
|
+
for (let i = 0; i < dictChaisesReleve.value[uniteId].length; i++) {
|
|
313
|
+
if (preferences.value.some(p => p.chaiseId === dictChaisesReleve.value[uniteId][i].id)) {
|
|
314
|
+
uniteOk = true
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
if (!uniteOk) return false
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
return true // Toutes les unités ont été sélectionnées
|
|
322
|
+
})
|
|
323
|
+
|
|
324
|
+
onMounted(async () => {
|
|
325
|
+
chargementEnCours.value = true
|
|
326
|
+
// Ramasse les unités de l'usager
|
|
327
|
+
unites.value = await axios.getAxios().get(`${props.urlbase}/api/ComposantUI/Unites`)
|
|
328
|
+
chargementPreferences()
|
|
329
|
+
})
|
|
330
|
+
</script>
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div>
|
|
3
|
+
<v-list-item-content>
|
|
4
|
+
<v-list-item-title>{{ nomUnite }}</v-list-item-title>
|
|
5
|
+
<v-list-item-subtitle v-if="getPreference != ''">
|
|
6
|
+
{{ getPreference }}
|
|
7
|
+
</v-list-item-subtitle>
|
|
8
|
+
<v-list-item-subtitle
|
|
9
|
+
v-if="getPreference == ''"
|
|
10
|
+
class="messageErreurChaiseItem"
|
|
11
|
+
>
|
|
12
|
+
{{ $t('csqc.message.chaiseSelection') }}
|
|
13
|
+
</v-list-item-subtitle>
|
|
14
|
+
</v-list-item-content>
|
|
15
|
+
</div>
|
|
16
|
+
</template>
|
|
17
|
+
<script lang="ts" setup>
|
|
18
|
+
import { computed } from 'vue'
|
|
19
|
+
|
|
20
|
+
// Définition des props
|
|
21
|
+
const props = defineProps<{
|
|
22
|
+
uniteId: number
|
|
23
|
+
preferences: Array<{ chaiseId: number }>
|
|
24
|
+
dictChaisesReleve: Record<number, Array<{ id: number; nom: string }>>
|
|
25
|
+
unites: Array<{ id: number; nom: string }>
|
|
26
|
+
}>()
|
|
27
|
+
|
|
28
|
+
const nomUnite = computed(() => {
|
|
29
|
+
if (!props.uniteId || !props.unites?.length) {
|
|
30
|
+
return ''
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
const unite = props.unites.find(u => u.id == props.uniteId)
|
|
34
|
+
return unite?.nom || ''
|
|
35
|
+
})
|
|
36
|
+
|
|
37
|
+
const getPreference = computed(() => {
|
|
38
|
+
for (let i = 0; i < props.dictChaisesReleve[props.uniteId]?.length; i += 1) {
|
|
39
|
+
if (props.preferences.some(p => p.chaiseId == props.dictChaisesReleve[props.uniteId][i].id)) {
|
|
40
|
+
return props.dictChaisesReleve[props.uniteId][i].nom
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
return ''
|
|
45
|
+
})
|
|
46
|
+
</script>
|
|
47
|
+
|
|
48
|
+
<style scoped>
|
|
49
|
+
.messageErreurChaiseItem {
|
|
50
|
+
color: red !important;
|
|
51
|
+
font-style: italic;
|
|
52
|
+
}
|
|
53
|
+
</style>
|
package/index.ts
CHANGED
|
@@ -9,6 +9,7 @@ import pivFooter from './composants/gabarit/pivPiedPage.vue'
|
|
|
9
9
|
import csqcMenu from './composants/gabarit/csqcMenu.vue'
|
|
10
10
|
import csqcConfirmation from './composants/csqcConfirmation.vue'
|
|
11
11
|
import csqcTable from './composants/csqcTable/csqcTable.vue'
|
|
12
|
+
import csqcChaise from './composants/csqcChaise/chaiseConteneur.vue'
|
|
12
13
|
|
|
13
14
|
import modeleUtilisateur from './modeles/utilisateur'
|
|
14
15
|
import modeleUnite from './modeles/unite'
|
|
@@ -29,6 +30,7 @@ export {
|
|
|
29
30
|
csqcTable,
|
|
30
31
|
csqcTiroir,
|
|
31
32
|
csqcMenu,
|
|
33
|
+
csqcChaise,
|
|
32
34
|
pivFooter,
|
|
33
35
|
pivEntete,
|
|
34
36
|
modeleUtilisateur,
|
package/locales/en.json
CHANGED
|
@@ -1,9 +1,53 @@
|
|
|
1
1
|
{
|
|
2
|
+
"csqc": {
|
|
3
|
+
"bouton": {
|
|
4
|
+
"activer": "Activate",
|
|
5
|
+
"ajouter": "Add",
|
|
6
|
+
"annuler": "Cancel",
|
|
7
|
+
"anonymiser": "Anonymize",
|
|
8
|
+
"completer": "Complete",
|
|
9
|
+
"continuer": "Continue",
|
|
10
|
+
"desactiver": "Deactivate",
|
|
11
|
+
"envoyer": "Send",
|
|
12
|
+
"exporter": "Export",
|
|
13
|
+
"fermer": "Close",
|
|
14
|
+
"generer": "Generate",
|
|
15
|
+
"importer": "Import",
|
|
16
|
+
"modifier": "Edit",
|
|
17
|
+
"non": "No",
|
|
18
|
+
"ok": "Ok",
|
|
19
|
+
"oui": "Yes",
|
|
20
|
+
"ouvrir": "Open",
|
|
21
|
+
"recharger": "Reload",
|
|
22
|
+
"reinitialiser": "Reset",
|
|
23
|
+
"restaurer": "Restore",
|
|
24
|
+
"sauvegarder": "Save",
|
|
25
|
+
"supprimer": "Delete",
|
|
26
|
+
"televerser": "Upload"
|
|
27
|
+
},
|
|
28
|
+
"label": {
|
|
29
|
+
"actif": "Active",
|
|
30
|
+
"fermer": "Close",
|
|
31
|
+
"nom": "Name",
|
|
32
|
+
"recherche": "Search",
|
|
33
|
+
"rechercheAvanceeDefaut": "Advanced search",
|
|
34
|
+
"rechercher": "Search"
|
|
35
|
+
},
|
|
36
|
+
"message": {
|
|
37
|
+
"supprimerMessage": "Are you sure you want to delete {nom}?",
|
|
38
|
+
"supprimerTitre": "Delete confirmation!",
|
|
39
|
+
"chaiseSelection": "No selection for this unit",
|
|
40
|
+
"chaiseSelectionToutes": "Please make a selection for all units."
|
|
41
|
+
},
|
|
2
42
|
"pivEntete": {
|
|
3
|
-
|
|
4
|
-
"nom_application": "Codev Design"
|
|
43
|
+
"langue": "Français"
|
|
5
44
|
},
|
|
6
45
|
"pivFooter": {
|
|
7
|
-
|
|
46
|
+
"logoAlt": ""
|
|
47
|
+
},
|
|
48
|
+
"placeholder": {
|
|
49
|
+
"date": "Choose a date",
|
|
50
|
+
"selectionner": "Select"
|
|
8
51
|
}
|
|
9
|
-
}
|
|
52
|
+
}
|
|
53
|
+
}
|
package/locales/fr.json
CHANGED
|
@@ -35,7 +35,9 @@
|
|
|
35
35
|
},
|
|
36
36
|
"message": {
|
|
37
37
|
"supprimerMessage": "Voulez-vous vraiment supprimer {nom}?",
|
|
38
|
-
"supprimerTitre": "Confirmation de suppression!"
|
|
38
|
+
"supprimerTitre": "Confirmation de suppression!",
|
|
39
|
+
"chaiseSelection": "Aucune sélection pour cette unité",
|
|
40
|
+
"chaiseSelectionToutes": "Veuillez faire une sélection pour toutes les unités."
|
|
39
41
|
},
|
|
40
42
|
"pivEntete": {
|
|
41
43
|
"langue": "English"
|