Терминал - рабочее пространство с окнами и вкладками
Терминалы позволяют организовать работу пользователя таким образом, что:
- Он будет работать в основном на одной странице с различными виджетами.
- Пользователь сам определяет состав своего рабочего пространства, организует расположение блоков.
Терминал это рабочее пространство, поделенное на области/панели (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
В 2-3 раза экономнее и быстрее, чем заказная разработка
Более гибкая, чем коробочные решения и облачные сервисы
Используйте готовые решения и изменяйте под свои потребности
- Шаг 1. Создать концепт проекта
- Шаг 2. Получить оценку бюджета (КП)
- Шаг 3. Заключить договор
- Шаг 4. Создать совместно техническое задание
- Шаг 5. Поэтапная реализация проекта