Konfiguration
Das Aussehen und die Funktionalität von Kanban können Sie über die entsprechende API konfigurieren. Die verfügbaren Parameter ermöglichen es Ihnen:
- das Erscheinungsbild der Karten über die
cardShapeEigenschaft zu konfigurieren - die Editor-Felder über die
editorShapeEigenschaft zu konfigurieren - das Verhalten des Editors über die
editorEigenschaft zu konfigurieren - Rendering und Scrollen über die Eigenschaften
renderTypeundscrollTypezu konfigurieren - die Kanban-Historie über die
historyEigenschaft zu konfigurieren - das Erscheinungsbild der Karten über die
cardTemplateEigenschaft anzupassen- Details finden Sie im Abschnitt Customization!
- die gewünschte Sprache über die
localeEigenschaft anzuwenden- Details finden Sie im Abschnitt Localization!
- Daten für Karten, Spalten, Zeilen und Verknüpfungen über die entsprechenden Eigenschaften
cards,columns,rowsundlinkszu laden- Details finden Sie im Abschnitt Working with data!
Karten
Das Kanban-Board besteht aus Karten, die auf Spalten und Zeilen verteilt sind. Sie können das Erscheinungsbild der Karten mit der cardShape Konfigurationseigenschaft anpassen. Es gibt mehrere vordefinierte Felder, die Sie in die Kartenvorlage einfügen (oder ausschließen) können, nämlich:
-
eine Kartenbezeichnung über die
label: booleanKonfiguration -
eine Kartenbeschreibung über die
description: booleanKonfigurationTippSie können die Felder label und description jeder Karte über die entsprechenden Eingabefelder des Kanban-Editors verwalten. Wenn Sie diese Felder aktivieren, werden die entsprechenden Eingaben im Editor automatisch angezeigt. Zum Konfigurieren dieser Eingaben können Sie die Typen text und textarea verwenden.
-
einen Kartenfortschritt über die
progress: booleanKonfigurationTippSie können das progress-Feld jeder Karte über das entsprechende Steuerelement des Kanban-Editors verwalten. Wenn Sie dieses Feld aktivieren, wird das entsprechende Steuerelement im Editor automatisch angezeigt. Zum Konfigurieren dieses Steuerelements können Sie den Typ progress verwenden.
-
ein Startdatum über die
start_date: booleanKonfiguration -
ein Enddatum über die
end_date: booleanKonfigurationTippSie können die Felder start date und end date jeder Karte über die entsprechenden Steuerelemente des Kanban-Editors verwalten. Wenn Sie diese Felder aktivieren, werden die entsprechenden Steuerelemente im Editor automatisch angezeigt. Zum Konfigurieren dieser Steuerelemente können Sie den Typ date verwenden.
-
ein Kontextmenü für Karten über die
menu: booleanKonfiguration -
einen Dateianhang über die
attached: booleanKonfigurationTippSie k önnen Dateien an jede Karte anhängen über das entsprechende Feld des Kanban-Editors. Zum Konfigurieren dieses Feldes können Sie den Typ files verwenden.
-
eine Kartenfarbe über die
color: booleanKonfigurationTippSie können die obere Farblinie jeder Karte über das entsprechende Steuerelement des Kanban-Editors verwalten. Wenn Sie color aktivieren, wird das entsprechende Steuerelement (colorpicker) im Editor automatisch angezeigt. Zum Konfigurieren dieses Steuerelements können Sie den Typ color verwenden.
-
ein Karten-Cover (Vorschaubild) über die
cover: booleanKonfiguration -
Kommentare zu einer Karte über die
comments: booleanKonfiguration -
einen Bestätigungsdialog zum Löschen der Karte über die
confirmDeletion: booleanKonfiguration -
eine Abstimmungsmöglichkeit über die
votes: boolean | { show: boolean, clicable: true }Konfiguration -
eine Benutzerzuweisung über die
users: boolean | { show: boolean, values: object, maxCount: number | false }KonfigurationTippSie können einer Karte einen oder mehrere Benutzer über das entsprechende Steuerelement des Kanban-Editors zuweisen. Zum Konfigurieren des Steuerelements für die Zuweisung eines einzelnen Benutzers verwenden Sie die Typen combo oder select. Für die Zuweisung mehrerer Benutzer nutzen Sie den Typ multiselect.
-
eine Kartenpriorität über die
priority: boolean | { show: boolean, values: object }KonfigurationTippSie können die priority-Eigenschaft jeder Karte über das entsprechende Steuerelement des Kanban-Editors verwalten. Wenn Sie priority aktivieren, wird das entsprechende Steuerelement im Editor automatisch angezeigt. Zum Konfigurieren dieses Steuerelements können Sie nur die Typen combo oder select verwenden.
-
ein benutzerdefiniertes Feld über die
headerFields: [ { key: string, label: string, css: string } ]Konfiguration
const users = [ // Nutzerdaten
{ id: 1, label: "John Smith", avatar: "../assets/user.jpg" },
{ id: 2, label: "Aaron Short" }
];
const cardPriority = [ // Prioritätsdaten für Karten
{ id: 1, color: "#FF5252", label: "high" },
{ id: 2, color: "#FFC975", label: "medium" },
{ id: 3, color: "#0AB169", label: "low" }
];
const cardShape = { // Karteneinstellungen
label: true,
description: true,
progress: true,
start_date: true,
end_date: true,
menu: true,
attached: true,
priority: {
show: true,
values: cardPriority
},
users: {
show: true,
values: users
},
headerFields: [
{
key: "sprint",
label: "Custom field",
css: "custom_css_class"
}
]
};
new kanban.Kanban("#root", {
// Kartendaten
columns,
cards,
// Karteneinstellungen
cardShape
});
Sofern Sie keine Karteneinstellungen über die cardShape Eigenschaft angeben, verwendet das Widget einen defaultCardShape Parametersatz!
Editor
Sie können den Editor als Seitenleiste oder modales Fenster anzeigen lassen, indem Sie die editor.placement Eigenschaft verwenden!
Der Editor von Kanban besteht aus Feldern zur Verwaltung der Kartendaten. Zum Konfigurieren der Editor-Felder (Steuerelemente) verwenden Sie die editorShape Eigenschaft. Folgende Typen von Editor-Feldern stehen zur Verfügung:
- combo, select und multiselect
- color
- text und textarea
- progress
- files
- date und dataRange
- comments
- links
Combo-, Select- und Multiselect-Typen
Die Editor-Felder der Typen combo, select und multiselect können wie folgt gesetzt werden:
new kanban.Kanban("#root", {
editorShape: [
{
type: "combo", // oder "select" und "multiselect"
key: "priority", // Der "priority"-Schlüssel wird bei der Konfiguration der "cardShape"-Eigenschaft verwendet
label: "Priority",
values: [
{ id: 1, label: "high" },
{ id: 2, label: "medium" },
{ id: 3, label: "low" }
]
},
// Einstellungen anderer Felder
]
});
Für Editor-Felder vom Typ "multiselect" und "combo" können Sie auch einen Pfad zum Vorschaubild über die Eigenschaft avatar angeben:
editorShape: [
{
type: "multiselect", // oder "combo"
key: "users", // Der "users"-Schlüssel wird bei der Konfiguration der "cardShape"-Eigenschaft verwendet
label: "Users",
values: [
{
id: 1, label: "Alan",
avatar: "preview_image_path_1.png"
},
{
id: 2, label: "John",
avatar: "preview_image_path_2.png"
}
]
},
// Einstellungen anderer Felder
]
Color-Typ
Das Editor-Feld vom Typ color kann wie folgt gesetzt werden:
new kanban.Kanban("#root", {
editorShape: [
{
type: "color",
key: "color", // Der "color"-Schlüssel wird bei der Konfiguration der "cardShape"-Eigenschaft verwendet
label: "Card color",
values: ["#65D3B3", "#FFC975", "#58C3FE"],
config: {
clear: true,
placeholder: "Select color"
}
},
// Einstellungen anderer Felder
]
});
Text- und Textarea-Typen
Die Editor-Felder der Typen text und textarea können wie folgt gesetzt werden:
new kanban.Kanban("#root", {
editorShape: [
{
type: "text", // oder "textarea"
key: "label",
label: "Label",
config: {
placeholder: "Type your tips here",
readonly: false,
focus: true,
disabled: false,
inputStyle: "height: 50px;"
}
},
// Einstellungen anderer Felder
]
});
Progress-Typ
Das Editor-Feld vom Typ progress kann wie folgt gesetzt werden:
new kanban.Kanban("#root", {
editorShape: [
{
type: "progress",
key: "progress", // Der "progress"-Schlüssel wird bei der Konfiguration der "cardShape"-Eigenschaft verwendet
label: "Progress",
config: {
min: 10,
max: 90,
step: 5
}
},
// Einstellungen anderer Felder
]
});
Files-Typ
Das Editor-Feld vom Typ files kann wie folgt gesetzt werden:
Upload-URL als String konfigurieren
const url = "https://docs.dhtmlx.com/kanban-backend";
new kanban.Kanban("#root", {
editorShape: [
{
type: "files",
key: "attached", // Der "attached"-Schlüssel wird bei der Konfiguration der "cardShape"-Eigenschaft verwendet
label: "Attachment",
uploadURL: url + "/uploads", // URL als String angeben
config: {
accept: "image/*", // "video/*", "audio/*"
disabled: false,
multiple: true,
folder: false
}
},
// Einstellungen anderer Felder
]
});
Upload-URL als Funktion konfigurieren
const url = "https://docs.dhtmlx.com/kanban-backend";
new kanban.Kanban("#root", {
editorShape: [
...defaultEditorShape,
{
key: "attached",
type: "files",
label: "Files",
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();
}
}
]
});
Date- und DateRange-Typen
Das Editor-Feld vom Typ date kann wie folgt gesetzt werden:
new kanban.Kanban("#root", {
editorShape: [
{
type: "date",
key: "start_date",
label: "Start date",
format: "%d/%m/%y"
},
// Einstellungen anderer Felder
]
});
Das Editor-Feld vom Typ dateRange kann wie folgt gesetzt werden:
new kanban.Kanban("#root", {
editorShape: [
{
type: "dateRange",
key: {
start: "start_date",
end: "end_date"
},
label: "Date Range",
format: "%d/%m/%y"
},
// Einstellungen anderer Felder
]
});
Comments-Typ
Das Editor-Feld vom Typ comments kann wie folgt gesetzt werden:
new kanban.Kanban("#root", {
editorShape: [
{
type: "comments",
key: "comments",
label: "Comments",
config: {
dateFormat: "%M %d",
placement: "page", // oder "editor"
html: true,
confirmDeletion: true
}
},
// Einstellungen anderer Felder
]
});
Links-Typ
Das Editor-Feld vom Typ links kann wie folgt gesetzt werden:
new kanban.Kanban("#root", {
editorShape: [
{
type: "links",
key: "links",
label: "Links",
config: {
confirmDeletion: true
}
},
// Einstellungen anderer Felder
]
});
Editor-Felder an Kartenfelder binden
Um das Editor-Feld mit dem entsprechenden Kartenfeld zu verbinden, müssen Sie einen speziellen key im Objekt der editorShape Eigenschaft angeben (key: "editor_field_key"). Der Wert dieses Schlüssels muss auf true in der cardShape Eigenschaft gesetzt werden (für eingebaute Kartenfelder) oder im headerFields Array angegeben werden (für benutzerdefinierte Kartenfelder). Sie können die Anfangsdaten jedes Feldes auch über diesen Schlüssel bereitstellen.
// Editor-Einstellungen
const editorShape = [
{
type: "text",
key: "label",
label: "Label",
config: {
placeholder: "Enter new label here"
}
},
{
type: "textarea",
key: "note",
label: "Note",
config: {
placeholder: "Enter usefull note here"
}
}
];
// Karteneinstellungen
const cardShape = {
label: true, // Schlüssel eines eingebauten Feldes
headerFields: [
{
key: "note", // Schlüssel eines benutzerdefinierten Feldes
label: "Note"
}
]
};
// Kartendaten
const cards = [
{
label: "Volvo",
note: "It is the swedish car",
column: "backlog"
},
{
label: "Audi",
note: "It is the german car",
column: "backlog"
}
];
// Kanban erstellen
new kanban.Kanban("#root", {
editorShape,
cardShape,
cards,
columns
// andere Konfigurationsparameter
});
Sofern Sie keine Editor-Einstellungen über die editorShape Eigenschaft angeben, verwendet das Widget einen defaultEditorShape Parametersatz. In diesem Fall werden die Standard-Steuerelemente und Eingaben im Editor erst angezeigt, nachdem die entsprechenden Felder der Karten über die cardShape Eigenschaft aktiviert wurden.
Den Editor konfigurieren
Mit der editor Eigenschaft können Sie den Editor wie folgt konfigurieren:
- Aktivieren/Deaktivieren des Autosave-Modus des Editors über die
editor.autoSaveEigenschaft - Angabe einer Verzögerungszeit für das automatische Speichern der Daten über die Eigenschaft
editor.debounce(funktioniert nur mit dem Parameter autoSave: true)
// Kanban erstellen
new kanban.Kanban("#root", {
columns,
cards,
editorShape,
editor: {
autoSave: true,
debounce: 2000
}
// weitere Parameter
});
Toolbar
Die Toolbar von Kanban besteht aus einer Suchleiste zum Suchen von Karten sowie Steuerelementen zum Sortieren von Karten und zum Hinzufügen neuer Spalten und Zeilen. Um die Toolbar anzuzeigen, müssen Sie sie in einem separaten Container mit dem kanban.Toolbar() Konstruktor initialisieren.
// Kanban erstellen
const board = new kanban.Kanban("#root", {
// Daten
columns,
cards,
rows,
// Karteneinstellungen
cardShape,
// Editor-Einstellungen
editorShape
});
new kanban.Toolbar("#toolbar", { api: board.api });
Sie können die Steuerelemente der Toolbar (ausblenden/anzeigen/anpassen) mit der Eigenschaft items verwalten:
// Kanban erstellen
const board = new kanban.Kanban("#root", {...});
new kanban.Toolbar("#toolbar", {
api: board.api,
items: [
{ // benutzerdefinierte Suchleiste
type: "search",
options: [
{
id: "label",
label: "By label"
},
{
id: "start_date",
label: "By date",
searchRule: (card, value, by) => {
const date = card[by];
return date?.toString().includes(value);
}
}
],
resultTemplate: kanban.template(searchResult => {
return `<div className="list-item">
<div className="list-item-text">${searchResult.result.label}</div>
${searchResult.result.description ? `<div className="list-item-text item-description">${searchResult.result.description}</div>` : ""}
</div>`
})
},
"spacer", // Leerraum
"undo", // Steuerelement zum Rückgängigmachen von Kartenaktionen in der Historie
"redo", // Steuerelement zum Wiederherstellen von Kartenaktionen in der Historie
{ // benutzerdefiniertes Sortier-Steuerelement
type: "sort",
options: [
{
text: "Sort by label",
by: "label",
dir: "asc"
},
{
text: "Sort by description",
by: "description",
dir: "desc"
}
]
},
"addColumn", // Steuerelement zum Hinzufügen neuer Spalten
"addRow", // Steuerelement zum Hinzufügen neuer Zeilen
// benutzerdefinierte Elemente
]
});
Um bestimmte Steuerelemente der Toolbar auszublenden, entfernen Sie die entsprechenden Zeichenfolgen aus dem items Array.
Beispiel
In diesem Beispiel sehen Sie, wie Sie Karten, Editor und Toolbar von Kanban konfigurieren können: