• Rendered into HTML

  • Rendered into Mails

  • Rendered into PDF

  • Rendered into CSV

screenshot dsl kanban

Code Sample

Kanban Sample Code 1
UiKanbanSpecifier buildTodoKanban() {
    new UiKanbanSpecifier().ui {                                                                   (1)
        column 'HeaderStr', Style.ALIGN_CENTER, Gantt2Controller.&changeTodoProgression as MethodClosure, [newProgression: 0], {    (2)
            custom "Custom html code"                                                              (3)
            todos.forEach { Todo todo ->
                card todo, Gantt2Controller.&showTodo as MethodeClosure, 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)
                }
            }
        }
    }
}
Write in a service for register contextmenu
@PostConstruct
void init() {
    TaackUiService.registerContextualMenuClosure(Todo, new UiMenuSpecifier().ui {               (8)
        menu 'Show Gantt', Gantt2Controller.&showGanttByTodo as MethodClosure, [id: this.params['id']]    (9)
    }
}
1 Create the kanban specifier
2 Build kanban column and column header, could pass an action and params as Drag+Drop for the column
3 Could add custom html code for the column body
4 Build cards in the column, could pass an action and params as MouseDoubleClic for the card
5 Build a line with field in the card, note the underscore at the end of the field name
6 Could add custom html code
7 Could add an icon with action bind to clic
8 Register contextmenu as MouseRight for the card
9 Add a menu item with action bind

DSL Symbols Hierarchy

Diagram
Figure 1. Symbols hierarchy diagram for Kanban DSL