Настройки системы

Смотреть видео

Введение

В системе есть различный уровень настроек:

  • Системный SQL (/syssp) задает ключевые настройки, работающие через SQL ( в первую очередь это каркас страницы GetLayout)
  • Статичные настройки (/settings) - раздел неизменяемых опций, которые используются в системе
  • Системные настройки (файл web.config)
  • Настройки frontend (/uploads/as.systemOptions.js) - для стилизации и работы в JS 

Раздел Системный SQL (/sysSP)

Находится в меню "Система" -> "Системный SQL". Основные характеристики:

  • Процедура поиска (falcon_search) - процедура глобального поиска (в шапке сайта)
  • Процедура GetLayout (falcon_getLayoutInfo) - процедура извлечения для построения страницы (язык, настройки макета и т.д.). Выполняется при загрузке каждой страницы
  • Периодический запуск (falcon_sync) - хранимки, которые запускаются по периоду. Чтобы они корректно работали, необходимо настроить ежеминутный вызов адреса из внешнего сервиса (см. соответствующий раздел)
  • Генерация sitemap.xml (falcon_sitemap) - создание карты сайта в виде файла sitemap.xml

Раздел  Общие настройки /settings

Находится в меню "Настройки". Основные характеристики:

  • apiType  - тип вывода АПИ. Либо XML либо JSON
  • brand - Что выводится наверху слева (название сайта)
  • commonScripts - разметка перед закрывающим тегом (счетчики, скрипты, глобальные кнопки и т.д.)
  • commonScriptsNoBot - разметка перед закрывающим тегом (счетчики, скрипты, глобальные кнопки и т.д.) для обычных посетителей, исключая ботов.
  • commonStyles - добавление стилей, подключение шрифтов
  • disableMailLog - если 1, то будет отключено логирование отправки писем в trace с кодом email
  • disableSendMail - если 1, то будет глобально для сайта отключена отправка писем. 
  • enableLogErrorForBot - если "1", то для ботов будут фиксироваться JS ошибки в trace (по умолчанию логирование ошибок для ботов отключено)
  • globalCSS - стили, которые применятся к каждой странице
  • globalJS - JS, который будет доступен каждой странице
  • globalRightBreadcrumb - разметка, которая добавляется в правые хлебные крошки на все стандартные страницы с хлебными крошками.
  • logChanges - логировать или нет изменения сущностей (если не используется, то лучше не логировать, чтобы не разрасталась база)
  • logoIcon - FontAwesome иконка для логотипа вверху слева
  • logoffURL - если указан URL, то после выхода пользователь будет переходить на этот адрес, а не на главную
  • mail…. - Настройки отправки почты
  • emailAsync - если 1, то почта будет отправляться асихнронно (т.е. не задерживать основной запрос и выполняться в отдельном потоке).  
  • robots.txt - редактирование файла индексации robots (для поисковиков)
  • showDebugInfo - если 1, то для компонентов Форма, Таблица, Дашборд и другие будут выводиться JSON объекты в консоль браузера (независимо от роли)
  • editPageInModal - если 1, то для editor и admin будет управление страницей открываться в модальном окне на этой же странице. 
  • sitemap.xml - редактирование sitemap.xml файла (для поисковиков). Настройка НЕАКТУАЛЬНА (данные теперь берутся из процедуры falcon_sitemap).

Как изменить элементы Layout (настройки GetLayoutInfo)

Для этого необходимо изменить процедуру falcon_getLayoutInfo в разделе Системные элементы/Системный SQL

Параметры процедуры: 

  • url - текущая страница 
  • username - текущий пользователь
  • langID - текущий язык
  • parameters ExtendedDictionaryParameter (необязательный) - содержит служебные данные (например, falconGuid - уникальный идентификатор любого посетителя, который хранится у него в куки)

Общий вид процедуры:

CREATE PROCEDURE [dbo].[falcon_getLayoutInfo]
	@url nvarchar(256),
	@username nvarchar(128),
	@langID int = 0,  -- 111,
    @parameters ExtendedDictionaryParameter READONLY	
AS
BEGIN
	declare @userGuid uniqueidentifier = (select top 1 try_cast(Value as uniqueidentifier) 
                                          from @parameters where [Key] = 'falconGuid')
   
    declare @disableSlideoutMenu bit = 0
    
	declare @isAdmin bit = dbo.sec_isUserInRole(@username, 'admin')
	declare @lang nvarchar(20) = ''
    
      
	declare @footer nvarchar(max) = [dbo].as_htmlBlockLang ('footer', @langID)
    declare @mobileFooter nvarchar(max) = [dbo].as_htmlBlockLang ('mobileFooter', @langID)
    
     
	declare @topNavbarText nvarchar(max) = [dbo].as_htmlBlockLang ('topNavbarText', @langID)
	declare @topPageText nvarchar(max) = [dbo].as_htmlBlockLang ('topPageText', @langID)
	declare @customHeader nvarchar(max) = [dbo].as_htmlBlockLang ('customHeader', @langID)
	declare @topSubMenuText nvarchar(max) = [dbo].as_htmlBlockLang ('topSubMenuText', @langID)
	declare @topSubMenuTitle nvarchar(max) = [dbo].as_htmlBlockLang ('topSubMenuTitle', @langID)
	     
    declare @topMakeup nvarchar(max) = [dbo].as_htmlBlockLang ('topMakeup', @langID)
	declare @topMobileMakeup nvarchar(max) = [dbo].as_htmlBlockLang ('topMobileMakeup', @langID)
	declare @customMetaTags nvarchar(max) = [dbo].as_htmlBlockLang ('customMetaTags', @langID)
	  
    declare @enableLang bit = iif(dbo.as_setting('enableLang', '')='True',1, 0)
	declare @enablePWA bit = iif(dbo.as_setting('enablePwa', '')='True',1, 0)
	declare @enableGeolocation bit = iif(dbo.as_setting('enableGeolocation', '')='True',1, 0)
	declare @geolocationKey nvarchar(128) = dbo.as_setting('geolocationKey', '')
	declare @saveGeoposition bit = iif(dbo.as_setting('saveGeoposition', '')='True',1, 0)
	declare @helpChatKey nvarchar(128) = dbo.as_setting('helpChatKey', '')
	declare @fixWidth bit = iif(dbo.as_setting('fixWidth', '')='True',1, 0)
	
      
    declare @dateFormat nvarchar(128) = dbo.as_setting('dateFormat', 'dd.mm.yyyy')
	declare @phoneFormat nvarchar(128) = dbo.as_setting('phoneFormat', '+7 (ddd) ddd-dddd')
	declare @linkPrefix nvarchar(128) = dbo.as_setting('linkPrefix', '5')
	declare @userPicLabel nvarchar(128) = iif(dbo.as_setting('showLogin', '')='True', @username, '')
	
    
    declare @enableAnimation bit = try_cast(dbo.as_design_getSetting('enableAnimation', '0') as bit), 
		@horizontalMainMenu bit = try_cast(dbo.as_design_getSetting('horizontalMainMenu', '0') as bit), 
        @theme nvarchar(128)  = dbo.as_design_getSetting('theme', '')
	declare @round nvarchar(32) =  dbo.as_design_getSetting('round', '')
	declare @roundClass nvarchar(32) = iif(@round='round', 'as-round', iif(@round='unround', 'as-unround', ''))

	-- SELECT 1 - LAYOUT SETTINGS
	select	
     		@theme  theme,  --@theme
    		isnull((select top 1 Value from as_settings where Code = 'Brand'),  'Falcon Auction') brand, 
            isnull(dbo.rs_resourceLink('siteLogo','0',1),'') LogoIcon,
            isnull(dbo.rs_resourceLink('favIcon','0',1),'/content/images/favicon.ico') favicon,           
    		@topNavbarText TopNavbarText,
            @topPageText topPageText,
            @topMakeup topMakeup,
            @topMobileMakeup topMobileMakeup,
            @customMetaTags customMetaTags,
    		@roundClass + ' ' + iif(@horizontalMainMenu=1, 'as-horizontalMainMenu', '') + 
            	iif(@disableSlideoutMenu=1, ' as-disableSlideoutMenu ', '' ) bodyClass,  -- as-disableSlideoutMenu
			'' leftFooterText,
			'' rightFooterText,
			@footer Footer,
            @mobileFooter mobileFooter,
            @customHeader customHeader,
            @topSubMenuText topSubMenuText,
            @topSubMenuTitle topSubMenuTitle,
			'/user' userProfileLink,
			@enableLang  enableLang,
			@lang defaultLang,
            @enableAnimation enableAnimation,             
			@enablePWA  enablePWA,            
			1 enablePWANotifications,
			@enableGeolocation EnableGeolocation,
            @geolocationKey  GeolocationKey,
            @saveGeoposition saveGeoposition,
			iif(@isAdmin=1, '0cebbe5e-7884-4c41-b09a-4c1dcbabeff7', @helpChatKey) HelpChatKey,
            @fixWidth fixWidth,
 			'' leftSidebar,
			iif(@username='',1,0) HideLeftCol,  -- 
			1 MainMenuInRightSidebar, 			
			'' BalanceSum,
			'' BalanceIcon,  -- fa-money-bill-alt
			'' BalanceLink,
			'' BalanceText,
			0 HorizontalMenuOnTop,
			0 BreadcrumbOnTop,        	
        	iif(@isAdmin=1,1,0) showSearch,
         	@dateFormat dateFormat,
         	@phoneFormat phoneFormat,
            1 DisableCart,
         	'http://schema.org/WebPage' SchemaTypeBody,
            '2x' alertIcon,
             @linkPrefix linkPrefix,
             @userPicLabel userPicLabel
          
	--SELECT 2 - TOP HORIZONTAL MENU 
	select 1 -- id Id, '' Name, '' Title, '' Url, 'fa fa-cogs' CssClass, 0 isActive, 0 ParentID 

	declare @select3 table (type nvarchar(max), title nvarchar(max), code nvarchar(max), itemID nvarchar(max), icon nvarchar(max),
                            btnText nvarchar(max), bigModal bit, FloatPanel bit, background nvarchar(max), ord int)
    insert into @select3 
    select type, title, code, itemID, icon, btnText,  bigModal, FloatPanel, background, ord  	    
    from as_layout_fastLinks 
    where dbo.sec_hasAccessByUsersRoles(@username, '', roles)=1
    --SELECT 3 FAST ADD LINKS
    select * from @select3 
    order by ord
	
    declare @select4 table (class nvarchar(max), title nvarchar(max), icon nvarchar(max), url nvarchar(max), ord int)
    insert into @select4 
    select class, title, icon, url, ord  	    
    from as_layout_stuffMenu 
    where @username <>'' and  dbo.sec_hasAccessByUsersRoles(@username, '', roles)=1
     	or @username = '' and onlyNotAuth = 1
    -- SELECT 4 STUFF MENU
	select * from @select4
    order by ord
	
    
    -- SELECT 5 MENU Labels
    /*
    select '/tickets' Url, 'fa fa-edit' Icon, '12' Value, 'light' Type, '123' Title
    union  
    select '/forms' Url, 'fa fa-edit' Icon, '' Value, 'success' Type, '123' Title
    */
    
    if(@username<> '') begin 
   		update as_users set lastVisitDate = getdate()
        where username = @username
    end 
   
END

Выходной первый select (SELECT 1) имеет следующие параметры: 

  • alertIcon - настройки вывода иконки в сообщениях справа вверху. Значения - no, x, 2x, 3x. Определяет размер иконки. Если no - то иконки не будут использоваться
  • BalanceSum, BalanceLink, BalanceText, BalanceIcon - вывод вверху элементов по балансу пользователя (в целом можно любую другую информацию вывести здесь о текущем пользователе).  Элемент выводится только если BalanceSum не пустая строка (выводить можно и для неавторизованных пользователей)
  • bodyClass - если указан, то к тегу body добавляется этот класс (необходимо для более точного CSS системных элементов (напр. хлебных крошек) для конкретных страниц)
  • brand - название сайта (слева вверху)
  • breadcrumbOnTop.  Если 1 - то хлебные крошки выводятся в верхней полосе шапки. Если 0 - то под шапкой
  • cartCode - задает код корзины для элемента в верхней полоске (data-code)
  • customHeader - разметка верхней полоски, полностью заменяет верстку верхней панели. Может содержать различные параметры замены вида {par1}. Подробнее
  • customMetaTags - кастомные настройки дополнительных тегов. По умолчанию там следующее: 
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="author" content="Falcon Space, Web-Automation.ru">
<meta name="theme-color" content="#cccccc">
  • dateFormat - установка вывода формата даты, по умолчанию dd.mm.yyyy
  • defaultLang - можно установить язык по умолчанию (например, ru-ru или en-us)
  • disableCart - если 1, то в шапке сайта не выводится элемент корзины
  • enableAnimation - включается анимация (появление заголовков, сообщение после сохранения формы, открытие модального окна)
  • enableGeolocation - если 1, то включает запрос разрешения на геолокацию в браузере и сохранение страны пользователя
  • enableLang - если 1, то можно менять язык справа наверху (локализация)
  • favicon - путь к favicon иконке
  • fixWidth  - если 1 то страница имеет фиксированную ширину (container). По умолчанию макет страницы резиновый (container-fluid)
  • footer - разметка для подвала (если она указана, то игнорируются leftFooterText  и rightFooterText)
  • geolocationKey - ключ Google GeolocationAPI для подключения скриптов геолокации
  • helpChatKey - если указать ключ для чата (пока только ключ чатов replain), то выведет внизу чат для помощи пользователю.  Указывается в формате replain:{id}. Можно давать различные чаты в зависимости от роли пользователя. Ключ чата можно получить на https://replain.cc/
  • hideLeftCol - если 1 то скрывается вся левая колонка с меню и лого на странице
  • HideNotificationPanel - если 1, то на странице под хлебными крошками не будет выводиться панель уведомлений для пользователя. По умолчанию она выводится.
  • horizontalMenuOnTop. Если 1 - то горизонтальное меню выводится в верхней полосе шапки. Если 0 - то под шапкой
  • leftFooterText - разметка в подвале слева, rightFooterText - разметка в подвале справа
  • leftSidebar - HTML разметка в левом сайдбаре, выводится для всех страниц
  • LinkPrefix - строка префикс для добавления в конец URL для загрузки CSS и JS. Требуется когда необходимо принудительно обновить у всех пользователей подгружаемые ресурсы (которые закешировались в браузере). В итоге ресурсы будут грузиться с ?v={prefix}
  • logoIcon - иконка бренда (слева наверху), по умолчанию fa-dove. Также можно указать путь - тогда будет выводиться указанная картинка
  • mobileFooter - разметка закрепленной полоски внизу мобильного (не заменяет footer). Типовая разметка: 
<ul class="list-inline mt-2 text-center">
    <li class="list-inline-item px-3"><a href="#" title=""><i class="fa fa-2x fa-cube"></i></a></li>
    <li class="list-inline-item px-3"><a href="#" title=""><i class="fa fa-2x fa-star"></i></a></li>
    <li class="list-inline-item px-3"><a href="#" title=""><i class="fa fa-2x fa-bars"></i></a></li>
    <li class="list-inline-item px-3"><a href="#" title=""><i class="fa fa-2x fa-fire"></i></a></li>
</ul>
  • phoneFormat - установка формата для телефона , по умолчанию +1 (ddd) ddd dd-dd
  • redirectUrl - если задан, то будет выполнен редирект на указанную страницу (пример в SELECT1:  select iif(@url like '%/diag%', '', '/diag') redirectUrl). Условие добавлено, чтобы не было редиректа.
  • saveGeoposition - если 1, то в скрытом поле as-latlng будут проставлены текущие координаты в формате "lat,lng"
  • schemaTypeBody - схема микроразметки Schema.org. Если указана, то у body проставляет схема (в общем случае можно использовать http://schema.org/WebPage)
  • showSearch - Если 1 то поиск показывается пользователю
  • theme - название темы. ВАЖНО! Не указывайте здесь названия несуществующей темы (в этом случае вся верстка сайта поедет и необходимо будет менять данную хранимую процедуру через SQL Management Studio). Тема это файл, хранящийся в папке /uploads/themes/{themeCode}
  • TopMakeup и TopMakeupMobile - задают кастомную разметку для верхней панели системы с использованием переменных вида {code1}. Подробнее
  • topNavbarText- разметка в верхней панели (слева от поиска)
  • topPageText - разметка, которая добавляется перед хлебными крошками на странице
  • TopSubMenuText, TopSubMenuTitle - задание большого подменю вверху. Выводится TopSubMenuTitle перед поиском и раскрывается в виде большой панели с разметкой TopSubMenuText
  • userPic - указывает путь на картинку (выводится в правом верхнем углу как аватар пользователя). Если не указывать - то работает стандартный механизм загрузки файла getFile (грузится через отдельную хранимую процедуру).  ВАЖНО - если картинка указана, то выбор картинки пользователем в профиле не будет влиять на нее 
  • userPicLabel - метка имени пользователя выводится рядом с аватаркой пользователя сверху справа. На мобильных экранах надпись скрывается
  • userProfileLabel - место-заголовок, которое выводися в меню профиля пользователя справа наверху. Если пустая - то будет выводится имя пользотеля (username). Если пробел " ", то не будет выводиться ничего.

  • userProfileLink - ссылка на профиль пользователя. Если заполнена - то показывается наверху справа в выпадающем списке. 

 

Второй запрос в GetLayout (SELECT 2) - это горизонтальное меню.

Модель SELECT 2: 

 --SELECT 2 - TOP HORIZONTAL MENU
select 1
/*
 select id Id,
	name Name,
	'' Title, подсказка к элементу
	code Url,
	'fa fa-cogs' CssClass, класс иконки
	0 isActive,
	parentID ParentID родительский элемент(для вложенного меню)
	from as_cat_categories
 */

Если не указан 2 запрос, то меню не выводится (это меню может никак не пересекаться с as_menu и pg_pages и строиться полностью динамически).

 

Третий запрос GetLayout (SELECT 3) дает список форм быстрого добавления, которые можно открыть с любой страницы в модальном окне. 

 Для этого используем следующую модель в SELECT 3: 

 

select * from  

    (select 'form' type,'Создать страницу' Title, 'newPage' Code, '' itemID, 'fa-plus'
     Icon, 'Создать страницу' btnText, 0 bigModal,  0 Ord
     union 
     select 'sp' type, 'Процедура GetLayout' Title, 'falcon' Code,'getLayoutInfo'
     itemID,  'fa-cube' Icon, '' btnText, 1 bigModal, 6 Ord
     union 
     select 'link' type,'Очистка кеша' Title, '/controls/stuff/clearcache' Code,''
     itemID, 'fa-trash' Icon, '' btnText, 0 bigModal,  500 Ord) t
     union 
     select 'formcont' type,'' Title, 'newPage' Code,'123'
     itemID, '' Icon, '' btnText, 0 bigModal,  500 Ord) t
Order by ord

 

При Type = form вызывается модальная форма 

  • Title - задает название элемента в списке и заголовок модального окна.
  • Code - код модальной формы
  • ItemID - data-itemID для формы.
  • Icon - иконка в списке
  • btnText - Кнопка сохранения в модальном окне
  • bigModal - Если 1, то делает модальное окно большим. 
  • slideout - Если 1, то форма будет в виде большого окна, выдвигающегося слева. Если 2 - то справа. Если 0 - то стандартное модальное окно по центру.
  • floatPanel - если 1, то кнопка будет участвовать во float панели справа.  Подробнее про float панель

При Type = formcont прямо в панели показывается форма (для малых форм)

  • Code - код формы
  • ItemID - data-itemID для формы
  • Title, Icon, btnText, btnModal, slideout  - не используются

Работа с формами

При Type = table вызывается таблица в модальном окне 

  • Title - задает название элемента в списке и заголовок модального окна.
  • Code - код таблицы
  • Icon - иконка в списке
  • bigModal - Если 1, то делает модальное окно большим. 
  • slideout - Если 1, то таблица будет в виде большого окна, выдвигающегося слева.

Работа с таблицами

При Type = link кнопка будет работать как ссылка и переходить по адресу, указанному в поле Code. 

При Type = sp кнопка будет работать как компонент изменения хранимой процедуры (компонент as-sp-link). 

При этом в Code указывается первая часть (data-control), в itemID указывается вторая часть (data-entity) и в btnText указывается 3 часть наименования хранимой процедуры (data-operation).

Примечание:

1. если при этом не нужен SELECT 2, то вместо него можно просто поставить Select '1'

2. Если нужно скрыть определенную ссылку, то можно установить type = '' 

3. Можно задать фон элемента через параметр background (bootstrap цвета - info, danger, warning и т.д.)

4. floatPanel =1 у ссылки помещает ее в плавающую панель иконок справа 

Четвертый запрос GetLayout (SELECT 4) определяет что будет выводиться пользователю в служебном меню справа (при нажатии на иконку пользователя).



-- SELECT 4 STUFF MENU

if(@username='admin') begin

  select * from  

   (select '' Class,'Мой профиль' Title, 'fa-user' Icon, '/user' Url, 0 Ord
    union 
    select '' Class,'Сменить пароль' Title, 'fa-key' Icon,
           '/admin/account/changepassword' Url, 1 Ord
    union 
    select '' Class,'Выход' Title, 'fa-sign-out-alt' Icon,
           '/account/logoff' Url, 2 Ord) t

    Order by ord 

  end else begin 

  select * from  

    (select '' Class,'Войти' Title, 'fa-user' Icon, '/account/login' Url, 0 Ord) t

  Order by ord 

end 

Примечание. Быстрые ссылки из SELECT 4 доступны через горячие клавиши Ctrl + Alt + [Num]

Пятый запрос GetLayout (SELECT 5) определяет лейблы, которые выводятся у пунктов меню.

select '/tickets' Url, 'fa fa-edit' Icon, '12' Value, 'light' Type, '123' Title
union
select '/forms' Url, 'fa fa-edit' Icon, '' Value, 'success' Type, '123' Title

По Url мы находим пункт меню и добавляем в него элемент с иконкой Icon, справа от иконки значение Value. Стиль подложки задает Type (secondary, light, success и т.д.)

Шестой запрос GetLayout (SELECT 6) содержит вызов внешних действий (отправка почты, телеграм и т.д.)

 

Настройки appsettings (web.config)

Это специальные системные настройки, которые хранятся в конфигурационном файле веб-проекта в разделе appSettings. В core версии платформы, эти настройки хранятся в файле appsettings.json

  • autoCommentToSP - если 1, то при сохранении хранимой процедуры в нее будет записываться в конец автокомментарий с именем пользователя и временем правки. 
  • catalogCacheMinutes - время кеширования в минутах результатов выдачи каталога (если 0, то кеширование не используется)
  • Cron:PeriodSeconds и Cron:Key - настройка внутреннего планировщика периодических событий, задают период события в секундах и ключ для проверки в хранимой процедуре
  • defaultLang (en-us, ru-ru) - установка языка по умолчанию (имеет приоритет над аналогичной установкой в Settings). Имеет смысл использовать когда 2 разных приложения используют одну базу и могут иметь разные настройки в web.config по языку. 
  • disableAntiXSSRoles - список ролей, которые могут отправлять на сервер HTML (защита от XSS атак). 
  • disableSaveTraceCodes - список кодов через запятую, для которых нужно отключить сохранение в trace. Если * - то любые коды не сохраняются. 
  • disableTransactions - если 1, то во всех запросах к БД отключены транзакции при выполнении запросов (режим используется для запроса к другим базам через openquery). Нюанс: если транзакции включены (по умолчанию), то не будут работать в runSQL редакторе прямые команды update, insert.
  • HotLinkRegexFilter, HotLinkRegexFilterDomain (доступно только в appsettings.json для Core) - указаны шаблоны путей, для которых будет включена защита от хотлинкинга (когда идет прямое обращение ресурса, а не со страницы с сайта). Указываем массив шаблонов, а также домены, с которых можно делать ссылки. Пример: 
HotLinkRegexFilter": [
"/uploads/(.*)"
],
"HotLinkRegexFilterDomain": "localhost"
  • hugeQueriesLimit - указываем суммарное число строк, вернувшихся от запроса, при котором логируется файл количества строк в as_trace с кодом huge (по умолчанию 500) используется для поиска больших массивов, загружающих процессор
  • jsAvailableTraceCodes  - устанавливает какие коды (строка через запятую) в trace может сохранить front сторона (из JS), по умолчанию это строка "event,dblreq" 
  • licenseKey - ключ лицензии экземпляра программы
  • listCacheMinutes - время кеширования в минутах результатов выдачи списка list (если 0, то кеширование не используется)
  • logChanges - если 1, то будут сохраняться все изменения хранимых процедур в базу данных
  • logUserAction - если 1, то в as_trace будут логироваться все поcещения страниц с кодом (pv) и все сохранения форм (с кодом sf)
  • proxyPassword - пароль к прокси
  • proxyUrl - адрес прокси для телеграма (в формате http://45.89.19.84:11498)
  • proxyUser - пользователь прокси
  • security:requestsInMinuteLimit и security:blockIPCacheMin - настройки блокировки частых запросов по IP (боты, парсинг). Подробнее
  • security:trapUrls - список URL через запятую. Если посетитель заходит на один из адресов, то он блокируется на некоторое время (например, значение /wp-admin,/wp-content). 
  • sendPrintToUsernames - список администраторов, кому приходят print из sql процедур в реальном времени (выводятся слева внизу на любой странице).
  • sqlTimeout - задает в секундах таймаут на запросы sql (по умолчанию 30 секунд)
  • telegramToken - токен телеграм. Если не указан, то бот телеграма не запускается
  • telegramOnlyTextMessages - если 1, то телеграм бот будет обрабатывать только текстовые запросы
  • traceTextSize - максимальный размер поля text в as_trace. (по умолчанию 2047). Если вы измените тип поля на nvarchar(max), то имеет смысл увеличить этот параметр до требуемого размера

Настройки кеширования 

В системе некоторые объекты кешируются на уровне сервера: 

  • меню пользователя
  • выдача каталога (время кеша устанавливается в web.config. Если 0, то отключено).
  • выдача списков list (время кеша устанавливается в web.config. Если 0, то отключено).
  • работа с ролями пользователей
  • настройки

Корневой префикс всех ключей кеша - as_ 

Вручную очистить кеш можно в разделе Настройки. 

Если необходимо чистить кеш после некоего действия в форме - используйте внешнее действие clearcache

select 'clearcache' type, 'as_' prefix

Дополнительные настройки через class для body

В GetLayout вы можете установить класс для тега body. Он может иметь некоторые значения для настроек: 

  • as-poorVision - чуть увеличенный шрифт, режим для слабовидящих. 
  • as-disable-onerror - отключен обработчик ошибок (и ошибки выводятся как есть в консоли браузера)
  • as-stickyLeft - левая панель всегда на виду
  • as-stickyTop - верхняя плашка всегда привязана к верху браузера
  • as-disableSlideoutMenu - отключает на мобильных устройствах открытие меню по swipe (движение пальцем вправо).

Настройки Frontend в JS файле

Некоторые настройки вынесены в файл /uploads/as.systemOptions.js. Они управляют отдельными деталями работы frontend. 

var as = as || {};

as.systemOptions = {
    "alert.alwaysHidePrev": false, // если true, то при появлении нового алерт будут скрываться все предыдущие
    "alert.disableProgress": false,  // скрывать в alert окне progress bar элемент
    "alert.defaultDelay": 7000,   // длительность по умолчанию для alert
    "alert.placement": "center",  // расположение окна алерт (center, leftBottom, leftTop, rightBottom). По умолчанию - справа наверху.
    "alert.defaultDelay": 7000, // задержка окна alert по умолчанию
    "alert.disableTimestamp":false, // настройка в as.systemOption.js - если true, то отключает показ метки времени в окошках alert
     "alert.headerIcon": "/uploads/1.png",  // путь к иконке для вывода в заголовке окна alert

    "copy.enableSourceAdding": true, // если true - то при копироовании текста с сайта будет идти добавка в текст.
    "copy.container": "", // указывает селектор контейнера, в рамках которого добавляется прибавка текста при копировании
    "copy.disableCopy": false, // если true - то при копировании текста через Ctrl + C не будет ничего скопировано в буфер обмена

    "form.disableMaxlengthInput": false, // отключить для полей с maxlength отображение остатка
    "form.spinnerIcon": "fa-spinner fa-spin", // иконка загрузки формы
    "form.progressDelay": 1000,  // delay for progress trigger field change
    "form.checkFieldDelay": 1500, // delay перед отправкой запроса по изменению поля.
    "form.updateDependentColsDelay": 200, // озадержка в мс перед срабатыванием триггера Зависимых колонок
    "form.resultContClasses": "p-3 my-3 text-muted shadow-sm border d-flex justify-content-between", // классы окна результата при сохранении форм
    "form.ctrlEnterForm": "founderror", // форма которая будет показываться при ctrl enter (с обработкой выделенного текста)
    
    "entity.statusColorStyle": "border: solid 1px {0}",  // задает стиль статуса Сущности {0} - #color
    "entity.actionColorStyle": "background-color: {0}", // задает стиль кнопки дейсвтия {0} - #color

    "disableDebugMode": false, // возможность отключить показ отладочных сообщений в консоли браузера

    "doubleRequests.disableCheck": false, // отключить контроль количества одинаковых запросов на странице
    "doubleRequests.count": 3, // порог по количеству запросов, после которого будет идти уведомление в trace с кодом dblreq
    "doubleRequests.countLimit": 4, // после превышения данного порога запрос будет отбрасываться и выводиться сообщение юзеру
    "doubleRequests.duration": 2000, // длительность в течение которого учитывается количество запросов (в миллисекундах)
    "menu.animateIcon": "faa-tada", // установить формат анимации иконок меню при наведении (варианты - https://l-lin.github.io/font-awesome-animation/)
    "menu.side": "right", // где выводится меню на мобильных устройствах - left.right
    "menu.disableSlideout": false, // если true, то не будет работать swipe для меню.
    "modal.headerBack": "danger",  // цвет верхней полоски в модальном окне
    "modal.bodyBack": "warning",   // цвет тела модального окна
    "modal.footerBack": "success", // цвет нижней части модального окна.
    "modal.enablePrevNextModal": false, // если true, то в модальном окне будут показаны кнопки перехода назад/вперед (переключение по истории показа модальных окон)
 "modal.changePageTitleWithModal": true, // если true то при открытии окна будет меняться title страницы (при закрытии возвращать начальное значение)
   "online.disableCheck": false, // если true - то не будет проверяться статус онлайн юзер или нет (as-online)
    "online.period": 30000, // через сколько миллисекунд опрашивать сервер о статусе юзера (онлайн или нет)
    "table.removeIcon": "far fa-trash-alt",// иконка удаления в таблице
    "table.commentIcon": "fa-comment", // иконка коммента в таблице
    "table.defaultTheme": "light", // тема для таблиц по умолчанию
    "table.instantFilterDelay": 1500,  // задержка в мс при срабатывании InstantFilter
    "table.subPlus": "fa-caret-right",  // иконка для свернутого состояния sub
    "table.subMinus": "fa-caret-down",// иконка для развернутого состояния sub
    "timestamp.secNow":10, // кол-во секунд, в течениие которых временная метка выводится как "только что" 
    "search.delay": 3000,  // через сколько мс начнет запускаться глобальный поиск
    "search.minLength": 5, // кол-во символов в поиске  с которого запускается поиск
    "switch.defaultWidth": "150px", // ширина переключателя по умолчанию 
"system.excludeExceptions": /Client Closed Request|1111/g, // какие JS ошибки не логировать
    "system.slowRequestLimitMs": 700, // если больше этого порога в мс, то Ajax запрос будет логироваться в trace с кодом slow
    "system.disableSignalR": false, // если true то будет отключен механизм signalR (уведомления с сервера на клиент о некоторых событиях)
    "system.getIPInfoUrlFormat" : 'some url {0}', // использование внешнего API для получения данных по IP ({0} - передаваемый API). Испольуется для компонента as-ip
"system.showButtonProgressIcon": "spinner-border spinner-border-sm mx-1",  // настройка спиннера у кнопки выполнения действия (напр, сохранение формы). Если непустая,то добавляется спиннер иконка с заданным классом
    // настройки для signalR уведомления
    "notifications.alertType": "info",  // вид вид уведомления SignalR
    "notifications.alertIcon": "fa fa-bell", // иконка уведомления
    "notifications.alertDelay": 100000, // как долго будет висеть уведомление
    "notifications.alertShowUserFrom": true, // если true  - то будет показываться юзер, от которого пришло уведомление
     "notifications.sound": "", // путь к звуковому файлу - будет проигрываться при новом уведомлении
     "notification.processNotificationIcon": "far fa-check-circle"  // иконка на кнопке обработки уведомления (в панели уведомлений).
                            
}

Для использования настроек в JS разработке следует использовать функцию as.option(code, defValue)

Главные горячие клавиши

  • Ctrl + Shift + S - сохранение формы или поля, вызов сохранения в модальном окне
  • Ctrl + Shift + [Num] - вызов одного из элементов меню быстрых действий (вверху) - по номеру расположения в меню
  • Ctrl + Shift + U - очистка storages в браузере (для быстрого решения проблем после обновления)
  • Ctrl + Alt + F - применение фильтра в таблице
  • Ctrl + Alt + N - вызов окна быстрого создания в таблице
  • Shift + Alt + Z - вызов окна быстрых действий
  • Ctrl + Shift + F11 - переключение диалогового окна на полноэкранный режим и обратно

Также есть механизм HotKeys - позволяет задать комбинацию клавиш и селектор элемента, на котором сработает данная комбинация.

Дополнительные элементы настройки

Запуск периодических событий

Универсальный поиск по сайту

Настройка почты

Установка и системные требования falcon space 

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

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

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

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