"Для разработчиков", "Серверные скрипты", "Скриптовые события", "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.