mirror of
https://github.com/9001/copyparty.git
synced 2025-08-17 09:02:15 -06:00
use preferred sort on initial render, fixes #8
This commit is contained in:
parent
dd122111e6
commit
1521307f1e
|
@ -13,7 +13,7 @@
|
||||||
|
|
||||||
upstream cpp {
|
upstream cpp {
|
||||||
server 127.0.0.1:3923;
|
server 127.0.0.1:3923;
|
||||||
keepalive 120;
|
keepalive 1;
|
||||||
}
|
}
|
||||||
server {
|
server {
|
||||||
listen 443 ssl;
|
listen 443 ssl;
|
||||||
|
|
|
@ -285,7 +285,7 @@ class HttpCli(object):
|
||||||
self.out_headers["Cache-Control"] = "max-age=" + n
|
self.out_headers["Cache-Control"] = "max-age=" + n
|
||||||
|
|
||||||
def k304(self):
|
def k304(self):
|
||||||
k304 = self.cookies.get("k304", "")
|
k304 = self.cookies.get("k304")
|
||||||
return k304 == "y" or ("; Trident/" in self.ua and not k304)
|
return k304 == "y" or ("; Trident/" in self.ua and not k304)
|
||||||
|
|
||||||
def send_headers(self, length, status=200, mime=None, headers=None):
|
def send_headers(self, length, status=200, mime=None, headers=None):
|
||||||
|
@ -439,6 +439,9 @@ class HttpCli(object):
|
||||||
if "k304" in self.uparam:
|
if "k304" in self.uparam:
|
||||||
return self.set_k304()
|
return self.set_k304()
|
||||||
|
|
||||||
|
if "am_js" in self.uparam:
|
||||||
|
return self.set_am_js()
|
||||||
|
|
||||||
if "h" in self.uparam:
|
if "h" in self.uparam:
|
||||||
return self.tx_mounts()
|
return self.tx_mounts()
|
||||||
|
|
||||||
|
@ -1720,6 +1723,11 @@ class HttpCli(object):
|
||||||
self.out_headers["Set-Cookie"] = ck
|
self.out_headers["Set-Cookie"] = ck
|
||||||
self.redirect("", "?h#cc")
|
self.redirect("", "?h#cc")
|
||||||
|
|
||||||
|
def set_am_js(self):
|
||||||
|
ck = gencookie("js", "y", 60 * 60 * 24 * 365)
|
||||||
|
self.out_headers["Set-Cookie"] = ck
|
||||||
|
self.reply(b"promoted\n")
|
||||||
|
|
||||||
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>'
|
||||||
|
@ -2336,7 +2344,13 @@ class HttpCli(object):
|
||||||
|
|
||||||
dirs.sort(key=itemgetter("name"))
|
dirs.sort(key=itemgetter("name"))
|
||||||
|
|
||||||
j2a["files"] = dirs + files
|
if self.cookies.get("js"):
|
||||||
|
j2a["ls0"] = {"dirs": dirs, "files": files, "taglist": taglist}
|
||||||
|
j2a["files"] = []
|
||||||
|
else:
|
||||||
|
j2a["ls0"] = None
|
||||||
|
j2a["files"] = dirs + files
|
||||||
|
|
||||||
j2a["logues"] = logues
|
j2a["logues"] = logues
|
||||||
j2a["taglist"] = taglist
|
j2a["taglist"] = taglist
|
||||||
j2a["txt_ext"] = self.args.textfiles.replace(",", " ")
|
j2a["txt_ext"] = self.args.textfiles.replace(",", " ")
|
||||||
|
|
|
@ -143,7 +143,8 @@
|
||||||
have_zip = {{ have_zip|tojson }},
|
have_zip = {{ have_zip|tojson }},
|
||||||
txt_ext = "{{ txt_ext }}",
|
txt_ext = "{{ txt_ext }}",
|
||||||
{% if no_prism %}no_prism = 1,{% endif %}
|
{% if no_prism %}no_prism = 1,{% endif %}
|
||||||
readme = {{ readme|tojson }};
|
readme = {{ readme|tojson }},
|
||||||
|
ls0 = {{ ls0|tojson }};
|
||||||
|
|
||||||
document.documentElement.setAttribute("class", localStorage.lightmode == 1 ? "light" : "dark");
|
document.documentElement.setAttribute("class", localStorage.lightmode == 1 ? "light" : "dark");
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -306,7 +306,9 @@ function set_files_html(html) {
|
||||||
|
|
||||||
|
|
||||||
var ACtx = window.AudioContext || window.webkitAudioContext,
|
var ACtx = window.AudioContext || window.webkitAudioContext,
|
||||||
actx = ACtx && new ACtx();
|
actx = ACtx && new ACtx(),
|
||||||
|
hash0 = location.hash,
|
||||||
|
mp;
|
||||||
|
|
||||||
|
|
||||||
var mpl = (function () {
|
var mpl = (function () {
|
||||||
|
@ -652,14 +654,11 @@ function MPlayer() {
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
addcrc();
|
|
||||||
var mp = new MPlayer();
|
|
||||||
makeSortable(ebi('files'), mp.read_order.bind(mp));
|
|
||||||
|
|
||||||
|
|
||||||
function ft2dict(tr) {
|
function ft2dict(tr) {
|
||||||
var th = ebi('files').tHead.rows[0].cells,
|
var th = ebi('files').tHead.rows[0].cells,
|
||||||
rv = [],
|
rv = [],
|
||||||
|
rh = [],
|
||||||
ra = [],
|
ra = [],
|
||||||
rt = {};
|
rt = {};
|
||||||
|
|
||||||
|
@ -671,10 +670,11 @@ function ft2dict(tr) {
|
||||||
if (!tv)
|
if (!tv)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
(vis ? rv : ra).push(tk);
|
(vis ? rv : rh).push(tk);
|
||||||
|
ra.push(tk);
|
||||||
rt[tk] = tv;
|
rt[tk] = tv;
|
||||||
}
|
}
|
||||||
return [rt, rv, ra];
|
return [rt, rv, rh, ra];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -808,7 +808,7 @@ var pbar = (function () {
|
||||||
|
|
||||||
bctx.clearRect(0, 0, bc.w, bc.h);
|
bctx.clearRect(0, 0, bc.w, bc.h);
|
||||||
|
|
||||||
if (!mp.au)
|
if (!mp || !mp.au)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
var sm = bc.w * 1.0 / mp.au.duration,
|
var sm = bc.w * 1.0 / mp.au.duration,
|
||||||
|
@ -835,7 +835,7 @@ var pbar = (function () {
|
||||||
|
|
||||||
pctx.clearRect(0, 0, pc.w, pc.h);
|
pctx.clearRect(0, 0, pc.w, pc.h);
|
||||||
|
|
||||||
if (!mp.au || isNaN(adur = mp.au.duration) || isNaN(apos = mp.au.currentTime) || apos < 0 || adur < apos)
|
if (!mp || !mp.au || isNaN(adur = mp.au.duration) || isNaN(apos = mp.au.currentTime) || apos < 0 || adur < apos)
|
||||||
return; // not-init || unsupp-codec
|
return; // not-init || unsupp-codec
|
||||||
|
|
||||||
var sm = bc.w * 1.0 / adur;
|
var sm = bc.w * 1.0 / adur;
|
||||||
|
@ -906,6 +906,9 @@ var vbar = (function () {
|
||||||
}
|
}
|
||||||
|
|
||||||
r.draw = function () {
|
r.draw = function () {
|
||||||
|
if (!mp)
|
||||||
|
return;
|
||||||
|
|
||||||
var gh = h + '' + light;
|
var gh = h + '' + light;
|
||||||
if (gradh != gh) {
|
if (gradh != gh) {
|
||||||
gradh = gh;
|
gradh = gh;
|
||||||
|
@ -1132,7 +1135,6 @@ var mpui = (function () {
|
||||||
if (mp.au.paused)
|
if (mp.au.paused)
|
||||||
timer.rm(updater_impl);
|
timer.rm(updater_impl);
|
||||||
}
|
}
|
||||||
r.progress_updater();
|
|
||||||
return r;
|
return r;
|
||||||
})();
|
})();
|
||||||
|
|
||||||
|
@ -1567,7 +1569,8 @@ function autoplay_blocked(seek) {
|
||||||
|
|
||||||
|
|
||||||
function eval_hash() {
|
function eval_hash() {
|
||||||
var v = location.hash;
|
var v = hash0;
|
||||||
|
hash0 = null;
|
||||||
if (!v)
|
if (!v)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
@ -2867,10 +2870,6 @@ var thegrid = (function () {
|
||||||
import_js('/.cpr/baguettebox.js', r.bagit);
|
import_js('/.cpr/baguettebox.js', r.bagit);
|
||||||
}, 1);
|
}, 1);
|
||||||
|
|
||||||
if (r.en) {
|
|
||||||
loadgrid();
|
|
||||||
}
|
|
||||||
|
|
||||||
return r;
|
return r;
|
||||||
})();
|
})();
|
||||||
|
|
||||||
|
@ -3865,8 +3864,34 @@ var treectl = (function () {
|
||||||
|
|
||||||
ebi('srv_info').innerHTML = '<span>' + res.srvinf + '</span>';
|
ebi('srv_info').innerHTML = '<span>' + res.srvinf + '</span>';
|
||||||
|
|
||||||
var top = this.top,
|
if (this.hpush && !showfile.active())
|
||||||
nodes = res.dirs.concat(res.files),
|
hist_push(this.top);
|
||||||
|
|
||||||
|
r.gentab(this.top, res);
|
||||||
|
|
||||||
|
acct = res.acct;
|
||||||
|
apply_perms(res.perms);
|
||||||
|
despin('#files');
|
||||||
|
despin('#gfiles');
|
||||||
|
|
||||||
|
ebi('pro').innerHTML = res.logues ? res.logues[0] || "" : "";
|
||||||
|
ebi('epi').innerHTML = res.logues ? res.logues[1] || "" : "";
|
||||||
|
|
||||||
|
clmod(ebi('epi'), 'mdo');
|
||||||
|
if (res.readme)
|
||||||
|
show_readme(res.readme);
|
||||||
|
|
||||||
|
wintitle();
|
||||||
|
var fun = r.ls_cb;
|
||||||
|
if (fun) {
|
||||||
|
r.ls_cb = null;
|
||||||
|
fun();
|
||||||
|
}
|
||||||
|
eval_hash();
|
||||||
|
}
|
||||||
|
|
||||||
|
r.gentab = function (top, res) {
|
||||||
|
var nodes = res.dirs.concat(res.files),
|
||||||
html = mk_files_header(res.taglist),
|
html = mk_files_header(res.taglist),
|
||||||
seen = {};
|
seen = {};
|
||||||
|
|
||||||
|
@ -3914,36 +3939,33 @@ var treectl = (function () {
|
||||||
html = html.join('\n');
|
html = html.join('\n');
|
||||||
set_files_html(html);
|
set_files_html(html);
|
||||||
|
|
||||||
if (this.hpush && !showfile.active())
|
|
||||||
hist_push(this.top);
|
|
||||||
|
|
||||||
acct = res.acct;
|
|
||||||
apply_perms(res.perms);
|
|
||||||
despin('#files');
|
|
||||||
despin('#gfiles');
|
|
||||||
|
|
||||||
ebi('pro').innerHTML = res.logues ? res.logues[0] || "" : "";
|
|
||||||
ebi('epi').innerHTML = res.logues ? res.logues[1] || "" : "";
|
|
||||||
|
|
||||||
clmod(ebi('epi'), 'mdo');
|
|
||||||
if (res.readme)
|
|
||||||
show_readme(res.readme);
|
|
||||||
|
|
||||||
wintitle();
|
|
||||||
filecols.set_style();
|
filecols.set_style();
|
||||||
showfile.mktree();
|
showfile.mktree();
|
||||||
mukey.render();
|
mukey.render();
|
||||||
reload_tree();
|
reload_tree();
|
||||||
reload_browser();
|
reload_browser();
|
||||||
tree_scrollto();
|
tree_scrollto();
|
||||||
|
|
||||||
var fun = r.ls_cb;
|
|
||||||
if (fun) {
|
|
||||||
r.ls_cb = null;
|
|
||||||
fun();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
r.hydrate = function () {
|
||||||
|
if (ls0 === null) {
|
||||||
|
var xhr = new XMLHttpRequest();
|
||||||
|
xhr.open('GET', '/?am_js', true);
|
||||||
|
xhr.send();
|
||||||
|
|
||||||
|
return reqls(get_evpath(), false, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
r.gentab(get_evpath(), ls0);
|
||||||
|
reload_browser();
|
||||||
|
pbar.onresize();
|
||||||
|
vbar.onresize();
|
||||||
|
mukey.render();
|
||||||
|
showfile.addlinks();
|
||||||
|
thegrid.setdirty();
|
||||||
|
setTimeout(eval_hash, 1);
|
||||||
|
};
|
||||||
|
|
||||||
function parsetree(res, top) {
|
function parsetree(res, top) {
|
||||||
var ret = '';
|
var ret = '';
|
||||||
for (var a = 0; a < res.a.length; a++) {
|
for (var a = 0; a < res.a.length; a++) {
|
||||||
|
@ -5007,20 +5029,20 @@ function reload_mp() {
|
||||||
audio_eq.stop();
|
audio_eq.stop();
|
||||||
mp.au.pause();
|
mp.au.pause();
|
||||||
mp.au = null;
|
mp.au = null;
|
||||||
|
mpl.unbuffer();
|
||||||
}
|
}
|
||||||
mpl.stop();
|
mpl.stop();
|
||||||
var plays = QSA('tr>td:first-child>a.play');
|
var plays = QSA('tr>td:first-child>a.play');
|
||||||
for (var a = plays.length - 1; a >= 0; a--)
|
for (var a = plays.length - 1; a >= 0; a--)
|
||||||
plays[a].parentNode.innerHTML = '-';
|
plays[a].parentNode.innerHTML = '-';
|
||||||
|
|
||||||
mpl.unbuffer();
|
|
||||||
mp = new MPlayer();
|
mp = new MPlayer();
|
||||||
audio_eq.acst = {};
|
audio_eq.acst = {};
|
||||||
setTimeout(pbar.onresize, 1);
|
setTimeout(pbar.onresize, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function reload_browser(not_mp) {
|
function reload_browser() {
|
||||||
filecols.set_style();
|
filecols.set_style();
|
||||||
|
|
||||||
var parts = get_evpath().split('/'),
|
var parts = get_evpath().split('/'),
|
||||||
|
@ -5046,11 +5068,9 @@ function reload_browser(not_mp) {
|
||||||
oo[a].textContent = hsz;
|
oo[a].textContent = hsz;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!not_mp) {
|
addcrc();
|
||||||
addcrc();
|
reload_mp();
|
||||||
reload_mp();
|
makeSortable(ebi('files'), mp.read_order.bind(mp));
|
||||||
makeSortable(ebi('files'), mp.read_order.bind(mp));
|
|
||||||
}
|
|
||||||
|
|
||||||
for (var a = 0; a < 2; a++)
|
for (var a = 0; a < 2; a++)
|
||||||
clmod(ebi(a ? 'pro' : 'epi'), 'hidden', ebi('unsearch'));
|
clmod(ebi(a ? 'pro' : 'epi'), 'hidden', ebi('unsearch'));
|
||||||
|
@ -5061,7 +5081,4 @@ function reload_browser(not_mp) {
|
||||||
thegrid.setdirty();
|
thegrid.setdirty();
|
||||||
msel.render();
|
msel.render();
|
||||||
}
|
}
|
||||||
reload_browser(true);
|
treectl.hydrate();
|
||||||
showfile.addlinks();
|
|
||||||
mukey.render();
|
|
||||||
setTimeout(eval_hash, 1);
|
|
||||||
|
|
Loading…
Reference in a new issue