mirror of
https://github.com/9001/copyparty.git
synced 2026-06-18 20:22:27 -06:00
Merge branch 'hovudstraum' of https://github.com/tilse/copyparty-uiV1.5 into hovudstraum
This commit is contained in:
commit
2cf1f0d10f
|
|
@ -16,11 +16,11 @@
|
|||
|
||||
--btn-fg: var(--a);
|
||||
--btn-bg-a: rgba(128,128,128,0.15);
|
||||
--btn-bg-a: color-mix(var(--bg-max) 85%, var(--fg-max) 20%);
|
||||
--btn-bg-a: color-mix(in oklab, var(--bg-max) 85%, var(--fg-max) 20%);
|
||||
--btn-bg: rgba(128,128,128,0.15);
|
||||
--btn-bg: linear-gradient(-5deg, color-mix(var(--btn-bg-a) 40%, transparent), color-mix(var(--btn-bg-a)70%, var(--a-gray)));
|
||||
--btn-bg: linear-gradient(-5deg, color-mix(in oklab, var(--btn-bg-a) 40%, transparent), color-mix(in oklab, var(--btn-bg-a)70%, var(--a-gray)));
|
||||
--btn-h-fg: var(--a-hil);
|
||||
--btn-h-bg: color-mix(var(--a-gray) 45%, var(--bg-max));
|
||||
--btn-h-bg: color-mix(in oklab, var(--a-gray) 45%, var(--bg-max));
|
||||
--btn-1-fg: var(--bg);
|
||||
--btn-1-bg: var(--a);
|
||||
--btn-h-bs: var(--btn-bs);
|
||||
|
|
@ -38,7 +38,7 @@
|
|||
|
||||
--op-aa-fg: var(--a);
|
||||
--op-aa-bg: var(--bg-d2);
|
||||
--op-a-sh: color-mix(var(--bg-max) 50%, transparent 50%);
|
||||
--op-a-sh: color-mix(in oklab, var(--bg-max) 50%, transparent 50%);
|
||||
|
||||
--u2-btn-b1: #999;
|
||||
--u2-sbtn-b1: #999;
|
||||
|
|
@ -99,7 +99,7 @@
|
|||
--g-f-bg: var(--bg-u3);
|
||||
--g-f-b1: var(--bg-u5);
|
||||
--g-f-fg: var(--fg-max);
|
||||
--g-sh: color-mix(var(--bg-max) 30%, transparent 70%);
|
||||
--g-sh: color-mix(in oklab, var(--bg-max) 30%, transparent 70%);
|
||||
|
||||
--f-sh1: 0.33;
|
||||
--f-sh2: 0.02;
|
||||
|
|
@ -113,7 +113,7 @@
|
|||
|
||||
--fm-off: var(--a-hil);
|
||||
--mp-sh: #1116;
|
||||
--mp-b-bg: color-mix(var(--bg-max) 20%, transparent 80%);
|
||||
--mp-b-bg: color-mix(in oklab, var(--bg-max) 20%, transparent 80%);
|
||||
|
||||
--scrl-hint: var(--bg-u2);
|
||||
|
||||
|
|
@ -135,13 +135,13 @@ html.az {
|
|||
--btn-1-bs: .05em .1em .2em var(--a-dark) inset;
|
||||
}
|
||||
html.ay {
|
||||
--btn-bg: linear-gradient(-5deg, color-mix(var(--btn-bg-a)80%, var(--a)), color-mix(var(--btn-bg-a) 50%, transparent));
|
||||
--btn-bg: linear-gradient(-5deg, color-mix(in oklab, var(--btn-bg-a)80%, var(--a)), color-mix(in oklab, var(--btn-bg-a) 50%, transparent));
|
||||
}
|
||||
|
||||
html.b {
|
||||
--btn-bs: 0 .05em 0 var(--bg-d3) inset;
|
||||
--btn-1-bs: 0 .05em 0 var(--btn-1h-bg) inset;
|
||||
--btn-bg: color-mix(var(--bg-u5), transparent);
|
||||
--btn-bg: color-mix(in oklab, var(--bg-u5), transparent);
|
||||
|
||||
--tree-bg: var(--bg);
|
||||
|
||||
|
|
@ -529,7 +529,7 @@ html .ayjump:focus-visible {
|
|||
cursor: pointer;
|
||||
}
|
||||
#qs_btns a {
|
||||
background: color-mix(var(--txt-bg), transparent);
|
||||
background: color-mix(in oklab, var(--txt-bg), transparent);
|
||||
width: 1em;
|
||||
display: inline-block;
|
||||
text-align: center;
|
||||
|
|
@ -544,7 +544,7 @@ html.y #path {
|
|||
}
|
||||
#path a.dtarget {
|
||||
text-shadow: var(--f-sel-sh) 0 0 5px;
|
||||
background: color-mix(var(--a), transparent);
|
||||
background: color-mix(in oklab, var(--a), transparent);
|
||||
}
|
||||
#path #entree {
|
||||
margin-left: -.7em;
|
||||
|
|
@ -597,7 +597,7 @@ a:hover {
|
|||
}
|
||||
#files a:hover {
|
||||
color: var(--fg-max);
|
||||
background: color-mix(var(--a) 20%, transparent);
|
||||
background: color-mix(in oklab, var(--a) 20%, transparent);
|
||||
text-decoration: underline;
|
||||
}
|
||||
#files thead th {
|
||||
|
|
@ -631,7 +631,7 @@ a:hover {
|
|||
}
|
||||
#files tbody tr:hover td,
|
||||
#files tbody tr:hover td+td {
|
||||
background: color-mix(var(--a) 15%, transparent);
|
||||
background: color-mix(in oklab, var(--a) 15%, transparent);
|
||||
}
|
||||
a.dir {
|
||||
color: var(--a);
|
||||
|
|
@ -722,13 +722,13 @@ html.y #files span.fsz_P { font-weight: bold }
|
|||
}
|
||||
#files tr.dtarget {
|
||||
box-shadow: 0 0 5px 0 var(--f-sel-sh) inset;
|
||||
background: color-mix(var(--a), transparent);
|
||||
background: color-mix(in oklab, var(--a), transparent);
|
||||
}
|
||||
#files tr.dtarget td {
|
||||
background: none;
|
||||
}
|
||||
#path a {
|
||||
padding: 0 .35em;
|
||||
padding: .5em .35em;
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
/* ie: */
|
||||
|
|
@ -743,7 +743,7 @@ html.y #files span.fsz_P { font-weight: bold }
|
|||
transform: skew(-25deg);
|
||||
border-right: #222 solid 2px;
|
||||
border-right: var(--bg) solid 2px;
|
||||
background: linear-gradient(70deg, transparent 40%, color-mix(var(--bg-max) 25%, transparent) 75%, color-mix(var(--bg-max) 35%, transparent));
|
||||
background: linear-gradient(70deg, transparent 40%, color-mix(in oklab, var(--bg-max) 25%, transparent) 75%, color-mix(in oklab, var(--bg-max) 35%, transparent));
|
||||
}
|
||||
html.a #path i {
|
||||
border-right: var(--bg) solid 1px;
|
||||
|
|
@ -987,6 +987,9 @@ tr.play td:nth-child(1) a {
|
|||
.imgcontainer:hover .gselchk {
|
||||
display: block;
|
||||
}
|
||||
.srch_hdr .gselchk {
|
||||
display: none !important;
|
||||
}
|
||||
.gselchk {
|
||||
position: absolute;
|
||||
display: none;
|
||||
|
|
@ -1097,7 +1100,7 @@ html:not(.e) #ggrid>a.dir:before {
|
|||
}
|
||||
#ggrid a.dtarget {
|
||||
box-shadow: 0 0 5px 0 var(--f-sel-sh);
|
||||
background: color-mix(var(--a), transparent);
|
||||
background: color-mix(in oklab, var(--a), transparent);
|
||||
}
|
||||
#files tr.sel a,
|
||||
#files tr.sel a.play {
|
||||
|
|
@ -1184,7 +1187,8 @@ html:not(.e) #ggrid>a.dir:before {
|
|||
height: 1.5em;
|
||||
padding: .1em;
|
||||
}
|
||||
.btn.svgIcon.gb1 {
|
||||
.btn.svgIcon.gb_grd,
|
||||
.btn.svgIcon.gb_glr {
|
||||
width: 1.7em;
|
||||
height: 1.7em;
|
||||
padding: 0;
|
||||
|
|
@ -1250,13 +1254,13 @@ html:not(.e) #ggrid>a.dir:before {
|
|||
right: .4em;
|
||||
font-size: xx-large;
|
||||
font-weight: bold;
|
||||
box-shadow: 0 0 .5em color-mix(var(--a) 20%, transparent);
|
||||
box-shadow: 0 0 .5em color-mix(in oklab, var(--a) 20%, transparent);
|
||||
border-radius: 10px;
|
||||
border-radius: calc(var(--radius) * 1.2);
|
||||
text-align: right;
|
||||
}
|
||||
#up_quick.open {
|
||||
box-shadow: 0 0 .5em color-mix(var(--mp-sh) 20%, transparent);
|
||||
box-shadow: 0 0 .5em color-mix(in oklab, var(--mp-sh) 20%, transparent);
|
||||
}
|
||||
#up_quick_more {
|
||||
display: none;
|
||||
|
|
@ -1297,7 +1301,7 @@ html:not(.e):not(.d) #up_quick .btn {
|
|||
}
|
||||
html:not(.e):not(.d) #up_quick .btn.on {
|
||||
transform: rotate(-90deg);
|
||||
box-shadow: -.05em .02em .3em color-mix(var(--a) 20%, transparent);
|
||||
box-shadow: -.05em .02em .3em color-mix(in oklab, var(--a) 20%, transparent);
|
||||
}
|
||||
#up_quick .btn .rotatable {
|
||||
transition: all .20s;
|
||||
|
|
@ -1561,12 +1565,18 @@ html:not(.e):not(.d) #up_quick .btn.on {
|
|||
border: var(--transparent) solid 1px;
|
||||
color: var(--a);
|
||||
font-size: 1.5em;
|
||||
padding: 0 .4em;
|
||||
padding: .15em .4em;
|
||||
margin: 0;
|
||||
}
|
||||
.unfun #ops a {
|
||||
font-size: 1.2em;
|
||||
}
|
||||
#opa_mkd {
|
||||
display: none;
|
||||
}
|
||||
#ops a.vis {
|
||||
display: block;
|
||||
}
|
||||
#ops a.act {
|
||||
color: #fff;
|
||||
color: var(--op-aa-fg);
|
||||
|
|
@ -1576,7 +1586,7 @@ html:not(.e):not(.d) #up_quick .btn.on {
|
|||
border-radius: 0 0 var(--radius) var(--radius);
|
||||
border-bottom: .3em solid var(--a);
|
||||
box-shadow: var(--op-aa-sh);
|
||||
margin: -.2em 0 -.6em 0;
|
||||
margin: -1px 0 -.35em 0;
|
||||
padding-top: .2em;
|
||||
}
|
||||
#ops a svg {
|
||||
|
|
@ -1608,10 +1618,10 @@ html.y #ops svg circle {
|
|||
vertical-align: bottom;
|
||||
}
|
||||
#ops {
|
||||
padding: .25em .5em;
|
||||
padding: 0 .5em;
|
||||
white-space: nowrap;
|
||||
display: flex;
|
||||
height: 2em;
|
||||
height: 2.5em;
|
||||
border-radius: 5px;
|
||||
border-radius: var(--radius);
|
||||
background: var(--bg-u2);
|
||||
|
|
@ -1980,7 +1990,7 @@ html.a .btn {
|
|||
}
|
||||
#tree li a.dtarget {
|
||||
box-shadow: 0 0 5px 0 var(--f-sel-sh) inset;
|
||||
background: color-mix(var(--a) 30%, transparent);
|
||||
background: color-mix(in oklab, var(--a) 30%, transparent);
|
||||
}
|
||||
#tree ul a.sel {
|
||||
background: #000;
|
||||
|
|
@ -2124,6 +2134,7 @@ html.a .btn {
|
|||
margin: .8em 0 0 .6em;
|
||||
padding: 0;
|
||||
}
|
||||
.disabled,
|
||||
#thumbs,
|
||||
#au_prescan,
|
||||
#au_fullpre,
|
||||
|
|
@ -2468,7 +2479,7 @@ html.noscroll .sbar::-webkit-scrollbar {
|
|||
opacity: 1;
|
||||
}
|
||||
#bbox-overlay.sel {
|
||||
background: color-mix(var(--a-dark) 70%, transparent);
|
||||
background: color-mix(in oklab, var(--a-dark) 70%, transparent);
|
||||
}
|
||||
.full-image {
|
||||
display: inline-block;
|
||||
|
|
@ -2860,7 +2871,21 @@ html.c .modalcontent {
|
|||
margin: 0 -.4em;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.modal.vis.unmodal {
|
||||
position: initial;
|
||||
.modalcontent{
|
||||
width: 100%;
|
||||
max-width: none;
|
||||
margin: 0;
|
||||
}
|
||||
.closepane,
|
||||
.close {
|
||||
display: none;
|
||||
}
|
||||
.splitsub {
|
||||
margin-bottom: .5em;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* upload.css */
|
||||
|
|
@ -3024,7 +3049,7 @@ html.c .modalcontent {
|
|||
font-size: 1.1em;
|
||||
}
|
||||
#u2btn:hover {
|
||||
background: linear-gradient(var(--a) 0%, var(--a) 20%, color-mix(transparent 85%, var(--a) 15%));
|
||||
background: linear-gradient(var(--a) 0%, var(--a) 20%, color-mix(in oklab, transparent 85%, var(--a) 15%));
|
||||
border-color: var(--bg);
|
||||
border-style: solid;
|
||||
color: var(--fg-max);
|
||||
|
|
@ -3474,7 +3499,7 @@ html.cz {
|
|||
}
|
||||
}
|
||||
html.c .modal .setting:hover {
|
||||
background: color-mix(var(--bg-u5) 30%, transparent);
|
||||
background: color-mix(in oklab, var(--bg-u5) 30%, transparent);
|
||||
}
|
||||
html.ay #u2btn {
|
||||
box-shadow: .4em .4em 0 #ccc;
|
||||
|
|
@ -3574,7 +3599,7 @@ html.b * {
|
|||
}
|
||||
html.b #path,
|
||||
html.b #ops {
|
||||
background: color-mix(var(--bg-u5), transparent);
|
||||
background: color-mix(in oklab, var(--bg-u5), transparent);
|
||||
}
|
||||
html.b #treepar {
|
||||
margin-left: .63em;
|
||||
|
|
@ -3887,10 +3912,18 @@ html.e #wrap.thin {
|
|||
justify-content: center;
|
||||
gap: 1em;
|
||||
}
|
||||
|
||||
html.b #ggrid {
|
||||
padding: 0 0 2em 0;
|
||||
gap: 1em 1.5em;
|
||||
#ggrid.gallery {
|
||||
gap: 1px 2px;
|
||||
margin: -.2em -.5em;
|
||||
a::before {
|
||||
padding: .1em 0;
|
||||
margin: .3em;
|
||||
}
|
||||
a.img {
|
||||
span {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#ggrid > a {
|
||||
|
|
@ -3901,6 +3934,7 @@ html.e #wrap.thin {
|
|||
#ggrid>a>span {
|
||||
text-align: center;
|
||||
padding: .2em .2em .15em .2em;
|
||||
user-select: text;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -4669,11 +4703,10 @@ html.e #tree_footer {
|
|||
background: transparent;
|
||||
}
|
||||
html.e #wrap {
|
||||
transform: translateX(calc((var(--negative-space) * 2) - .2em));
|
||||
padding-right: var(--negative-space);
|
||||
position: relative;
|
||||
margin-right: calc((var(--negative-space) * 2) - .1em);
|
||||
margin-left: -6px;
|
||||
margin-right: 0;
|
||||
margin-left: -10px;
|
||||
margin-top: 0;
|
||||
/*overflow-x: auto; fix for OOB table when screen space is limited (mobile), but removes sticky header*/
|
||||
}
|
||||
|
|
|
|||
|
|
@ -136,6 +136,32 @@
|
|||
|
||||
<div id="pro" class="logue">{{ "" if sb_lg else logues[0] }}</div>
|
||||
|
||||
<div id="cfg" class="modal">
|
||||
<a id="s_outside" class="closepane" href="#"></a>
|
||||
<div id="s_content" class="modalcontent">
|
||||
<a id="h_cfg" class="modalheader" href="#h_cfg"></a>
|
||||
<div id="s_hor" class="modalsplit">
|
||||
<div id="s_nav" class="splitsub"></div>
|
||||
<div class="divider"></div>
|
||||
<div id="s_list" class="opview splitsub"></div>
|
||||
</div>
|
||||
<a class="close btn" href="#">✕</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="up2k" class="modal">
|
||||
<a id="up_outside" class="closepane" href="#"></a>
|
||||
<div id="up_content" class="modalcontent">
|
||||
<a id="h_up2k" class="modalheader" href="#h_up2k">🚀 Upload</a>
|
||||
<div id="up_hor" class="modalsplit">
|
||||
<div id="op_up2k" class="opview splitsub"></div>
|
||||
<div class="divider"></div>
|
||||
<div id="up_info" class="splitsub"></div>
|
||||
</div>
|
||||
<a class="close btn" href="#">✕</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="wtc" class="ghead"></div>
|
||||
<table id="files">
|
||||
<thead>
|
||||
|
|
@ -179,32 +205,6 @@
|
|||
<div id="rcm" tabindex="0"></div>
|
||||
|
||||
|
||||
<div id="cfg" class="modal">
|
||||
<a id="s_outside" class="closepane" href="#"></a>
|
||||
<div id="s_content" class="modalcontent">
|
||||
<a id="h_cfg" class="modalheader" href="#h_cfg"></a>
|
||||
<div id="s_hor" class="modalsplit">
|
||||
<div id="s_nav" class="splitsub"></div>
|
||||
<div class="divider"></div>
|
||||
<div id="s_list" class="opview splitsub"></div>
|
||||
</div>
|
||||
<a class="close btn" href="#">✕</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="up2k" class="modal">
|
||||
<a id="up_outside" class="closepane" href="#"></a>
|
||||
<div id="up_content" class="modalcontent">
|
||||
<a id="h_up2k" class="modalheader" href="#h_up2k">🚀 Upload</a>
|
||||
<div id="up_hor" class="modalsplit">
|
||||
<div id="op_up2k" class="opview splitsub"></div>
|
||||
<div class="divider"></div>
|
||||
<div id="up_info" class="splitsub"></div>
|
||||
</div>
|
||||
<a class="close btn" href="#">✕</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
var SR = "{{ r }}",
|
||||
CGV1 = {{ cgv1 }},
|
||||
|
|
|
|||
|
|
@ -168,6 +168,7 @@ if (1)
|
|||
"wt_m3ua": "add to m3u playlist (click <code>📻copy</code> later)",
|
||||
"wt_m3uc": "copy m3u playlist to clipboard",
|
||||
"wt_grid": "toggle grid / list view$NHotkey: G",
|
||||
"wt_gallery": "toggle gallery view with larger image previews",
|
||||
"wt_prev": "previous track$NHotkey: J",
|
||||
"wt_play": "play / pause$NHotkey: P",
|
||||
"wt_next": "next track$NHotkey: L",
|
||||
|
|
@ -315,6 +316,7 @@ if (1)
|
|||
"mt_one": "stop after one song\">1️⃣",
|
||||
"mt_shuf": "shuffle the songs in each folder",
|
||||
"mt_aplay": "autoplay if there is a song-ID in the link you clicked to access the server$N$Ndisabling this will also stop the page URL from being updated with song-IDs when playing music, to prevent autoplay if these settings are lost but the URL remains\">a▶",
|
||||
"mt_afade": "fade in / out when pausing / unpausing audio\">fade",
|
||||
"mt_preload": "start loading the next song near the end for gapless playback\">preload",
|
||||
"mt_prescan": "go to the next folder before the last song$Nends, keeping the webbrowser happy$Nso it doesn't stop the playback\">nav",
|
||||
"mt_fullpre": "try to preload the entire song;$N✅ enable on <b>unreliable</b> connections,$N❌ <b>disable</b> on slow connections probably\">full",
|
||||
|
|
@ -823,6 +825,8 @@ ebi('ops').innerHTML = (
|
|||
(have_del ? '<a href="#" id="opa_del" data-perm="write" data-dest="unpost" tt="' + L.ot_unpost + '">' + (fun_tgl ? '🧯' : 'undo') + '</a>' : '') +
|
||||
'<a href="#" id="opa_up" data-dest="up2k">' + (fun_tgl ? '🚀' : 'upload') + '</a>' +
|
||||
'<a href="#" id="opa_bup" data-perm="write" data-dest="bup" tt="' + L.ot_bup + '">' + (fun_tgl ? '🎈' : 'bup') + '</a>' +
|
||||
'<a href="#" id="opa_mkd" data-perm="write" data-dest="mkdir" tt="' + L.ot_mkdir + '"><p class="overlay_plus">+</p>📂</a>' +
|
||||
//'<a href="#" id="opa_md" data-perm="read write" data-dest="new_md" tt="' + L.ot_md + '"><p class="overlay_plus">+</p>📝</a>' +
|
||||
'<a href="#" id="opa_msg" data-dest="msg" tt="' + L.ot_msg + '">' + (fun_tgl ? '📟' : 'msg') + '</a>' +
|
||||
'<a href="#" id="opa_cfg" data-dest="cfg" tt="' + L.ot_cfg + '">' + (fun_tgl ? '⚙️' : 'conf') + '</a>' +
|
||||
'<a href="#" id="opa_acc" data-dest="acc" tt=""><span id="acc_pfp"' + (fun_tgl ? ' class="pfp"' : '') + '>' + (fun_tgl ? '👤' : 'acc') + '</span></a>' +
|
||||
|
|
@ -831,6 +835,12 @@ ebi('ops').innerHTML = (
|
|||
|
||||
// mkdir + md
|
||||
function mktemp(is_dir) {
|
||||
if(!has(perms, 'read')){
|
||||
if(is_dir)
|
||||
goto('mkdir');
|
||||
else
|
||||
goto('new_md');
|
||||
}
|
||||
qsr('#rcm_tmp');
|
||||
if (!thegrid.en) {
|
||||
var row = mknod('tr', 'rcm_tmp',
|
||||
|
|
@ -976,6 +986,8 @@ ebi('wtoggle').addEventListener('wheel', function (e) {
|
|||
});
|
||||
|
||||
ebi('up_quick').onclick = function(){
|
||||
if(!has(perms, 'write'))
|
||||
return;
|
||||
var btn = ebi('up_quick_btn');
|
||||
clmod(btn, 'on', 't');
|
||||
var isOff = clgot(btn, 'on'); // button has inverted display logic
|
||||
|
|
@ -1138,10 +1150,14 @@ var bup = ebi('op_bup');
|
|||
ebi('bup_tgl').appendChild(bup);
|
||||
ebi('h_bup').onclick = function() {
|
||||
var open = !clgot(bup, 'act');
|
||||
if(open)
|
||||
if(open){
|
||||
location.hash = '#h_bup';
|
||||
modaltoggle('bup', true);
|
||||
else
|
||||
}
|
||||
else{
|
||||
location.hash = '#h_up2k';
|
||||
modaltoggle('up2k', true);
|
||||
}
|
||||
ebi('bup_tgl').open = !open;
|
||||
};
|
||||
|
||||
|
|
@ -1167,6 +1183,7 @@ var musicSettings = (
|
|||
'<a href="#" class="tgl btn" id="au_loop" tt="' + L.mt_loop + '">🔂</a>' +
|
||||
'<a href="#" class="tgl btn" id="au_one" tt="' + L.mt_one + '</a>' +
|
||||
'<a href="#" class="tgl btn" id="au_aplay" tt="' + L.mt_aplay + '</a>' +
|
||||
'<a href="#" class="tgl btn" id="au_afade" tt="' + L.mt_afade + '</a>' +
|
||||
'<a href="#" class="tgl btn" id="au_preload" tt="' + L.mt_preload + '</a>' +
|
||||
'<a href="#" class="tgl btn" id="au_prescan" tt="' + L.mt_prescan + '</a>' +
|
||||
'<a href="#" class="tgl btn" id="au_fullpre" tt="' + L.mt_fullpre + '</a>' +
|
||||
|
|
@ -1578,12 +1595,17 @@ function goto(dest) {
|
|||
if (fn)
|
||||
fn();
|
||||
}
|
||||
else{
|
||||
if(location.hash.startsWith('#h_'))
|
||||
location.hash = '#';
|
||||
}
|
||||
|
||||
ebi('srchfolder_div').style.display = dest == 'search' ? 'block' : 'none';
|
||||
|
||||
clmod(document.documentElement, 'op_open', dest);
|
||||
// enables the use of keyboard page nav on modals
|
||||
clmod(document.documentElement, 'noscroll', QS('.modal.vis'));
|
||||
var a_modal = QS('.modal.vis');
|
||||
clmod(document.documentElement, 'noscroll', a_modal && window.getComputedStyle(a_modal).position == 'fixed');
|
||||
|
||||
if (treectl)
|
||||
treectl.onscroll();
|
||||
|
|
@ -1598,6 +1620,8 @@ window.onhashchange = function() {
|
|||
console.log('closing modal due to hash');
|
||||
}
|
||||
if(a_modal && location.hash == '#h_' + a_modal.id){
|
||||
if(a_modal.style.position != 'fixed')
|
||||
return;
|
||||
var m_header = QS('.modal.vis .modalheader');
|
||||
if(m_header){
|
||||
m_header.click();
|
||||
|
|
@ -1611,7 +1635,6 @@ window.onhashchange = function() {
|
|||
var p_modal = header.closest('.modal');
|
||||
if(!p_modal)
|
||||
return;
|
||||
console.log(p_modal)
|
||||
if(!clgot(p_modal, 'vis')){
|
||||
console.log('forcing modal open due to subheader hash');
|
||||
modaltoggle(p_modal.id);
|
||||
|
|
@ -1780,6 +1803,7 @@ var mpl = (function () {
|
|||
mp.read_order(); // don't bind
|
||||
});
|
||||
bcfg_bind(r, 'aplay', 'au_aplay', true);
|
||||
bcfg_bind(r, 'afade', 'au_afade', true);
|
||||
bcfg_bind(r, 'preload', 'au_preload', true);
|
||||
bcfg_bind(r, 'prescan', 'au_prescan', true);
|
||||
bcfg_bind(r, 'fullpre', 'au_fullpre', false);
|
||||
|
|
@ -2218,7 +2242,14 @@ function MPlayer() {
|
|||
r.ftid = r.au.tid;
|
||||
r.au.play();
|
||||
mpl.pp();
|
||||
fader();
|
||||
if(mpl.afade != false)
|
||||
fader();
|
||||
else{
|
||||
// insta start
|
||||
r.fvol = r.vol;
|
||||
mpss.go();
|
||||
r.au.volume = r.expvol(r.fvol);
|
||||
}
|
||||
}
|
||||
};
|
||||
r.fade_out = function () {
|
||||
|
|
@ -2226,7 +2257,13 @@ function MPlayer() {
|
|||
r.fvol = r.vol;
|
||||
r.fdir = -0.05 * r.vol * (CHROME ? 2 : 1);
|
||||
r.ftid = r.au.tid;
|
||||
fader();
|
||||
if(mpl.afade != false)
|
||||
fader();
|
||||
else {
|
||||
// insta stop
|
||||
r.au.pause();
|
||||
mpl.pp();
|
||||
}
|
||||
};
|
||||
r.stopfade = function (hard) {
|
||||
clearTimeout(r.ftimer);
|
||||
|
|
@ -2406,7 +2443,12 @@ var widget = (function () {
|
|||
}
|
||||
};
|
||||
r.setvis = function () {
|
||||
widget.style.display = !has(perms, "read") || showfile.abrt ? 'none' : '';
|
||||
var display = !has(perms, "read") || showfile.abrt ? 'none' : '';
|
||||
ebi('wtico').style.display =
|
||||
ebi('wtoggle').style.display =
|
||||
ebi('widgeti').style.display =
|
||||
ebi('np_inf').style.display =
|
||||
display;
|
||||
};
|
||||
wtico.onclick = function (e) {
|
||||
if (!touchmode)
|
||||
|
|
@ -2777,7 +2819,7 @@ var vbar = (function () {
|
|||
if (gradh != gh) {
|
||||
gradh = gh;
|
||||
style1 = auto_grad(r.can, accent, accent);
|
||||
style2 = light ? 'color-mix(' + bg + ' 85%, #000 15%' : 'color-mix(' + bg + ' 85%, #fff 15%';
|
||||
style2 = light ? 'color-mix(in oklab, ' + bg + ' 85%, #000 15%' : 'color-mix(in oklab, ' + bg + ' 85%, #fff 15%';
|
||||
}
|
||||
if(IE){
|
||||
style1 = 'rgb(85, 144, 255)';
|
||||
|
|
@ -6006,8 +6048,9 @@ var thegrid = (function () {
|
|||
gfiles.style.display = 'none';
|
||||
gfiles.innerHTML = (
|
||||
'<div id="ghead" class="ghead">' +
|
||||
'<a href="#" id="gridicon_template" class="grdbtn gb1 svgIcon tgl btn on"></a>' +
|
||||
'<a href="#" id="listicon_template" class="grdbtn gb2 svgIcon tgl btn"></a>' +
|
||||
'<a href="#" id="listicon_template" class="grdbtn gb_lst svgIcon tgl btn" tt="' + L.wt_grid + '"></a>' +
|
||||
'<a href="#" id="gridicon_template" class="grdbtn gb_grd svgIcon tgl btn on" tt="' + L.wt_grid + '"></a>' +
|
||||
'<a href="#" id="galleryicon_template" class="grdbtn gb_glr svgIcon tgl btn" tt="' + L.wt_gallery + '"></a>' +
|
||||
'<a href="#" class="tgl btn" id="gridsel" tt="' + L.gt_msel + '</a> ' +
|
||||
'<a href="#" class="tgl btn" id="gridvau" tt="' + L.gt_vau + '</a> ' +
|
||||
'<a href="#" class="tgl btn" id="gridcrop" tt="' + L.gt_crop + '</a> ' +
|
||||
|
|
@ -6030,15 +6073,17 @@ var thegrid = (function () {
|
|||
lfiles.parentNode.insertBefore(gfiles, lfiles);
|
||||
var ggrid = ebi('ggrid');
|
||||
|
||||
var svg_grid = svg_box + '<rect x="4" y="4" width="7" height="7" rx="1" fill="currentColor"/><rect x="4" y="13" width="7" height="7" rx="1" fill="currentColor"/><rect x="13" y="4" width="7" height="7" rx="1" fill="currentColor"/><rect x="13" y="13" width="7" height="7" rx="1" fill="currentColor"/></svg>'
|
||||
var svg_list = svg_box + '<path fill-rule="evenodd" clip-rule="evenodd" d="M9 6C9 4.34315 7.65685 3 6 3H4C2.34315 3 1 4.34315 1 6V8C1 9.65685 2.34315 11 4 11H6C7.65685 11 9 9.65685 9 8V6ZM7 6C7 5.44772 6.55228 5 6 5H4C3.44772 5 3 5.44772 3 6V8C3 8.55228 3.44772 9 4 9H6C6.55228 9 7 8.55228 7 8V6Z" fill="currentColor"/><path fill-rule="evenodd" clip-rule="evenodd" d="M9 16C9 14.3431 7.65685 13 6 13H4C2.34315 13 1 14.3431 1 16V18C1 19.6569 2.34315 21 4 21H6C7.65685 21 9 19.6569 9 18V16ZM7 16C7 15.4477 6.55228 15 6 15H4C3.44772 15 3 15.4477 3 16V18C3 18.5523 3.44772 19 4 19H6C6.55228 19 7 18.5523 7 18V16Z" fill="currentColor"/><path d="M11 7C11 6.44772 11.4477 6 12 6H22C22.5523 6 23 6.44772 23 7C23 7.55228 22.5523 8 22 8H12C11.4477 8 11 7.55228 11 7Z" fill="currentColor"/><path d="M11 17C11 16.4477 11.4477 16 12 16H22C22.5523 16 23 16.4477 23 17C23 17.5523 22.5523 18 22 18H12C11.4477 18 11 17.5523 11 17Z" fill="currentColor"/></svg>'
|
||||
ebi('gridicon_template').innerHTML = svg_grid;
|
||||
var svg_grid = svg_box + '<rect x="4" y="4" width="7" height="7" rx="1" fill="currentColor"/><rect x="4" y="13" width="7" height="7" rx="1" fill="currentColor"/><rect x="13" y="4" width="7" height="7" rx="1" fill="currentColor"/><rect x="13" y="13" width="7" height="7" rx="1" fill="currentColor"/></svg>'
|
||||
var svg_gallery = svg_box + '<path d="M4 17L7.58959 13.7694C8.38025 13.0578 9.58958 13.0896 10.3417 13.8417L11.5 15L15.0858 11.4142C15.8668 10.6332 17.1332 10.6332 17.9142 11.4142L20 13.5M11 9C11 9.55228 10.5523 10 10 10C9.44772 10 9 9.55228 9 9C9 8.44772 9.44772 8 10 8C10.5523 8 11 8.44772 11 9ZM6 20H18C19.1046 20 20 19.1046 20 18V6C20 4.89543 19.1046 4 18 4H6C4.89543 4 4 4.89543 4 6V18C4 19.1046 4.89543 20 6 20Z"' + svg_options + '/></svg>'
|
||||
ebi('listicon_template').innerHTML = svg_list;
|
||||
ebi('gridicon_template').innerHTML = svg_grid;
|
||||
ebi('galleryicon_template').innerHTML = svg_gallery;
|
||||
|
||||
var ico1 = ebi('gridicon_template').cloneNode(true);
|
||||
var ico2 = ebi('listicon_template').cloneNode(true);
|
||||
clmod(ico1, 'on', 't');
|
||||
clmod(ico2, 'on', 't');
|
||||
var ico1 = ebi('listicon_template').cloneNode(true);
|
||||
var ico2 = ebi('gridicon_template').cloneNode(true);
|
||||
clmod(ico1, 'on', true);
|
||||
clmod(ico2, 'on', false);
|
||||
|
||||
// file list header
|
||||
ebi('wtc').innerHTML = (
|
||||
|
|
@ -6115,6 +6160,7 @@ var thegrid = (function () {
|
|||
ebi('wtc').style.display = lfiles.style.display;
|
||||
clmod(ggrid, 'crop', r.crop);
|
||||
clmod(ggrid, 'nocrop', !r.crop);
|
||||
clmod(ggrid, 'gallery', r.gallery);
|
||||
ebi('pro').style.display = ebi('epi').style.display = ebi('lazy').style.display = ebi('treeul').style.display = ebi('treepar').style.display = '';
|
||||
ebi('bdoc').style.display = 'none';
|
||||
clmod(ebi('wrap'), 'doc');
|
||||
|
|
@ -6178,12 +6224,6 @@ var thegrid = (function () {
|
|||
return gclick.call(this, e, false);
|
||||
}
|
||||
|
||||
function gselclick(e) {
|
||||
var oth = ebi(this.closest('a').getAttribute('ref')),
|
||||
td = oth.closest('td').nextSibling;
|
||||
td.onclick.call(td, e);
|
||||
}
|
||||
|
||||
function gclick2(e) {
|
||||
if (ctrl(e) || !r.sel)
|
||||
return true;
|
||||
|
|
@ -6430,7 +6470,14 @@ var thegrid = (function () {
|
|||
|
||||
var chks = QSA('.gselchk');
|
||||
for (var a = 0, aa = chks.length; a < aa; a++) {
|
||||
chks[a].onclick = gselclick;
|
||||
chks[a].onclick = function (e) {
|
||||
var oth = ebi(this.closest('a').getAttribute('ref')),
|
||||
td = oth.closest('td').nextSibling;
|
||||
if(td && td.onclick)
|
||||
td.onclick.call(td, e);
|
||||
else
|
||||
rcm.show(e);
|
||||
}
|
||||
}
|
||||
|
||||
r.dirty = false;
|
||||
|
|
@ -6564,9 +6611,23 @@ var thegrid = (function () {
|
|||
swrite('ga_thresh', r.gathr = (isNum(n) ? n : 0) || 70);
|
||||
};
|
||||
|
||||
var gtgls = QSA('.grdbtn');
|
||||
for(var a = 0; a < gtgls.length; a++)
|
||||
gtgls[a].onclick = ebi('griden').onclick;
|
||||
var gbtn = QSA('.gb_grd');
|
||||
for(var a = 0; a < gbtn.length; a++)
|
||||
gbtn[a].onclick = function(){
|
||||
if(!thegrid.en)
|
||||
ebi('griden').click();
|
||||
}
|
||||
|
||||
var lsbtn = QSA('.gb_lst');
|
||||
for(var a = 0; a < lsbtn.length; a++)
|
||||
lsbtn[a].onclick = function(){
|
||||
if(thegrid.en)
|
||||
ebi('griden').click();
|
||||
}
|
||||
|
||||
bcfg_bind(r, 'gallery', 'galleryicon_template', false, function (v) {
|
||||
clmod(ebi('ggrid'), 'gallery', v);
|
||||
});
|
||||
|
||||
return r;
|
||||
})();
|
||||
|
|
@ -7216,12 +7277,17 @@ var search_ui = (function () {
|
|||
if (!ebi(chk).checked)
|
||||
continue;
|
||||
|
||||
if(q.length > 0)
|
||||
q += ' and ';
|
||||
|
||||
q += ' ( ';
|
||||
for (var c = 0; c < tvs.length; c++) {
|
||||
var tv = tvs[c];
|
||||
if (!tv.length)
|
||||
break;
|
||||
|
||||
q += ' and ';
|
||||
if(c > 0)
|
||||
q += ' or ';
|
||||
|
||||
if (k == 'adv') {
|
||||
q += tv.replace(/ +/g, " and ").replace(/([=!><]=?)/, " $1 ");
|
||||
|
|
@ -7258,12 +7324,23 @@ var search_ui = (function () {
|
|||
tv = '"' + tv + '"';
|
||||
}
|
||||
|
||||
var quote = tv.match('"') ? '"' : '';
|
||||
var match;
|
||||
while ( (match = tv.match(/[^\*\"\s]\*[^\*\"\s]/)) && match[0]){
|
||||
console.log(match)
|
||||
tv = tv.replace(
|
||||
match[0],
|
||||
match[0].replace('*', '*' + quote + ' and ' + k + ' like ' + quote + '*')
|
||||
)
|
||||
}
|
||||
|
||||
q += not + k + ' like ' + tv;
|
||||
}
|
||||
}
|
||||
q += ' ) ';
|
||||
}
|
||||
}
|
||||
ebi('q_raw').value = q.slice(5);
|
||||
ebi('q_raw').value = q.trim();
|
||||
}
|
||||
|
||||
function do_search() {
|
||||
|
|
@ -7329,7 +7406,7 @@ var search_ui = (function () {
|
|||
ext = '%';
|
||||
|
||||
var links = linksplit(r.rp + '', null, id).join('<span>/</span>'),
|
||||
nodes = ['<tr><td>-</td><td><div>' + links +
|
||||
nodes = ['<tr class="' + (img_re.exec(r.rp) ? 'img ' : '') + '"><td>-</td><td><div>' + links +
|
||||
'</div></td><td sortv="' + sz + '">' + hsz];
|
||||
|
||||
for (var b = 0; b < tagord.length; b++) {
|
||||
|
|
@ -8340,7 +8417,7 @@ var treectl = (function () {
|
|||
'" rel="nofollow" class="doc' + (lang ? ' bri' : '') +
|
||||
'" hl="' + id + '" name="' + hname + '">-txt-</a>';
|
||||
|
||||
var cl = (/\.PARTIAL$/.exec(fname) ? 'fade' : '') + tn.cls,
|
||||
var cl = (/\.PARTIAL$/.exec(fname) ? 'fade ' : '') + (img_re.exec(fname) ? 'img ' : '') + tn.cls,
|
||||
ln = ['<tr class="' + cl + '"><td>' + tn.lead + '</td><td><a href="' +
|
||||
top + tn.href + '" id="' + id + '">' + hname +
|
||||
'</a></td><td sortv="' + tn.sz + '">' + filesizefun(tn.sz)];
|
||||
|
|
@ -8745,14 +8822,20 @@ function apply_perms(res) {
|
|||
var o = QSA('#ops>a[data-perm]');
|
||||
for (var a = 0; a < o.length; a++) {
|
||||
var display = '';
|
||||
var enabled = true;
|
||||
var needed = o[a].getAttribute('data-perm').split(' ');
|
||||
for (var b = 0; b < needed.length; b++) {
|
||||
if (!has(perms, needed[b])) {
|
||||
display = 'none';
|
||||
enabled = false;
|
||||
if(needed[b] != 'write')
|
||||
display = 'none';
|
||||
}
|
||||
}
|
||||
clmod(o[a], 'disabled', !enabled);
|
||||
o[a].style.display = display;
|
||||
}
|
||||
clmod(ebi('up_quick'), 'disabled', !has(perms, 'write'));
|
||||
ebi('bup_tgl').style.display = has(perms, 'write') ? '' : 'none';
|
||||
|
||||
var o = QSA('#ops>a[data-dep], #u2conf td[data-dep]');
|
||||
for (var a = 0; a < o.length; a++)
|
||||
|
|
@ -8803,8 +8886,12 @@ function apply_perms(res) {
|
|||
|
||||
widget.setvis();
|
||||
thegrid.setvis();
|
||||
if (!have_read && have_write)
|
||||
|
||||
var up_only = !have_read && have_write;
|
||||
if (up_only)
|
||||
goto('up2k');
|
||||
clmod(ebi('up2k'), 'unmodal', up_only);
|
||||
clmod(ebi('opa_mkd'), 'vis', up_only);
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -10570,7 +10657,7 @@ var rcm = (function () {
|
|||
menu.style.display = '';
|
||||
}
|
||||
|
||||
ebi('wrap').oncontextmenu = function (e) {
|
||||
r.show = function (e) {
|
||||
if (!r.enabled || e.shiftKey || (r.double && menu.style.display) || /doc=/.exec(location.search)) {
|
||||
r.hide(true);
|
||||
return true;
|
||||
|
|
@ -10584,6 +10671,10 @@ var rcm = (function () {
|
|||
var gfile = thegrid.en && e.target && e.target.closest('#ggrid > a');
|
||||
show(e.clientX, e.clientY, gfile || e.target, gfile);
|
||||
return false;
|
||||
}
|
||||
|
||||
ebi('wrap').oncontextmenu = function (e) {
|
||||
r.show(e);
|
||||
};
|
||||
menu.onblur = function () { setTimeout(r.hide) };
|
||||
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ html {
|
|||
border-bottom: 2px solid rgb(7, 130, 212);
|
||||
position: fixed;
|
||||
z-index: 10;
|
||||
box-shadow: 0 0 1em color-mix(var(--bg-max) 60%, transparent 40%);
|
||||
box-shadow: 0 0 1em color-mix(in oklab, var(--bg-max) 60%, transparent 40%);
|
||||
}
|
||||
#homebtn:hover, #homebtn:focus-visible {
|
||||
background: var(--bg-u5);
|
||||
|
|
@ -51,13 +51,13 @@ html {
|
|||
padding: 1.5em;
|
||||
padding-bottom: 0em;
|
||||
line-height: 1.3em;
|
||||
background: color-mix(var(--a-gray) 27%, var(--bg-max));
|
||||
background: color-mix(in oklab, var(--a-gray) 27%, var(--bg-max));
|
||||
border-radius: .5em;
|
||||
border: var(--bg-u5) solid 1px;
|
||||
box-shadow: 0 0 2em color-mix(var(--bg-max) 60%, transparent 40%);
|
||||
box-shadow: 0 0 2em color-mix(in oklab, var(--bg-max) 60%, transparent 40%);
|
||||
}
|
||||
html.y #wrap {
|
||||
background: color-mix(var(--a-gray) 18%, var(--bg-max));
|
||||
background: color-mix(in oklab, var(--a-gray) 18%, var(--bg-max));
|
||||
}
|
||||
#wrap.w {
|
||||
max-width: 96%;
|
||||
|
|
|
|||
|
|
@ -11,27 +11,27 @@
|
|||
accent-color: var(--a);
|
||||
--radius: .3em;
|
||||
|
||||
/* accent color in everything */
|
||||
--fg-max: color-mix(#fefefe 95%, var(--a) 5%);
|
||||
--bg-max: color-mix(#010101 95%, var(--a) 5%);
|
||||
--fg-max: #fefefe;
|
||||
--bg-max: #010101;
|
||||
|
||||
--a-hil: hsl(from color-mix(var(--a) 80%, var(--fg-max) 20%) h calc(s * 1.2) l);
|
||||
--a-dark: hsl(from color-mix(var(--a) 60%, var(--bg-max) 40%) h calc(s * 1.3) l); /* warning text etc */
|
||||
--a-gray: hsl(from var(--a) h calc(s * 0.1) l);
|
||||
--a-hil: rgb(255, 215, 121);
|
||||
--a-dark: rgb(235, 165, 37); /* warning text etc */
|
||||
--a-gray: #ccc;
|
||||
|
||||
--fg: color-mix(var(--fg-max) 90%, var(--bg-max) 10%);
|
||||
--fg-weak: color-mix(var(--fg-max) 70%, var(--bg-max) 30%);
|
||||
--fg: #efefef;
|
||||
--fg-weak: #c4c4c4;
|
||||
|
||||
--bg: #1f1f1f;
|
||||
--bg-half: #01010182;
|
||||
--bg-u1: #212121;
|
||||
--bg-u2: #353535;
|
||||
--bg-u3: #404040;
|
||||
--bg-u5: #4e4e4e;
|
||||
--bg-d1: #111111;
|
||||
--bg-d2: #0e0e0e;
|
||||
--bg-d3: #0b0b0b;
|
||||
|
||||
--bg: color-mix(var(--bg-max) 85%, var(--fg-max) 15%);
|
||||
--bg-half: color-mix(var(--bg) 50%, transparent 50%);
|
||||
--bg-u1: color-mix(var(--bg-max) 80%, var(--fg-max) 20%);
|
||||
--bg-u2: color-mix(var(--bg-max) 75%, var(--fg-max) 25%);
|
||||
--bg-u3: color-mix(var(--bg-max) 70%, var(--fg-max) 30%);
|
||||
--bg-u5: color-mix(var(--bg-max) 65%, var(--fg-max) 35%);
|
||||
--bgg: var(--bg);
|
||||
--bg-d1: color-mix(var(--bg-max) 90%, var(--fg-max) 10%);
|
||||
--bg-d2: color-mix(var(--bg-max) 92%, var(--fg-max) 8%);
|
||||
--bg-d3: color-mix(var(--bg-max) 95%, var(--fg-max) 5%);
|
||||
}
|
||||
html.y {
|
||||
color-scheme: light;
|
||||
|
|
@ -42,13 +42,22 @@ html.y {
|
|||
|
||||
--a: #07c;
|
||||
|
||||
--bg-max: color-mix(#fefefe 95%, var(--a) 5%);
|
||||
--fg-max: color-mix(#010101 95%, var(--a) 5%);
|
||||
|
||||
--bg-u1: color-mix(var(--bg-max) 92%, var(--fg-max));
|
||||
--bg-u2: color-mix(var(--bg-max) 95%, var(--fg-max));
|
||||
--bg-u5: color-mix(var(--bg-max) 82%, var(--fg-max));
|
||||
--bg: color-mix(var(--bg-max) 98%, var(--fg-max));
|
||||
--a-hil: rgb(121, 193, 255);
|
||||
--a-dark: rgb(7, 95, 183); /* warning text etc */
|
||||
--a-gray: #ccc;
|
||||
|
||||
--fg: #101010;
|
||||
--fg-weak: #323232;
|
||||
|
||||
--bg: #eeeeee;
|
||||
--bg-half: #eeeeee82;
|
||||
--bg-u1: #e3e3e3;
|
||||
--bg-u2: #d6d6d6;
|
||||
--bg-u3: #c7c7c7;
|
||||
--bg-u5: #bcbcbc;
|
||||
--bg-d1: #f4f4f4;
|
||||
--bg-d2: #f5f5f5;
|
||||
--bg-d3: #f6f6f6;
|
||||
|
||||
--chk-fg: var(--fg);
|
||||
--txt-sh: #aaa;
|
||||
|
|
@ -57,6 +66,46 @@ html.y {
|
|||
|
||||
text-shadow: none;
|
||||
}
|
||||
@supports (background: hsl(from #ccc, h s l)){
|
||||
:root {
|
||||
--a-hil: hsl(from var(--a) h calc(s * 1.2) l);
|
||||
--a-dark: hsl(from var(--a) h calc(s * 1.3) l); /* warning text etc */
|
||||
--a-gray: hsl(from var(--a) h calc(s * 0.1) l);
|
||||
}
|
||||
}
|
||||
@supports (background: color-mix(in oklab, black, white)){
|
||||
:root, html.y {
|
||||
/* accent color in everything */
|
||||
--fg-max: color-mix(in oklab, #fefefe 95%, var(--a) 5%);
|
||||
--bg-max: color-mix(in oklab, #010101 95%, var(--a) 5%);
|
||||
|
||||
--a-hil: hsl(from color-mix(in oklab, var(--a) 80%, var(--fg-max) 20%) h calc(s * 1.2) l);
|
||||
--a-dark: hsl(from color-mix(in oklab, var(--a) 60%, var(--bg-max) 40%) h calc(s * 1.3) l); /* warning text etc */
|
||||
--a-gray: hsl(from var(--a) h calc(s * 0.1) l);
|
||||
|
||||
--fg: color-mix(in oklab, var(--fg-max) 90%, var(--bg-max) 10%);
|
||||
--fg-weak: color-mix(in oklab, var(--fg-max) 70%, var(--bg-max) 30%);
|
||||
|
||||
--bg: color-mix(in oklab, var(--bg-max) 85%, var(--fg-max) 15%);
|
||||
--bg-half: color-mix(in oklab, var(--bg) 50%, transparent 50%);
|
||||
--bg-u1: color-mix(in oklab, var(--bg-max) 80%, var(--fg-max) 20%);
|
||||
--bg-u2: color-mix(in oklab, var(--bg-max) 75%, var(--fg-max) 25%);
|
||||
--bg-u3: color-mix(in oklab, var(--bg-max) 70%, var(--fg-max) 30%);
|
||||
--bg-u5: color-mix(in oklab, var(--bg-max) 65%, var(--fg-max) 35%);
|
||||
--bg-d1: color-mix(in oklab, var(--bg-max) 90%, var(--fg-max) 10%);
|
||||
--bg-d2: color-mix(in oklab, var(--bg-max) 92%, var(--fg-max) 8%);
|
||||
--bg-d3: color-mix(in oklab, var(--bg-max) 95%, var(--fg-max) 5%);
|
||||
}
|
||||
html.y {
|
||||
--bg-max: color-mix(in oklab, #fefefe 95%, var(--a) 5%);
|
||||
--fg-max: color-mix(in oklab, #010101 95%, var(--a) 5%);
|
||||
|
||||
--bg-u1: color-mix(in oklab, var(--bg-max) 92%, var(--fg-max));
|
||||
--bg-u2: color-mix(in oklab, var(--bg-max) 95%, var(--fg-max));
|
||||
--bg-u5: color-mix(in oklab, var(--bg-max) 82%, var(--fg-max));
|
||||
--bg: color-mix(in oklab, var(--bg-max) 98%, var(--fg-max));
|
||||
}
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'scp';
|
||||
font-display: swap;
|
||||
|
|
|
|||
|
|
@ -839,6 +839,7 @@ function up2k_init(subtle) {
|
|||
|
||||
var loading_deps = false;
|
||||
function init_deps() {
|
||||
console.log('up2k init deps');
|
||||
if (!loading_deps && !got_deps()) {
|
||||
var fn = 'sha512.' + sha_js + '.js',
|
||||
m = L.u_https1 + ' <a href="' + (location + '').replace(':', 's:') + '">' + L.u_https2 + '</a> ' + L.u_https3;
|
||||
|
|
@ -1201,9 +1202,8 @@ function up2k_init(subtle) {
|
|||
// if ((dz == 'up_dz' && uc.fsearch) || (dz == 'srch_dz' && !uc.fsearch))
|
||||
// tgl_fsearch();
|
||||
|
||||
//if (!QS('#op_up2k.act'))
|
||||
if(!uc.fsearch)
|
||||
goto('up2k');
|
||||
up2k.init_deps();
|
||||
|
||||
var files,
|
||||
is_itemlist = false;
|
||||
|
|
|
|||
|
|
@ -2,11 +2,12 @@
|
|||
# 2026-0428-0907 `v1.21.0` UI V2
|
||||
|
||||
## 🧪 new features
|
||||
* drag n drop support within the browser window to move files or folders
|
||||
* [Add moving files into other folders by dragging](https://github.com/tilse/copyparty-uiV1.5/pull/1) within the browser window to move files or folders
|
||||
* custom accent color setting added. works best for light and dark themes (the first 4 in the list)
|
||||
* right click (long press) on mobile is now possible
|
||||
* selection checkboxes on items in grid view
|
||||
* the tree and path can be visible at the same time
|
||||
* #386 gallery view toggle for smaller margins / bigger image previews
|
||||
* settings and upload are now a popup/modal
|
||||
* settings can be navigated via sections and former tooltip info is now always visible
|
||||
* new floating [+] button in bottom right for quickly creating files / folders / uploading
|
||||
|
|
@ -24,6 +25,9 @@
|
|||
|
||||
* #1455 tooltips disappear more consistently when element is no longer hovered
|
||||
* scrollable tree header so all options are accessible independent of tree width
|
||||
* #1378 improved mobile layout
|
||||
* media player has "fade" option now to disable fade in / fade out, which fixes play / pause on iOS lockscreens
|
||||
* #1002 proper overflow handling for text files or readmes (svg editor still overflows, but it doesn't break the page layout anymore)
|
||||
|
||||
## 🔧 other changes
|
||||
|
||||
|
|
@ -47,7 +51,7 @@
|
|||
|
||||
## 😔 unfun facts
|
||||
|
||||
* added a setting that gets rid of (most) emojis
|
||||
* #1209 (partially), #711 added a setting that gets rid of (most) emojis
|
||||
|
||||
|
||||
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ ac96786e5d35882e0c5b724794329c9125c2b86ae7847f17acfc49f0d294312c6afc1c3f248655de
|
|||
# win10
|
||||
f4b4e330995ebe96c0bd06e16e5b26062ece9473f06d369775aa68eab261dedcf32dfdd159acaa227502bbf9fa2cd8bbe57cddb89fc6f2196fef7a9ed5a80ae9 Git-2.51.0-64-bit.exe
|
||||
0a2cd4cadf0395f0374974cd2bc2407e5cc65c111275acdffb6ecc5a2026eee9e1bb3da528b35c7f0ff4b64563a74857d5c2149051e281cc09ebd0d1968be9aa en-us_windows_10_enterprise_ltsc_2021_x64_dvd_d289cf96.iso
|
||||
16cc0c58b5df6c7040893089f3eb29c074aed61d76dae6cd628d8a89a05f6223ac5d7f3f709a12417c147594a87a94cc808d1e04a6f1e407cc41f7c9f47790d1 virtio-win-0.1.285.iso
|
||||
4f13070cc9241fa342deab4ebfac360565030580ff77b6e5f1951a64627621e5da4abfd30e1e46ca8bae2bb7dd4ff98141aff424142c9629a5876a61283962e5 virtio-win-0.1.285.iso
|
||||
9a7f40edc6f9209a2acd23793f3cbd6213c94f36064048cb8bf6eb04f1bdb2c2fe991cb09f77fe8b13e5cd85c618ef23573e79813b2fef899ab2f290cd129779 jinja2-3.1.6-py3-none-any.whl
|
||||
00731cfdd9d5c12efef04a7161c90c1e5ed1dc4677aa88a1d4054aff836f3430df4da5262ed4289c21637358a9e10e5df16f76743cbf5a29bb3a44b146c19cf3 MarkupSafe-3.0.2-cp313-cp313-win_amd64.whl
|
||||
8a6e2b13a2ec4ef914a5d62aad3db6464d45e525a82e07f6051ed10474eae959069e165dba011aefb8207cdfd55391d73d6f06362c7eb247b08763106709526e mutagen-1.47.0-py3-none-any.whl
|
||||
|
|
|
|||
Loading…
Reference in a new issue