Auszug |
---|
Das Release 4.4.0 wurde im Mai 2024 veröffentlicht. Dieses Release umfasst:
|
Verbesserung der Barrierefreiheit
Zur Verbesserung der Barrierefreiheit wurden eindeutigere Bezeichnungen, Platzhalter und mehr Aria-Label hinzugefügt. Um diese Änderungen in bestehenden Projekten mit Überschreibung der Konfiguration zu übernehmen, müssen folgende Konfigurationen angepasst werden.
Auf der Ticketliste wird nun im Standard besser formuliert, nach welchen Kriterien gefiltert wird. Dafür wurde der placeholder
der Felder “Bearbeitung von” und “Zugewiesene Gruppe" in der reporting.json
und searchForm.json
geändert:
...
Date-Time-Picker entfernt
Die Komponenten DatePickerField
und DateTimePickerField
wurden entfernt und müssen in allen Konfigurationen durch DateTimeInput
ersetzen werden und das Format über den inputType (date, time)
angegeben. Wird kein inputType
bestimmt, werden Datum und Uhrzeit angezeigt.
Beispiele:
reporting.json
Codeblock { "component": "GridRowCols", "childrenConfig": [ { "component": "DateTimeInput", "colProps": { "
...
breakpoints": { "
...
sm":
...
12, "
...
md":
...
3 }
...
...
}, "
...
props":
...
{
...
...
"
...
id":
...
"received$TimestampFrom",
...
...
"labelText": "
...
labels.
...
createdBy",
...
...
"
...
inputType": "
...
date",
...
...
"
...
doSubmitOnChange":
...
true, "inputProps": {
...
...
...
"className": "w-100"
...
...
...
...
...
...
...
}
...
...
}
...
...
},
...
..... alle Komponenten ersetzen ]
...
}
setDeadline.json
Codeblock {
...
"component": "DateTimeInput",
...
"props": { "id": "
...
deadline", "labelText": "
...
ticketView.labels.
...
setDeadline",
...
...
...
"
...
helpText": "
...
",
...
...
"
...
defaultTime": "
...
08:00", "
...
defaultDate":
...
"now", "
...
errorMessages":
...
{
...
...
...
Sind auf der auf Detailansicht eines Tickets im Abschnitt “Neue Nachricht verfassen” keine Textbausteine vorhanden, kann in newMessageForm.json
unter dem key "noOptionsPlaceholder"
ein Platzhaltertext eingefügt werden:
...
"required": "errorMessages.deadlineRequired"
...
...
},
...
...
...
"validation": [
...
"
...
required",
...
{ "
...
dateTimePicker":
...
{ "
...
onlyFuture":
...
true
...
...
}
...
} ]
...
...
} }
setReminder.json
Codeblock { "
...
component": "
...
DateTimeInput", "props": { "
...
id": "
...
reminder",
...
"labelText": "ticketView.labels.setReminder",
...
...
...
Im searchForm.json
muss der KomponenteMultiSelectField
ein Label für den Lösch-Button übergeben werden:
...
"helpText": "", "
...
defaultTime": "
...
08:00", "
...
defaultDate":
...
"now", "
...
errorMessages": { "
...
required":
...
"errorMessages.reminderRequired"
...
},
...
...
"validation": [
...
...
"
...
required",
...
{ "
...
dateTimePicker":
...
{
...
"
...
onlyFuture":
...
true
...
...
...
}
...
...
...
}
...
...
] } }
Komponenten, die kein sichtbares Label haben, bekommen für eine barrierefreie Bedienung ein Aria -Label. Dieses muss in massoperationForm.json
und textmoduleFilter.json
durch die Angabe ariaLabelClassName": "sr-only"
gesetzt werden:
massoperationForm.json:
...
Verbesserung der Barrierefreiheit
Zur Verbesserung der Barrierefreiheit wurden eindeutigere Bezeichnungen, Platzhalter und mehr Aria-Label hinzugefügt. Um diese Änderungen in bestehenden Projekten mit Überschreibung der Konfiguration zu übernehmen, müssen folgende Konfigurationen angepasst werden.
Auf der Ticketliste wird nun im Standard besser formuliert, nach welchen Kriterien gefiltert wird. Dafür wurde derplaceholder
der Felder “Bearbeitung von” und “Zugewiesene Gruppe" in derreporting.json
undsearchForm.json
geändert:Codeblock { "component": "
...
AutocompleteField",
...
"colProps": {
...
"breakpoints": {
...
"sm":
...
12,
...
"md":
...
6,
...
"lg":
...
3
...
}
...
},
...
"props":
...
{ "id": "
...
assignedUser",
...
"
...
labelText": "
...
ticketList.labels.assignedUser",
...
"
...
doSubmitOnChange":
...
true,
...
"controllerPath": "users",
...
"
...
scope": "
...
ticketListGroupFilter",
...
"
...
labelTemplate": "
...
{firstname} {lastname} ({email})", "
...
inputProps":
...
{ "
...
placeholder":
...
"ticketList.labels.assignedUserPlaceholder" } } }, { "component": "AutocompleteField", "colProps": { "
...
breakpoints":
...
{
...
"
...
sm":
...
12,
...
"md": 6, "lg": 3
...
} },
...
"
...
props":
...
{
...
"id": "assignedGroup", "
...
labelText": "ticketList.labels.
...
assignedGroup", "doSubmitOnChange": true,
...
...
"controllerPath": "groups",
...
"
...
scope": "
...
ticketListGroupFilter", "
...
labelTemplate": "{name}",
...
"
...
inputProps": {
...
"
...
placeholder":
...
"ticketList.labels.assignedGroupPlaceholder" } }
...
},
Sind auf der auf Detailansicht eines Tickets im Abschnitt “Neue Nachricht verfassen” keine Textbausteine vorhanden, kann in
newMessageForm.json
unter dem key"noOptionsPlaceholder"
ein Platzhaltertext eingefügt werden:Codeblock { "component": "GridRow",
...
"
...
childrenConfig": [
...
{
...
"component": "TextModule",
...
"props": {
...
...
...
"
...
id": "
...
textModule",
...
...
"labelText": "
...
ticketView.labels.
...
textmodule",
...
...
"noOptionsPlaceholder": "ticketView.labels.noTextmodule",
...
...
"
...
labelClass": "
...
px-1",
...
"seperateCols": true,
...
...
...
...
"
...
editorId": "
...
messageToUser",
...
...
"
...
noErrorClassName":"mb-2"
...
}
...
...
}
...
] },
Im
searchForm.json
muss der KomponenteMultiSelectField
ein Label für den Lösch-Button übergeben werden:Codeblock
...
{ "
...
component":
...
"MultiSelectField", "props": { "breakpoints": {
...
...
"
...
sm":
...
12,
...
...
...
"
...
xl":
...
6
...
}, "
...
id": "
...
tag",
...
"
...
inputProps": {
...
...
...
"
...
btnLabel": "
...
buttons.delete"
...
...
},
...
...
"
...
labelText":
...
"ticketList.labels.tag",
...
"
...
helpText": "ticketList.
...
helpTexts.
...
tag",
...
...
"custom": false,
...
...
"
...
options": "
...
tags",
...
"doSubmitOnChange":
...
true }
...
}
Komponenten, die kein sichtbares Label haben, bekommen für eine barrierefreie Bedienung ein Aria-Label. Dieses muss in
massoperationForm.json
undtextmoduleFilter.json
durch die AngabeariaLabelClassName": "sr-only"
gesetzt werden:massoperationForm.json:
Codeblock
...
{
...
"
...
component":
...
"TicketRowSelectField",
...
"colProps":
...
{
...
"
...
breakpoints":
...
{
...
"sm": 6,
...
...
...
"
...
md":
...
4,
...
"
...
lg":
...
2 }
...
...
}, "
...
props":
...
{ "
...
id": "
...
selection", "
...
dataId": "
...
selection", "
...
dataItem": "
...
oid", "
...
controllerPath": "
...
users", "
...
ariaLabelClassName":
...
"sr-only", "
...
labelText": "ticketList.labels.
...
selectEntrys",
...
"doSubmitOnChange": true,
...
...
"options": [
...
textmoduleFilter.json:
...
...
...
...
{
...
"
...
value": "
...
all", "
...
label":
...
"ticketList.labels.all" },
...
{ "
...
value": "
...
no",
...
...
"label": "ticketList.labels.no" }
...
...
] } }, {
...
"
...
component": "
...
SelectSearchField", "colProps": { "breakpoints": {
...
...
"sm": 6, "md": 4,
...
...
"lg": 2
...
...
} }, "props": { "
...
id": "
...
status_massop", "options": "UMATTR:sd_status", "className": "w-100", "labelText": "
...
ticketList.labels.
...
assignStatus", "ariaLabelClassName": "sr-only",
...
"inputProps": {
...
"placeholder": "
...
ticketList.labels.
...
assignStatus" } } }, { "component": "AutocompleteField", "colProps":
...
{
...
"breakpoints": {
...
...
"sm": 6,
...
...
"md": 4,
...
Date-Time-Komponenten durch barrierefreiere Komponenten ersetzen
Die Komponente DatePickerField
und DateTimePickerField
müssen in allen Konfigurationen durch DateTimeInput
ersetzen werden und das Format über den inputType (date, time)
angegeben. Wird kein inputType
bestimmt, werden Datum und Uhrzeit angezeigt.
Die Komponente DatePickerField
existiert nicht mehr.
reporting.json
...
"
...
lg":
...
2
...
...
...
} },
...
"props": { "id": "
...
user", "dataId": "assignedUser",
...
...
"dataItem": "oid", "
...
controllerPath":
...
"users", "scope": "assignment", "
...
labelText":
...
"ticketAdd.labels.user", "ariaLabelClassName": "sr-only", "
...
labelTemplate":
...
"{firstname} {lastname} ({email})", "inputProps": {
...
...
"placeholder": "ticketList.labels.assignUser"
...
}
...
} }, { "
...
component": "
...
AutocompleteField", "colProps": { "
...
breakpoints":
...
{
...
"
...
sm":
...
6, "md": 4,
...
...
"lg": 2
...
...
}
...
}, "props": {
...
"id": "group", "dataId": "assignedGroup",
...
...
"dataItem": "oid",
...
"controllerPath": "groups",
...
...
setDeadline.json
...
"scope": "assignment", "
...
labelText":
...
"ticketAdd.labels.group", "
...
ariaLabelClassName":
...
"sr-only",
...
"
...
labelTemplate": "
...
{name}",
...
"
...
inputProps":
...
{ "
...
placeholder": "
...
ticketList.labels.assignGroup" }
...
} }
...
textmoduleFilter.json:
Codeblock { "filterForm": [
...
{
...
"
...
component": "
...
TextModuleFilterWrapper",
...
"childrenConfig": [
...
...
{
...
...
"component": "AutocompleteField",
...
...
"props": {
...
...
"id": "category",
...
...
"dataItem": "cat",
...
...
...
setReminder.json
...
...
"doSubmitOnChange": true,
...
...
...
...
...
"
...
controllerPath": "
...
texts-categories",
...
"
...
noOptionsPlaceholder": "textmodules.noOptionsPlaceholder",
...
"
...
ariaLabelClassName": "
...
sr-only",
...
...
"
...
labelText": "
...
aria.
...
filterTextByCategory",
...
"
...
inputProps":
...
{
...
...
"placeholder": "textmodules.filter"
...
...
}
...
...
...
}
...
...
}
...
...
] } ] }
Funktionserweiterungen
Auf der Seite “Kategorien verwalten” kann einer Kategorie nun ein eigenes Icon zugeordnet werden
Im Texteditor werden Links nun automatisch mit Protokoll (http) versehen
...