С помощью кнопок в ozma.io можно выполнить одно из трех действий:
{
$id reference(base.contacts)
}
SELECT
/* ... */
@"extra_actions" = [
{
name: 'Запустить процесс обзвона',
icon: 'flag',
action: {
schema: 'crm',
name: 'start_business_process',
},
args: {
id: $id
}
}
],
FROM
/* ... */
- в
name
- название, которое будет отображаться на кнопке- с помощью
icon
можно задать иконку для кнопки (material design icon или эмодзи)- в
action
указываем название бизнес-процесса- через
args
в процесс передаются данные
{
$id reference(base.contacts)
}
SELECT
/* ... */
@"extra_actions" = [
{
name: 'Открыть действия контакта',
icon: 'task_alt',
ref: &crm.actions_for_contact_table,
args: {
id: $id,
period: 'all'
},
target: 'top'
},
{
name: 'Создать запись "Организация',
ref: &base.organization_form,
new: true,
target: 'modal'
}
],
FROM
/* ... */
- в
name
- название, которое будет отображаться на кнопке- с помощью
icon
можно задать иконку для кнопки (material design icon или эмодзи)- в
ref
указываем название представления- через
args
в представление передаются данные- c помощью
target
можно указать, как именно отобразить преставление - на весь экран/в модальном окне/в новой вкладке
{
$id reference(base.contacts)
}
SELECT
/* ... */
@panel_buttons = [
{
icon: 'process',
name: 'Запустить процесс',
actions: [
{
name: 'Oбзвон',
icon: 'flag',
action: {
schema: 'crm',
name: 'start_business_process',
},
args: {
id: $id
}
}
]
],
FROM
/* ... */
- в
name
- название, которое будет отображаться на кнопке на панели- с помощью
icon
можно задать иконку для кнопки на панели (material design icon или эмодзи)- в
actions
указываем набор кнопок- в
actions[i].name
- название, которое будет отображаться на кнопке в выпадающем списке- с помощью
actions[i].icon
можно задать иконку для кнопки (material design icon или эмодзи)- в
actions[i].action
- схема и название процесса- через
actions[i].args
в процесс передаются данные
SELECT
/* ... */
@panel_buttons = [
{
icon: 'person',
name: 'Мои',
actions: [
{
icon: 'people',
name: 'Мой отдел',
ref: &pm.actions_table,
args: {
own: 'unit',
status: $status,
type: $type
},
target: 'top'
},
{
icon: 'groups',
name: 'Все',
ref: &pm.actions_table,
args: {
own: 'all',
status: $status,
type: $type
},
target: 'top'
}
]
},
{
icon: 'not_started'
name: 'Незавершенные задачи',
actions:[
{
icon: 'check_circle',
name: 'Все задачи',
ref: &pm.actions_table,
args: {
own: $own,
status: 'all',
type: $type
},
target: 'top'
}
]
},
],
FROM
/* ... */
- в
name
- название, которое будет отображаться на кнопке на панели- с помощью
icon
можно задать иконку для кнопки на панели (material design icon или эмодзи)- в
actions
указываем набор кнопок- в
actions[i].name
- название, которое будет отображаться на кнопке в выпадающем списке- с помощью
actions[i].icon
можно задать иконку для кнопки (material design icon или эмодзи)- в
actions[i].ref
- название представления- через
actions[i].args
в представление передаются данные- c помощью
actions[i].target
можно указать, как именно отобразить преставление - на весь экран/в модальном окне/в новой вкладке
Кнопки в таблицах могут располагаться по несколько штук в ячейке
Кнопки в таблицах могут располагать в любом количестве колонок
C помощью конструкции
CASE WHEN .. THEN .. END
можно включать/отключать любые кнопки по условиюВ одной ячейке могут быть и кнопки для запуска процессов, и кнопки, открывающие представления
Положение колонок с кнопками задается так же, как и положение обычных колонок - т.е. в порядке следования в конструкции
SELECT
в FunQL-запросе
SELECT
type = 'table',
/* ... */
posts_for_person.person @{ },
posts_for_person.post @{ },
[
{
name: CASE WHEN posts_for_person.end_date IS NULL THEN 'Повышение' END,
icon: 'trending_up',
action: {
schema: 'crm',
name: 'change_status'
},
args: {
id: posts_for_person.id,
status: 'upgrade'
}
},
{
name: CASE WHEN posts_for_person.end_date IS NULL THEN 'Премировать' END,
icon: 'money',
action: {
schema: 'crm',
name: 'encourage'
},
args: {
id: posts_for_person.id
}
},
{
name: CASE WHEN posts_for_person.end_date IS NOT NULL THEN 'Восстановление' END,
icon: 'update',
action: {
schema: 'crm',
name: 'change_status'
},
args: {
id: posts_for_person.id,
status: 'restore'
}
}
] as buttons @{
column_type = 'buttons',
caption = 'Действия',
column_width = 175
}
FROM
/* ... */
- Чтобы создать колонку в таблице нужно задать набор кнопок и указать
column_type = 'buttons'
в атрибуте- в
name
указывается название, которое будет отображаться на кнопке- с помощью
icon
можно задать иконку для кнопки (material design icon или эмодзи)- в
action
указываем название бизнес-процесса- через
args
в процесс передаются данные
SELECT
type = 'table',
/* ... */
posts_for_person.person @{ },
posts_for_person.post @{ },
[
{
name: 'Детализация',
icon: 'info',
ref: &crm.person_details,
args: {
id: posts_for_person.id,
},
target: 'top'
},
] as buttons @{
column_type = 'buttons',
caption = 'Действия',
column_width = 175
}
FROM
/* ... */
- Чтобы создать колонку в таблице нужно задать набор кнопок и указать
column_type = 'buttons'
в атрибуте- в
name
указывается название, которое будет отображаться на кнопке- с помощью
icon
можно задать иконку для кнопки (material design icon или эмодзи)- в
action
указываем название представление- через
args
в представление передаются данные- c помощью
target
можно указать, как именно отобразить преставление - на весь экран/в модальном окне/в новой вкладке
SELECT
type = 'form',
block_sizes = [ 4, 4, 4 ],
/* ... */
@form_buttons = [
{
form_block: 2,
actions: [
{
name: 'Повышение',
variant: 'success',
action: {
schema: 'crm',
name: 'change_status'
},
args: {
id: posts_for_person.id,
status: 'upgrade'
}
},
{
name: 'Премирование',
variant: 'warning',
action: {
schema: 'crm',
name: 'encourage'
},
args: {
id: posts_for_person.id
}
},
]
},
],
FROM
/* ... */
- Через
form_block
указывается в каком блоке на форме расположить набор кнопок- В
actions
задаются сами кнопки
SELECT
type = 'form',
block_sizes = [ 4, 4, 4 ],
/* ... */
posts_for_person.person @{ },
posts_for_person.post @{ },
@form_buttons = [
{
form_block: 2,
actions: [
{
name: 'Детализация',
variant: 'success',
ref: &crm.person_details,
args: {
id: posts_for_person.id,
},
target: 'top'
},
]
}
]
FROM
/* ... */
- Через
form_block
указывается в каком блоке на форме расположить набор кнопок- В
actions
задаются сами кнопки