Терминал - рабочее пространство с окнами и вкладками
Терминалы позволяют организовать работу пользователя таким образом, что:
- Он будет работать в основном на одной странице с различными виджетами.
- Пользователь сам определяет состав своего рабочего пространства, организует расположение блоков.
Терминал это рабочее пространство, поделенное на области/панели (areas).
На каждой области пользователь может разместить некие виджеты (widget) с компонентами управления: формы, таблицы, дашборды.
Пользователь может:
- перемещать виджеты по панели,
- сворачивать виджеты,
- менять размер виджетов,
- добавлять новые виджеты на панель и удалять с панели
- добавление/удаление панелей терминала.
- переключаться между панелями терминала
- переименовывать панели терминала
При изменении параметров виджетов они сохраняются в базе данных(перемещение, изменение размеров) - при последующих заходах на терминал выводятся ранее сохраненные настройки элементов терминала.
Как добавить терминал на страницу
Сниппет терминала:
<div class="as-terminal" data-code="terminal1" data-itemid="123"></div>
В разделе /terminals создаем терминал с указанным кодом и осуществляем его настройку.
Как настроить терминал
Управление терминалами - /terminals
Создаем новый тип терминала - устанавливаем код, название и список ролей, которые могут к нему обращаться.
Процедура настройки терминала getOptions
Прописываем процедуру getOptions. Данная процедура определяет первичные настройки при загрузке терминала пользователя. Пример:
CREATE PROCEDURE [dbo].[term_developer_getOptions]
@code nvarchar(64), -- terminalType
@itemID nvarchar(128), -- terminalItemID
@parameters ExtendedDictionaryParameter readonly, -- for future parameters
@username nvarchar(256) -- current user
AS
BEGIN
-- SELECT 1
select 1 Result, '' Msg
--'{"title": "111", "text": "222", "type": "warning", "icon": "fa fa-bars"}' NoTerminal
-- SELECT 2 Available widgets
select 'Управление таблицами' name, 'cat2' catCode, 'fa fa-bars' icon, 'table' controlType, 'tables' controlCode, '' defaultItemID, 0 canChangeItemID
union
select 'Управление формами' name, 'cat2' catCode, 'fa fa-bars' icon, 'table' controlType, 'forms' controlCode, '' defaultItemID, 0 canChangeItemID
union
select 'Управление страницами' name, 'cat1' catCode, 'fa fa-bars' icon, 'table' controlType, 'pages' controlCode, '' defaultItemID, 0 canChangeItemID
union
select 'Редактирование таблицы' name, 'cat1' catCode, 'fa fa-bars' icon, 'form' controlType, 'editTable' controlCode, '0' defaultItemID, 1 canChangeItemID
union
select 'Редактирование формы' name, 'cat1' catCode, 'fa fa-bars' icon, 'form' controlType, 'editForm' controlCode, '0' defaultItemID, 1 canChangeItemID
union
select 'Управление настройкой' name, 'cat1' catCode, 'fa fa-bars' icon, 'form' controlType, 'editSetting' controlCode, 'globalCSS' defaultItemID, 0 canChangeItemID
union
select 'Дашборд админа' name, 'cat1' catCode, 'fa fa-bars' icon, 'dashboard' controlType, 'forAdmin' controlCode, '' defaultItemID, 0 canChangeItemID
union
select 'Редактирование хранимки' name, 'cat1' catCode, 'fa fa-database' icon, 'sp' controlType, 'falcon_search' controlCode, '' defaultItemID, 1 canChangeItemID
-- select 3 AvailableWidget catetories
select 'Cat 1' name, 'cat1' code, 1 ord
union
select 'Cat 2' name, 'cat2' code, 2 ord
union
select 'Cat 3' name, 'cat3' code, 3 ord
union
select 'Cat 4' name, 'cat4' code, 4 ord
order by ord
END
Входные параметры:
- code - код терминала
- itemID - переданный itemID (этот параметр нужен для того, чтобы использовать один и тот же тип терминала для пользователя по разному на разных страницах).
- parameter - для будущих параметров
- username - текущий пользователь
Выходные результаты:
SELECT 1 Общие настройки
- Result - если 0, то будет вывод результата ошибки в Msg
- Msg - сообщение
- NoTerminal - JSON строка с полями title, text, type. Если задано - выводит в терминале сообщение (например, что нет прав на использование терминала).
SELECT 2 Список доступных виджетов, которые может добавлять пользователь
- name - название виджета (будет отражаться в заголовке виджета на панели).
- catCode - код категории из SELECT 3 (служит для организации списков доступных виджетов по категориям в окне добавления виджета)
- icon - иконка виджета
- controlType - какой компонент будет грузить - form, table, dashboard
- controlCode - code компонента (например, таблицы или формы).
- defaultItemID - какой itemID будет по умолчанию загружаться в компонент
- canChangeItemID - если 1, то пользователь в виджете имеет возможность выбрать через поиск itemID (в заголовке виджета).
Процедура выдачи доступных itemID для смены itemID в виджете терминала
Процедура search позволяет выдать список itemID при выполнении поиска значений в виджете.
Например, в виджете выводится карточка клиента с itemID = 5. Пользователь хочет посмотреть другого клиента - в верху через поиск выбирает нужного клиента.
Как раз для генерации этого списка доступных клиентов и используется эта процедура.
CREATE PROCEDURE [dbo].[term_developer_search]
@q nvarchar(64),
@parameters ExtendedDictionaryParameter readonly, -- terminalCode, terminalItemID
@controlType nvarchar(64), -- form, table
@controlCode nvarchar(128), -- table code, form code
@username nvarchar(256) -- current user
AS
BEGIN
if(@controlType='form' and @controlCode='editForm') begin
-- SELECT 1
select id Value, isnull(title, '') + ' - ' + code Text
from as_forms where code like '%'+@q+'%' or title like '%'+@q+'%'
return
end
if(@controlType='form' and @controlCode='editTable') begin
-- SELECT 1
select id Value, isnull(title, '') + ' - ' + code Text
from as_crud_tables where code like '%'+@q+'%' or title like '%'+@q+'%'
return
end
-- SELECT 1
select 1 Value, 'Invalid control type or code' Text
END
Входные параметры:
- q - что набрал в поиске пользователь
- parameters - содержит terminalCode, terminalItemID
- controlType - тип компонента (from, table, dashboard)
- controlCode - код компонента (например, код формы)
- username - текущий пользователь
Выходные параметры
SELECT 1
- Value - значение itemID
- Text - выводимый текст для пользователя (например, ФИО клиента)
Загрузка виджета по ссылке
Вы можете разместить ссылку в произвольном месте страницы (на которой есть терминал) для добавления конкретного виджета, доступного для загрузки на данном терминале.
Для этого указываем ссылку следующего вида:
<a href="#" class="as-term-widgetLink" data-type="form" data-code="editSetting" data-itemid="globalJS">LINK</a>
- data-type - тип загружаемого компонента
- data-code - код компонента (например, код формы)
- data-itemID - itemID, который передается в компонент. Если здесь пустая строка, то передается defaultItemID от начального элемента в списке доступных виджетов
Системные элементы
В базе данных терминалы хранятся в таблицах с префикcом as_term_:
- as_term_types - типы терминалов
- as_term_terminals - терминалы конкретных пользователей
- as_term_areas - панели терминалов
- as_term_widgets - виджеты, добавляемые на панели терминалов
- as_term_log - лог действий пользователей с терминалами
Для переноса компонента необходимо перенести все хранимые процедуры с префиксом as_term_ и term_example и таблицы с префиксом as_term_.
При разработке таблиц и форм, предназначенных для терминалов стоит учитывать, что все взаимодействие происходит по возможности без переходов на другие страницы:
- вместо перехода на отдельные страницы - открываем модальные окна, подтаблицы, таблицы/формы по ссылке.
- вместо обновления страницы через полную перезагрузку - используем обновление области страницы через refreshContainer (например, обновление конкретного виджета).
Google поиск по нашей документации
- Руководства
- Основа Falcon Space
- Основные компоненты Работа со статусами. Управление статусами заявок, сущностей в личных кабинетах пользователей Работа с таблицами. Создание таблиц на сайте Работа с формами Работа с дашбордами личных кабинетов Диаграммы и графики в личном кабинете на сайте Календарь. Управление событиями в личном кабинете Терминал - рабочее пространство с окнами и вкладками
- Возможности
- Коммуникация с пользователем
- Дизайн, стилизация
- Лендинги
- Универсальный API
- Примеры интеграций
- Каталоги
- Навигация
- Документы
- Дополнительные компоненты
- Продвижение, SEO
- Системные моменты
- Системное администрирование
- HOWTO
- Таблицы
- Формы
- Загрузка файлов, картинок
- Работа с SQL
- HOWTO JS
- HOWTO Верстка
- Решение проблем
Falcon Space
Это снижение стоимости владения
за счет меньшего количества людей для поддержки и узкого стека разработки. Про снижение стоимости владения продуктом
Это быстрое внесение изменений
по ходу эксплуатации программы. Как создается функционал на платформе
Это простой удобный интерфейс
адаптация под мобильные устройства. Про юзабилити платформы