editorShape
Beschreibung
Optional. Ein Array von Objekten, die die Einstellungen zur Steuerung des Aussehens und Verhaltens des Kanban-Editors definieren.
Verwendung
editorShape?: [
{
// gemeinsame Parameter für alle Typen
type: string,
key: string,
label?: string,
// nur für den Typ "dateRange"
key: {
start: string,
end: string
},
config?: {
align?: "start" | "center" | "end",
editable?: boolean | function,
buttons?: boolean,
css?: string,
disabled?: boolean,
done?: boolean,
error?: boolean,
format?: string,
months?: number,
placeholder?: string,
title?: string,
width?: string
},
// nur für den Typ "date"
config?: {
align?: "start" | "center" | "end",
editable?: boolean | function,
buttons?: boolean,
css?: string,
disabled?: boolean,
error?: boolean,
format?: string,
placeholder?: string,
title?: string,
width?: string
},
// nur für den Typ "color"
values?: array,
config?: {
clear?: boolean,
disabled?: boolean,
error?: boolean,
placeholder?: string,
title?: string
},
// nur für die Typen "combo", "select" und "multiselect"
values?: [
{
id: string | number,
label: string,
avatar?: string // nur für den Typ "multiselect"
},
{...} // andere Optionen
],
config?: {
clearButton?: boolean, // nur für den Typ "combo"
label?: string, // nur für den Typ "select"
checkboxes?: boolean, // nur für den Typ "multiselect"
// gemeinsame Parameter
disabled?: boolean,
error?: boolean,
placeholder?: string,
textField?: string,
title?: string
},
// nur für den Typ "text"
config?: {
css?: string,
disabled?: boolean,
error?: boolean,
focus?: boolean,
icon?: string,
inputStyle?: string,
placeholder?: string,
readonly?: boolean,
select?: boolean,
title?: string,
type?: string
},
// nur für den Typ "textarea"
config? {
disabled?: boolean,
error?: boolean,
placeholder?: string,
title?: string,
readonly?: boolean
},
// nur für den Typ "progress"
config?: {
disabled?: boolean,
label?: string,
max?: number,
min?: number,
step?: number,
title?: string,
width?: number
},
// nur für den Typ "files"
uploadURL?: string | function,
config?: {
accept?: string,
disabled?: boolean,
multiple?: boolean,
folder?: boolean,
},
// nur für den Typ "comments"
config?: {
format?: string,
placement?: "page" | "editor",
html?: boolean,
confirmDeletion?: boolean
},
// nur für den Typ "links"
config?: {
confirmDeletion?: boolean
},
}, { /* andere Steuerungs-Einstellungen */ }
];
Parameter
Das Aussehen und die Funktionen des Editors können durch folgende Parameter (Felder) angepasst werden:
- Gemeinsame Parameter für alle Typen
type
- (erforderlich) definiert den Typ des Editor-Feldes.
Unterstützte Feldtypen im Kanban-Editor sind: dateRange, date, combo, select, multiselect, color, text, textarea, progress, files, comments und links.
key
- (erforderlich) der Schlüssel für das Editor-Feld. Dieser sollte mit dem Wert in dercardShape
-Eigenschaft übereinstimmen. Beispiel:
// Einstellungen zur Kartenanzeige
const cardShape = {
...kanban.defaultCardShape,
headerFields: [
{ // benutzerdefiniertes Feld
label: "Custom field",
css: "custom_style",
key: "custom_key"
}
]
};
// Einstellungen zum Editor-Aussehen
const editorShape = [
{
label: "Custom field",
type: "text",
key: "custom_key"
}
];
label
- (optional) Beschriftung für das Editor-Feld.
- Parameter für den Typ "dateRange"
key
- (erforderlich) ein Objekt mit den Schlüsseln für das Editor-Feld:start
- (erforderlich) Schlüssel für das Startdatumend
- (erforderlich) Schlüssel für das Enddatum
Diese Schlüssel entsprechen denen in der cardShape
-Eigenschaft.
config
- (optional) Konfigurationsobjekt für das Feld "dateRange" mit folgenden Optionen:align
- (optional) Ausrichtung des Kalender-Popups relativ zur Date Range Steuerungeditable
- (optional) steuert, ob der Datumsauswahl-Dialog editierbar ist; kann auch ein benutzerdefiniertes Format definierenbuttons
- (optional) zeigt oder versteckt die Heute- und L öschen-Schaltflächen unter dem Kalender-Popupcss
- (optional) passt die Position des Symbols in der Date Range Steuerung andisabled
- (optional) deaktiviert die Date Range Steuerungdone
- (optional) zeigt oder versteckt die Fertig-Schaltfläche in der Date Range Steuerungerror
- (optional) wendet Fehler-Styling auf die Date Range Steuerung anformat
- (optional) definiert das Datumsformat für die Date Range Steuerung. Siehe verfügbare Optionen hiermonths
- (optional) bestimmt, wie viele Kalender in der Date Range Steuerung angezeigt werdenplaceholder
- (optional) setzt den Platzhaltertext für die Date Range Steuerungtitle
- (optional) fügt Tooltip oder Titel für die Date Range Steuerung hinzuwidth
- (optional) passt die Breite des Kalender-Popups an
- Parameter für den Typ "date"
config
- (optional) Konfigurationsobjekt für das Feld "date" mit diesen Optionen:align
- (optional) steuert die Ausrichtung des Kalender-Popups relativ zur Date Steuerungeditable
- (optional) schaltet die Editierbarkeit des Datumsauswahl-Dialogs ein/aus; kann ein benutzerdefiniertes Format definierenbuttons
- (optional) zeigt oder versteckt Heute- und Löschen-Schaltflächen im Kalender-Popupcss
- (optional) ändert die Symbolposition in der Date Steuerungdisabled
- (optional) deaktiviert die Date Steuerungerror
- (optional) wendet Fehler-Styling auf die Date Steuerung anformat
- (optional) definiert das Datumsformat für die Date Steuerung. Referenz hierplaceholder
- (optional) setzt den Platzhaltertext für die Date Steuerungtitle
- (optional) fügt Tooltip oder Titel für die Date Steuerung hinzuwidth
- (optional) setzt die Breite des Kalender-Popups
- Parameter für den Typ "color"
values
- (optional) Array gültiger HEX-Farb-Codesconfig
- (optional) Konfigurationsobjekt für das Feld "color" mit:placeholder
- (optional) Platzhalter für die Farbauswahlclear
- (optional) zeigt oder versteckt ein Löschen-Symboldisabled
- (optional) deaktiviert die Farbauswahlerror
- (optional) wendet Fehler-Styling antitle
- (optional) fügt Tooltip oder Titel zur Farbauswahl hinzu
- Parameter für die Typen "combo", "select" und "multiselect"
values
- (optional) Array von Objekten, die Dropdown-Optionen repräsentieren:id
- (erforderlich) Options-IDlabel
- (erforderlich) Options-Beschriftungavatar
- (optional) Pfad zu einem Bild (nur für "multiselect")
Verwenden Sie "select" oder "combo" Typen zur Auswahl eines einzelnen Benutzers und "multiselect" zur Auswahl mehrerer Benutzer.
config
- (optional) Konfigurationsobjekt für diese Typen, inklusive:-
clearButton
- (optional) fügt eine Löschen-Schaltfläche im Combo-Eingabefeld hinzu ("combo" nur) -
label
- (optional) bindet Optionen an die Eingabe über diesen Schlüssel ("select" nur) -
checkboxes
- (optional) aktiviert Checkboxen neben Optionen ("multiselect" nur) -
textField
- (optional) bindet Combo-Optionen an die Eingabe über diesen Schlüssel ("combo" und "multiselect") -
disabled
- (optional) deaktiviert die Steuerung -
error
- (optional) wendet Fehler-Styling an -
placeholder
- (optional) setzt Platzhaltertext -
title
- (optional) fügt Tooltip oder Titel hinzu
-
- Parameter für den Typ "text"
config
- (optional) Konfigurationsobjekt für das Feld "text" mit:css
- (optional) setzt die Icon-Position innerhalb der Textsteuerungdisabled
- (optional) deaktiviert die Textsteuerungerror
- (optional) wendet Fehler-Styling anfocus
- (optional) setzt den Fokus in die Textsteuerungicon
- (optional) fügt ein Icon in die Textsteuerung eininputStyle
- (optional) wendet benutzerdefiniertes Styling anplaceholder
- (optional) setzt Platzhaltertextreadonly
- (optional) macht die Textsteuerung schreibgeschütztselect
- (optional) markiert den Inhalt der Textsteuerungtitle
- (optional) fügt Tooltip oder Titel hinzutype
- (optional) definiert den Eingabetyp
- Parameter für den Typ "textarea"
config
- (optional) Konfigurationsobjekt für das Feld "textarea" inklusive:disabled
- (optional) deaktiviert die Textarea-Steuerungerror
- (optional) wendet Fehler-Styling anplaceholder
- (optional) setzt Platzhaltertexttitle
- (optional) fügt Tooltip oder Titel hinzureadonly
- (optional) macht Textarea schreibgeschützt
- Parameter für den Typ "progress"
config
- (optional) Konfigurationsobjekt für das Feld "progress" mit:disabled
- (optional) deaktiviert die Fortschrittsanzeigelabel
- (optional) Beschriftung über der Steuerungmax
- (optional) maximaler Wertmin
- (optional) minimaler Wertstep
- (optional) Schrittweitetitle
- (optional) Tooltip oder Titelwidth
- (optional) Breite der Fortschrittsanzeige
- Parameter für den Typ "files"
uploadURL
- (optional) Upload-URL des Editors, Details siehe unten
Details
Die uploadURL
kann als String oder Funktion definiert werden. Hier ein Beispiel mit Funktion:
uploadURL: rec => {
const formData = new FormData();
formData.append("upload", rec.file);
const config = {
method: "POST",
body: formData,
headers: {
'Authorization': 'Bearer ' + token // Token oder andere Header hier
}
};
return fetch(url + "/uploads", config) // URL hier
.then(res => res.json())
.then(
data => {
rec.id = data.id;
return data;
},
() => ({ id: rec.id, status: "error" })
)
.catch();
}
Der Parameter rec
ist ein erweitertes PointerEvent
-Objekt mit zusätzlichen Eigenschaften:
interface UploadEvent extends PointerEvent {
id: number;
status: "client" | "server" | "error"; // bedeutet "noch nicht gesendet", "erfolgreich gesendet" oder "Fehler"
name: string; // Dateiname
file: string | Blob; // die Datei selbst
}
config
- (optional) Konfigurationsobjekt für das Feld "files" mit:accept
- (optional) erlaubte Dateitypen (z.B. "image/", "video/", "audio/"*)disabled
- (optional) aktiviert oder deaktiviert den Datei-Uploadmultiple
- (optional) erlaubt oder verbietet Mehrfach-Uploadsfolder
- (optional) erlaubt oder verbietet Uploads ganzer Ordner
- Parameter für den Typ "comments"
config
- (optional) Konfigurationsobjekt für das Feld "comments" inklusive:format
- (optional) Datumsformat für Kommentare. Siehe Optionen hierplacement
- (optional) wo Kommentare angezeigt werden:"editor"
- im Editor"page"
- in einem separaten Panel
html
- (optional) aktiviert oder deaktiviert HTML-Markup in KommentarenconfirmDeletion
- (optional) zeigt oder versteckt eine Bestätigungsabfrage beim L öschen von Kommentaren
- Parameter für den Typ "links"
config
- (optional) Konfigurationsobjekt für das Feld "links" mit:confirmDeletion
- (optional) zeigt oder versteckt eine Bestätigungsabfrage beim Löschen von Links
Wenn die Eigenschaft editorShape
nicht gesetzt ist, verwendet das Widget standardmäßig die Parameter von defaultEditorShape.
Standardkonfiguration
const defaultPriorities = [
{ id: 1, color: "#FE6158", label: "High" },
{ id: 2, color: "#F1B941", label: "Medium" },
{ id: 3, color: "#77D257", label: "Low" }
];
const defaultColors = ["#33B0B4", "#0096FA", "#F1B941"];
const defaultEditorShape = [
{
key: "label",
type: "text",
label: "Label"
},
{
key: "description",
type: "textarea",
label: "Description"
},
{
type: "combo",
label: "Priority",
key: "priority",
config: {
clearButton: true
}
},
{
type: "color",
label: "Color",
key: "color"
},
{
type: "progress",
key: "progress",
label: "Progress"
},
{
type: "date",
key: "start_date",
label: "Start date"
},
{
type: "date",
key: "end_date",
label: "End date"
},
{
type: "multiselect",
key: "users",
label: "Users"
}
];
Beispiel
const users = [ // Benutzerdaten
{ id: 1, label: "John Smith", avatar: "../assets/user.jpg" },
{ id: 2, label: "Aaron Short" }
];
const editorShape = [ // Editor-Einstellungen
...kanban.defaultEditorShape, // Standard-Einstellungen einbinden
{ // benutzerdefinierte Felder hinzufügen
type: "multiselect",
key: "users",
label: "Users",
values: users
},
{
type: "comments",
key: "comments",
label: "Comments",
config: {
format: "%M %d",
placement: "page",
html: true,
confirmDeletion: true
}
},
{
type: "links",
key:"links",
label: "Links",
config: {
confirmDeletion: true
}
}
];
new kanban.Kanban("#root", {
cards,
columns,
editorShape,
// weitere Parameter
});
Änderungsprotokoll:
- Der Typ dateRange wurde in Version v1.3 hinzugefügt
- Die Editor-Typen comments und links sowie die format-Parameter wurden in Version v1.4 hinzugefügt
Verwandte Artikel: Konfiguration