Skip to content
This repository was archived by the owner on Apr 5, 2020. It is now read-only.

Commit bfc5e26

Browse files
committed
Fix bug concerning task overdue events
1 parent 3b24e9e commit bfc5e26

File tree

4 files changed

+48
-20
lines changed

4 files changed

+48
-20
lines changed

.travis.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ language: php
22
sudo: false
33

44
php:
5+
- 7.1
56
- 7.0
67
- 5.6
78
- 5.5

Notification/Jabber.php

Lines changed: 38 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
use Fabiang\Xmpp\Protocol\Presence;
1010
use Kanboard\Core\Base;
1111
use Kanboard\Core\Notification\NotificationInterface;
12+
use Kanboard\Model\TaskModel;
1213

1314
/**
1415
* Jabber Notification
@@ -23,24 +24,23 @@ class Jabber extends Base implements NotificationInterface
2324
*
2425
* @access public
2526
* @param array $user
26-
* @param string $event_name
27-
* @param array $event_data
27+
* @param string $eventName
28+
* @param array $eventData
2829
*/
29-
public function notifyUser(array $user, $event_name, array $event_data)
30+
public function notifyUser(array $user, $eventName, array $eventData)
3031
{
3132
try {
3233
$jid = $this->userMetadataModel->get($user['id'], 'jabber_jid');
3334

3435
if (! empty($jid)) {
35-
$project = $this->projectModel->getById($event_data['task']['project_id']);
36-
$client = $this->getClient();
37-
38-
$message = new Message;
39-
$message->setMessage($this->getMessage($project, $event_name, $event_data))
40-
->setTo($jid);
41-
42-
$client->send($message);
43-
$client->disconnect();
36+
if ($eventName === TaskModel::EVENT_OVERDUE) {
37+
foreach ($eventData['tasks'] as $task) {
38+
$eventData['task'] = $task;
39+
$this->sendDirectMessage($jid, $eventName, $eventData);
40+
}
41+
} else {
42+
$this->sendDirectMessage($jid, $eventName, $eventData);
43+
}
4444
}
4545

4646
} catch (Exception $e) {
@@ -53,23 +53,23 @@ public function notifyUser(array $user, $event_name, array $event_data)
5353
*
5454
* @access public
5555
* @param array $project
56-
* @param string $event_name
57-
* @param array $event_data
56+
* @param string $eventName
57+
* @param array $eventData
5858
*/
59-
public function notifyProject(array $project, $event_name, array $event_data)
59+
public function notifyProject(array $project, $eventName, array $eventData)
6060
{
6161
try {
6262
$room = $this->projectMetadataModel->get($project['id'], 'jabber_room');
6363

6464
if (! empty($room)) {
6565
$client = $this->getClient();
6666

67-
$channel = new Presence;
67+
$channel = new Presence();
6868
$channel->setTo($room)->setNickname($this->configModel->get('jabber_nickname'));
6969
$client->send($channel);
7070

71-
$message = new Message;
72-
$message->setMessage($this->getMessage($project, $event_name, $event_data))
71+
$message = new Message();
72+
$message->setMessage($this->getMessage($project, $eventName, $eventData))
7373
->setTo($room)
7474
->setType(Message::TYPE_GROUPCHAT);
7575

@@ -127,4 +127,24 @@ public function getMessage(array $project, $event_name, array $event_data)
127127

128128
return $payload;
129129
}
130+
131+
/**
132+
* Send XMPP message to someone
133+
*
134+
* @param $jid
135+
* @param $eventName
136+
* @param $eventData
137+
*/
138+
public function sendDirectMessage($jid, $eventName, $eventData)
139+
{
140+
$project = $this->projectModel->getById($eventData['task']['project_id']);
141+
$client = $this->getClient();
142+
143+
$message = new Message();
144+
$message->setMessage($this->getMessage($project, $eventName, $eventData))
145+
->setTo($jid);
146+
147+
$client->send($message);
148+
$client->disconnect();
149+
}
130150
}

Plugin.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ public function getPluginAuthor()
4242

4343
public function getPluginVersion()
4444
{
45-
return '1.0.6';
45+
return '1.0.7';
4646
}
4747

4848
public function getPluginHomepage()

README.md

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ Author
1414
Requirements
1515
------------
1616

17-
- Kanboard >= 1.0.29
17+
- Kanboard >= 1.0.37
1818
- XMPP server
1919

2020
Installation
@@ -56,3 +56,10 @@ Go to **Settings > Integrations > Jabber** and fill the form:
5656

5757
- Enable the debug mode
5858
- All connection errors with the XMPP server are recorded in the log files `data/debug.log` or syslog
59+
60+
Changes
61+
-------
62+
63+
### Version 1.0.7
64+
65+
- Fix bug concerning task overdue events

0 commit comments

Comments
 (0)