mirror of
https://github.com/9001/copyparty.git
synced 2025-08-17 09:02:15 -06:00
media player: continue to next folder
This commit is contained in:
parent
c8a510d10e
commit
8b081e9e69
|
@ -26,6 +26,7 @@
|
|||
<a href="#" data-perm="write" data-dest="mkdir" data-desc="mkdir: create a new directory">📂</a>
|
||||
<a href="#" data-perm="read write" data-dest="new_md" data-desc="new-md: create a new markdown document">📝</a>
|
||||
<a href="#" data-perm="write" data-dest="msg" data-desc="msg: send a message to the server log">📟</a>
|
||||
<a href="#" data-dest="player" data-desc="media player options">🎺</a>
|
||||
<a href="#" data-dest="cfg" data-desc="configuration options">⚙️</a>
|
||||
<div id="opdesc"></div>
|
||||
</div>
|
||||
|
@ -39,6 +40,8 @@
|
|||
<div id="srch_q"></div>
|
||||
</div>
|
||||
|
||||
<div id="op_player" class="opview opbox"></div>
|
||||
|
||||
{%- include 'upload.html' %}
|
||||
|
||||
<div id="op_cfg" class="opview opbox">
|
||||
|
|
|
@ -50,6 +50,31 @@ function MPlayer() {
|
|||
this.au_ogvjs = null;
|
||||
this.tracks = {};
|
||||
this.order = [];
|
||||
this.pb_mode = sread('pb_mode') || 'loop-folder';
|
||||
var r = this;
|
||||
|
||||
ebi('op_player').innerHTML = (
|
||||
'<h3>playback mode</h3><div id="pb_mode">' +
|
||||
'<a href="#" class="tgl btn">loop-folder</a>' +
|
||||
'<a href="#" class="tgl btn">next-folder</a>' +
|
||||
//'<a href="#" class="tgl btn">playlist</a>' +
|
||||
'</div>');
|
||||
|
||||
function draw_pb_mode() {
|
||||
var btns = QSA('#pb_mode>a');
|
||||
for (var a = 0, aa = btns.length; a < aa; a++) {
|
||||
clmod(btns[a], 'on', btns[a].textContent == r.pb_mode);
|
||||
btns[a].onclick = set_pb_mode;
|
||||
}
|
||||
}
|
||||
draw_pb_mode();
|
||||
|
||||
function set_pb_mode(e) {
|
||||
ev(e);
|
||||
r.pb_mode = this.textContent;
|
||||
swrite('pb_mode', r.pb_mode);
|
||||
draw_pb_mode();
|
||||
}
|
||||
|
||||
var re_audio = /\.(opus|ogg|m4a|aac|mp3|wav|flac)$/i,
|
||||
trs = QSA('#files tbody tr');
|
||||
|
@ -408,7 +433,7 @@ function song_skip(n) {
|
|||
if (tid !== null)
|
||||
play(mp.order.indexOf(tid) + n);
|
||||
else
|
||||
play(mp.order[0]);
|
||||
play(mp.order[n == -1 ? mp.order.length - 1 : 0]);
|
||||
}
|
||||
|
||||
|
||||
|
@ -703,11 +728,25 @@ function play(tid, seek, call_depth) {
|
|||
if ((tn + '').indexOf('f-') === 0)
|
||||
tn = mp.order.indexOf(tn);
|
||||
|
||||
while (tn >= mp.order.length)
|
||||
tn -= mp.order.length;
|
||||
if (tn >= mp.order.length) {
|
||||
if (mp.pb_mode == 'loop-folder') {
|
||||
tn = 0;
|
||||
}
|
||||
else if (mp.pb_mode == 'next-folder') {
|
||||
treectl.ls_cb = function () { song_skip(1); };
|
||||
return tree_neigh(1);
|
||||
}
|
||||
}
|
||||
|
||||
while (tn < 0)
|
||||
tn += mp.order.length;
|
||||
if (tn < 0) {
|
||||
if (mp.pb_mode == 'loop-folder') {
|
||||
tn = mp.order.length - 1;
|
||||
}
|
||||
else if (mp.pb_mode == 'next-folder') {
|
||||
treectl.ls_cb = function () { song_skip(-1); };
|
||||
return tree_neigh(-1);
|
||||
}
|
||||
}
|
||||
|
||||
tid = mp.order[tn];
|
||||
|
||||
|
@ -1464,7 +1503,8 @@ document.onkeydown = function (e) {
|
|||
|
||||
var treectl = (function () {
|
||||
var treectl = {
|
||||
"hidden": false
|
||||
"hidden": false,
|
||||
"ls_cb": null
|
||||
},
|
||||
entreed = false,
|
||||
fixedpos = false,
|
||||
|
@ -1758,6 +1798,12 @@ var treectl = (function () {
|
|||
msel.render();
|
||||
reload_tree();
|
||||
reload_browser();
|
||||
|
||||
var fun = treectl.ls_cb;
|
||||
if (fun) {
|
||||
treectl.ls_cb = null;
|
||||
fun();
|
||||
}
|
||||
}
|
||||
|
||||
function parsetree(res, top) {
|
||||
|
|
Loading…
Reference in a new issue