diff --git a/copyparty/web/browser.css b/copyparty/web/browser.css
index 7b378d67..21d5b677 100644
--- a/copyparty/web/browser.css
+++ b/copyparty/web/browser.css
@@ -5542,6 +5542,13 @@ html.by #spaceUsed_bar {
text-align: right;
left: auto;
}
+#op_acc a:not(.btn),
+#op_acc input {
+ font-size: 1.2em;
+ display: block;
+ cursor: pointer;
+ justify-self: end;
+}
#opa_acc label {
cursor: pointer !important;
}
@@ -5769,10 +5776,6 @@ html.f #u2c3t span {
html.f #u2cards span {
font-size: .8em;
}
-html.f #blogout,
-html.f #goh {
- font-size: 1.2em;
-}
html.f #gridzoom a,
html.f #gridchop a,
html.f #twig, html.f #twobytwo,
@@ -6010,6 +6013,9 @@ html.fy #wtico {
line-height: 1.1em;
border-radius: 0;
}
+html.fy #wstack #wtico:hover{
+ background: var(--bg-u2) !important;
+}
html.fy #wtoggle,
html.fy #wtoggle * {
line-height: .99em;
diff --git a/copyparty/web/browser.html b/copyparty/web/browser.html
index c99d7178..61d352c1 100644
--- a/copyparty/web/browser.html
+++ b/copyparty/web/browser.html
@@ -77,11 +77,14 @@
Login
{{ srv_info }}
- control-panel
+ control-panel
+
+ install as app
+ about copyparty
diff --git a/copyparty/web/browser.js b/copyparty/web/browser.js
index 0942ec59..e31ffdfd 100644
--- a/copyparty/web/browser.js
+++ b/copyparty/web/browser.js
@@ -266,7 +266,7 @@ if (1)
"cl_themes": "theme",
"cl_accent": "accent color (keep empty for default)$Nsupports any css color, like rgba(255, 210, 0, 1)",
"cl_radius": "corner radius in pixels (keep empty for default)",
- "cl_fun": "enables or disables the FUN 🎉🚀👽🐹🥳❗ (reload the page after changing this setting)",
+ "cl_fun": "enables or disables the FUN (hides most emojis) 🎉🚀👽🐹🥳❗$Nreload the page after changing this setting.",
"cl_langs": "language",
"cl_ziptype": "folder download",
"cl_uopts": "upload",
diff --git a/copyparty/web/util.js b/copyparty/web/util.js
index 0ef81497..5c566a8a 100644
--- a/copyparty/web/util.js
+++ b/copyparty/web/util.js
@@ -2442,4 +2442,22 @@ window.addEventListener('load', async () => {
}
});
+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;
+ }
+ const result = await installPrompt.prompt();
+ console.log(`Install prompt was: ${result.outcome}`);
+ installPrompt = null;
+ ebi('inst').setAttribute("hidden", "");
+ }
+}
+
J_UTL = 2;