Skip to content

Commit 2f40729

Browse files
committed
resolved #1 Hide Not Completed pull requests
1 parent 27e6d46 commit 2f40729

File tree

3 files changed

+78
-30
lines changed

3 files changed

+78
-30
lines changed

content_script.js

+27-10
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,28 @@
1-
chrome.storage.sync.get(['hideReviewers'], function(result) {
2-
if(result.hideReviewers){
3-
var reviewers = document.querySelectorAll('td.reviewers');
4-
Array.prototype.forEach.call(reviewers, function(review) {
5-
// Do stuff here
6-
if(review.getElementsByClassName('badge-hidden').length == 0){
7-
review.closest('tr').remove();
8-
}
9-
});
10-
}
1+
let completed_control = false;
2+
let not_completed_control = false;
3+
chrome.storage.sync.get(['completed'], function (result) {
4+
if (result.completed) {
5+
completed_control = true;
6+
}
117
});
8+
chrome.storage.sync.get(['not_completed'], function (result) {
9+
if (result.not_completed) {
10+
not_completed_control = true;
11+
}
12+
});
13+
14+
15+
fireReview = () => {
16+
var reviewers = document.querySelectorAll('td.reviewers');
17+
Array.prototype.forEach.call(reviewers, function (review) {
18+
if ((completed_control && review.getElementsByClassName('badge-hidden').length == 0) || (not_completed_control && review.getElementsByClassName('badge-hidden').length > 0)) {
19+
review.closest('tr').remove();
20+
}
21+
});
22+
};
23+
24+
setInterval(function () {
25+
fireReview()
26+
}, 500);
27+
28+

default.html

+6-2
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,16 @@
44
<meta charset="utf-8">
55
<title>Hide Completed Review on Bitbucket</title>
66
</head>
7-
<body>
8-
7+
<body style="min-width: 200px;">
98
<label>
109
<input type="checkbox" id="hide_completed_prs_checkbox">
1110
Hide completed PRs
1211
</label>
12+
<br>
13+
<label>
14+
<input type="checkbox" id="hide_not_completed_prs_checkbox">
15+
Hide not completed PRs
16+
</label>
1317
<script src="jquery-3.3.1.min.js"></script>
1418
<script src="default.js"></script>
1519
</body>

default.js

+45-18
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,60 @@
1-
function setHiddenStatus(){
2-
chrome.storage.sync.get(['hideReviewers'], function(result) {
3-
document.getElementById('hide_completed_prs_checkbox').checked = result.hideReviewers;
4-
});
1+
function setHiddenStatus(event_type) {
2+
if (event_type === 'completed') {
3+
chrome.storage.sync.get([event_type], function (result) {
4+
document.getElementById('hide_completed_prs_checkbox').checked = result.completed;
5+
});
6+
} else {
7+
chrome.storage.sync.get([event_type], function (result) {
8+
document.getElementById('hide_not_completed_prs_checkbox').checked = result.not_completed;
9+
});
10+
}
511
}
612

7-
function saveChanges() {
13+
function saveChanges(event_type) {
14+
let status = false;
15+
let event_item = false;
16+
17+
if (event_type === 'completed') {
18+
event_item = '#hide_completed_prs_checkbox';
19+
} else {
20+
event_item = '#hide_not_completed_prs_checkbox';
21+
}
822
// Get a value.
9-
if ($('#hide_completed_prs_checkbox').is(':checked')) {
10-
xhideReviewers = true;
23+
if ($(event_item).is(':checked')) {
24+
status = true;
25+
}
26+
let storage_info = {};
27+
if (event_type === 'completed') {
28+
storage_info = {'completed': status}
1129
} else {
12-
xhideReviewers = false;
30+
storage_info = {'not_completed': status}
1331
}
32+
1433
// Save it using the Chrome extension storage API.
15-
chrome.storage.sync.set({
16-
'hideReviewers': xhideReviewers
17-
}, function () {});
34+
chrome.storage.sync.set(storage_info, function () {
35+
});
1836

19-
setHiddenStatus();
37+
setHiddenStatus(event_type);
2038

21-
chrome.tabs.query({active: true, currentWindow: true}, function(tabs) {
39+
chrome.tabs.query({active: true, currentWindow: true}, function (tabs) {
2240
chrome.tabs.reload(tabs[0].id);
2341
});
2442
}
2543

26-
var hide_completed_prs_checkbox = document.getElementById('hide_completed_prs_checkbox');
44+
const hide_completed_prs_checkbox = document.getElementById('hide_completed_prs_checkbox');
45+
// onClick's logic below:
46+
if (hide_completed_prs_checkbox) {
47+
setHiddenStatus('completed');
48+
hide_completed_prs_checkbox.addEventListener('change', function () {
49+
saveChanges('completed');
50+
});
51+
}
52+
53+
const hide_not_completed_prs_checkbox = document.getElementById('hide_not_completed_prs_checkbox');
2754
// onClick's logic below:
28-
if(hide_completed_prs_checkbox){
29-
setHiddenStatus()
30-
hide_completed_prs_checkbox.addEventListener('change', function() {
31-
saveChanges();
55+
if (hide_not_completed_prs_checkbox) {
56+
setHiddenStatus('not_completed');
57+
hide_not_completed_prs_checkbox.addEventListener('change', function () {
58+
saveChanges('not_completed');
3259
});
3360
}

0 commit comments

Comments
 (0)