Send all Kanboard events to the webhook (breaking change)
This commit is contained in:
@@ -389,8 +389,6 @@ return array(
|
||||
'Creator' => 'Skaber',
|
||||
'Modification date' => 'Ændringsdato',
|
||||
'Completion date' => 'Afslutningsdato',
|
||||
'Webhook URL for task creation' => 'Webhook URL for opgave oprettelse',
|
||||
'Webhook URL for task modification' => 'Webhook URL opgave redigering',
|
||||
'Clone' => 'Kopier',
|
||||
'Clone Project' => 'Kopier projekt',
|
||||
'Project cloned successfully.' => 'Projektet er kopieret.',
|
||||
|
||||
@@ -389,8 +389,6 @@ return array(
|
||||
'Creator' => 'Erstellt von',
|
||||
'Modification date' => 'Änderungsdatum',
|
||||
'Completion date' => 'Abschlussdatum',
|
||||
'Webhook URL for task creation' => 'Webhook URL zur Aufgabenerstellung',
|
||||
'Webhook URL for task modification' => 'Webhook URL zur Aufgabenbearbeitung',
|
||||
'Clone' => 'duplizieren',
|
||||
'Clone Project' => 'Projekt duplizieren',
|
||||
'Project cloned successfully.' => 'Projekt wurde dupliziert.',
|
||||
|
||||
@@ -389,8 +389,6 @@ return array(
|
||||
'Creator' => 'Creador',
|
||||
'Modification date' => 'Fecha de modificación',
|
||||
'Completion date' => 'Fecha de terminación',
|
||||
'Webhook URL for task creation' => 'Disparador Web (Webhook) para la creación de tareas',
|
||||
'Webhook URL for task modification' => 'Disparador Web (Webhook) para la modificación de tareas',
|
||||
'Clone' => 'Clonar',
|
||||
'Clone Project' => 'Clonar proyecto',
|
||||
'Project cloned successfully.' => 'Proyecto clonado correctamente',
|
||||
|
||||
@@ -389,8 +389,6 @@ return array(
|
||||
'Creator' => 'Luonut',
|
||||
'Modification date' => 'Muokkauspäivä',
|
||||
'Completion date' => 'Valmistumispäivä',
|
||||
'Webhook URL for task creation' => 'Webhook URL tehtävän luomiselle',
|
||||
'Webhook URL for task modification' => 'Webhook URL tehtävän muokkaamiselle',
|
||||
'Clone' => 'Kahdenna',
|
||||
'Clone Project' => 'Kahdenna projekti',
|
||||
'Project cloned successfully.' => 'Projekti kahdennettu onnistuneesti',
|
||||
|
||||
@@ -389,8 +389,6 @@ return array(
|
||||
'Creator' => 'Créateur',
|
||||
'Modification date' => 'Date de modification',
|
||||
'Completion date' => 'Date de complétion',
|
||||
'Webhook URL for task creation' => 'URL du webhook pour la création de tâche',
|
||||
'Webhook URL for task modification' => 'URL du webhook pour la modification de tâche',
|
||||
'Clone' => 'Clone',
|
||||
'Clone Project' => 'Cloner le projet',
|
||||
'Project cloned successfully.' => 'Projet cloné avec succès.',
|
||||
|
||||
@@ -389,8 +389,6 @@ return array(
|
||||
'Creator' => 'Készítette',
|
||||
'Modification date' => 'Módosítás dátuma',
|
||||
'Completion date' => 'Befejezés határideje',
|
||||
'Webhook URL for task creation' => 'Webhook URL a feladat létrehozásakor',
|
||||
'Webhook URL for task modification' => 'Webhook URL a feladatot módosításakor',
|
||||
'Clone' => 'Másolat',
|
||||
'Clone Project' => 'Projekt másolása',
|
||||
'Project cloned successfully.' => 'A projekt sikeresen másolva.',
|
||||
|
||||
@@ -389,8 +389,6 @@ return array(
|
||||
'Creator' => 'Creatore',
|
||||
'Modification date' => 'Data di modifica',
|
||||
'Completion date' => 'Data di termine',
|
||||
'Webhook URL for task creation' => 'URL del Webhook per la creazione di compiti',
|
||||
'Webhook URL for task modification' => 'URL del Webhook per la modifica di compiti',
|
||||
'Clone' => 'Clona',
|
||||
'Clone Project' => 'Clona il progetto',
|
||||
'Project cloned successfully.' => 'Progetto clonato con successo.',
|
||||
|
||||
@@ -389,8 +389,6 @@ return array(
|
||||
'Creator' => '作成者',
|
||||
'Modification date' => '変更日',
|
||||
'Completion date' => '完了日',
|
||||
'Webhook URL for task creation' => 'タスク作成の Webhook URL',
|
||||
'Webhook URL for task modification' => 'タスク変更の Webhook URL',
|
||||
'Clone' => '複製',
|
||||
'Clone Project' => 'プロジェクトの複製',
|
||||
'Project cloned successfully.' => 'プロジェクトを複製しました。',
|
||||
|
||||
@@ -389,8 +389,6 @@ return array(
|
||||
'Creator' => 'Aangemaakt door',
|
||||
'Modification date' => 'Wijzigingsdatum',
|
||||
'Completion date' => 'Afgerond op',
|
||||
'Webhook URL for task creation' => 'Webhook URL voor aanmaken taak',
|
||||
'Webhook URL for task modification' => 'Webhook URL voor wijzigen taak',
|
||||
'Clone' => 'Kloon',
|
||||
'Clone Project' => 'Project klonen',
|
||||
'Project cloned successfully.' => 'Project succesvol gekloond.',
|
||||
|
||||
@@ -389,8 +389,6 @@ return array(
|
||||
'Creator' => 'Autor',
|
||||
'Modification date' => 'Data modyfyfikacji',
|
||||
'Completion date' => 'Data ukończenia',
|
||||
'Webhook URL for task creation' => 'Webhook URL do tworzenia zadań',
|
||||
'Webhook URL for task modification' => 'Webhook URL do modyfikacji zadań',
|
||||
'Clone' => 'Sklonuj',
|
||||
'Clone Project' => 'Sklonuj projekt',
|
||||
'Project cloned successfully.' => 'Projekt sklonowany pomyślnie.',
|
||||
|
||||
@@ -389,8 +389,6 @@ return array(
|
||||
'Creator' => 'Criado por',
|
||||
'Modification date' => 'Data da modificação',
|
||||
'Completion date' => 'Data da finalização',
|
||||
'Webhook URL for task creation' => 'Webhook URL para criação de tarefas',
|
||||
'Webhook URL for task modification' => 'Webhook URL para modificação de tarefa',
|
||||
'Clone' => 'Clonar',
|
||||
'Clone Project' => 'Clonar Projeto',
|
||||
'Project cloned successfully.' => 'Projeto clonado com sucesso.',
|
||||
|
||||
@@ -389,8 +389,6 @@ return array(
|
||||
'Creator' => 'Автор',
|
||||
'Modification date' => 'Дата изменения',
|
||||
'Completion date' => 'Дата завершения',
|
||||
'Webhook URL for task creation' => 'Webhook URL для создания задачи',
|
||||
'Webhook URL for task modification' => 'Webhook URL для изменения задачи',
|
||||
'Clone' => 'Клонировать',
|
||||
'Clone Project' => 'Клонировать проект',
|
||||
'Project cloned successfully.' => 'Проект клонирован.',
|
||||
|
||||
@@ -389,8 +389,6 @@ return array(
|
||||
'Creator' => 'Autor',
|
||||
'Modification date' => 'Datum izmene',
|
||||
'Completion date' => 'Datum kompletiranja',
|
||||
'Webhook URL for task creation' => 'Webhook URL zadatka za kreiranje',
|
||||
'Webhook URL for task modification' => 'Webhook URL zadatka za izmenu',
|
||||
'Clone' => 'Iskopiraj',
|
||||
'Clone Project' => 'Iskopiraj projekat',
|
||||
'Project cloned successfully.' => 'Projekat uspešno iskopiran.',
|
||||
|
||||
@@ -389,8 +389,6 @@ return array(
|
||||
'Creator' => 'Skapare',
|
||||
'Modification date' => 'Ändringsdatum',
|
||||
'Completion date' => 'Slutfört datum',
|
||||
'Webhook URL for task creation' => 'Webhook URL för att skapa uppgift',
|
||||
'Webhook URL for task modification' => 'Webhook URL för att ändra uppgift',
|
||||
'Clone' => 'Klona',
|
||||
'Clone Project' => 'Klona projekt',
|
||||
'Project cloned successfully.' => 'Projektet har klonats.',
|
||||
|
||||
@@ -389,8 +389,6 @@ return array(
|
||||
'Creator' => 'ผู้สร้าง',
|
||||
'Modification date' => 'วันที่แก้ไข',
|
||||
'Completion date' => 'วันที่เสร็จสิ้น',
|
||||
'Webhook URL for task creation' => 'Webhook URL for task creation',
|
||||
'Webhook URL for task modification' => 'Webhook URL for task modification',
|
||||
'Clone' => 'เลียนแบบ',
|
||||
// 'Clone Project' => '',
|
||||
'Project cloned successfully.' => 'เลียนแบบโปรเจคเรียบร้อยแล้ว',
|
||||
|
||||
@@ -389,8 +389,6 @@ return array(
|
||||
'Creator' => 'Oluşturan',
|
||||
'Modification date' => 'Değişiklik tarihi',
|
||||
'Completion date' => 'Tamamlanma tarihi',
|
||||
// 'Webhook URL for task creation' => '',
|
||||
// 'Webhook URL for task modification' => '',
|
||||
'Clone' => 'Kopya oluştur',
|
||||
'Clone Project' => 'Projenin kopyasını oluştur',
|
||||
'Project cloned successfully.' => 'Proje kopyası başarıyla oluşturuldu.',
|
||||
|
||||
@@ -389,8 +389,6 @@ return array(
|
||||
'Creator' => '创建者',
|
||||
'Modification date' => '修改日期',
|
||||
'Completion date' => '完成日期',
|
||||
'Webhook URL for task creation' => '创建任务的Webhook URL',
|
||||
'Webhook URL for task modification' => '修改任务的Webhook URL',
|
||||
'Clone' => '克隆',
|
||||
'Clone Project' => '复制项目',
|
||||
'Project cloned successfully.' => '成功复制项目。',
|
||||
|
||||
@@ -129,7 +129,9 @@ class Comment extends Base
|
||||
->eq('id', $values['id'])
|
||||
->update(array('comment' => $values['comment']));
|
||||
|
||||
$this->container['dispatcher']->dispatch(self::EVENT_UPDATE, new CommentEvent($values));
|
||||
if ($result) {
|
||||
$this->container['dispatcher']->dispatch(self::EVENT_UPDATE, new CommentEvent($values));
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
@@ -14,20 +14,23 @@ class Webhook extends Base
|
||||
* Call the external URL
|
||||
*
|
||||
* @access public
|
||||
* @param string $url URL to call
|
||||
* @param array $task Task data
|
||||
* @param array $values Event payload
|
||||
*/
|
||||
public function notify($url, array $task)
|
||||
public function notify(array $values)
|
||||
{
|
||||
$url = $this->config->get('webhook_url');
|
||||
$token = $this->config->get('webhook_token');
|
||||
|
||||
if (strpos($url, '?') !== false) {
|
||||
$url .= '&token='.$token;
|
||||
}
|
||||
else {
|
||||
$url .= '?token='.$token;
|
||||
}
|
||||
if (! empty($url)) {
|
||||
|
||||
return $this->httpClient->post($url, $task);
|
||||
if (strpos($url, '?') !== false) {
|
||||
$url .= '&token='.$token;
|
||||
}
|
||||
else {
|
||||
$url .= '?token='.$token;
|
||||
}
|
||||
|
||||
return $this->httpClient->post($url, $values);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,7 +6,16 @@ use PDO;
|
||||
use Core\Security;
|
||||
use Model\Link;
|
||||
|
||||
const VERSION = 70;
|
||||
const VERSION = 71;
|
||||
|
||||
function version_71($pdo)
|
||||
{
|
||||
$rq = $pdo->prepare('INSERT INTO `settings` VALUES (?, ?)');
|
||||
$rq->execute(array('webhook_url', ''));
|
||||
|
||||
$pdo->exec("DELETE FROM `settings` WHERE `option`='webhook_url_task_creation'");
|
||||
$pdo->exec("DELETE FROM `settings` WHERE `option`='webhook_url_task_modification'");
|
||||
}
|
||||
|
||||
function version_70($pdo)
|
||||
{
|
||||
|
||||
@@ -6,7 +6,16 @@ use PDO;
|
||||
use Core\Security;
|
||||
use Model\Link;
|
||||
|
||||
const VERSION = 51;
|
||||
const VERSION = 52;
|
||||
|
||||
function version_52($pdo)
|
||||
{
|
||||
$rq = $pdo->prepare('INSERT INTO settings VALUES (?, ?)');
|
||||
$rq->execute(array('webhook_url', ''));
|
||||
|
||||
$pdo->exec("DELETE FROM settings WHERE option='webhook_url_task_creation'");
|
||||
$pdo->exec("DELETE FROM settings WHERE option='webhook_url_task_modification'");
|
||||
}
|
||||
|
||||
function version_51($pdo)
|
||||
{
|
||||
|
||||
@@ -6,7 +6,16 @@ use Core\Security;
|
||||
use PDO;
|
||||
use Model\Link;
|
||||
|
||||
const VERSION = 69;
|
||||
const VERSION = 70;
|
||||
|
||||
function version_70($pdo)
|
||||
{
|
||||
$rq = $pdo->prepare('INSERT INTO settings VALUES (?, ?)');
|
||||
$rq->execute(array('webhook_url', ''));
|
||||
|
||||
$pdo->exec("DELETE FROM settings WHERE option='webhook_url_task_creation'");
|
||||
$pdo->exec("DELETE FROM settings WHERE option='webhook_url_task_modification'");
|
||||
}
|
||||
|
||||
function version_69($pdo)
|
||||
{
|
||||
|
||||
@@ -2,8 +2,13 @@
|
||||
|
||||
namespace Subscriber;
|
||||
|
||||
use Event\CommentEvent;
|
||||
use Event\GenericEvent;
|
||||
use Event\TaskEvent;
|
||||
use Model\Comment;
|
||||
use Model\Task;
|
||||
use Model\File;
|
||||
use Model\Subtask;
|
||||
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
|
||||
|
||||
class WebhookSubscriber extends Base implements EventSubscriberInterface
|
||||
@@ -11,32 +16,30 @@ class WebhookSubscriber extends Base implements EventSubscriberInterface
|
||||
public static function getSubscribedEvents()
|
||||
{
|
||||
return array(
|
||||
Task::EVENT_CREATE => array('onTaskCreation', 0),
|
||||
Task::EVENT_UPDATE => array('onTaskModification', 0),
|
||||
Task::EVENT_CLOSE => array('onTaskModification', 0),
|
||||
Task::EVENT_OPEN => array('onTaskModification', 0),
|
||||
Task::EVENT_MOVE_COLUMN => array('onTaskModification', 0),
|
||||
Task::EVENT_MOVE_POSITION => array('onTaskModification', 0),
|
||||
Task::EVENT_ASSIGNEE_CHANGE => array('onTaskModification', 0),
|
||||
Task::EVENT_CREATE => array('execute', 0),
|
||||
Task::EVENT_UPDATE => array('execute', 0),
|
||||
Task::EVENT_CLOSE => array('execute', 0),
|
||||
Task::EVENT_OPEN => array('execute', 0),
|
||||
Task::EVENT_MOVE_COLUMN => array('execute', 0),
|
||||
Task::EVENT_MOVE_POSITION => array('execute', 0),
|
||||
Task::EVENT_ASSIGNEE_CHANGE => array('execute', 0),
|
||||
Task::EVENT_MOVE_PROJECT => array('execute', 0),
|
||||
Task::EVENT_MOVE_SWIMLANE => array('execute', 0),
|
||||
Comment::EVENT_CREATE => array('execute', 0),
|
||||
Comment::EVENT_UPDATE => array('execute', 0),
|
||||
File::EVENT_CREATE => array('execute', 0),
|
||||
Subtask::EVENT_CREATE => array('execute', 0),
|
||||
Subtask::EVENT_UPDATE => array('execute', 0),
|
||||
);
|
||||
}
|
||||
|
||||
public function onTaskCreation(TaskEvent $event)
|
||||
public function execute(GenericEvent $event, $event_name)
|
||||
{
|
||||
$this->executeRequest('webhook_url_task_creation', $event);
|
||||
}
|
||||
$payload = array(
|
||||
'event_name' => $event_name,
|
||||
'event_data' => $event->getAll(),
|
||||
);
|
||||
|
||||
public function onTaskModification(TaskEvent $event)
|
||||
{
|
||||
$this->executeRequest('webhook_url_task_modification', $event);
|
||||
}
|
||||
|
||||
public function executeRequest($parameter, TaskEvent $event)
|
||||
{
|
||||
$url = $this->config->get($parameter);
|
||||
|
||||
if (! empty($url)) {
|
||||
$this->webhook->notify($url, $event->getAll());
|
||||
}
|
||||
$this->webhook->notify($payload);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
<?= $this->formCsrf() ?>
|
||||
<?= $this->formHidden('id', $values) ?>
|
||||
<?= $this->formHidden('task_id', $values) ?>
|
||||
<?= $this->formHidden('user_id', $values) ?>
|
||||
|
||||
<div class="form-tabs">
|
||||
<ul class="form-tabs-nav">
|
||||
|
||||
@@ -6,11 +6,8 @@
|
||||
|
||||
<?= $this->formCsrf() ?>
|
||||
|
||||
<?= $this->formLabel(t('Webhook URL for task creation'), 'webhook_url_task_creation') ?>
|
||||
<?= $this->formText('webhook_url_task_creation', $values, $errors) ?><br/>
|
||||
|
||||
<?= $this->formLabel(t('Webhook URL for task modification'), 'webhook_url_task_modification') ?>
|
||||
<?= $this->formText('webhook_url_task_modification', $values, $errors) ?><br/>
|
||||
<?= $this->formLabel(t('Webhook URL'), 'webhook_url') ?>
|
||||
<?= $this->formText('webhook_url', $values, $errors) ?>
|
||||
|
||||
<div class="form-actions">
|
||||
<input type="submit" value="<?= t('Save') ?>" class="btn btn-blue"/>
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
|
||||
<div class="listing">
|
||||
<ul class="no-bullet">
|
||||
<li><strong><i class="fa fa-calendar"></i> <?= $this->a(t('iCalendar (iCal format, *.ics)'), 'ical', 'user', array('token' => $user['token']), false, '', '', true) ?></strong></li>
|
||||
<li><strong><i class="fa fa-calendar"></i> <?= $this->a(t('iCal feed'), 'ical', 'user', array('token' => $user['token']), false, '', '', true) ?></strong></li>
|
||||
</ul>
|
||||
</div>
|
||||
<?php endif ?>
|
||||
|
||||
Reference in New Issue
Block a user