Руководства
Введение в веб-платформу Falcon Space. C чего начать?Мануал для начинающего разработчика Falcon SpaceВидео о создании сайтов на Falcon SpaceВопросы и ответы для тех, кто начал разрабатывать на Falcon SpaceТиповые ситуации для админа-разработчика в панели управления Как создать таблицу на сайте по шагамКак создать форму на сайте по шагамКак создать дашборд в личном кабинете пользователяПример создания системы по учету Кадры (HR) на сайтеКак улучшить свой код - заметки по ревизии кодаКак сделать аналитический отчет или таблицу на сайтеПодробное описание процесса создания формы Обратная связьСоздание системы уведомлений из внешних источников (через API)Как отслеживать историю действий пользователя или историю событий по объекту системыКак сделать отслеживание посещений сайта конкретными людьми?Как сделать перевод сайта на другой язык для нетехнического специалистаКак сделать функционал оценки полезности материалаСоздание из под editor структуры личных кабинетов (роли, страницы)Улучшение адаптивности страниц под мобильные устройстваСоблюдение порядка в проекте в процессе сопровождения сайтаКак считать показатели год-к-году (YoY) в отчете по периодамКак добирать данные по объекту из внешних источников по API
Основа Falcon SpaceОсновные компонентыВозможностиКоммуникация пользователейДизайн, стилизация, юзабилити
Гид по стилям Falcon SpaceРуководство по юзабилити сайтов на Falcon SpaceЭлементы стилизации в разметке страниц кабинетов на Falcon SpaceУправление темами сайта. Как создать новую тему дизайна сайтаКак внедрять готовую верстку в страницуКак внедрить форму настроек внешнего вида сайтаГорячие клавиши Falcon SpaceСоздание своей темы для сайтаОграничения по изменению дизайнаКак сделать дизайн сайта со скругленными элементами (или без скруглений)Как сделать свою верхнюю полоску сайта (customHeader)Как внедрить новый шрифтКак через CSS управлять стилями конкретных страницКак показать элемент увеличенным при наведении (например ячейка таблицы)Изменение стилизации через CSSКак поменять столбцы местами на смартфоне (order-1 order-md-2)Как сделать анимацию иконокАнимация элементов. Как работать с анимациейДобавление анимацииУправление анимацией для форм, таблицКастомные CSS файлы для страницыПанели с тенью и со скруглением Как внедрить свой CSS на каждой странице порталаКак сделать основное меню горизонтальнымКак убрать все тени и сделать дизайн плоскимКастом разметка верхней панели (TopMakeup)Интерфейс кабинета - это не методы репозитория CRUD!Как сделать липкую панель сверху страницыКак сделать основное меню белымВывод справа на странице float панелиКак поменять степень затемнения фона у диалогового окнаУправление иконкой в окне alert справа вверху окнаКак стилизовать иконкуВывод на экран денежных сумм (отображение рублей, валюты) - as-moneyКак увеличить картинку на страницеВизуализация воронки на основе данныхКак сделать модальное окно определенной шириныПанели показа подсказок (для базовых инструкций по странице)Как сделать левое меню по умолчанию свернутым?
Лендинги
Работа с лендингами (lands)Как создать новый лендинг?Как максимально быстро создать лендинг на базе Falcon SpaceКак внедрить лендинг со своим шаблоном и стилямиКак создать сайт полностью на лендингах?Как устроен механизм лендингов внутриКак переместить лендинг на главную страницу (или на любую другую)Как сделать набор типовых лендингов (например, карточки товаров)?Как сделать копию лендинга с другим адресом или перенести лендинг на другой сайтКак использовать много раз одну секцию в разных лендахКак отключить секцию лендинга или менять их порядок на лендингеКак задать высоту/подложку секции лендингаКак для ленда подключить скрипты или CSSКак прописать SEO параметры для лендаКак создать свой шаблон новой секции лендинга?Как редактировать секцию лендингаГде посмотреть список лендингов?Как сделать меню лендинга или меню сайта на лендахКак сделать подстановочными фавикон, seo title у лендингаКак сделать так, чтобы PWA работал для лендингов
Универсальный APIИнтеграции
Подключение к удаленным серверам SQL Server через Linked ServerZapier интеграция на платформе Falcon SpaceПрием платежей через Яндекс.КассуИнтеграция с Робокассой (платежный шлюз)Пополнение средств через Yookassa (Юкасса)Прием платежей на сайте через CloudPaymentsИнтеграция с платежным шлюзом LifePayУведомление от ТБанка по операциям с расчетным счетомИнтернет-эквайринг Тинькоф БанкИнтеграция API DaData.ru подсказки по адресамИнтеграция коллтрекинга МАНГО ОФИС (режим Площадка)Интеграция API Курсы валют Центрального Банка РФИнтеграция API Почта РФИнтеграция API Служба доставки СДЭК (CDEK)Интеграция API Служба доставки Деловые линииИнтеграция API IpGeoBase Город по IP-адресуИнтеграция API DaData.ru Город по IP-адресуКак вычислить расстояние между 2 геоточками через Google MapsКак сделать интеграцию с Мой СкладКак сделать вебхук для передачи данных с Тильды на Falcon SpaceСканирование штрихкодов и QR кодов через камеру смартфонаПолучение данных контрагента по ИННВнедрение подсказок dadata на сайтВывод точек на карте Яндекс. Интеграция с Яндекс КартыИнтеграция с телефонией Zadarma.comПолучение данных о контрагенте - интеграция ЗаЧестныйБизнесИнтеграция с AMO CRMИмпорт контактов в CRM из Google КонтактыВход/регистрация через ВКонтакте(vk.com)Интеграция CRM с онлайн чатом на сайте (Replain)Как связать yandex metrika clientID с пользователем сайта?Как сделать обработку входящей почты (создание клиента в CRM из Email)Интеграция сайта с ChatGPT (openAI)Интеграция с Яндекс МетрикаИнтеграция с Youtube. Получение роликов каналаИнтеграция с Ozon, Wildberries - извлечение статистикиИнтеграция с API Яндекс Вебмастер
КаталогиНавигацияДокументыДополнительные компонентыПродвижение, SEOСистемные моменты
Отслеживание изменений хранимых процедур и страниц (logChanges)Логирование изменений объектов на примере хранимых процедурРабота с редактором кода в личном кабинете разработчикаЛогирование событий в приложении (trace)Действия в браузере actions JSONКак быстро перенести решение (таблицы, формы, страницы) на другую базу?Настройка диалоговых окон и alert окошекМелкие удобства для разработчика в личном кабинетеКак отследить и ограничить большое количество однородных запросов на сайтеИзменение процедуры поиска, процедуры общих элементов Layout, процедуры периодического запускаКак изменить длительность показа сообщенийФорма обратной связи по ошибкам, предложениям suggestionКак разграничивать права на уровне бизнес-логики хранимых процедурБезопасная обработка данных и проверка доступа в хранимых процедурахИспользование типовой разметки в виде сниппетов для решения различных задачКак логировать клики на определенных элементах в системеОбработка старых браузеров (сообщение об устаревшем браузере)Безопасность. Как скрыть некоторые заголовки (http headers) в запросахОтображение сообщения об offline (Нет сети)Рабочее место разработчика через терминалОбновляемые метки времени в сообщениях на сайтеПодсказка по интерфейсам хранимых процедур компонентовЗащита от CSRF атак через дополнительный токен в формахДополнительные параметры в @parameters (во многих хранимых процедурах)Как логировать события в Falcon в другую базу (чтобы ограничить рост основной базы данных)Сообщение об использовании куки (Cookies)Как искать код некоего компонента (таблицы, формы и т.д.) на страницеКак сделать так, чтобы почта отправлялась асинхронно без задержекРабота со сниппетами кодаУниверсальная кнопка действия as_submitРежим показа таблицы/формы в alert окнеРеализация системы анализа IP посетителей
Системное администрированиеHOWTO
Как сделать отдельный универсальный поискМодальная ссылка (as-modal)Как идентифицировать анонимного пользователя (по куки)?Дашборды. Как вызвать коллбек после загрузки дашбордаКак вынести правила редиректа в отдельный файл configСтраницы. Как сделать редирект на другую страницу при загрузкеСтраницы. Как изменить текст на главнойСтраницы. Как использовать дополнительные параметры на страницеСтраницы. Как выводить списковые данные в теле страницы (repeater)Страницы. Настройки страницы для формирования главного менюСтраницы. Мне нужен в URL параметр itemID, но там передается из-за сущностей InstanceIDСтраницы. Как сделать мастер описания функционала страницыКак добавить событие в календарь GoogleКак сделать кнопку определенного действияКак сделать горячие клавиши для событий (нажатие кнопки)Как показывать баланс пользователя вверху кабинета?Где взять фото пользователяКак сделать поддомены с разными языками для сайтаКак управлять страницей “404 Страница не найдена”Отслеживание всех действий пользователя в системеКак выводить денежные данныеКак дать возможность некоторым ролям вводить html в формах?Что делать если открытая вкладка (tab) сбрасывается при перезагрузке страницы?Как реализовать создание периодического отчета на почтуПопап (popup) окна - показ модальной формы по событию или таймаутуКак быстро просматривать типовые отчеты с возможностью редактирования SQLКак максимизировать показатели Google PageSpeed для сайта на Falcon SpaceКак реализовать окно уведомления об использовании куки (cookies)Вывод на странице штрихкода (barcode) и QR кодаКак в тексте сделать ссылки кликабельнымиКак внедрить на сайте автоопределение города с возможностью выбораКак внедрить оглавление в текстКак вставить универсальный поиск в любое место страницыКак определить координаты lat lng пользователя в текущий моментКак сделать сортировку дерева с Drag-and-DropКак обновить часть страницы по клику на кнопкеЗагрузка дашборда по ссылке as-dashboard-linkКак запретить копировать текст с сайта. Как добавлять ссылку копирайта в текст при копировании с сайтаКак изменить шаблоны хранимых процедур для Формы, Таблицы и др.Определение местоположения пользователя по IP через API (as-ip)Форма Нашли ошибку по Ctrl+EnterКак определить откуда пришел пользователь на сайт? Фиксация источника посещения пользователем сайтаКак сделать ссылку, которая скроллит к элементу на страницеКак показать/скрыть область на странице по ссылке - as-collapseКак сделать обновление интрефейса у другого пользователя по некоему событию
Таблицы
Как сделать таблицу в модальном окне (открывается в диалоговом окне)Как реализовать подтаблицу (вложенная таблица), подформу в таблицеКак связать 2 таблицы Загрузка таблицы по ссылкеКак связать таблицу и редактирование сущности (зависимая страница)Как использовать комментарии в таблицахКак добавить в фильтре значение Не выбрано со значениемКак установить ширину колонки в таблице Как добавить диапазон даты или чисел (слайдер) в фильтрКак сделать операции только для некоторых строкКак делать различный набор столбцов одной таблицы для разных ролейКак убрать показ количества строк результата в заголовке таблицы? Как сделать сортировку в таблицеКак сделать Editable для галочки (Да/Нет) в AS CRUDКак редактировать колонку с датойКак скрыть строчные операции в таблице для определенных строкКак добавить коллбек после загрузки таблицыОтображение таблиц на смартфонеКак работать с галочками в таблицеЧастые ошибки при настройке таблицы (почему не работает таблица)Как обновить подтаблицу после выполнения некой операцииКак обрабатывать групповые операции через модальную формуКак создать предустановленные фильтры для таблицыКак сделать сворачивание таблицы (collapse table)Как убрать старые dict процедуры в формах и таблицахКак сделать фильтр с деревом галочекКак отключить сохранение состояния таблицы (фильтры)Как сделать ссылку на всю строку таблицыКак передать через URL значение фильтраКак сделать обрезание ячеек таблицыСортировка строк в таблицеСоздание сущности с учетом значений фильтровОптимизация запроса SQL - извлечение данных для таблицыКастомная разметка в таблицеРежим кастом вывода через JS (custom)Как настроить дополнительные шапку и подвал у таблицыКак сделать зависимые фильтры в таблицеИмпорт данных в формате файлов txt, csv через таблицуКак гибко управлять видимостью столбцов таблицыКак сделать раскрытие подстроки через любую ссылкуРежим быстрой фильтрации строк без обращения на серверВыпадающая панель рядом с названием таблицы dropdownPanelКак убрать при загрузке установку фокуса ввода на фильтр (data-nofocus)?Как сделать аналитику по периодам (таблица с интервалами дат)Кастомизация вида операций таблицыСтилизация фильтров таблицы
Формы
Как вывести форму во всплывающем окне рядом с кнопкой (popover)Загрузка формы по ссылкеКак принимать в форму не 1 параметр (itemID), а несколько входящих параметров? data-param-p1Как сделать модальную форму Как добавить коллбек после загрузки формы и после сохранения формы.Как показывать на форме прогресс заполнения (прогресс заполнения формы)Как сделать форму в виде мастера шаговКак сделать подтверждение действия в СМС (SMS) в формеКак установить поля в форме по умолчанию при загрузкеКак показывать изменяющуюся информацию при изменении полейФормы. Как сделать в форме более 1 кнопки действий (несколько кнопок действий на форме)Как правильно обрабатывать цены (дробные числа) на формеКак передать в форму скрытый параметрКак в форме добавить примеры заполнения полей (example)Как выбрать значение списка через справочник в модальном окнеКак сделать окно подтверждения действия формыДинамическое изменение itemID у формы в зависимости от других элементов страницыКак скрывать/показывать, обновлять область на странице при изменении поля формыКак добавить новый элемент, если в списке на форме его нетКак перезагрузить страницу после сохранения формыКак вывести списковые данные или таблицу внутри формыКак сделать зависимые поля в форме (Страна, Город)Как сделать кастомную HTML разметку для формы (jsRender)Как создать кастом форму с подтверждением действия по Email или SMSУстановка фоновой панели для формыКак сделать задержку при сохранении формы (saveDelay)Подсказки-ограничители длины для полей в формеКак динамически изменять тип поля формыКак сохранить значение поля в браузере, чтобы каждый раз его не вбивать при загрузке (оставлять последнее сохраненное). Запоминание поля формы в браузереКак выводить разные данные на одной форме для разных ролейКак сделать форму с сохранением состоянияКак сделать поля с анимацией значенийИспользование Google Recaptcha в формахКак обновить таблицу после сохранения формы в модальном окнеКак указать произвольную маску для поля ввода в формеКастом проверка полей формы через JSКак в выборе даты (datepicker) задать доступные датыКак создать форму для редактирования сущностиЗагрузка формы в выпадающем окне (dropdown)Добавление смайликов (emoji) в поля формКак у формы сделать progress bar при загрузке формыРабота с датами в формахПоказ количества символов рядом с полем в формеКнопка очистки формы ResetКонтроль заполнения ключевых форм на сайтеКак сделать форму с простым подтверждением действия (confirm)Как поменять соотношение длины метки и поляКак при сохранении формы вывести сообщение printlog, а не alert
Поля формы
Поле Список поиска значения (autocomplete, search-select) Как в форме вывести список галочек (множественный выбор поля)Как сделать списки select и chosen с категориями (optgroup)Как сделать выбор адреса и сохранение координат места (lat,lng).Установка графика работы (поле формы weekTime)Как в форму в SaveItem передать некий скрытый параметр (например Куки или параметр URL)Как работать с полем типа Слайдер (ползунок)Как использовать в форме поле Выбор файлов. Типы полей формы files, remoteFile, fileContentКак редактировать текст элементов  HTML в Rich-редактореУправление настройками поля через options_ поляВставка ссылок по шаблону (ютуб ссылка, patternString)Как использовать Флажки и выбор радио с картинкойКак работать с полем ТаймерКак сделать выбор цвета в формеКак вывести дерево с выбором галочекКак выводить и сохранять множественный список через chosen поле.Обработка даты из поля datetime-localРедактор текста - код поля формы html2Как работать с полем Дробное числоКак настроить выбор вариантов для поля Интервал датВыбор из элементов с табуляцией - поле формы tabsТип поля imageCheckbox (флажок-картинка)Поле формы Градиент (gradient)
Загрузка файлов, картинок
Работа с ресурсами. Загрузка картинок, файловУправление файлами на сервере (файловый менеджер)Загрузка на форме текстовых файлов и обработка их в процедуре SaveItemКак добавить в колонку таблицы управление файламиЗагрузка файлов с drop областью и гибкой разметкой (компонент as-files)Как приводить картинки к заданным размерам при загрузке на сайтИмпорт и парсинг файла CSVЧем отличается код типа ресурса от типа объектаКак получить ссылку на ресурсКак установить права доступа на менеджер ресурсов?Как загружать фото с обрезкой Как увеличить размер подгружаемых файлов (как загружать большие файлы)Передача файлов по FTPКак искать битые ресурсы, картинкиПодбор оптимальных параметров менеджера ресурсовПодгружаемые файлыМассовая загрузка картинок в систему ресурсовНе грузится файл через менеджер ресурсовФайлы загружаются на сервер, но при скачивании выходит ошибка 404.3 (загрузка ODT, Проблема с MIME типами)Поддержка Webp формата для оптимизации картинокМассовая оптимизация картинок в менеджерах ресурсовНе выводятся картинки на сайте (401, 403 ошибка при загрузке картинок)Как установить JS callback после выполнения crop картинкиНе отображается картинка юзера справа вверхуКак изменить текст "Нет файлов" в as-resourceManager?Обработка спецсимволов в названии файлов Как поставить водяной знак на картинку при загрузкеКак оптимизировать качество картинок при загрузке на сайтКак создавать для загружаемой картинки копии с разными размерамиКак загружать файл, когда задействовано диалоговое окноКак загрузить файл по конкретному путиКак сделать возможность грузить только 1 фотоКак поставить фильтр на типы файлов и ограничить форматы загрузки картинок?Как обработать событие после удаления или добавления файлов? Не выводятся картинки в менеджере ресурсов. Что делать?Как вставить менеджер ресурсов в форму с заданным itemID
HOWTO SQLHOWTO JSHOWTO ВерсткаРешение проблем

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

В 2-3 раза экономнее и быстрее, чем заказная разработка
Более гибкая, чем коробочные решения и облачные сервисы
Используйте готовые решения и изменяйте под свои потребности

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

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

Введение

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

  • Системный 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, то после выхода пользователь будет переходить на этот адрес, а не на главную
  • logoffCleanFalconGuid - если 1, то при выходе будет очищаться куки falconGuid
  • mail…. - Настройки отправки почты
  • emailAsync - если 1, то почта будет отправляться асихнронно (т.е. не задерживать основной запрос и выполняться в отдельном потоке).  
  • robots.txt - редактирование файла индексации robots (для поисковиков)
  • showDebugInfo - если 1, то для компонентов Форма, Таблица, Дашборд и другие будут выводиться JSON объекты в консоль браузера (независимо от роли)
  • editPageInModal - если 1, то для editor и admin будет управление страницей открываться в модальном окне на этой же странице. 
  • uploadTinyFilenameFormat - при загрузке файла через редактор HTML можно задать маску имени используя переменные {name} (начальное имя файла), {g} (часть GUID), {num} (случайное число).
  • 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="FalconSpace.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)
  • fontLink - загрузка шрифта. По умолчанию загружается шрифт с Google Fonts. Если равен пробелу, то не добавляется подключение шрифта. 
  • 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, // длительность в течение которого учитывается количество запросов (в миллисекундах)
    "imageCheckboxDefaultImage": "https://demo.web-automation.ru/uploads/fire.gif",  // поле формы imageCheckbox - картинка по дефолту
    "imageCheckboxDefaultWidth": "50px", // поле формы imageCheckbox - ширина по дефолту
    "imageCheckboxDefaultHeight": "50px", // поле формы imageCheckbox - высота по дефолту
    "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, // кол-во секунд, в течениие которых временная метка выводится как "только что" 
"table.mobCardsHorizontal": true, // если true то строки таблицы в моб будут идти как карточки со скроллингом вправо.
    "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.disableScrollEvent": false, // если true то событие onscroll будет отключено (для отладки ситуаций, когда зависает страница при скрролле).
"system.persistGeoPosition": false, // если true, то в куки geoLat, geoLng будут писаться координаты lat lon при каждой загрузке страницы и обновляться каждые 10 сек. 
"system.persistGeoPositionPeriod": 10000, // период для обновления куков по гео позиции geoLat, geoLng
    "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 поиск по нашей документации

Нужна бесплатная консультация?
Планируете делать веб-проект?
Если видео Youtube плохо грузится, то попробуйте найти видео в ВК видео на канале Falcon Space
Сайт использует Cookie. Правила конфиденциальности OK
Подождите...