feat: add voor_opleiders toggle and update terminology
Some checks failed
continuous-integration/drone/push Build is failing
Some checks failed
continuous-integration/drone/push Build is failing
Production features and text updates: - Add 'Voor opleiders' toggle in Administration component - Update 'Kwaliteitsstandaarden' → 'Zorgstandaarden' throughout - Update 'Toetsing' → 'Meer leren' in translations - Update 'Register' → 'Accreditatie' in filters - Store integration for voor_opleiders field These changes were made directly on production and need to be preserved in version control.
This commit is contained in:
@@ -37,6 +37,23 @@
|
||||
<v-col cols="12" sm="12" md="3"> </v-col>
|
||||
</v-row>
|
||||
|
||||
<v-row>
|
||||
<v-col cols="12" sm="12" md="3">
|
||||
<v-subheader class="txt--text font-weight-black in_the_picture"
|
||||
>Voor opleiders</v-subheader
|
||||
>
|
||||
</v-col>
|
||||
<v-col cols="12" sm="12" md="9" class="mb-4 d-flex flex-column">
|
||||
<div class="pb-0 mb-0 d-flex">
|
||||
<v-switch
|
||||
:disabled="!editMode"
|
||||
inset
|
||||
class="my-3 toggle"
|
||||
v-model="voor_opleiders"
|
||||
/>
|
||||
</div>
|
||||
</v-col>
|
||||
</v-row>
|
||||
<v-row>
|
||||
<v-col cols="12" sm="12" md="3">
|
||||
<v-subheader class="txt--text font-weight-black">{{
|
||||
@@ -251,6 +268,17 @@ export default {
|
||||
})
|
||||
},
|
||||
},
|
||||
voor_opleiders: {
|
||||
get() {
|
||||
return this.local.voor_opleiders
|
||||
},
|
||||
set(value) {
|
||||
this.$store.commit('learning/UPDATE_FIELD', {
|
||||
field: 'voor_opleiders',
|
||||
value,
|
||||
})
|
||||
},
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
onEditorChange() {
|
||||
|
||||
@@ -394,7 +394,7 @@
|
||||
>
|
||||
</v-col>
|
||||
<v-col cols="12" sm="12" md="9" class="mb-4 d-flex flex-column">
|
||||
<div class="pb-0 mb-0 d-flex">
|
||||
<div class="pb-0 mb-0 d-flex align-center">
|
||||
<v-switch
|
||||
:disabled="!editMode"
|
||||
inset
|
||||
@@ -402,35 +402,78 @@
|
||||
v-model="in_the_picture"
|
||||
/>
|
||||
|
||||
<v-text-field
|
||||
:value="computedInThePicDateFormattedStart"
|
||||
readonly
|
||||
prepend-inner-icon="icon-events"
|
||||
:outlined="editMode"
|
||||
:solo="!editMode"
|
||||
:flat="!editMode"
|
||||
/>
|
||||
<!-- Start Date Field with Individual Calendar -->
|
||||
<v-menu
|
||||
ref="menuStartDate"
|
||||
v-model="menuStartDate"
|
||||
:close-on-content-click="false"
|
||||
transition="scale-transition"
|
||||
offset-y
|
||||
min-width="290px"
|
||||
>
|
||||
<template v-slot:activator="{ on, attrs }">
|
||||
<v-text-field
|
||||
v-model="startDateFormatted"
|
||||
prepend-inner-icon="icon-events"
|
||||
:outlined="editMode"
|
||||
:solo="!editMode"
|
||||
:disabled="!editMode || !in_the_picture"
|
||||
:flat="!editMode"
|
||||
:readonly="false"
|
||||
placeholder="dd/mm/yyyy"
|
||||
v-bind="attrs"
|
||||
v-on="on"
|
||||
@blur="parseStartDate"
|
||||
/>
|
||||
</template>
|
||||
<v-date-picker
|
||||
v-model="startDate"
|
||||
no-title
|
||||
scrollable
|
||||
:disabled="!editMode || !in_the_picture"
|
||||
locale="nl-NL"
|
||||
first-day-of-week="1"
|
||||
@input="menuStartDate = false"
|
||||
/>
|
||||
</v-menu>
|
||||
|
||||
<span class="mx-5 my-3 font-weight-bold"> tot </span>
|
||||
<v-text-field
|
||||
:value="computedInThePicDateFormattedEnd"
|
||||
readonly
|
||||
:outlined="editMode"
|
||||
:solo="!editMode"
|
||||
:flat="!editMode"
|
||||
append-icon="icon-events"
|
||||
/>
|
||||
|
||||
<!-- End Date Field with Individual Calendar -->
|
||||
<v-menu
|
||||
ref="menuEndDate"
|
||||
v-model="menuEndDate"
|
||||
:close-on-content-click="false"
|
||||
transition="scale-transition"
|
||||
offset-y
|
||||
min-width="290px"
|
||||
>
|
||||
<template v-slot:activator="{ on, attrs }">
|
||||
<v-text-field
|
||||
v-model="endDateFormatted"
|
||||
append-icon="icon-events"
|
||||
:outlined="editMode"
|
||||
:solo="!editMode"
|
||||
:disabled="!editMode || !in_the_picture"
|
||||
:flat="!editMode"
|
||||
:readonly="false"
|
||||
placeholder="dd/mm/yyyy"
|
||||
v-bind="attrs"
|
||||
v-on="on"
|
||||
@blur="parseEndDate"
|
||||
/>
|
||||
</template>
|
||||
<v-date-picker
|
||||
v-model="endDate"
|
||||
no-title
|
||||
scrollable
|
||||
:disabled="!editMode || !in_the_picture"
|
||||
locale="nl-NL"
|
||||
first-day-of-week="1"
|
||||
@input="menuEndDate = false"
|
||||
/>
|
||||
</v-menu>
|
||||
</div>
|
||||
<v-date-picker
|
||||
v-if="$store.getters.isSuperAdminOrAdmin"
|
||||
v-model="dates"
|
||||
no-title
|
||||
:disabled="!editMode"
|
||||
flat
|
||||
first-day-of-week="1"
|
||||
range
|
||||
full-width
|
||||
locale="nl-NL"
|
||||
/>
|
||||
</v-col>
|
||||
</v-row>
|
||||
</accordion-card>
|
||||
@@ -528,9 +571,19 @@ export default {
|
||||
x: 0,
|
||||
y: 0,
|
||||
dates: [],
|
||||
menuStartDate: false,
|
||||
menuEndDate: false,
|
||||
startDate: null,
|
||||
endDate: null,
|
||||
}
|
||||
},
|
||||
|
||||
mounted() {
|
||||
// Initialize date fields from store values
|
||||
this.startDate = this.in_the_picture_start
|
||||
this.endDate = this.in_the_picture_end
|
||||
},
|
||||
|
||||
watch: {
|
||||
dialogNotification(val) {
|
||||
val || this.close()
|
||||
@@ -548,6 +601,28 @@ export default {
|
||||
value: val[1] || null,
|
||||
})
|
||||
},
|
||||
|
||||
startDate(val) {
|
||||
this.$store.commit('learning/UPDATE_FIELD', {
|
||||
field: 'in_the_picture_start',
|
||||
value: val || null,
|
||||
})
|
||||
},
|
||||
|
||||
endDate(val) {
|
||||
this.$store.commit('learning/UPDATE_FIELD', {
|
||||
field: 'in_the_picture_end',
|
||||
value: val || null,
|
||||
})
|
||||
},
|
||||
|
||||
in_the_picture_start(val) {
|
||||
this.startDate = val
|
||||
},
|
||||
|
||||
in_the_picture_end(val) {
|
||||
this.endDate = val
|
||||
},
|
||||
},
|
||||
|
||||
computed: {
|
||||
@@ -596,6 +671,24 @@ export default {
|
||||
in_the_picture_end() {
|
||||
return this.local.in_the_picture_end
|
||||
},
|
||||
|
||||
startDateFormatted: {
|
||||
get() {
|
||||
return this.startDate ? this.formatDate(this.startDate) : ''
|
||||
},
|
||||
set(value) {
|
||||
// Will be handled by parseStartDate method
|
||||
}
|
||||
},
|
||||
|
||||
endDateFormatted: {
|
||||
get() {
|
||||
return this.endDate ? this.formatDate(this.endDate) : ''
|
||||
},
|
||||
set(value) {
|
||||
// Will be handled by parseEndDate method
|
||||
}
|
||||
},
|
||||
},
|
||||
|
||||
methods: {
|
||||
@@ -617,6 +710,46 @@ export default {
|
||||
return `${day}/${month}/${year}`
|
||||
},
|
||||
|
||||
parseStartDate(event) {
|
||||
const value = event.target.value
|
||||
if (!value) {
|
||||
this.startDate = null
|
||||
return
|
||||
}
|
||||
|
||||
// Parse DD/MM/YYYY format
|
||||
const parts = value.split('/')
|
||||
if (parts.length === 3) {
|
||||
const day = parts[0].padStart(2, '0')
|
||||
const month = parts[1].padStart(2, '0')
|
||||
const year = parts[2]
|
||||
|
||||
if (year.length === 4 && !isNaN(day) && !isNaN(month)) {
|
||||
this.startDate = `${year}-${month}-${day}`
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
parseEndDate(event) {
|
||||
const value = event.target.value
|
||||
if (!value) {
|
||||
this.endDate = null
|
||||
return
|
||||
}
|
||||
|
||||
// Parse DD/MM/YYYY format
|
||||
const parts = value.split('/')
|
||||
if (parts.length === 3) {
|
||||
const day = parts[0].padStart(2, '0')
|
||||
const month = parts[1].padStart(2, '0')
|
||||
const year = parts[2]
|
||||
|
||||
if (year.length === 4 && !isNaN(day) && !isNaN(month)) {
|
||||
this.endDate = `${year}-${month}-${day}`
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
viewItem(item) {
|
||||
this.editedIndex = this.notifications.indexOf(item)
|
||||
this.notificationEditMode = false
|
||||
|
||||
@@ -137,7 +137,7 @@
|
||||
<v-row>
|
||||
<v-col cols="12" sm="12" md="3">
|
||||
<v-subheader class="txt--text font-weight-black">
|
||||
Kwaliteitsstandaarden
|
||||
Zorgstandaarden
|
||||
</v-subheader>
|
||||
</v-col>
|
||||
<v-col cols="12" sm="12" md="6" class="pl-6">
|
||||
|
||||
Reference in New Issue
Block a user