* created pwa

* fixed jdbc warning
* new gradle run task
* new gradle jar-build task
This commit is contained in:
lukas-heiligenbrunner
2019-12-08 19:20:48 +01:00
parent 7748aa58bd
commit 34ab59c9a3
9 changed files with 172 additions and 7 deletions

View File

@ -26,6 +26,8 @@
<script type="text/javascript" src="js/index.js"></script>
<script src="lib/AdminLTE/plugins/sweetalert2/sweetalert2.all.js"></script>
<link rel="manifest" href="/manifest.json">
</head>
<body>
<div class="container">

View File

@ -25,4 +25,20 @@ $(document).ready(function () {
}
}, 'json');
});
//register pwa
async function registerSW() {
console.log("registering service worker!");
if ('serviceWorker' in navigator) {
try {
await navigator.serviceWorker.register('/sw.js');
} catch (e) {
console.log(`SW registration failed`);
}
}
}
registerSW();
});

View File

@ -0,0 +1,15 @@
{
"name": "Waste Information Server",
"short_name": "WasteInformationServer",
"start_url": "/",
"display": "standalone",
"background_color": "#fff",
"description": "A web app to manage waste pickups",
"icons": [
{
"src": "wasteicon.png",
"sizes": "512x512",
"type": "image/png"
}
]
}

View File

@ -0,0 +1,59 @@
const cacheName = 'static-v2';
const staticAssets = [
'/',
'/index.html',
'/css/index.css',
'/js/index.js',
'/manifest.json',
'/lib/bootstrap.min.css',
'/lib/bootstrap.min.js',
'/lib/jquery.min.js',
'/lib/popper.min.js',
'/rsc/login2.jpg',
'/wasteicon.png'
];
self.addEventListener('install', async e => {
console.log('V1 installing…');
e.waitUntil(
caches.open('static-v2').then(cache => cache.addAll(staticAssets))
);
// const cache = await caches.open(cacheName);
// await cache.addAll(staticAssets);
// return self.skipWaiting();
});
self.addEventListener('activate', e => {
self.clients.claim();
});
self.addEventListener('fetch', async e => {
const req = e.request;
const url = new URL(req.url);
if (url.origin === location.origin) {
e.respondWith(cacheFirst(req));
} else {
e.respondWith(networkAndCache(req));
}
});
async function cacheFirst(req) {
const cache = await caches.open(cacheName);
const cached = await cache.match(req);
return cached || fetch(req);
}
async function networkAndCache(req) {
const cache = await caches.open(cacheName);
try {
const fresh = await fetch(req);
await cache.put(req, fresh.clone());
return fresh;
} catch (e) {
const cached = await cache.match(req);
return cached;
}
}