• Gerendert in HTML

  • Gerendert in Mails

  • Gerendert in PDF

  • Gerendert in CSV

screenshot dsl kanban

Codebeispiel

Kanban-Codebeispiel 1
UiKanbanSpecifier buildTodoKanban() {
    new UiKanbanSpecifier().ui {                                                                   (1)
        column 'To Do', Style.ALIGN_CENTER, {                                                      (2)
            custom "Custom header html code"
        }, Gantt2Controller.&changeTodoProgression as MethodClosure, [newProgression: 0], {
            custom "Custom html code"                                                              (3)
            todos.forEach { Todo todo ->
                card todo, Gantt2Controller.&showTodo as MethodClosure, todo.id, {                 (4)
                    cardField todo.what_                                                           (5)
                    cardFieldRaw "Custom html code"                                                (6)
                    cardAction ActionIcon.SHOW * IconStyle.SCALE_DOWN, Gantt2Controller.&doSomething as MethodClosure, todo.id   (7)
                }
            }
        }
    }
}
Drop-Aktion
@Transactional
def changeTodoProgression(Integer newProgression) {
    Todo todo = Todo.get(params.long('cardId'))                                                    (10)
    todo.progression = newProgression
    render status: 200
}
Kontextmenü in einem Service registrieren
@PostConstruct
void init() {
    TaackUiService.registerContextualMenuClosure(Todo, new UiMenuSpecifier().ui { Long id ->    (8)
        menu 'Show Gantt', Gantt2Controller.&showGanttByTodo as MethodClosure, id                 (9)
    })
}
1 Kanban-Spezifizierer erstellen
2 Kanban-Spalte mit Beschriftung, Stil und einer optionalen Header-Closure (nur custom) erstellen; optional können eine Aktion und Parameter übergeben werden, die bei Drag+Drop in die Spalte aufgerufen werden
3 Optional benutzerdefinierten HTML-Code für den Spaltenkörper hinzufügen
4 Karten in der Spalte erstellen; optional können eine Aktion und Parameter für MouseDoubleClic auf die Karte übergeben werden
5 Eine Zeile mit einem Feld in der Karte erstellen; beachten Sie den Unterstrich am Ende des Feldnamens
6 Benutzerdefinierter HTML-Code, der unverändert gerendert wird. cardField mit einem String wird bereinigt (nur einfache Formatierungen und Links bleiben erhalten); verwenden Sie cardFieldRaw für von der Anwendung erzeugtes HTML, niemals für vom Benutzer eingegebene Daten
7 Optional ein Icon mit einer Aktion bei Klick hinzufügen
8 Kontextmenü für MouseRight auf die Karte registrieren
9 Einen Menüeintrag mit verknüpfter Aktion hinzufügen
10 Die ID der abgelegten Karte wird über den Parameter cardId zusammen mit den Spaltenparametern übergeben

Um das Kanban in einem Block anzuzeigen, verwenden Sie kanban oder kanbanFilter, um einen Filter zu verknüpfen:

taackUiService.show(new UiBlockSpecifier().ui {
    kanbanFilter buildTodoFilter(), buildTodoKanban()
}, buildMenu())

DSL-Symbolhierarchie

Diagram
Figure 1. Symbolhierarchiediagramm für Kanban DSL