Failed to execute template. Cause: [Access denied when checking [script] access to [xwiki:Collaboratory.UX.HbpSkin.WebHome] for user [xwiki:XWiki.Admin]]. Click on this message for details.

LiveTableServiceWorker - HBP Wiki

IAM21 instance, do not create collab nor modify a team, your changes will be lost


Changes for page LiveTableServiceWorker

Last modified by bougault on 2022/03/22 17:19

From version 4.15
edited by bougault
on 2022/03/21 13:43
Change comment: There is no comment for this version
To version 4.86
edited by bougault
on 2022/03/22 16:17
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -1,17 +1,0 @@
1 -{{velocity}}
2 -$response.addHeader('Service-Worker-Allowed', '/bin/view/Membership')
3 -$response.setContentType("text/javascript")
4 -self.addEventListener("install" , evt => {
5 - console.log(evt);
6 -});
7 -
8 -self.addEventListener("activate" , evt => {
9 - console.log(evt);
10 - clients.claim();
11 -});
12 -
13 -self.addEventListener("fetch" , evt => {
14 - console.log(evt);
15 -});
16 -
17 -{{/velocity}}
XWiki.JavaScriptExtension[0]
Code
... ... @@ -1,19 +1,33 @@
1 1  $response.addHeader('Service-Worker-Allowed', '/bin/view/Membership')
2 2  $response.setContentType("text/javascript")
3 -self.addEventListener("install" , event => {
4 - console.log(event);
5 -});
3 +if(navigator.serviceWorker) {
4 + const version = "0.1.0";
5 + /*
6 + self.addEventListener("install" , event => {
7 + //self.skipWaiting();
8 + });
6 6  
7 -self.addEventListener("activate" , event => {
8 - console.log(event);
9 - clients.claim();
10 -});
10 + self.addEventListener("activate" , event => {
11 + event.waitUntil(self.clients.claim());
12 + });
11 11  
12 -self.addEventListener("fetch" , async (event) => {
13 - console.log(event);
14 - event.respondWith(
15 - let response = await fetch(event.request);
16 - return response;
17 - })
18 - );
19 -});
14 + self.addEventListener("fetch" , event => {
15 + const pathname = new URL(event.request.url).pathname;
16 + if(pathname === '/bin/get/XWiki/LiveTableResults') {
17 + event.respondWith(fetch(event.request).then(res => res.json()).then(json => {
18 + const headers = new Headers({'Content-Type': 'application/json'});
19 + const jsonResults = json.rows.filter(row => row.doc_viewable === true);
20 + return new Response(JSON.stringify(jsonResults), {headers});
21 + }));
22 + }
23 + });
24 + */
25 + self.addEventListener("fetch", (e) => {
26 + const pathname = new URL(event.request.url).pathname;
27 + console.log("sw", pathname);
28 + if(pathname === "/getMembershipRequests") {
29 + const res = new Response("custom response");
30 + e.respondWith(res);
31 + }
32 + })
33 +}