mirror of
https://github.com/9001/copyparty.git
synced 2025-08-17 17:12:13 -06:00
unflicker navpane + add client state escape hatch
This commit is contained in:
parent
241ef5b99d
commit
4a843a6624
|
@ -60,6 +60,7 @@ class HttpCli(object):
|
||||||
self.bufsz = 1024 * 32
|
self.bufsz = 1024 * 32
|
||||||
self.hint = None
|
self.hint = None
|
||||||
self.trailing_slash = True
|
self.trailing_slash = True
|
||||||
|
self.out_headerlist = []
|
||||||
self.out_headers = {
|
self.out_headers = {
|
||||||
"Access-Control-Allow-Origin": "*",
|
"Access-Control-Allow-Origin": "*",
|
||||||
"Cache-Control": "no-store; max-age=0",
|
"Cache-Control": "no-store; max-age=0",
|
||||||
|
@ -226,7 +227,7 @@ class HttpCli(object):
|
||||||
self.gvol = self.asrv.vfs.aget[self.uname]
|
self.gvol = self.asrv.vfs.aget[self.uname]
|
||||||
|
|
||||||
if pwd and "pw" in self.ouparam and pwd != cookies.get("cppwd"):
|
if pwd and "pw" in self.ouparam and pwd != cookies.get("cppwd"):
|
||||||
self.out_headers["Set-Cookie"] = self.get_pwd_cookie(pwd)[0]
|
self.out_headerlist.append(("Set-Cookie", self.get_pwd_cookie(pwd)[0]))
|
||||||
|
|
||||||
self.ua = self.headers.get("user-agent", "")
|
self.ua = self.headers.get("user-agent", "")
|
||||||
self.is_rclone = self.ua.startswith("rclone/")
|
self.is_rclone = self.ua.startswith("rclone/")
|
||||||
|
@ -310,7 +311,7 @@ class HttpCli(object):
|
||||||
|
|
||||||
self.out_headers["Content-Type"] = mime
|
self.out_headers["Content-Type"] = mime
|
||||||
|
|
||||||
for k, v in self.out_headers.items():
|
for k, v in list(self.out_headers.items()) + self.out_headerlist:
|
||||||
response.append("{}: {}".format(k, v))
|
response.append("{}: {}".format(k, v))
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
@ -442,6 +443,9 @@ class HttpCli(object):
|
||||||
if "am_js" in self.uparam:
|
if "am_js" in self.uparam:
|
||||||
return self.set_am_js()
|
return self.set_am_js()
|
||||||
|
|
||||||
|
if "reset" in self.uparam:
|
||||||
|
return self.set_cfg_reset()
|
||||||
|
|
||||||
if "h" in self.uparam:
|
if "h" in self.uparam:
|
||||||
return self.tx_mounts()
|
return self.tx_mounts()
|
||||||
|
|
||||||
|
@ -1720,14 +1724,21 @@ class HttpCli(object):
|
||||||
|
|
||||||
def set_k304(self):
|
def set_k304(self):
|
||||||
ck = gencookie("k304", self.uparam["k304"], 60 * 60 * 24 * 365)
|
ck = gencookie("k304", self.uparam["k304"], 60 * 60 * 24 * 365)
|
||||||
self.out_headers["Set-Cookie"] = ck
|
self.out_headerlist.append(("Set-Cookie", ck))
|
||||||
self.redirect("", "?h#cc")
|
self.redirect("", "?h#cc")
|
||||||
|
|
||||||
def set_am_js(self):
|
def set_am_js(self):
|
||||||
ck = gencookie("js", "y", 60 * 60 * 24 * 365)
|
v = "n" if self.uparam["am_js"] == "n" else "y"
|
||||||
self.out_headers["Set-Cookie"] = ck
|
ck = gencookie("js", v, 60 * 60 * 24 * 365)
|
||||||
|
self.out_headerlist.append(("Set-Cookie", ck))
|
||||||
self.reply(b"promoted\n")
|
self.reply(b"promoted\n")
|
||||||
|
|
||||||
|
def set_cfg_reset(self):
|
||||||
|
for k in ("k304", "js", "cppwd"):
|
||||||
|
self.out_headerlist.append(("Set-Cookie", gencookie(k, "x", None)))
|
||||||
|
|
||||||
|
self.redirect("", "?h#cc")
|
||||||
|
|
||||||
def tx_404(self, is_403=False):
|
def tx_404(self, is_403=False):
|
||||||
if self.args.vague_403:
|
if self.args.vague_403:
|
||||||
m = '<h1>404 not found ┐( ´ -`)┌</h1><p>or maybe you don\'t have access -- try logging in or <a href="/?h">go home</a></p>'
|
m = '<h1>404 not found ┐( ´ -`)┌</h1><p>or maybe you don\'t have access -- try logging in or <a href="/?h">go home</a></p>'
|
||||||
|
@ -2121,6 +2132,7 @@ class HttpCli(object):
|
||||||
"vdir": quotep(self.vpath),
|
"vdir": quotep(self.vpath),
|
||||||
"vpnodes": vpnodes,
|
"vpnodes": vpnodes,
|
||||||
"files": [],
|
"files": [],
|
||||||
|
"ls0": None,
|
||||||
"acct": self.uname,
|
"acct": self.uname,
|
||||||
"perms": json.dumps(perms),
|
"perms": json.dumps(perms),
|
||||||
"taglist": [],
|
"taglist": [],
|
||||||
|
@ -2344,11 +2356,10 @@ class HttpCli(object):
|
||||||
|
|
||||||
dirs.sort(key=itemgetter("name"))
|
dirs.sort(key=itemgetter("name"))
|
||||||
|
|
||||||
if self.cookies.get("js"):
|
if self.cookies.get("js") == "y":
|
||||||
j2a["ls0"] = {"dirs": dirs, "files": files, "taglist": taglist}
|
j2a["ls0"] = {"dirs": dirs, "files": files, "taglist": taglist}
|
||||||
j2a["files"] = []
|
j2a["files"] = []
|
||||||
else:
|
else:
|
||||||
j2a["ls0"] = None
|
|
||||||
j2a["files"] = dirs + files
|
j2a["files"] = dirs + files
|
||||||
|
|
||||||
j2a["logues"] = logues
|
j2a["logues"] = logues
|
||||||
|
|
|
@ -3613,6 +3613,7 @@ var treectl = (function () {
|
||||||
if (!QS(q))
|
if (!QS(q))
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
nq = Math.max(nq, get_evpath().split('/').length - 2);
|
||||||
var iw = (treesz + Math.max(0, nq)),
|
var iw = (treesz + Math.max(0, nq)),
|
||||||
w = iw + 'em',
|
w = iw + 'em',
|
||||||
w2 = (iw + 2) + 'em';
|
w2 = (iw + 2) + 'em';
|
||||||
|
|
|
@ -81,9 +81,10 @@ table {
|
||||||
text-align: right;
|
text-align: right;
|
||||||
}
|
}
|
||||||
blockquote {
|
blockquote {
|
||||||
margin: 0 0 0 .6em;
|
margin: 0 0 1.6em .6em;
|
||||||
padding: .7em 1em;
|
padding: .7em 1em 0 1em;
|
||||||
border-left: .3em solid rgba(128,128,128,0.5);
|
border-left: .3em solid rgba(128,128,128,0.5);
|
||||||
|
border-radius: 0 0 0 .25em;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -75,11 +75,13 @@
|
||||||
<h1 id="cc">client config:</h1>
|
<h1 id="cc">client config:</h1>
|
||||||
<ul>
|
<ul>
|
||||||
{% if k304 %}
|
{% if k304 %}
|
||||||
<li><a href="/?k304=n" class="r">disable k304</a> (currently enabled)
|
<li><a href="/?k304=n">disable k304</a> (currently enabled)
|
||||||
{%- else %}
|
{%- else %}
|
||||||
<li><a href="/?k304=y">enable k304</a> (currently disabled)
|
<li><a href="/?k304=y" class="r">enable k304</a> (currently disabled)
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<blockquote>enabling this will disconnect your client on every HTTP 304, which can prevent some buggy browsers/proxies from getting stuck (suddenly not being able to load pages), <em>but</em> it will also make things slower in general</blockquote></li>
|
<blockquote>enabling this will disconnect your client on every HTTP 304, which can prevent some buggy browsers/proxies from getting stuck (suddenly not being able to load pages), <em>but</em> it will also make things slower in general</blockquote></li>
|
||||||
|
|
||||||
|
<li><a href="/?reset" class="r" onclick="localStorage.clear();return true">reset client settings</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<h1>login for more:</h1>
|
<h1>login for more:</h1>
|
||||||
|
|
Loading…
Reference in a new issue