Универсальная кнопка действия 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) исходной кнопки.

 

Falcon Space - функциональная веб-платформа разработки на узком стеке MS SQL/Bootstrap. Вводная по Falcon Space
Насколько полезной была статья?

Google поиск по нашей документации

Выгода от использования Falcon Space

В 2-3 раза экономнее и быстрее, чем заказная разработка
Более гибкая, чем коробочные решения и облачные сервисы
Используйте готовые решения и изменяйте под свои потребности
Нужна бесплатная консультация?
Планируете делать веб-проект?
Сайт использует Cookie. Правила конфиденциальности OK