Displays the result as a kanban board consisting of the cards grouped by columns.
Designations:
⚠️ - the attribute is deprecated and no longer supportedUsage:
user view attributes and row attributes start with@
and can be specified anywhere in aSELECT
block
column, cell and edit form attributes are specified after the field in theSELECT
block in the formatfield_name @{ attribute = value }
Attribute | Type | Description | Default value |
---|---|---|---|
board_columns |
Array | Specifies the order and presence of columns on the board. For simple boards, where the grouping goes by the text field, it is required to specify the statuses as a string. For complex boards, where the grouping goes by the link field, you need to specify the ID of the required statuses | [] |
board_column_width |
Number | Column width in pixels | |
buttons |
Array of buttons | Additional buttons in the "kebab menu" and next to it | |
⚠️card_color |
Color | Card color (⚠️ see card_variant ) |
|
card_target |
String | Determines how the card will open when you click on it. Options are: _modal to open in a modal, _top to open in full page, _blank to open in a new tab |
_top |
card_create_view |
Action | A reference to the user view that can be used to create new entries of this type. Opened by "+" in kanban columns | |
card_variant |
Color option | Card color | |
confirm_argument_changes |
Logical | Setting the value to true changes the behavior of applying "filters" in the arguments panel - in order for the filters to be applied, you need to click on the "Apply" button |
false |
create_buttons |
Array of buttons | If you need to support multiple ways to create an entry and therefore create_link is not appropriate. It will also add buttons to the table header and "kebab menu" with a drop-down list |
|
create_link |
Action | A link to a mapping that can be used to create new entries of this type. Creates a "Add new entry" button in the "kebab menu" and a "+" button in the table header | |
disable_auto_save |
Logical | If true , then timer auto-save is disabled while the view is on the screen (saving will still occur when transitioning between views). Always disabled in views that have triggers on the main entity |
false |
export_to_csv |
Logical | Enables the ability to export data of the view to a csv file | false |
⚠️extra_actions |
Array of actions | Additional buttons in the "kebab menu" on top (⚠️ see buttons ) |
|
⚠️help_embedded_page_name |
String | Help page title (⚠️ see help_page ) |
|
help_page |
Link | Link to the help page (funapp.embedded_pages ) |
|
⚠️panel_buttons |
Array of actions | Additional buttons on top view bar (⚠️ see buttons ) |
|
post_create_link |
Action with id | Action to take after a new record is saved | |
show_argument_button |
Logical | Whether to show by default the "Filters" button that displays the argument editor | false |
show_argument_editor |
Logical | Whether to show argument editor by default | false |
title |
String | View title | User view title |
type |
table , form , board , menu , timeline , multiselect |
User view type | table |
Attribute | Type | Description | Default value |
---|---|---|---|
board_group |
Logical | Specifies that the kanban should be grouped by this field | false |
board_order |
Logical | Specifies that this field should be manually sorted. For correct operation, the field must be decimal . If this attribute is not specified, then cards are sorted according to any field specified in ORDER BY . |
false |
Attribute | Type | Description | Default value |
---|---|---|---|
⚠️cell_color |
Color | Cell color (⚠️ use cell_variant ) |
|
cell_variant |
Color option | Cell variant, see color-variants . When used in a kanban card - highlights the value of a specific record field |
|
default_value |
Any | The default value for this column. Takes precedence over default for a column in its definition |
|
icon |
String | Adds an icon in front of the specified cell on the card. You can use emoji or material-icons (with underscores instead of spaces). |
|
row_link |
Action with id | The action that is performed when the card is clicked. If multiple row_link attributes are found, the link from the last |
|
visible |
Boolean | Controls the field displaying on the card (This attribute required for fields that should be in the request, but should not be displayed on the card) | false |
{
/* Arguments of the user view */
$responsible array(reference(base.people)) null @{
caption = 'Responsible',
/* Available values in popup will be restricted with the results of the specified user view */
options_view = &base.ref_team_members_view
},
$status array(enum('backlog', 'new', 'in_progress', 'done')) null @{
caption = 'Status',
text = array mapping
WHEN 'backlog' THEN 'Ideas'
WHEN 'new' THEN 'New'
WHEN 'in_progress' THEN 'In progress'
WHEN 'done' THEN 'Done'
END
},
$due_date_from datetime null @{
caption = 'Due date from'
},
$due_date_to datetime null @{
caption = 'Due date to'
},
$is_archived bool null @{
caption = 'Archive'
},
}:
SELECT
/* User view type. See also: https://wiki.ozma.io/en/docs/funapp/board */
@type = 'board',
/* User view title */
@title = 'Tasks',
/* "Filters" panel is hidden by default */
@show_argument_editor = false,
/* "Filters" button will be showed on the top of the board */
@show_argument_button = true,
/* Reference to the user view opened by clicking the "Open entry in modal" button */
@row_link = &pm.task_form,
/* Set the user view used for creating new entries */
@card_create_view = {
/* Reference to the user view */
ref: &pm.task_form,
/* Default values for the entry being created */
default_values: {
responsible_contact: $responsible,
parent_task: $parent_task
}
},
@card_variant = CASE WHEN priority = 'urgent' THEN 'outline-dark' END,
subject @{
/* Color variant using for the field */
cell_variant = 'outline-info'
},
status @{
/* Group entries by this field */
board_group = true,
/* Do not display status field on the card */
visible = false,
},
parent_task @{
/* Material design icon that will be displayed with the field data on the board card */
icon = 'account_tree'
},
deal @{
icon = 'tag'
},
'Close date: ' || due_date as due_date @{
icon = 'schedule',
cell_variant = due_date.@cell_variant
},
responsible_contact @{
icon = 'account_circle'
},
"order" @{
/* Use the value from the "order" field as a sorting number for all entries */
board_order = true,
visible = false
}
FROM pm.tasks
WHERE ($is_archived IS NULL OR is_archived = $is_archived)
AND ($responsible IS NULL OR responsible_contact = ANY($responsible))
AND ($status IS NULL OR status = ANY($status))
AND ($due_date_to IS NULL OR due_date <= $due_date_to)
AND ($due_date_from IS NULL OR due_date <= $due_date_to)
ORDER BY
"order"