copyparty/copyparty/web/browser.html
2026-06-18 09:51:25 +02:00

325 lines
11 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="en" id="ht_brw">
<head>
<meta charset="utf-8">
<title>{{ title }}</title>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=0.8, minimum-scale=0.6">
<meta name="theme-color" content="#{{ tcolor }}">
<link rel="manifest" href="{{ r }}/.cpr/w/manifest.json?_={{ ts }}" />
<link rel="stylesheet" media="screen" href="{{ r }}/.cpr/w/ui.css?_={{ ts }}">
<link rel="stylesheet" media="screen" href="{{ r }}/.cpr/w/browser.css?_={{ ts }}">
{{ html_head }}
{%- if css %}
<link rel="stylesheet" media="screen" href="{{ css }}_={{ ts }}">
{%- endif %}
</head>
<body>
<a href="#" id="treeToggleBtn" class="tgl btn normalrcm"></a>
<div id="tree" class="sbar">
<div id="treesuperh">
<a href="{{ srv_url }}" id="srv_name"><span id="favico_onpage"></span>{{ srv_name }}</a>
<div id="treeh"></div>
</div>
<ul class="ntree" id="treepar"></ul>
<ul id="docul"></ul>
<ul class="ntree" id="treeul"></ul>
<div id="thx_ff">&nbsp;</div>
<div id="tree_footer">
<div id="rtt_latency"></div>
<div id="spaceFree">{{ space_free }} free of {{ space_total }}</div>
<div id="spaceTotal_bar">
<div id="spaceUsed_bar" style="width: {{ space_used_percent }}%;"></div>
<div id="spaceMax"></div>
</div>
</div>
</div>
<div id="reszbar"></div>
<div id="wrap">
<div id="pathBar" class="normalrcm">
<h2 id="wfp" class="shifted">
<a href="#" id="gop" class="btn"></a>
<a href="#" id="gon" class="btn"></a>
<a href="#" id="gou" class="btn"></a>
</h2>
<h1 id="path">
{%- for n in vpnodes %}
<a href="{{ r }}/{{ n[0] }}">{{ n[1] }}</a>
{%- endfor %}
</h1>
<div id="actionsArea">
<div id="ops">
<a href="#" class="disabled" id="opa_srch" data-perm="read" data-dep="idx" data-dest="search">🔎</a>
<a href="#" class="disabled" id="opa_del" data-perm="write" data-dest="unpost">🧯</a>
<a href="#" class="disabled" id="opa_up" data-dest="up2k">🚀</a>
<a href="#" class="disabled" id="opa_bup" data-perm="write" data-dest="bup">🎈</a>
<a href="#" class="disabled" id="opa_mkd" data-perm="write" data-dest="mkdir"><p class="overlay_plus">+</p>📂</a>
<a href="#" class="disabled" id="opa_msg" data-dest="msg">📟</a>
<a href="#" class="disabled" id="opa_cfg" data-dest="cfg">⚙️</a>
<a href="#" id="opa_acc" data-dest="acc">
<label for="acc_cbopen" id="acc_pfp" class="pfp">👤</label>
</a>
</div>
<input type="checkbox" id="acc_cbopen" style="display: none;" />
<span id="op_acc" class="opview popup under">
<a id="acc_button" class="tgl btn on" href="{{ r }}/?h">
<p id="acc_name">Login</p>
</a>
<div id="accessType" style="display: block;">{{ srv_info }}</div>
<a href="{{ r }}/?h" id="goh" style="display: block;">control-panel</a>
<form id="flogout" style="display: block;" method="post" enctype="multipart/form-data">
<input type="hidden" name="act" value="logout" />
<input id="blogout" type="submit" />
</form>
</span>
<div id="opdesc"></div>
<div id="srchfolder_div">
<input id="folder_search" type="text" />
<span id="srch_quickopts" class="popup under">
<input type="checkbox" id="srch_recursivec" checked="true">
<label for="srch_recursivec" id="srch_recursivelbl" tabindex="0"></label>
</span>
<div id="qs_btns">
<a id="moresearch"><span></span></a>
<a id="closesearch"><span class="x">×</span></a>
</div>
</div>
</div>
</div>
<div id="op_search" class="opview">
{%- if have_tags_idx %}
<div id="srch_form" class="tags opbox"></div>
{%- else %}
<div id="srch_form" class="opbox"></div>
{%- endif %}
<div id="srch_q"></div>
</div>
<div id="op_player" class="opview opbox opwide"></div>
<div id="op_bup" class="opview opbox {% if not ls0 %}act{% endif %}">
<form method="post" enctype="multipart/form-data" accept-charset="utf-8" action="{{ url_suf }}">
<input type="hidden" name="act" value="bput" />
<input id="bup_btn" type="file" name="f" multiple /><br />
<input type="submit" value="start upload">
</form>
<a id="bbsw" href="?b=u" rel="nofollow"><br />switch to basic browser</a>
</div>
<div id="op_mkdir" class="opview opbox {% if not ls0 %}act{% endif %}">
<form method="post" enctype="multipart/form-data" accept-charset="utf-8" action="{{ url_suf }}">
<input type="hidden" name="act" value="mkdir" />
📂<input type="text" name="name" class="i" placeholder="awesome mix vol.1">
<input type="submit" value="make directory">
</form>
</div>
<div id="op_new_md" class="opview opbox">
<form method="post" enctype="multipart/form-data" accept-charset="utf-8" action="{{ url_suf }}">
<input type="hidden" name="act" value="new_md" />
📝<input type="text" name="name" class="i" placeholder="weekend-plans">
<input type="submit" value="new file">
</form>
<span id="new_mdi"></span>
</div>
<div id="op_msg" class="opview opbox {% if not ls0 %}act{% endif %}">
<form method="post" enctype="application/x-www-form-urlencoded" accept-charset="utf-8" action="{{ url_suf }}">
📟<input type="text" name="msg" class="i" placeholder="lorem ipsum dolor sit amet">
<input type="submit" value="send msg to srv log">
</form>
</div>
<div id="op_unpost" class="opview opbox"></div>
<div id="op_cfg" class="opview opbox opwide"></div>
{%- if doc %}
<div id="bdoc"><pre>{{ doc|e }}</pre></div>
{%- else %}
<div id="bdoc"></div>
{%- endif %}
<div id="pro" class="logue">{{ "" if sb_lg else logues[0] }}</div>
<div id="cfg" class="modal">
<a id="s_outside" class="closepane"></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 id="reloc_cfg" class="btn winbtn"><span></span></a>
<a id="cl_cfg" class="close btn"><span class="x">×</span></a>
</div>
</div>
<div id="up2k" class="modal">
<a id="up_outside" class="closepane"></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 id="reloc_up" class="btn winbtn"><span></span></a>
<a id="cl_up" class="close btn"><span class="x">×</span></a>
</div>
</div>
<div id="music" class="modal">
<div id="mu_outer">
<div id="mu_inner">
<a id="h_music" class="modalheader" href="#">💿 Music Player</a>
<a id="mu_th">
<svg class="thumb" width="100%" height="100%" version="1.1">
<use href="#file-icon"/>
</svg>
<span class="th_ext"></span>
<img onload="th_onload(this)"/>
</a>
<span id="mu_tn"></span>
<span id="mu_deets"></span>
<div id="mu_pbb"></div>
<div id="mu_pbc" class="pctl"></div>
<div id="mu_toggles"></div>
<div id="mu_vol"></div>
<a id="cfg_mu" class="btn winbtn" href="#h_mp">⚙️</a>
<a id="cl_mu" class="close btn"><span class="x">×</span></a>
</div>
</div>
</div>
<!-- define symbol in hidden svg document -->
<svg style="display: none" version="1.1">
<defs>
<symbol id="folder-icon" viewBox="0 0 24 24">
<path fill-rule="evenodd" clip-rule="evenodd" d="M3 7C3 5.89543 3.89543 5 5 5L8.67157 5C9.20201 5 9.71071 5.21071 10.0858 5.58579L10.9142 6.41421C11.2893 6.78929 11.798 7 12.3284 7H19C20.1046 7 21 7.89543 21 9V17C21 18.1046 20.1046 19 19 19H5C3.89543 19 3 18.1046 3 17V7Z"
style="fill:#07c; fill:var(--a);" />
</symbol>
<symbol id="file-icon" viewBox="0 0 48 48">
<path fill="currentColor"
opacity=".7"
d="m 28.22643,4.6905246 0.0063,9.1096644 a 1.6331061,1.6331061 43.698111 0 0 1.649296,1.632007 l 9.339558,-0.09259 z" />
<path class="a"
d="M39.5,15.5h-9a2,2,0,0,1-2-2v-9h-18a2,2,0,0,0-2,2v35a2,2,0,0,0,2,2h27a2,2,0,0,0,2-2Z"
id="path1"
style="stroke:#07c; stroke:var(--a);"
stroke-width="1" fill="none" stroke-linecap="round" stroke-linejoin="round" />
<line class="a"
x1="28.5"
y1="4.5"
x2="39.5"
y2="15.5"
style="stroke:#07c; stroke:var(--a);"
stroke-width="1" fill="none" stroke-linecap="round" stroke-linejoin="round" />
</symbol>
</defs>
</svg>
<div id="wtc" class="ghead"></div>
<table id="files">
<thead>
<tr>
<th name="lead"><span>!</span></th>
<th name="href"><span>File Name</span></th>
<th name="sz" sort="int"><span>Size</span></th>
{%- for k in taglist %}
{%- if k.startswith('.') %}
<th name="tags/{{ k }}" sort="int"><span>{{ k[1:] }}</span></th>
{%- else %}
<th name="tags/{{ k }}"><span>{{ k[0]|upper }}{{ k[1:] }}</span></th>
{%- endif %}
{%- endfor %}
<th name="ext"><span>Ext</span></th>
<th name="ts"><span>Date</span></th>
</tr>
</thead>
<tbody>
{%- for f in files %}
<tr>
<td>{{ f.lead }}</td>
<td><a href="{{ f.href }}" class="flink">{{ f.name|e }}</a></td>
<td>{{ f.sz }}</td>
{%- if f.tags is defined %}
{%- for k in taglist %}
<td>{{ f.tags[k]|e }}</td>{%- endfor %}
{%- endif %}
<td>{{ f.ext }}</td>
<td>{{ f.dt }}</td>
</tr>
{%- endfor %}
</tbody>
</table>
<div id="epi" class="logue">{{ "" if sb_lg else logues[1] }}</div>
<a href="#" id="repl">π</a>
</div>
<div id="srv_info" style="display: none;"><span>{{ srv_info }}</span></div>
<div id="widget"></div>
<div id="rcm" tabindex="0"></div>
<script>
var SR = "{{ r }}",
CGV1 = {{ cgv1 }},
CGV = {{ cgv|tojson }},
TS = "{{ ts }}",
dtheme = "{{ dtheme }}",
lang = "{{ lang }}",
dfavico = "{{ favico }}",
have_tags_idx = {{ have_tags_idx }},
logues = {{ logues|tojson if sb_lg else "[]" }},
ls0 = {{ ls0|tojson }};
var STG = window.localStorage;
document.documentElement.className = (STG && STG.cpp_thm) || dtheme;
</script>
<script src="{{ r }}/.cpr/w/util.js?_={{ ts }}"></script>
{%- if lang != "eng" %}
<script src="{{ r }}/.cpr/w/tl/{{ lang }}.js?_={{ ts }}"></script>
{%- endif %}
<script src="{{ r }}/.cpr/w/browser.js?_={{ ts }}"></script>
<!-- <script src="{{ r }}/.cpr/w/baguettebox.js?_={{ ts }}"></script>
<script src="{{ r }}/.cpr/w/up2k.js?_={{ ts }}"></script> -->
{%- if js %}
<script src="{{ js }}_={{ ts }}"></script>
{%- endif %}
<script>
Date.now(); function jsldp(a, b) { 2 != window[a] && alert("FATAL ERROR: cannot load " + b + ".js due to unreliable network or broken reverse-proxy; try CTRL-SHIFT-R") }
jsldp("J_UTL", "util");
jsldp("J_BRW", "browser");
// jsldp("J_BBX", "baguettebox");
// jsldp("J_U2K", "up2k");
</script>
</body>
</html>