Changes for page LiveTableServiceWorker
Last modified by bougault on 2022/03/22 17:19
Summary
-
Page properties (1 modified, 0 added, 0 removed)
-
Objects (1 modified, 0 added, 0 removed)
Details
- Page properties
-
- Content
-
... ... @@ -1,0 +1,17 @@ 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,21 +1,21 @@ 1 1 $response.addHeader('Service-Worker-Allowed', '/bin/view/Membership') 2 2 $response.setContentType("text/javascript") 3 3 self.addEventListener("install" , event => { 4 - s elf.skipWaiting();4 + console.log(event); 5 5 }); 6 6 7 7 self.addEventListener("activate" , event => { 8 - event.waitUntil(self.clients.claim()); 8 + console.log(event); 9 + clients.claim(); 9 9 }); 10 10 11 -self.addEventListener("fetch" , event => { 12 - const pathname = new URL(event.request.url).pathname; 13 - if(pathname === '/getMembershipRequests') { 14 - const req = fetch('/bin/get/XWiki/LiveTableResults?outputSyntax=plain&transprefix=membershiprequest.livetable.&classname=Collaboratory.Apps.Membership.MembershipRequest.Code.MembershipRequestClass&collist=doc.title%2Ctarget%2Cusername%2Cstatus%2Cdoc.date&queryFilters=currentlanguage%2Chidden&offset=1&limit=15&reqNo=1&sort=doc.date&dir=desc'); 15 - event.respondWith(req.then(res => res.json()).then(json => { 16 - const headers = new Headers({'Content-Type': 'application/json'}); 17 - const jsonResults = json.rows.filter(row => row.doc_viewable === true); 18 - return new Response(JSON.stringify(jsonResults), {headers}); 19 - })); 20 - } 12 +self.addEventListener("fetch" , (event) => { 13 + console.log(event.request.url); 14 + event.respondWith( async function() { 15 + let response = await fetch(event.request); 16 + let json = await response.json(); 17 + let rows = json.rows.filter(row => row.doc_viewable === true); 18 + console.log(rows); 19 + return response; 20 + }) 21 21 });