Статья в разработке. Вы можете читать все, что написано ниже, но на свой страх и риск 😎
Сначала по поводу кнопок в целом - их можно добавлять
@extra_actions
),@panel_buttons
),@form_buttons
).Чуть позже будет возможность добавлять кнопки в ячейки таблицы
Вы можете добавить кнопку (либо в бургер, либо в группу). И сделать так, чтобы по кнопке запускался бизнес-процесс(экшн).
Синтаксис для бургер-меню такой:
SELECT
...
@extra_actions = [
{
action: {
schema: 'schema_name',
name: 'action_name',
args: {
arg: 'Hello'
},
},
name: 'Action Button'
}
],
...
Экшн - исполняемый код процесса на JS, с помощью которого можете создавать/удалять/изменять записи.
Список всех экшнов находится в вашем инстансе Администрирование => All Actions
(или по адресу <имя-инстанса>.ozma.org/views/admin/actions_table_all
)
По поводу того как писать экшны документации пока нет. Будет очень скоро,
Но если в кратце
export default async function handleEvent(args) {
// insert
await FunDB.insertEntity({
schema: "schema_name", name: "entity_name"
},
{
field1: value1,
field2: value2
}
);
// update
await FunDB.updateEntity({
schema: "schema_name", name: "entity_name"
},
record_id,
{
field: value
}
);
// delete
await FunDB.deleteEntity({
schema: "schema_name", name: "entity_name"
},
record_id
);
// write to log ()
/* лог и любые ошибки пишутся в /views/admin/recent_events (Администрирование => Recent Actions) */
FunDB.writeEvent('message');
// select возвращает результат запроса переданного строкой
let queryStr = 'SELECT id FROM schema_name.entity_name WHERE field = value';
const exprResult = await FunDB.getUserView({
type: "anonymous",
query: queryStr
});
// есть еще возможность select-а, который возвращает результат запроса из какого-то вью в системе
// пример будет позже
return { ok: true }
}