mirror of
https://github.com/9001/copyparty.git
synced 2025-08-18 01:22:13 -06:00
sort-order indicators
This commit is contained in:
parent
1521307f1e
commit
f39f575a9c
|
@ -79,6 +79,25 @@ a, #files tbody div a:last-child {
|
||||||
color: #999;
|
color: #999;
|
||||||
font-weight: normal;
|
font-weight: normal;
|
||||||
}
|
}
|
||||||
|
.s0:after,
|
||||||
|
.s1:after {
|
||||||
|
content: '⌄';
|
||||||
|
}
|
||||||
|
.s0r:after,
|
||||||
|
.s1r:after {
|
||||||
|
content: '⌃';
|
||||||
|
}
|
||||||
|
.s0:after,
|
||||||
|
.s0r:after {
|
||||||
|
color: #fb0;
|
||||||
|
}
|
||||||
|
.s1:after,
|
||||||
|
.s1r:after {
|
||||||
|
color: #d09;
|
||||||
|
}
|
||||||
|
#files thead th:after {
|
||||||
|
margin-right: -.8em;
|
||||||
|
}
|
||||||
#files tbody tr:hover td {
|
#files tbody tr:hover td {
|
||||||
background: #1c1c1c;
|
background: #1c1c1c;
|
||||||
}
|
}
|
||||||
|
@ -1042,7 +1061,6 @@ html.light #rui {
|
||||||
font-size: 1.5em;
|
font-size: 1.5em;
|
||||||
}
|
}
|
||||||
#doc {
|
#doc {
|
||||||
background: none;
|
|
||||||
overflow: visible;
|
overflow: visible;
|
||||||
margin: -1em 0 .5em 0;
|
margin: -1em 0 .5em 0;
|
||||||
padding: 1em 0 1em 0;
|
padding: 1em 0 1em 0;
|
||||||
|
@ -1130,6 +1148,7 @@ a.btn,
|
||||||
|
|
||||||
|
|
||||||
html,
|
html,
|
||||||
|
#doc,
|
||||||
#rui,
|
#rui,
|
||||||
#files td,
|
#files td,
|
||||||
#files thead th,
|
#files thead th,
|
||||||
|
@ -1211,6 +1230,7 @@ html.light {
|
||||||
html.light #ops,
|
html.light #ops,
|
||||||
html.light .opbox,
|
html.light .opbox,
|
||||||
html.light #path,
|
html.light #path,
|
||||||
|
html.light #doc,
|
||||||
html.light #srch_form,
|
html.light #srch_form,
|
||||||
html.light .ghead,
|
html.light .ghead,
|
||||||
html.light #u2etas {
|
html.light #u2etas {
|
||||||
|
@ -1288,6 +1308,14 @@ html.light #ops a,
|
||||||
html.light #files tbody div a:last-child {
|
html.light #files tbody div a:last-child {
|
||||||
color: #06a;
|
color: #06a;
|
||||||
}
|
}
|
||||||
|
html.light .s0:after,
|
||||||
|
html.light .s0r:after {
|
||||||
|
color: #059;
|
||||||
|
}
|
||||||
|
html.light .s1:after,
|
||||||
|
html.light .s1r:after {
|
||||||
|
color: #f5d;
|
||||||
|
}
|
||||||
html.light #files thead th {
|
html.light #files thead th {
|
||||||
background: #eaeaea;
|
background: #eaeaea;
|
||||||
border-color: #ccc;
|
border-color: #ccc;
|
||||||
|
|
|
@ -3907,7 +3907,7 @@ var treectl = (function () {
|
||||||
id = 'f-' + ('00000000' + crc32(fname)).slice(-8),
|
id = 'f-' + ('00000000' + crc32(fname)).slice(-8),
|
||||||
lang = showfile.getlang(fname);
|
lang = showfile.getlang(fname);
|
||||||
|
|
||||||
while (seen[id])
|
while (seen[id]) // ejyefs ev69gg y9j8sg .opus
|
||||||
id += 'a';
|
id += 'a';
|
||||||
seen[id] = 1;
|
seen[id] = 1;
|
||||||
|
|
||||||
|
@ -4426,27 +4426,6 @@ var mukey = (function () {
|
||||||
})();
|
})();
|
||||||
|
|
||||||
|
|
||||||
function addcrc() {
|
|
||||||
var links = QSA(
|
|
||||||
'#files>tbody>tr>td:first-child+td>' + (
|
|
||||||
ebi('unsearch') ? 'div>a:last-child' : 'a'));
|
|
||||||
|
|
||||||
var seen = {}; // ejyefs ev69gg y9j8sg .opus
|
|
||||||
for (var a = 0, aa = links.length; a < aa; a++) {
|
|
||||||
var id = links[a].getAttribute('id');
|
|
||||||
if (!id) {
|
|
||||||
var crc = crc32(links[a].textContent || links[a].innerText);
|
|
||||||
id = 'f-' + ('00000000' + crc).slice(-8);
|
|
||||||
while (seen[id])
|
|
||||||
id += 'a';
|
|
||||||
|
|
||||||
links[a].setAttribute('id', id);
|
|
||||||
}
|
|
||||||
seen[id] = 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
var light;
|
var light;
|
||||||
(function () {
|
(function () {
|
||||||
function freshen() {
|
function freshen() {
|
||||||
|
@ -5046,7 +5025,8 @@ function reload_browser() {
|
||||||
filecols.set_style();
|
filecols.set_style();
|
||||||
|
|
||||||
var parts = get_evpath().split('/'),
|
var parts = get_evpath().split('/'),
|
||||||
rm = QSA('#path>a+a+a');
|
rm = QSA('#path>a+a+a'),
|
||||||
|
ftab = ebi('files');
|
||||||
|
|
||||||
for (a = rm.length - 1; a >= 0; a--)
|
for (a = rm.length - 1; a >= 0; a--)
|
||||||
rm[a].parentNode.removeChild(rm[a]);
|
rm[a].parentNode.removeChild(rm[a]);
|
||||||
|
@ -5068,9 +5048,9 @@ function reload_browser() {
|
||||||
oo[a].textContent = hsz;
|
oo[a].textContent = hsz;
|
||||||
}
|
}
|
||||||
|
|
||||||
addcrc();
|
|
||||||
reload_mp();
|
reload_mp();
|
||||||
makeSortable(ebi('files'), mp.read_order.bind(mp));
|
try { showsort(ftab); } catch (ex) { }
|
||||||
|
makeSortable(ftab, 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'));
|
||||||
|
|
|
@ -329,14 +329,45 @@ function clgot(el, cls) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function showsort(tab) {
|
||||||
|
var v, vn, v1, v2, th = tab.tHead,
|
||||||
|
sopts = jread('fsort', [["href", 1, ""]]);
|
||||||
|
|
||||||
|
th && (th = th.rows[0]) && (th = th.cells);
|
||||||
|
|
||||||
|
for (var a = sopts.length - 1; a >= 0; a--) {
|
||||||
|
if (!sopts[a][0])
|
||||||
|
continue;
|
||||||
|
|
||||||
|
v2 = v1;
|
||||||
|
v1 = sopts[a];
|
||||||
|
}
|
||||||
|
|
||||||
|
v = [v1, v2];
|
||||||
|
vn = [v1 ? v1[0] : '', v2 ? v2[0] : ''];
|
||||||
|
|
||||||
|
var ga = QSA('#ghead a[s]');
|
||||||
|
for (var a = 0; a < ga.length; a++)
|
||||||
|
ga[a].className = '';
|
||||||
|
|
||||||
|
for (var a = 0; a < th.length; a++) {
|
||||||
|
var n = vn.indexOf(th[a].getAttribute('name')),
|
||||||
|
cl = n < 0 ? ' ' : ' s' + n + (v[n][1] > 0 ? ' ' : 'r ');
|
||||||
|
|
||||||
|
th[a].className = th[a].className.replace(/ *s[01]r? */, ' ') + cl;
|
||||||
|
if (n + 1) {
|
||||||
|
ga = QS('#ghead a[s="' + vn[n] + '"]');
|
||||||
|
if (ga)
|
||||||
|
ga.className = cl;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
function sortTable(table, col, cb) {
|
function sortTable(table, col, cb) {
|
||||||
var tb = table.tBodies[0],
|
var tb = table.tBodies[0],
|
||||||
th = table.tHead.rows[0].cells,
|
th = table.tHead.rows[0].cells,
|
||||||
tr = Array.prototype.slice.call(tb.rows, 0),
|
tr = Array.prototype.slice.call(tb.rows, 0),
|
||||||
i, reverse = th[col].className.indexOf('sort1') !== -1 ? -1 : 1;
|
i, reverse = /s0[^r]/.exec(th[col].className + ' ') ? -1 : 1;
|
||||||
for (var a = 0, thl = th.length; a < thl; a++)
|
|
||||||
th[a].className = th[a].className.replace(/ *sort-?1 */, " ");
|
|
||||||
th[col].className += ' sort' + reverse;
|
|
||||||
var stype = th[col].getAttribute('sort');
|
var stype = th[col].getAttribute('sort');
|
||||||
try {
|
try {
|
||||||
var nrules = [], rules = jread("fsort", []);
|
var nrules = [], rules = jread("fsort", []);
|
||||||
|
@ -354,6 +385,7 @@ function sortTable(table, col, cb) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
jwrite("fsort", nrules);
|
jwrite("fsort", nrules);
|
||||||
|
try { showsort(table); } catch (ex) { }
|
||||||
}
|
}
|
||||||
catch (ex) {
|
catch (ex) {
|
||||||
console.log("failed to persist sort rules, resetting: " + ex);
|
console.log("failed to persist sort rules, resetting: " + ex);
|
||||||
|
|
Loading…
Reference in a new issue