-
Notifications
You must be signed in to change notification settings - Fork 0
/
client.js
94 lines (75 loc) · 1.75 KB
/
client.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
var Promise = TrelloPowerUp.Promise;
var CARD_TEMPLATE = `
# What
# Why
# Design
# Engineering
__PR__:
__Sprint estimate__:
__Sprint spent__:
__QA__:
__QA Estimate__:
__QA Spent__:
__Total estimate__:
__Total Spent__:
`;
var ADHOC_CARD_TEMPLATE = `
# What
# Why
# Engineering
__PR__:
__Sprint spent__:
__QA Spent__:
__Total Spent__:
`;
function createCard(template, listId) {
Trello.post('/cards/', {
name: 'New card',
desc: template,
idList: listId,
pos: 'top'
});
}
function addNewTask(list, template) {
if (Trello.authorized()) {
return createCard(template, list.id);
}
Trello.authorize({
type: 'popup',
name: 'Authorize Power Up to Add Cards',
scope: {read: true, write: true},
success: () => createCard(template, list.id),
error: console.log
});
}
TrelloPowerUp.initialize({
'board-buttons': function(t, options){
return [{
text: 'Summary',
callback: function(t){
return t.modal({
url: './modal.html',
height: 500,
title: 'Sprint summary',
})
}
}];
},
'list-actions': function(t) {
return t.list('name', 'id').then(function(list) {
return [
{text: 'Add New Task', callback: () => addNewTask(list, CARD_TEMPLATE)},
{text: 'Add New AdHoc Task', callback: () => addNewTask(list, ADHOC_CARD_TEMPLATE)}
]
});
},
'card-badges': function(t, options){
return t.card('name', 'desc', 'members', 'labels').then(function(card) {
var stat = new CardStat(card);
return [
{title: 'Sprint', text: `🏃 ${stat.sprintSpent}/${stat.sprintEstimate}`},
{title: 'QA', text: `@${stat.qaOwner} 🔎 ${stat.qaSpent}/${stat.qaEstimate}`}
];
});
}
});