Tastaturnavigation

Gantt ermöglicht die Navigation seiner Elemente mit Tastenkombinationen. Diese Anleitung erklärt, wie man die Tastaturnavigation aktiviert und nutzt, einschließlich des Fokusverhaltens, der integrierten Tastenkombinationen und wie man eigene erstellt.

Aktivierung der Funktionalität

Um die Tastaturnavigation im Gantt-Diagramm zu aktivieren, aktivieren Sie das keyboard_navigation Plugin mit der gantt.plugins Methode:

gantt.plugins({
    keyboard_navigation: true
});

Die API für das gantt.ext.keyboardNavigation Objekt wird im Artikel Erweiterung zur Tastaturnavigation detailliert beschrieben.

Es gibt zwei Arten der Tastaturnavigation:

  • Navigation nach Aufgabenzeilen: Aktivieren Sie dies, indem Sie die keyboard_navigation Eigenschaft auf true setzen.

  • Navigation nach Aufgabenzellen: Aktivieren Sie dies, indem Sie die keyboard_navigation_cells Eigenschaft auf true setzen.

Fokusverhalten während der Tastaturnavigation

Fokus auf Gantt

Durch Drücken der Tabulatortaste wird der Fokus auf Gantt gelegt, genau wie bei jedem anderen Element. Sobald der Fokus gesetzt ist, können Sie mit den Pfeiltasten und anderen Tastenkombinationen navigieren. Durch erneutes Drücken der Tabulatortaste wird der Fokus von Gantt auf ein anderes Seitenelement verschoben.

Fokus auf ein modales Fenster

Wenn ein modales Fenster (wie ein Lightbox oder ein Bestätigungsfenster) geöffnet wird, verschiebt sich der Fokus von Gantt auf das Modal und ermöglicht die Navigation darin wie in einem normalen Formular. Sobald das Modal geschlossen wird, kehrt der Fokus zu Gantt zurück.

Um den Fokus manuell auf Gantt zurückzusetzen, verwenden Sie die focus Methode. Wenn der Fokus wiederhergestellt wird, richtet er sich auf das aktive Element innerhalb von Gantt, die erste Zeile oder das zuletzt ausgewählte Element.

Standardnavigation in modalen Fenstern umfasst:

  • Enter: Bestätigen und Fenster schließen.
  • Escape: Schließen ohne Änderungen zu speichern.

Wenn ein Button im Formular fokussiert ist, löst das Drücken von Space oder Enter die Aktion des Buttons aus.


Wenn eine Rasterzelle oder -zeile fokussiert ist und Sie auf ein benutzerdefiniertes HTML-Element innerhalb von Gantt klicken, kehrt der Fokus zur Rasterzelle/-zeile zurück.

Ab Version 7.1.13 verhindert das Hinzufügen der Klasse 'no_keyboard_navigation' zu einem benutzerdefinierten Element, dass der Fokus zur Rasterzelle/-zeile zurückkehrt.

Bereiche

Tastenkombinationen können je nach Kontext (oder Bereich) unterschiedliche Aktionen auslösen. Das Gantt-Diagramm hat die folgenden Bereiche:

  • "gantt": Das gesamte Gantt-Diagramm.
  • "taskRow": Eine Zeile, die eine Aufgabe enthält.
  • "taskCell": Eine Zelle innerhalb einer Aufgabenzeile.
  • "headerCell": Eine Kopfzelle.

Wenn dieselbe Tastenkombination mehreren Bereichen zugewiesen ist, hat der spezifischere Vorrang. Zum Beispiel überschreibt eine Tastenkombination, die einem bestimmten Element zugeordnet ist, dieselbe Tastenkombination, die dem gesamten Gantt-Diagramm zugeordnet ist.

Hinzufügen einer Tastenkombination

Um eine benutzerdefinierte Tastenkombination hinzuzufügen, verwenden Sie die addShortcut Methode. Sie erfordert drei Parameter:

  • shortcut: (string) Die Taste oder Tastenkombination für die Verknüpfung.
  • handler: (function) Die Funktion, die ausgeführt wird, wenn die Verknüpfung ausgelöst wird.
  • scope: (string) Optional. Das Kontextelement, dem die Verknüpfung zugeordnet wird. Standardmäßig "gantt".

Beispiel:

gantt.addShortcut("shift+w", function(e){ 
    var task = gantt.locate(e); 
    if(task) 
        gantt.showQuickInfo(task)
},"taskRow");

Entfernen einer Tastenkombination

Um eine Tastenkombination zu entfernen, verwenden Sie die removeShortcut Methode. Sie erfordert zwei Parameter:

  • shortcut: (string) Die Taste oder Tastenkombination der Verknüpfung.
  • scope: (string) Das Kontextelement, dem die Verknüpfung zugeordnet ist.

Beispiel:

gantt.removeShortcut("shift+w","taskRow");

Abrufen eines Shortcut-Handlers

Um die Handler-Funktion für eine Verknüpfung abzurufen, verwenden Sie die getShortcutHandler Methode. Sie benötigt zwei Parameter:

  • shortcut: (string) Die Taste oder Tastenkombination der Verknüpfung.
  • scope: (string) Das Kontextelement, dem die Verknüpfung zugeordnet ist.

Beispiel:

var shortcut_handler = gantt.getShortcutHandler("shift+w","taskRow");

Die Methode gibt die Funktion zurück, die die Verknüpfung behandelt.

Tastenkombinationssyntax

Tastenkombinationen können bestehen aus:

  • Einer Modifikatortaste in Kombination mit einer Zeichen-Taste (z.B. "ctrl+a").
  • Einer Modifikatortaste in Kombination mit einer Nicht-Zeichen-Taste (z.B. "ctrl+space").
  • Einer einzelnen Zeichen-Taste (z.B. "a").
  • Einer einzelnen Nicht-Zeichen-Taste (z.B. "space").

Mehrere Tastenkombinationen für dieselbe Aktion können aufgelistet und durch Kommas getrennt werden (z.B. "ctrl+a, ctrl+space").

Unterstützte Tasten für Verknüpfungen

  • Modifikatortasten: shift, alt, ctrl, meta.
  • Nicht-Zeichen-Tasten: backspace, tab, enter, esc, space, up, down, left, right, home, end, pageup, pagedown, delete, insert, plus, f1-f12.

Bestehende Tastenkombinationen

Das Gantt-Diagramm enthält mehrere integrierte Tastenkombinationen für die Navigation:

Allgemeine Tastenkombinationen

  • Tab: Fokus auf Gantt.
  • Alt+Up/Down: Vertikal scrollen.
  • Alt+Left/Right: Horizontal scrollen.
  • Ctrl+Enter: Eine neue Aufgabe erstellen.
  • Ctrl+Z: Eine Aktion rückgängig machen.
  • Ctrl+R: Eine Aktion wiederholen.

Tastenkombinationen für Kopfzellen

  • Pfeiltasten Links/Rechts: Zwischen Kopfzellen navigieren.
  • Home/End: Zur ersten/letzten Spalte springen.
  • Down: Zu Aufgabenzeilen wechseln.
  • Space/Enter: Kopf aktivieren (z.B. zum Sortieren).

Tastenkombinationen für Aufgabenzeilen

  • Up/Down: Zwischen Zeilen navigieren.
  • PageDown/PageUp: Zur ersten/letzten Aufgabe springen.
  • Space: Eine Aufgabe auswählen.
  • Ctrl+Enter: Eine neue Aufgabe erstellen.
  • Delete: Die ausgewählte Aufgabe entfernen.
  • Enter: Das Lightbox öffnen.
  • Ctrl+Left/Right: Baum erweitern/einklappen.
  • Shift+Left/Right: Eine Aufgabe einrücken/ausrücken.
  • Shift+Down/Up: Zweige erweitern/einklappen.

Related sample:  Keyboard Navigation

Für ein Beispiel, wie man das Kopieren/Einfügen von Aufgaben mit Ctrl+C/Ctrl+V implementiert, siehe den zugehörigen Artikel.

Tastenkombinationen für Aufgabenzellen

  • Pfeiltasten Up/Down/Left/Right: Zwischen Aufgabenzellen navigieren.
  • PageDown/PageUp: Zur ersten/letzten Zelle in einer Spalte springen.
  • Home/End: Zur ersten/letzten Zelle in einer Spalte springen.
  • Space: Eine Aufgabe auswählen.
  • Ctrl+Enter: Eine neue Aufgabe erstellen.
  • Delete: Die ausgewählte Aufgabe entfernen.
  • Enter: Das Lightbox öffnen.
  • Ctrl+Left/Right: Baum erweitern/einklappen.

Related sample:  Keyboard Navigation - navigate cells

Eingebaute Tastenkombination für horizontales Scrollen der Zeitleiste

Ab Version 4.2 können Sie die Zeitleiste horizontal scrollen mit:

-> Shift Taste + Mausradbewegung.

Ab Version 6.3 können Sie die horizontale Scrolltaste auf Alt oder Meta anstelle der standardmäßigen Shift Taste konfigurieren, indem Sie die horizontal_scroll_key Eigenschaft setzen:

gantt.config.horizontal_scroll_key = "altKey";

Um das horizontale Scrollen zu deaktivieren, setzen Sie horizontal_scroll_key auf false:

gantt.config.horizontal_scroll_key = false;
Zurück nach oben