Событие MyChat Server: OnKanbanTaskMove, перенос задачи между этапами

Событие MyChat Server: OnKanbanTaskMove, перенос задачи между этапами

"Для разработчиков", "Серверные скрипты", "Скриптовые события", "Kanban events", "OnKanbanTaskMove".

 

Событие, возникающее при переносе задачи в канбан-проекте из одного этапа в другой.

 

Шаблон события

function OnKanbanTaskMove(iCID: int64; iUIN: integer; var sJSONData: string): boolean;
begin
  // your own code
  result := true;
end;

begin

end.

Вместо комментария может быть любой ваш код.

 

Описание параметров

Параметр

Тип

Значение

iCID

int64

Connection ID клиента-отправителя, уникальный сеансовый идентификатор в онлайн-структуре сетевых подключений к серверу;

iUIN

integer

уникальный идентификатор отправителя команды (число > 0);

sJSONData

string

изменяемый параметр, содержимое команды в виде текстовой JSON-строки.

 

Параметр sJSONData

Тип

Значение

ID

integer

идентификатор задачи, число;

IDStage

integer

идентификатор этапа, куда перемещается задача, число.

 
Возвращаемое значение

По умолчанию функция должна возвращать true, однако, если вы вернёте false, задача не будет перемещена, а клиентское приложение получит ошибку #0332. Вы также можете отредактировать JSON-объект, изменив параметры команды на другие.

 

Пример

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

const
  // UIN пользователя, которого будеи уведомлять про событие
  CI_USER_UIN = 6;
  // от имени какого пользователя будет отправлено приватное сообщение
  CI_USER_FROM = 3;
  
function OnKanbanTaskMove(iCID: int64; iUIN: integer; var sJSONData: string): boolean;
var
  iTaskID, iStageID, iProjectID: integer;
  sStageName, sProjectName, sTaskName, sMsg, sUserName: string;
begin
  // получаем информацию из JSON-объекта
  JSONGetInteger(sJSONData, 'ID', iTaskID);
  JSONGetInteger(sJSONData, 'IDStage', iStageID);
  // получить идентификатор канбан-проекта по номеру этапа
  iProjectID := mKanbanGetProjectIDByStageID(iStageID);
  // получаем текстовые названия этапа, проекта и задачи
  sStageName := mKanbanGetStageNameByID(iStageID);
  sProjectName := mKanbanGetProjectNameByID(iProjectID);
  sTaskName := mKanbanGetTaskNameByID(iTaskID);
  // отобращаемое имя пользователя, что перенёс задачу
  sUserName := mGetUserAttribute(iUIN, 'DisplayName');
  // формироуем текст сообщения для пользователя, которого мы автоматически уведомляем
  // о событии переноса задачи в другой этап
  sMsg := 'User ' + sUserName + ' moved task "' + sTaskName + '" in the project "' + 
          sProjectName + '" to the stage "' + sStageName + '"';
  mSendPrivateMessage(CI_USER_FROM, CI_USER_UIN, sMsg, 1);
  // пропускаем событие для дальнейшей обработки
  result := true;
end;

begin

end.

 

Уведомление в чат про перенос задачи канбан-доски из одного этапа в другой

Ещё посмотреть

JSONGetInteger

mGetUserAttribute

mKanbanGetProjectIDByStageID

mKanbanGetProjectNameByID

mKanbanGetStageNameByID

mKanbanGetTaskNameByID

mSendPrivateMessage