Внедрение чата в личный кабинет пользователя

Настройки чата 

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

Основные возможности чата

  1. Прикрепление чатов к неким объектам (заказ, проект, задача и т.д.)
  2. Возможность вывода фото собеседников
  3. Общее окно по чатам всех типов (основного и по объектам)
  4. Клик на юзере - упоминание @username в чате (в этом случае пользователю идею пуш уведомление о сообщении).
  5. Управление беджиками с количеством непрочтенных сообщений для разных типов.
  6. Добавление звука при сообщении (с возможностью глобального отключения)
  7. Надстройка с отключением фокуса вводна при загрузке комнаты
  8. Пагинация сообщений с подгрузкой предыдущих сообщений комнаты
  9. Мерцание title страницы при новом сообщении

Реализация по умолчанию - /messages (переписка с другими пользователями системы).

Есть комнаты, в них общаются пользователи. 
Для вывода списка комнат (чатов) вставляем такую разметку: 

<div class="as-messages" data-code="userchat"></div>

Если не передан параметр data-roomID или data-itemID, то выводится список всех доступных комнат типа userchat для данного пользователя.
Если мы хотим вывести конкретную переписку комнаты, то указываем:
<div class="as-messages" data-code="userchat" data-roomid="{roomID}"></div>
либо
<div class="as-messages" data-code="userchat" data-itemid="{itemID}"></div>,
где roomID - это ID комнаты (только для существующих комнат). itemID - ID некой сущности(напр заказа). 

Хранимые процедуры для работы дополнительных чатов по отдельным сущностям:

  • msg_{typeCode}_getAvailableUsersForRoom - определяет список пользователей группы.
  • msg_{typeCode}_getRoom - получить комнату
  • msg_{typeCode}_getRooms - получить список комнат
  • msg_{typeCode}_afterSendMessage - задает настройки пуш уведомлений и позволяет выполнить внешние действия. 

Делать их необходимо в строгой аналогии с процедурами для кода userchat

Как сделать кастомный чат для какой-то сущности

1. Размещаем на странице сущности (например, Проект) сниппет

<a href="#" class="as-modal" data-big="1" data-title="Чат по проекту" 
     data-content="<div class='as-messages' data-code='project' data-itemid='362'></div>">Чат по проекту</a>

2. добавить в Панели управления в /chats код чата

3. прописать процедуры GetRoom и GetAvailableUsers (процедура GetRooms не так нужна, т.к. комнаты будут отображаться на /messages странице, где работает тип userChat)

4. Подправить процедуру msg_userchat_getRooms в плане обработки нового типа чата (чтобы извлекалось нужное название чата)

Описание SQL коллбека AfterSendMessage

Процедура задает настройки push уведомления для данного сообщения (должны быть включены PWA и Push в GetLayout). 
Также процедура позволяет вызвать внешнее действие.

create procedure [dbo].[msg_example_afterSendMessage]

@messageID int,
@username nvarchar(128)
as
begin
-- SELECT 1 - Настройки для пуш уведомлений
select 'https://google.com' linkUrl,  'SHOW Message' linkTitle, 0 DisablePush
-- SELECT 2 Вызов внешних действий
-- ... email, notifiocation, sms, clearcache,
end

SELECT 1 возвращает настройки push. При этом по messageID можно определить бизнес-логику надо или нет отправлять push. 
Также здесь вы указываете конкретную ссылку на которую пользователь может перейти при клике на пуш уведомление. 

SELECT 2
задает набор внешних действий, которые могут быть выполнены после добавления сообщения. 

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

SQL-инструмент для создания личных кабинетов на сайте

Суть подхода и история создания Falcon Space

Платформа Falcon Space

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

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

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

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

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

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

Веб-приложения на чистом MS SQL. Обучение разработке на Falcon Space

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

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