Falcon Space. HOWTO Общее

Как быстро перенести решение (таблицы, формы, страницы) на другую базу?

Для этого есть 2 пути:

  1. Через пакет переносов. Указываете в пакете, какие процедуры, таблицы базы,  формы, талицы, страницы входят в пакет и генерируете единый SQL скрипт переноса.
  2. Одиночный перенос - для таблиц, форм и страниц (на странице редактирования страницы) нажимаете кнопку Генерации SQL и он дает SQL, который необходимо выполнить на другой базе. 

Как быстро редактировать страницы и параметры компонентов

Для быстрого редактирования компонентов используйте иконки рядом с названием.

Для быстрого редактирования страницы есть иконка справа в хлебных крошках.

При этом помните, что на странице Управления колонками таблицы данная кнопка работает для системной таблицы “Колонки таблицы”, а не для той сущности, которую вы сейчас настраиваете.

Как сделать кнопку определенного действия

Используйте для этого формы в модальном окне (смотри документацию по формам):

  • Размещаете кнопку,
  • цепляете на нее форму с выводом через GetItem некой информации на чтение.
  • при saveItem выполняете операцию.

Анимация элементов. Как работать с анимацией

Для этого в процедуре GetLayout включаем анимацию в SELECT 1:

1 EnableAnimation

Анимация распространяется по умолчанию на следующие элементы:

  • Открытие/закрытие модальных окон
  • Появление заголовков
  • Сообщения о результатах операций.

Вы также самостоятельно можете использовать свою анимацию. Для этого у элемента в классе надо указать animated bounce.

bounce - это тип анимации и его можно менять. Все виды анимаций - https://daneden.github.io/animate.css/

Пример:

<div class="animated zoomIn"></div>

Как сделать анимацию иконок

Для этого на иконку указываем специальный класс: faa-[type] animated

Поменять скорость - faa-slow, faa-fast. 

Для анимации при наведении на родительскую кнопку - используем классы  faa-parent и animated-hover

Пример:

<a href="#" class="faa-parent animated-hover">
  <i class="fas fa-wrench faa-wrench"></i>
  &nbsp;faa-wrench
</a>

Документация по всем видам анимации иконок - https://l-lin.github.io/font-awesome-animation/

Как сделать горячие клавиши для событий (нажатие кнопки)

Заполняем в разделе Горячие клавиши (таблица as_hotkeys) комбинацию клавиш и указываем jQuery селектор кнопки, которая должна быть вызвана при этой комбинации клавиш.

Примечание. По умолчанию Ctrl+ Alt + [Num] действуют как вызов элементов выпадающего быстрого меню (Fast Add Links).

Где я могу редактировать процедуру поиска, процедуру общих элементов Layout, процедуры периодического запуска и др?

В разделе Системные хранимые процедуры (/home/p/sysSP) вы можете редактировать указанные процедуры.  

Как показывать баланс пользователя вверху кабинета?

Указываем в Системном SQL (falcon_getLayoutInfo) элементы BalanceSum, BalanceText, BalanceLink и BalanceIcon.

Как сделать lazy loading для картинок

Используйте у тега img не src, а data-src. При загрузке по таким картинкам пройдется скрипт (as.ark.imageLazyLoading) и загрузит атрибут src.

Как изменить длительность показа сообщений:

В настройках as.ark.options надо задать параметры:

  • alertSuccessDelay: 10000,
  • alertWarningDelay: 120000,
  • alertDangerDelay: 240000

Как можно в меню добавить динамические элементы (например Проекты)?

Для этого сделайте union с текущим содержимым в хранимой процедуре pg_getMepuPages.

Добавленные элементы автоматически будут назначены дочерними элементами в меню исходя из parentID.

Как отправить Email, SMS или уведомление пользователю

Используйте для этого 2 SELECT в SaveItem в форме. Указав верные параметры, вы сможете немедленно отправить сообщение по указанным параметрам.

Где взять фото пользователя

Фото пользователя можно запросить по данному адресу  /Controls/Resource/GetFile?code=userPhoto&user=demo1

Как сделать поддомены с разными языками для сайта

  1. Все домены направляем на 1 приложение и указываем для каждого лицензию в web.config.
  2. Указываем GetLayout настройку defaultLang в зависимости от переменной @url.

Как управлять страницей “404 Страница не найдена”

Для этого используется стандартный код страницы - notFound. Создаем страницу с таким URL (notFound) и оформляем ее.

Страница будет выдавать 404 http статус.

Примечание. Возможно в IIS потребуется также установить параметры Error Pages: IIS / Сайт / Error Pages / Edit Feature Settings / ставим Redirect и Detailed Errors

Как создать новую тему дизайна сайта

Тема сайта - это отдельный css файл для SB Admin Template.  

  • В Visual studio меняем файл \Content\sb-admin\scss\_variables.scss (строки цветов).
  • Выполняем задачу sb-admin-css в Диспетчере выполнения задач.
  • Создаем папку с кодом темы в /uploads и помещаем в нее файл настроек _variables.scss и сгенерированный css файл (лежит по адресу \Content\sb-admin\css\sb-admin-2.min.css).
  • В процедуре GetlayoutInfo указываем код темы (Первый SELECT, параметр Theme).

Отслеживание всех действий пользователя в системе

Можно фиксировать все вызовы от пользователя. Они будут сохраняться в таблице trace с кодом action.

Для этого необходимо в web.config проекта в разделе appSettings прописать параметр logUserAction=”1”.

Отслеживание изменений хранимых процедур и страниц (logChanges)

Логирование изменение хранимых процедур и некоторых других полей ведется в таблице as_changeLog. Отключить эту опцию можно в Настройки/logChanges

Как настроить меню кабинета

Меню кабинетов состоит из страниц, у которых стоит галочка Отображать в меню, а также на основании доступа к страницам у текущего пользователя.

Родительский элемент задает вложенность меню.

Порядок задает очередность элементов меню.

Вы также можете задать иконку для элемента меню.

Максимальный уровень вложенности меню - 2.

Создание новых компонентов, кастомная разработка под проект.

Если проект развернут в режиме Solution, то вы можете создавать свои менеджеры бизнес логики (в проекте Web в папке BLL по примеру DemoManager).

Подобная бизнес-логика будет доступна в контроллере через свойство webMng (контроллер должен наследоваться от BaseController).

Порядок создания функциональности:

  1. Создаем интерфейс по аналогии с IDemoManager
  2. Создаем класс по аналогии с DemoManager
  3. Создаем связку с WebManager (редактируем интерфейс IWebmanager и класс Webmanager)
  4. Создаем контроллер в Area с именем проекта и наследуем от BaseController
  5. Свой JS создаем в папке /js/falcon/ (его можно минифицировать с помощью готовой команды GULP, конечный файл JS будет лежать в /JS/Falcon-min/)

Как настроить чат помощи для пользователей

Используем чаты replain - https://replain.cc/

Получаем ключ и указываем его в GetLayoutInfo процедуре в параметре HelpChatKey (можно просто вставить как ключ, либо как replain:{key}).

При этом в правом нижнем углу будет загружаться иконка чата.

Сообщения будут поступать на ваш Telegram (или Facebook мессенджер), связанный с данным чатом replain.

Примечание. Проверьте и удалите подключение replain.cc в настройках в CommonScripts (раньше подключение было там).

Как выводить денежные данные

Для этого используйте функцию dbo.as_num(str, digits) - это позволит выводить числа с разделением на разряды.

Как оживить интерфейс и сделать его более привлекательным

Важно, чтобы интерфейс нравился пользователю. Для этого:

  1. Используйте стилизацию кнопок:
  1. btn-outline-primary - контурные кнопки
  2. btn-gradient - кнопки с градиентом (неродной класс Bootstrap)
  3. иконки в кнопках
  1. Используйте карточки card
  2. Используйте стили форма и градиента фона bg-success, bg-gradient-warning
  3. Используйте тень элементов shadow-lg
  4. Используйте badge и pills (badge badge-pill badge-primary)
  5. Используйте анимацию появления. Классы animated bounceIn delay-3s. https://daneden.github.io/animate.css/

Как показать элемент увеличенным при наведении (например ячейка таблицы)

Для этого укажите класс as-zoom у элемента. При наведении элемент будет увеличиваться в 1,5 раза на месте.

Как отключить свайп открытия меню

Необходимо в GetLayout установить BodyClass = as-disableSlideoutMenu. В этом случае меню будет открываться только по кнопке (свайп работать не будет).

Как дать возможность некоторым ролям вводить html в формах?

По умолчанию вводить html могут только роли admin, editor, siteManager 

в Web.Config / AppSettings указываем disableAntiXSSRoles="user,admin,editor,siteManager"

Что делать если открытая вкладка(tab) сбрасывается при перезагрузке страницы? 

На странице в поле js подключаем скрипт: 

$(document).ready(function(){
	$('a[data-toggle="tab"]').on('show.bs.tab', function(e) {
		localStorage.setItem('activeTab', $(e.target).attr('href'));
	});
	var activeTab = localStorage.getItem('activeTab');
	if(activeTab){
		$('#myTab a[href="' + activeTab + '"]').tab('show');
	}
});

Сама разметка вкладок должна иметь вид:

<ul class="nav nav-tabs nav-fill" id="myTab">
  <li class="nav-item">
    <a class="nav-link active" data-toggle="tab" href="#projects">Проекты</a>
  </li>
  <li class="nav-item">
    <a class="nav-link" data-toggle="tab" href="#reviews">Отзывы</a>
  </li>
  <li class="nav-item">
    <a class="nav-link" data-toggle="tab" href="#bids">Ставки</a>
  </li>
</ul>
<div class="tab-content">
  <div class="tab-pane active mt-2" id="projects">
    <div class="as-table" data-code="modProjects"></div>
  </div>
  <div class="tab-pane mt-2 fade" id="reviews">
    <div class="as-table" data-code="modReviews"></div>
  </div>
  <div class="tab-pane mt-2 fade" id="bids">
    <div class="as-table" data-code="modBids"></div>
  </div>
</div>


Платформа Falcon Space

Это снижение стоимости владения

за счет меньшего количества людей для поддержки

Это быстрое внесение изменений

по ходу эксплуатации программы

Это современный интерфейс

полная адаптация под мобильные устройства

Бесплатное обучение разработке на Falcon Space

Вы можете разрабатывать самостоятельно или сотрудничать с нами в плане веб-разработки на платформе Falcon Space.
Примечание