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