mirror of
https://github.com/9001/copyparty.git
synced 2025-08-17 09:02:15 -06:00
upload files/images with CTRL-V (from explorer etc.)
This commit is contained in:
parent
bc2c1e427a
commit
c5f7cfc355
|
@ -337,6 +337,8 @@ var Ls = {
|
||||||
"fp_err": "move failed:\n",
|
"fp_err": "move failed:\n",
|
||||||
"fp_confirm": "move these {0} items here?",
|
"fp_confirm": "move these {0} items here?",
|
||||||
"fp_etab": 'failed to read clipboard from other browser tab',
|
"fp_etab": 'failed to read clipboard from other browser tab',
|
||||||
|
"fp_both": 'what do you want to paste?\n\nOK/Enter: Upload {0} files from system clipboard\nEsc/Abort: Move {1} files on server',
|
||||||
|
"fp_name": "Uploading a PNG image from clipboard.\n\nconfirm by giving it a filename:",
|
||||||
|
|
||||||
"mk_noname": "type a name into the text field on the left before you do that :p",
|
"mk_noname": "type a name into the text field on the left before you do that :p",
|
||||||
|
|
||||||
|
@ -842,6 +844,8 @@ var Ls = {
|
||||||
"fp_err": "flytting feilet:\n",
|
"fp_err": "flytting feilet:\n",
|
||||||
"fp_confirm": "flytt disse {0} filene hit?",
|
"fp_confirm": "flytt disse {0} filene hit?",
|
||||||
"fp_etab": 'kunne ikke lese listen med filer ifra den andre nettleserfanen',
|
"fp_etab": 'kunne ikke lese listen med filer ifra den andre nettleserfanen',
|
||||||
|
"fp_both": "hva vil du lime inn?\n\nOK/Enter: Last opp {0} filer ifra enheten din\nEsc/Avbryt: Flytt {1} filer på serveren",
|
||||||
|
"fp_name": "Laster opp PNG-bilde ifra utklippstavle.\n\nbekreft ved å velge et filnavn:",
|
||||||
|
|
||||||
"mk_noname": "skriv inn et navn i tekstboksen til venstre først :p",
|
"mk_noname": "skriv inn et navn i tekstboksen til venstre først :p",
|
||||||
|
|
||||||
|
@ -3596,6 +3600,7 @@ var fileman = (function () {
|
||||||
bdel = ebi('fdel'),
|
bdel = ebi('fdel'),
|
||||||
bcut = ebi('fcut'),
|
bcut = ebi('fcut'),
|
||||||
bpst = ebi('fpst'),
|
bpst = ebi('fpst'),
|
||||||
|
t_paste,
|
||||||
r = {};
|
r = {};
|
||||||
|
|
||||||
r.clip = null;
|
r.clip = null;
|
||||||
|
@ -4073,8 +4078,66 @@ var fileman = (function () {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
r.paste = function (e) {
|
document.onpaste = function (e) {
|
||||||
ev(e);
|
var xfer = e.clipboardData || window.clipboardData;
|
||||||
|
if (!xfer || !xfer.files || !xfer.files.length)
|
||||||
|
return;
|
||||||
|
|
||||||
|
var files = [];
|
||||||
|
for (var a = 0, aa = xfer.files.length; a < aa; a++)
|
||||||
|
files.push(xfer.files[a]);
|
||||||
|
|
||||||
|
clearTimeout(t_paste);
|
||||||
|
|
||||||
|
if (!r.clip.length)
|
||||||
|
return r.clip_up(files);
|
||||||
|
|
||||||
|
modal.confirm(
|
||||||
|
L.fp_both.format(files.length, r.clip.length),
|
||||||
|
function () { r.clip_up(files); }, r.paste);
|
||||||
|
};
|
||||||
|
|
||||||
|
r.clip_up = function (files) {
|
||||||
|
goto_up2k();
|
||||||
|
var good = [], nil = [], bad = [];
|
||||||
|
for (var a = 0, aa = files.length; a < aa; a++) {
|
||||||
|
var fobj = files[a], dst = good;
|
||||||
|
try {
|
||||||
|
if (fobj.size < 1)
|
||||||
|
dst = nil;
|
||||||
|
}
|
||||||
|
catch (ex) {
|
||||||
|
dst = bad;
|
||||||
|
}
|
||||||
|
dst.push([fobj, fobj.name]);
|
||||||
|
}
|
||||||
|
var doit = function (is_img) {
|
||||||
|
jwrite('fman_clip', [Date.now()]);
|
||||||
|
r.clip = [];
|
||||||
|
|
||||||
|
var x = up2k.uc.ask_up;
|
||||||
|
if (is_img)
|
||||||
|
up2k.uc.ask_up = false;
|
||||||
|
|
||||||
|
up2k.gotallfiles[0](good, nil, bad, up2k.gotallfiles.slice(1));
|
||||||
|
up2k.uc.ask_up = x;
|
||||||
|
};
|
||||||
|
if (good.length != 1 || !/\.png$/.test(good[0][1]))
|
||||||
|
return doit();
|
||||||
|
|
||||||
|
modal.prompt(L.fp_name, good[0][1].slice(0, -4), function (v) {
|
||||||
|
good[0][1] = v + '.png';
|
||||||
|
doit(true);
|
||||||
|
}, null);
|
||||||
|
};
|
||||||
|
|
||||||
|
r.d_paste = function () {
|
||||||
|
// gets called before onpaste; defer
|
||||||
|
clearTimeout(t_paste);
|
||||||
|
t_paste = setTimeout(r.paste, 50);
|
||||||
|
};
|
||||||
|
|
||||||
|
r.paste = function () {
|
||||||
if (clgot(bpst, 'hide'))
|
if (clgot(bpst, 'hide'))
|
||||||
return toast.err(3, L.fp_eperm);
|
return toast.err(3, L.fp_eperm);
|
||||||
|
|
||||||
|
@ -5178,6 +5241,9 @@ document.onkeydown = function (e) {
|
||||||
if (ebi('hkhelp'))
|
if (ebi('hkhelp'))
|
||||||
return qsr('#hkhelp');
|
return qsr('#hkhelp');
|
||||||
|
|
||||||
|
if (toast.visible)
|
||||||
|
return toast.hide();
|
||||||
|
|
||||||
if (ebi('rn_cancel'))
|
if (ebi('rn_cancel'))
|
||||||
return ebi('rn_cancel').click();
|
return ebi('rn_cancel').click();
|
||||||
|
|
||||||
|
@ -5250,7 +5316,7 @@ document.onkeydown = function (e) {
|
||||||
return fileman.cut();
|
return fileman.cut();
|
||||||
|
|
||||||
if (k == 'KeyV' || k == 'v')
|
if (k == 'KeyV' || k == 'v')
|
||||||
return fileman.paste();
|
return fileman.d_paste();
|
||||||
|
|
||||||
if (k == 'KeyK' || k == 'k')
|
if (k == 'KeyK' || k == 'k')
|
||||||
return fileman.delete();
|
return fileman.delete();
|
||||||
|
|
Loading…
Reference in a new issue