Skip to content

Commit c1c8b91

Browse files
authored
Merge pull request #17 from creecros/events
Patch
2 parents c12661b + 39e62dd commit c1c8b91

File tree

5 files changed

+115
-4
lines changed

5 files changed

+115
-4
lines changed

Controller/GroupAssignTaskModificationController.php

+2-2
Original file line numberDiff line numberDiff line change
@@ -146,9 +146,9 @@ public function update()
146146
$values['id'] = $task['id'];
147147
$values['project_id'] = $task['project_id'];
148148
if (isset($values['owner_ms']) && !empty($values['owner_ms'])) {
149-
$ms_id = $this->multiselectModel->create();
149+
if (!empty($task['owner_ms'])) { $ms_id = $task['owner_ms']; $this->multiselectMemberModel->removeAllUsers($ms_id); } else { $ms_id = $this->multiselectModel->create(); }
150150
foreach ($values['owner_ms'] as $user) {
151-
$this->multiselectMemberModel->addUser($ms_id, $user);
151+
if ($user !== 0) { $this->multiselectMemberModel->addUser($ms_id, $user); }
152152
}
153153
unset($values['owner_ms']);
154154
$values['owner_ms'] = $ms_id;

Model/MultiselectMemberModel.php

+15
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,21 @@ public function removeUser($group_id, $user_id)
9898
->remove();
9999
}
100100

101+
/**
102+
* Remove all users from a group
103+
*
104+
* @access public
105+
* @param integer $group_id
106+
* @param integer $user_id
107+
* @return boolean
108+
*/
109+
public function removeAllUsers($group_id)
110+
{
111+
return $this->db->table(self::TABLE)
112+
->eq('group_id', $group_id)
113+
->remove();
114+
}
115+
101116
/**
102117
* Check if a user is member
103118
*

Plugin.php

+5-2
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,10 @@ class Plugin extends Base
2525

2626
public function initialize()
2727
{
28-
28+
//Events & Changes
29+
$this->template->setTemplateOverride('task/changes', 'group_assign:task/changes');
30+
31+
2932
//Helpers
3033
$this->helper->register('newTaskHelper', '\Kanboard\Plugin\Group_assign\Helper\NewTaskHelper');
3134
$this->helper->register('smallAvatarHelperExtend', '\Kanboard\Plugin\Group_assign\Helper\SmallAvatarHelperExtend');
@@ -115,7 +118,7 @@ public function getPluginAuthor()
115118
}
116119
public function getPluginVersion()
117120
{
118-
return '1.2.0';
121+
return '1.2.1';
119122
}
120123
public function getPluginHomepage()
121124
{

Template/board/group.php

+1
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,6 @@
22
<?php if ($task['assigned_groupname']): ?>
33
<strong><?= t('Assigned Group:') ?></strong>
44
<?= $this->text->e($task['assigned_groupname'] ?: $task['owner_gp']) ?>
5+
<br>
56
<?php endif ?>
67
</span>

Template/task/changes.php

+92
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
<?php if (! empty($changes)): ?>
2+
<ul>
3+
<?php
4+
5+
foreach ($changes as $field => $value) {
6+
switch ($field) {
7+
case 'title':
8+
echo '<li>'.t('New title: %s', $task['title']).'</li>';
9+
break;
10+
case 'owner_id':
11+
if (empty($task['owner_id'])) {
12+
echo '<li>'.t('The task is not assigned anymore').'</li>';
13+
} else {
14+
echo '<li>'.t('New assignee: %s', $task['assignee_name'] ?: $task['assignee_username']).'</li>';
15+
}
16+
break;
17+
case 'category_id':
18+
if (empty($task['category_id'])) {
19+
echo '<li>'.t('There is no category now').'</li>';
20+
} else {
21+
echo '<li>'.t('New category: %s', $task['category_name']).'</li>';
22+
}
23+
break;
24+
case 'color_id':
25+
echo '<li>'.t('New color: %s', $this->text->in($task['color_id'], $this->task->getColors())).'</li>';
26+
break;
27+
case 'score':
28+
echo '<li>'.t('New complexity: %d', $task['score']).'</li>';
29+
break;
30+
case 'date_due':
31+
if (empty($task['date_due'])) {
32+
echo '<li>'.t('The due date have been removed').'</li>';
33+
} else {
34+
echo '<li>'.t('New due date: ').$this->dt->datetime($task['date_due']).'</li>';
35+
}
36+
break;
37+
case 'description':
38+
if (empty($task['description'])) {
39+
echo '<li>'.t('There is no description anymore').'</li>';
40+
}
41+
break;
42+
case 'recurrence_status':
43+
case 'recurrence_trigger':
44+
case 'recurrence_factor':
45+
case 'recurrence_timeframe':
46+
case 'recurrence_basedate':
47+
case 'recurrence_parent':
48+
case 'recurrence_child':
49+
echo '<li>'.t('Recurrence settings have been modified').'</li>';
50+
break;
51+
case 'time_spent':
52+
echo '<li>'.t('Time spent changed: %sh', $task['time_spent']).'</li>';
53+
break;
54+
case 'time_estimated':
55+
echo '<li>'.t('Time estimated changed: %sh', $task['time_estimated']).'</li>';
56+
break;
57+
case 'date_started':
58+
if ($value != 0) {
59+
echo '<li>'.t('Start date changed: ').$this->dt->datetime($task['date_started']).'</li>';
60+
}
61+
break;
62+
case 'owner_gp':
63+
if (empty($task['owner_gp'])) {
64+
echo '<li>'.t('The task is not assigned to a group anymore').'</li>';
65+
} else {
66+
echo '<li>'.t('New group assigned: %s', $task['assigned_groupname']).'</li>';
67+
}
68+
break;
69+
case 'owner_ms':
70+
if (empty($task['owner_ms'])) {
71+
echo '<li>'.t('The task is not assigned to multiple users anymore').'</li>';
72+
} else {
73+
echo '<li>'.t('The task has been assigned other users').'</li>';
74+
}
75+
break;
76+
default:
77+
echo '<li>'.t('The field "%s" have been updated', $field).'</li>';
78+
}
79+
}
80+
81+
?>
82+
</ul>
83+
84+
<?php if (! empty($changes['description'])): ?>
85+
<p><strong><?= t('The description has been modified:') ?></strong></p>
86+
<?php if (isset($public)): ?>
87+
<div class="markdown"><?= $this->text->markdown($task['description'], true) ?></div>
88+
<?php else: ?>
89+
<div class="markdown"><?= $this->text->markdown($task['description']) ?></div>
90+
<?php endif ?>
91+
<?php endif ?>
92+
<?php endif ?>

0 commit comments

Comments
 (0)