forked from Krystofee/gitlab-unresolved-threads
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathenhance-merge-requests.js
executable file
·63 lines (55 loc) · 1.78 KB
/
enhance-merge-requests.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
if (
/^https:\/\/gitlab\.*.*\/merge_requests\/?(\?.*)?$/.test(
window.location.href
)
) {
let isSmall = false;
let completedColor = "#8fc7a6";
let incompleteColor = "#ffd3d3";
chrome.storage.local.get('isSmall', function (result) {
isSmall = result.isSmall
});
// Get current isSmall value.
chrome.storage.local.get('completedColor', function (result) {
completedColor = result.completedColor || '#8fc7a6';
});
// Get current isSmall value.
chrome.storage.local.get('incompletedColor', function (result) {
incompleteColor = result.incompletedColor || '#ffd3d3';
});
function createThreadsBadge(element, color, resolved, resolvable) {
let badgeLabel = `${resolved}/${resolvable}`;
if (!isSmall) {
badgeLabel += ` threads resolved`;
}
const li = $("<li/>")
.addClass("issuable-comments d-none d-sm-flex")
.prependTo(element);
$("<span/>")
.addClass("badge color-label")
.css("background-color", color)
.css("color", "#333333")
.text(badgeLabel)
.prependTo(li);
}
$(".merge-request").each(function() {
const anchor = $(this).find(".merge-request-title-text a")[0];
const metaList = $(this).find(".issuable-meta ul")[0];
$.ajax({
url: `${anchor.href}/discussions.json`,
success: function(result) {
let resolvable = 0;
let resolved = 0;
result.forEach(item => {
if (item.resolvable) resolvable++;
if (item.resolved) resolved++;
});
if (resolvable > resolved) {
createThreadsBadge(metaList, incompleteColor, resolved, resolvable);
} else if (resolved === resolvable && resolvable > 0) {
createThreadsBadge(metaList, completedColor, resolved, resolvable);
}
}
});
});
}