mirror of
https://github.com/9001/copyparty.git
synced 2025-08-17 09:02:15 -06:00
set default sort order; --sort or volflag "sort"
This commit is contained in:
parent
7086d2a305
commit
9f32e9e11d
|
@ -1144,6 +1144,7 @@ def add_ui(ap, retry):
|
|||
ap2.add_argument("--lang", metavar="LANG", type=u, default="eng", help="language; one of the following: eng nor")
|
||||
ap2.add_argument("--theme", metavar="NUM", type=int, default=0, help="default theme to use")
|
||||
ap2.add_argument("--themes", metavar="NUM", type=int, default=8, help="number of themes installed")
|
||||
ap2.add_argument("--sort", metavar="C,C,C", type=u, default="href", help="default sort order, comma-separated column IDs (see header tooltips), prefix with '-' for descending. Examples: \033[32mhref -href ext sz ts tags/Album tags/.tn\033[0m (volflag=sort)")
|
||||
ap2.add_argument("--unlist", metavar="REGEX", type=u, default="", help="don't show files matching REGEX in file list. Purely cosmetic! Does not affect API calls, just the browser. Example: [\033[32m\\.(js|css)$\033[0m] (volflag=unlist)")
|
||||
ap2.add_argument("--favico", metavar="TXT", type=u, default="c 000 none" if retry else "🎉 000 none", help="\033[33mfavicon-text\033[0m [ \033[33mforeground\033[0m [ \033[33mbackground\033[0m ] ], set blank to disable")
|
||||
ap2.add_argument("--mpmc", metavar="URL", type=u, default="", help="change the mediaplayer-toggle mouse cursor; URL to a folder with {2..5}.png inside (or disable with [\033[32m.\033[0m])")
|
||||
|
|
|
@ -42,7 +42,7 @@ def vf_bmap() -> dict[str, str]:
|
|||
def vf_vmap() -> dict[str, str]:
|
||||
"""argv-to-volflag: simple values"""
|
||||
ret = {"th_convt": "convt", "th_size": "thsize"}
|
||||
for k in ("dbd", "lg_sbf", "md_sbf", "nrand", "unlist"):
|
||||
for k in ("dbd", "lg_sbf", "md_sbf", "nrand", "sort", "unlist"):
|
||||
ret[k] = k
|
||||
return ret
|
||||
|
||||
|
@ -149,6 +149,7 @@ flagcats = {
|
|||
},
|
||||
"client and ux": {
|
||||
"grid": "show grid/thumbnails by default",
|
||||
"sort": "default sort order",
|
||||
"unlist": "dont list files matching REGEX",
|
||||
"html_head=TXT": "includes TXT in the <head>",
|
||||
"robots": "allows indexing by search engines (default)",
|
||||
|
|
|
@ -3833,6 +3833,7 @@ class HttpCli(object):
|
|||
"acct": self.uname,
|
||||
"idx": e2d,
|
||||
"itag": e2t,
|
||||
"dsort": vf["sort"],
|
||||
"lifetime": vn.flags.get("lifetime") or 0,
|
||||
"frand": bool(vn.flags.get("rand")),
|
||||
"unlist": unlist,
|
||||
|
@ -3857,6 +3858,7 @@ class HttpCli(object):
|
|||
"sb_md": "" if "no_sb_md" in vf else (vf.get("md_sbf") or "y"),
|
||||
"readme": readme,
|
||||
"dgrid": "grid" in vf,
|
||||
"dsort": vf["sort"],
|
||||
"themes": self.args.themes,
|
||||
"turbolvl": self.args.turbo,
|
||||
"idxh": int(self.args.ih),
|
||||
|
|
|
@ -3133,11 +3133,34 @@ function eval_hash() {
|
|||
})();
|
||||
|
||||
|
||||
function read_dsort(txt) {
|
||||
try {
|
||||
var zt = txt.trim().split(/,+/g);
|
||||
dsort = [];
|
||||
for (var a = 0; a < zt.length; a++) {
|
||||
var z = zt[a].trim(), n = 1, t = "";
|
||||
if (z.startsWith("-")) {
|
||||
z = z.slice(1);
|
||||
n = -1;
|
||||
}
|
||||
if (z == "sz" || z.indexOf('/.') + 1)
|
||||
t = "int";
|
||||
|
||||
dsort.push([z, n, t]);
|
||||
}
|
||||
}
|
||||
catch (ex) {
|
||||
toast.warn(10, 'failed to apply default sort order [' + txt + ']:\n' + ex);
|
||||
}
|
||||
}
|
||||
read_dsort(dsort);
|
||||
|
||||
|
||||
function sortfiles(nodes) {
|
||||
if (!nodes.length)
|
||||
return nodes;
|
||||
|
||||
var sopts = jread('fsort', [["href", 1, ""]]),
|
||||
var sopts = jread('fsort', jcp(dsort)),
|
||||
dir1st = sread('dir1st') !== '0';
|
||||
|
||||
try {
|
||||
|
@ -5791,6 +5814,8 @@ var treectl = (function () {
|
|||
if (res.files[a].tags === undefined)
|
||||
res.files[a].tags = {};
|
||||
|
||||
read_dsort(res.dsort);
|
||||
|
||||
srvinf = res.srvinf;
|
||||
try {
|
||||
ebi('srv_info').innerHTML = ebi('srv_info2').innerHTML = '<span>' + res.srvinf + '</span>';
|
||||
|
@ -6354,6 +6379,7 @@ var filecols = (function () {
|
|||
toh = ths[a].outerHTML, // !ff10
|
||||
ttv = L.cols[ths[a].textContent];
|
||||
|
||||
ttv = (ttv ? ttv + '$N' : '') + 'ID: <code>' + th.getAttribute('name') + '</code>';
|
||||
if (!MOBILE && toh) {
|
||||
th.innerHTML = '<div class="cfg"><a href="#">-</a></div>' + toh;
|
||||
th.getElementsByTagName('a')[0].onclick = ev_row_tgl;
|
||||
|
|
|
@ -15,6 +15,7 @@ html {
|
|||
max-width: min(34em, calc(100% - 7em));
|
||||
color: #ddd;
|
||||
background: #333;
|
||||
background: var(--bg-u2);
|
||||
border: 0 solid #777;
|
||||
box-shadow: 0 .2em .5em #111;
|
||||
border-radius: .4em;
|
||||
|
@ -159,9 +160,10 @@ html {
|
|||
#modalc code,
|
||||
#tt code {
|
||||
color: #eee;
|
||||
color: var(--fg-max);
|
||||
background: #444;
|
||||
background: var(--bg-u5);
|
||||
padding: .1em .3em;
|
||||
border-top: 1px solid #777;
|
||||
border-radius: .3em;
|
||||
line-height: 1.7em;
|
||||
}
|
||||
|
@ -182,8 +184,10 @@ html.y #toast {
|
|||
box-shadow: 0 .3em 1em rgba(0,0,0,0.4);
|
||||
}
|
||||
html.y #tt code {
|
||||
background: #060;
|
||||
color: #fff;
|
||||
color: var(--fg-max);
|
||||
background: #060;
|
||||
background: var(--bg-u5);
|
||||
}
|
||||
#modalc code {
|
||||
color: #060;
|
||||
|
|
|
@ -483,7 +483,7 @@ function yscroll() {
|
|||
|
||||
function showsort(tab) {
|
||||
var v, vn, v1, v2, th = tab.tHead,
|
||||
sopts = jread('fsort', [["href", 1, ""]]);
|
||||
sopts = jread('fsort', jcp(dsort));
|
||||
|
||||
th && (th = th.rows[0]) && (th = th.cells);
|
||||
|
||||
|
|
Loading…
Reference in a new issue