Skip to content

Commit 6adb167

Browse files
committed
use fetch to reject instead of click button, add hint
1 parent 4fc292e commit 6adb167

File tree

2 files changed

+17
-15
lines changed

2 files changed

+17
-15
lines changed

level2/reviewer/index.mjs

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,15 @@
11
import puppeteer from 'puppeteer';
22

3+
const Headers = {
4+
'x-hb2023-reviewer': '1'
5+
};
36
const url = path => `http://[::1]:8082${path}`;
47

58
const pendingIds = new Promise(async (resolve, reject) => {
69
const browser = await puppeteer.launch();
710
try {
811
const page = await browser.newPage();
9-
await page.setExtraHTTPHeaders({
10-
'x-hb2023-reviewer': '1'
11-
});
12+
await page.setExtraHTTPHeaders({ ...Headers });
1213
let responseResolver;
1314
const responseResolved = new Promise(r => { responseResolver = r; });
1415
page.on('response', async response => {
@@ -32,9 +33,7 @@ const pendingIds = new Promise(async (resolve, reject) => {
3233
const page = await browser.newPage();
3334
page.setDefaultTimeout(2000);
3435
page.setDefaultNavigationTimeout(2000);
35-
await page.setExtraHTTPHeaders({
36-
'x-hb2023-reviewer': '1'
37-
});
36+
await page.setExtraHTTPHeaders({ ...Headers });
3837
for(const id of await pendingIds) {
3938
console.log(`handling application #${id}`)
4039
page.on('dialog', async dialog => {
@@ -46,12 +45,15 @@ const pendingIds = new Promise(async (resolve, reject) => {
4645
await page.waitForNavigation({ timeout: 1000 });
4746
} catch(e) {
4847
if(e.name === 'TimeoutError') {
49-
console.log(`[${id}] triggering reject`);
50-
await Promise.allSettled([
51-
page.waitForNavigation({ waitUntil: 'domcontentloaded' }),
52-
page.click('#frm-review > #reject-it')
53-
]);
54-
console.debug(`[${id}] rejected`);
48+
console.log(`[${id}] sending reject request`);
49+
fetch(url('/vpn/review'), {
50+
method: "post",
51+
body: `action=reject&id=${id}`,
52+
headers: {
53+
"Content-Type": "application/x-www-form-urlencoded",
54+
...Headers
55+
}
56+
}).then(() => console.log(`[${id}] rejected`));
5557
continue;
5658
}
5759
}

web/templates/vpn/application.html.twig

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
<form id="frm-review" method="POST" action="{{ path('vpn.review.action') }}">
2727
<input id="npt-id" type="hidden" name="id" value="{{ application.id }}" />
2828
<input id="npt-action" type="hidden" name="action" />
29-
<button class="btn-form-action" data-action="reject" id="reject-it">拒绝</button>
29+
<button class="btn-form-action" data-action="reject">拒绝</button>
3030
<button class="btn-form-action" data-action="reject">拒绝</button>
3131
<button class="btn-form-action" data-action="reject">拒绝</button>
3232
<button class="btn-form-action" data-action="reject">拒绝</button>
@@ -50,10 +50,10 @@
5050
<script>
5151
(function () {
5252
var fun = function (e) { e.preventDefault(); document.getElementById('npt-action').value = e.target.getAttribute('data-action'); document.getElementById('frm-review').submit(); };
53-
var $$ = document.getElementsByClassName('btn-form-action');
5453
var i = 0;
54+
var $$ = document.getElementsByClassName('btn-form-action');
5555
for(; i < $$.length; i++) {
56-
$$[i].addEventListener('click', fun);
56+
$$[i].addEventListener('click', fun); // 监听审批结果
5757
}
5858
})();
5959
</script>

0 commit comments

Comments
 (0)