mirror of
https://github.com/9001/copyparty.git
synced 2026-06-22 05:53:29 -06:00
IE fixes
This commit is contained in:
parent
3788b9b132
commit
5a33c4cd8a
|
|
@ -33,7 +33,8 @@ function jsldp(a, b) {
|
|||
}
|
||||
loadScript('baguettebox', "J_BBX");
|
||||
loadScript('up2k', "J_U2K");
|
||||
loadScript('sw');
|
||||
if (navigator.serviceWorker)
|
||||
loadScript('sw');
|
||||
|
||||
|
||||
// disables emojis
|
||||
|
|
|
|||
|
|
@ -1,55 +1,53 @@
|
|||
// service worker. required for PWAs
|
||||
// https://www.digitalapplied.com/blog/progressive-web-apps-2026-pwa-performance-guide
|
||||
// Register service worker on page load
|
||||
console.log('sw.js')
|
||||
if ('serviceWorker' in navigator) {
|
||||
console.log('sw load')
|
||||
self.addEventListener("fetch", (event) => {
|
||||
// Regular requests not related to Web Share Target.
|
||||
if (event.request.method !== "POST" || !event.request.action.has("share-target")) {
|
||||
console.log('normal response')
|
||||
event.respondWith(fetch(event.request));
|
||||
return;
|
||||
}
|
||||
// modern syntax allowed here, only supported browsers load this file
|
||||
console.log('sw load')
|
||||
self.addEventListener("fetch", (event) => {
|
||||
// Regular requests not related to Web Share Target.
|
||||
if (event.request.method !== "POST" || !event.request.action.has("share-target")) {
|
||||
console.log('normal response')
|
||||
event.respondWith(fetch(event.request));
|
||||
return;
|
||||
}
|
||||
|
||||
// Requests related to Web Share Target.
|
||||
event.respondWith(
|
||||
(async () => {
|
||||
const formData = await event.request.formData();
|
||||
const files = formData.get("files") || "";
|
||||
console.log('sw share:')
|
||||
console.log(files)
|
||||
await addResourcesToCache(files)
|
||||
// Requests related to Web Share Target.
|
||||
event.respondWith(
|
||||
(async () => {
|
||||
const formData = await event.request.formData();
|
||||
const files = formData.get("files") || "";
|
||||
console.log('sw share:')
|
||||
console.log(files)
|
||||
await addResourcesToCache(files)
|
||||
|
||||
// const responseUrl = '/'; // (ToDo: remember last upload dir)
|
||||
// ToDo: keep file references in clipboard
|
||||
// (maybe read from cache on page load somehow)
|
||||
// -> upload on paste
|
||||
// const responseUrl = '/'; // (ToDo: remember last upload dir)
|
||||
// ToDo: keep file references in clipboard
|
||||
// (maybe read from cache on page load somehow)
|
||||
// -> upload on paste
|
||||
|
||||
// Copy existing headers
|
||||
const headers = new Headers(event.request.headers);
|
||||
// Copy existing headers
|
||||
const headers = new Headers(event.request.headers);
|
||||
|
||||
// Set a new header
|
||||
var pw = await CookieStore.get('cppwd');
|
||||
headers.set('pw', pw);
|
||||
|
||||
headers.delete('origin'); // 99% sure this doesn't work, but hey
|
||||
// Set a new header
|
||||
var pw = await CookieStore.get('cppwd');
|
||||
headers.set('pw', pw);
|
||||
|
||||
headers.delete('origin'); // 99% sure this doesn't work, but hey
|
||||
|
||||
const newRequest = new Request(event.request, {
|
||||
mode: 'cors',
|
||||
credentials: 'omit',
|
||||
headers: headers
|
||||
})
|
||||
return fetch(newRequest)
|
||||
})(),
|
||||
);
|
||||
});
|
||||
self.addEventListener('install', (event) => {
|
||||
console.log('sw wait skip')
|
||||
self.skipWaiting(); // insta replace old service workers (helpful for dev)
|
||||
});
|
||||
const addResourcesToCache = async (resources) => {
|
||||
const cache = await caches.open("files");
|
||||
await cache.addAll(resources);
|
||||
};
|
||||
}
|
||||
const newRequest = new Request(event.request, {
|
||||
mode: 'cors',
|
||||
credentials: 'omit',
|
||||
headers: headers
|
||||
})
|
||||
return fetch(newRequest)
|
||||
})(),
|
||||
);
|
||||
});
|
||||
self.addEventListener('install', (event) => {
|
||||
console.log('sw wait skip')
|
||||
self.skipWaiting(); // insta replace old service workers (helpful for dev)
|
||||
});
|
||||
const addResourcesToCache = async (resources) => {
|
||||
const cache = await caches.open("files");
|
||||
await cache.addAll(resources);
|
||||
};
|
||||
|
|
@ -2362,16 +2362,19 @@ function setColor (color) {
|
|||
pbar.drawpos();
|
||||
vbar.draw();
|
||||
}
|
||||
var accent = sread('accent');
|
||||
|
||||
var accent = "";
|
||||
if(sread != undefined)
|
||||
accent = sread('accent');
|
||||
var tcolor = QS('meta[name=theme-color]');
|
||||
if(tcolor)
|
||||
tcolor = tcolor.content;
|
||||
if((!accent || accent.length <= 3) && tcolor != "#333333")
|
||||
accent = tcolor;
|
||||
accent = tcolor;
|
||||
var thing = QS('meta[name=theme-color]');
|
||||
if(accent && accent.length > 3){
|
||||
console.log('read accent color from settings: ' + accent);
|
||||
document.documentElement.style.setProperty('--a', parseColor(accent));
|
||||
console.log('read accent color from settings: ' + accent);
|
||||
document.documentElement.style.setProperty('--a', parseColor(accent));
|
||||
}
|
||||
|
||||
function bchrome() {
|
||||
|
|
@ -2448,42 +2451,44 @@ function xhrchk(xhr, prefix, e404, lvl, tag) {
|
|||
return fun(0, prefix + xhr.status + ": " + errtxt, tag);
|
||||
}
|
||||
|
||||
// register service worker
|
||||
// ToDo: set http header: Service-Worker-Allowed: /
|
||||
// otherwise it will fail to register
|
||||
// https://stackoverflow.com/questions/49084718/how-exactly-add-service-worker-allowed-to-register-service-worker-scope-in-upp
|
||||
window.addEventListener('load', async () => {
|
||||
try {
|
||||
const registration = await navigator.serviceWorker.register("/.cpr/w/sw.js", {
|
||||
scope: "/",
|
||||
});
|
||||
if (registration.installing) {
|
||||
console.log("Service worker installing");
|
||||
} else if (registration.waiting) {
|
||||
console.log("Service worker installed");
|
||||
} else if (registration.active) {
|
||||
console.log("Service worker active");
|
||||
}
|
||||
} catch (error) {
|
||||
console.error(`Registration failed with ${error}`);
|
||||
}
|
||||
});
|
||||
|
||||
if(ebi('inst')){
|
||||
var installPrompt = null;
|
||||
window.addEventListener("beforeinstallprompt", function(e) {
|
||||
e.preventDefault();
|
||||
installPrompt = e;
|
||||
ebi('inst').removeAttribute("hidden");
|
||||
});
|
||||
ebi('inst').onclick = async function(){
|
||||
if (!installPrompt) {
|
||||
return;
|
||||
if (navigator.serviceWorker){
|
||||
// register service worker
|
||||
// ToDo: set http header: Service-Worker-Allowed: /
|
||||
// otherwise it will fail to register
|
||||
// https://stackoverflow.com/questions/49084718/how-exactly-add-service-worker-allowed-to-register-service-worker-scope-in-upp
|
||||
window.addEventListener('load', function() {
|
||||
try {
|
||||
var registration = navigator.serviceWorker.register("/.cpr/w/sw.js", {
|
||||
scope: "/",
|
||||
});
|
||||
if (registration.installing) {
|
||||
console.log("Service worker installing");
|
||||
} else if (registration.waiting) {
|
||||
console.log("Service worker installed");
|
||||
} else if (registration.active) {
|
||||
console.log("Service worker active");
|
||||
}
|
||||
} catch (error) {
|
||||
console.error("Registration failed with " + error);
|
||||
}
|
||||
});
|
||||
|
||||
if(ebi('inst')){
|
||||
var installPrompt = null;
|
||||
window.addEventListener("beforeinstallprompt", function(e) {
|
||||
e.preventDefault();
|
||||
installPrompt = e;
|
||||
ebi('inst').removeAttribute("hidden");
|
||||
});
|
||||
ebi('inst').onclick = function(){
|
||||
if (!installPrompt) {
|
||||
return;
|
||||
}
|
||||
var result = installPrompt.prompt();
|
||||
console.log("Install prompt was: " + result.outcome);
|
||||
installPrompt = null;
|
||||
ebi('inst').setAttribute("hidden", "");
|
||||
}
|
||||
const result = await installPrompt.prompt();
|
||||
console.log(`Install prompt was: ${result.outcome}`);
|
||||
installPrompt = null;
|
||||
ebi('inst').setAttribute("hidden", "");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue