Универсальная кнопка действия as_submit
Иногда есть потребность сделать 1 кнопку для выполнения некоего действия в системе.
Для этого можно использовать модальные формы (as-form-modal), но при этом будет выводиться дополнительное окно + необходимо создавать форму.
Более легкий вариант - использование кнопки as-submit (основан на механизме request js).
Разметка сниппета:
<a href="#" class="as-submit" data-code="t1" data-itemid="123" data-confirmtext="Вы уверены?" data-selector=".tooltip-toggle:first" data-needvalue="Укажите ФИО">Link1</a>
Параметры:
- code (обязательный) - служит для идентификации действия и является часть имени хранимой процедуры.
- itemID - некий строковый параметр.
- confirmText- если указан, то будет при клике на кнопку выводится окно подтверждения операции.
- selector - если указан, то осуществляется поиск этого элемента на странице и его значение помещается в параметр value.
- needValue - если указана строка, то при пустом value (что определяется посредством selector) будет выводиться alert с этой строкой.
На сервере реализуем хранимую процедуру request вида request_submit_{code}
Пример:
create OR ALTER PROCEDURE [dbo].[request_submit_t1]
@parameters ExtendedDictionaryParameter READONLY,
@username nvarchar(32)
AS
BEGIN
declare @itemID nvarchar(max) = (select value2 from @parameters where [key]='itemID')
declare @value nvarchar(max) = (select value2 from @parameters where [key]='value')
-- SELECT 1 Msg, Result
select 'Params: '+ isnull(@itemID, 'xx') + ' - ' + isnull(@value, 'xx') Msg, 1 Result
-- SELECT 2 Основные данные в виде произвольной таблицы
select 1
-- SELECT 3 Внешние действия
END
На входе из @parameters извлекаем itemID и value (значение контейнера или элемента управления из параметра selector разметки сниппета).
На выходе:
SELECT 1
- Result - Результат операции, 1 или 0,
- Msg - выводимое соощение в alert, если пустое или пробел, то не будет выводиться окно alert.
- Type - тип выводимого сообщения. Если не указан, то при result=1 будет success, и при result=0 будет danger,
- Actions - JSON для действий на клиенте после выполнения операции. Подробнее про actions.
SELECT 2 - некие данные в свободном виде. Их можно использовать в JS коллбеке операции.
SELECT 3 - внешние действия. См. про внешние действия.
Если нужна кастом обработка результата операции, то пробуем использовать actions. Если этого недостаточно, то делаем JS коллбек вида:
as.callbacks["submit_t1"]=function(btn, data){
}
где btn - исходная кнопка, data - данные от сервера после операции, t1 - это код(data-code) исходной кнопки.
Страница-источник на сайте falconspace.ru
-
Руководства
-
Основа Falcon Space
-
Основные компоненты
-
Возможности
-
Коммуникация пользователей
-
Дизайн, стилизация, юзабилити
-
Лендинги
-
Универсальный API
-
Интеграции
-
Каталоги
-
Навигация
-
Документы
-
Дополнительные компоненты
-
Продвижение, SEO
-
Системные моменты
Отслеживание изменений хранимых процедур и страниц (logChanges) Логирование изменений объектов на примере хранимых процедур Работа с редактором кода в личном кабинете разработчика Логирование событий в приложении (trace) Действия в браузере actions JSON Как быстро перенести решение (таблицы, формы, страницы) на другую базу? Настройка диалоговых окон и alert окошек Мелкие удобства для разработчика в личном кабинете Как отследить и ограничить большое количество однородных запросов на сайте Изменение процедуры поиска, процедуры общих элементов Layout, процедуры периодического запуска Как изменить длительность показа сообщений Форма обратной связи по ошибкам, предложениям suggestion Как разграничивать права на уровне бизнес-логики хранимых процедур Безопасная обработка данных и проверка доступа в хранимых процедурах Использование типовой разметки в виде сниппетов для решения различных задач Как логировать клики на определенных элементах в системе Обработка старых браузеров (сообщение об устаревшем браузере) Безопасность. Как скрыть некоторые заголовки (http headers) в запросах Отображение сообщения об offline (Нет сети) Рабочее место разработчика через терминал Обновляемые метки времени в сообщениях на сайте Подсказка по интерфейсам хранимых процедур компонентов Защита от CSRF атак через дополнительный токен в формах Дополнительные параметры в @parameters (во многих хранимых процедурах) Как логировать события в Falcon в другую базу (чтобы ограничить рост основной базы данных) Сообщение об использовании куки (Cookies) Как искать код некоего компонента (таблицы, формы и т.д.) на странице Как сделать так, чтобы почта отправлялась асинхронно без задержек Работа со сниппетами кода Универсальная кнопка действия as_submit Режим показа таблицы/формы в alert окне Реализация системы анализа IP посетителей
-
Системное администрирование
-
HOWTO
-
Таблицы
-
Формы
-
Поля формы
-
Загрузка файлов, картинок
-
HOWTO SQL
-
HOWTO JS
-
HOWTO Верстка
-
Решение проблем