mirror of
https://github.com/9001/copyparty.git
synced 2026-06-20 13:12:26 -06:00
drag drop between windows
This commit is contained in:
parent
ddb50d07b0
commit
cba79caa48
|
|
@ -5274,43 +5274,53 @@ var fileman = (function () {
|
||||||
};
|
};
|
||||||
|
|
||||||
r.cut = function (e) {
|
r.cut = function (e) {
|
||||||
|
var useClip = r.clip.length > 0;
|
||||||
|
|
||||||
var sel = msel.getsel(),
|
var sel = msel.getsel(),
|
||||||
stamp = Date.now(),
|
stamp = Date.now(),
|
||||||
vps = [stamp];
|
vps = [stamp];
|
||||||
|
|
||||||
if (!sel.length)
|
if (!useClip && !sel.length)
|
||||||
return toast.err(3, L.fc_emore);
|
return toast.err(3, L.fc_emore);
|
||||||
|
|
||||||
ev(e);
|
ev(e);
|
||||||
|
|
||||||
if (clgot(bcut, 'hide'))
|
if (!useClip && clgot(bcut, 'hide'))
|
||||||
return toast.err(3, L.fc_eperm);
|
return toast.err(3, L.fc_eperm);
|
||||||
|
|
||||||
var els = [], griden = thegrid.en;
|
if(!useClip){
|
||||||
for (var a = 0; a < sel.length; a++) {
|
var els = [], griden = thegrid.en;
|
||||||
vps.push(sel[a].vp);
|
for (var a = 0; a < sel.length; a++) {
|
||||||
if (sel.length < 100)
|
vps.push(sel[a].vp);
|
||||||
try {
|
if (sel.length < 100)
|
||||||
if (griden)
|
try {
|
||||||
els.push(QS('#ggrid>a[ref="' + sel[a].id + '"]'));
|
if (griden)
|
||||||
else
|
els.push(QS('#ggrid>a[ref="' + sel[a].id + '"]'));
|
||||||
els.push(ebi(sel[a].id).closest('tr'));
|
else
|
||||||
|
els.push(ebi(sel[a].id).closest('tr'));
|
||||||
|
|
||||||
clmod(els[a], 'fcut');
|
clmod(els[a], 'fcut');
|
||||||
|
}
|
||||||
|
catch (ex) { }
|
||||||
|
}
|
||||||
|
|
||||||
|
setTimeout(function () {
|
||||||
|
try {
|
||||||
|
for (var a = 0; a < els.length; a++)
|
||||||
|
clmod(els[a], 'fcut', 1);
|
||||||
}
|
}
|
||||||
catch (ex) { }
|
catch (ex) { }
|
||||||
|
}, 1);
|
||||||
|
|
||||||
|
r.clip = vps.slice(1);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
for (var a = 0; a < r.clip.length; a++) {
|
||||||
|
vps.push(r.clip[a]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
setTimeout(function () {
|
|
||||||
try {
|
|
||||||
for (var a = 0; a < els.length; a++)
|
|
||||||
clmod(els[a], 'fcut', 1);
|
|
||||||
}
|
|
||||||
catch (ex) { }
|
|
||||||
}, 1);
|
|
||||||
|
|
||||||
r.ccp = false;
|
r.ccp = false;
|
||||||
r.clip = vps.slice(1);
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
vps = JSON.stringify(vps);
|
vps = JSON.stringify(vps);
|
||||||
|
|
@ -5642,6 +5652,8 @@ var fileman = (function () {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
r.render();
|
r.render();
|
||||||
|
if(('' + msg).startsWith(window.location.origin))
|
||||||
|
msg = msg.replace(window.location.origin, "");
|
||||||
if (msg == get_evpath())
|
if (msg == get_evpath())
|
||||||
treectl.goto(msg);
|
treectl.goto(msg);
|
||||||
};
|
};
|
||||||
|
|
@ -10976,11 +10988,19 @@ var drag = (function() {
|
||||||
};
|
};
|
||||||
|
|
||||||
elem.ondrop = function(e) {
|
elem.ondrop = function(e) {
|
||||||
|
if (!r.enabled) return;
|
||||||
ev(e);
|
ev(e);
|
||||||
clmod(elem, "dtarget");
|
if(e.dataTransfer && e.dataTransfer.getData("text/plain").startsWith(window.location.origin)){
|
||||||
clmod(current, "sel", true);
|
currLink = e.dataTransfer.getData("text/plain");
|
||||||
msel.selui();
|
console.log(currLink);
|
||||||
fileman.clip = [];
|
fileman.clip = currLink.split("\n");
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
clmod(elem, "dtarget");
|
||||||
|
clmod(current, "sel", true);
|
||||||
|
msel.selui();
|
||||||
|
fileman.clip = [];
|
||||||
|
}
|
||||||
fileman.cut();
|
fileman.cut();
|
||||||
msel.evsel();
|
msel.evsel();
|
||||||
|
|
||||||
|
|
@ -11003,6 +11023,11 @@ var drag = (function() {
|
||||||
currLink = basenames(e.target.querySelector("td:nth-child(2) a").href.split("?"));
|
currLink = basenames(e.target.querySelector("td:nth-child(2) a").href.split("?"));
|
||||||
current = e.target;
|
current = e.target;
|
||||||
r.no_warn = true;
|
r.no_warn = true;
|
||||||
|
|
||||||
|
clmod(current, "sel", true);
|
||||||
|
msel.selui();
|
||||||
|
|
||||||
|
e.dataTransfer.setData("text/plain", r.getFilesString());
|
||||||
}
|
}
|
||||||
catch(ex){
|
catch(ex){
|
||||||
console.log(e.target)
|
console.log(e.target)
|
||||||
|
|
@ -11035,6 +11060,18 @@ var drag = (function() {
|
||||||
current = a.closest("tr");
|
current = a.closest("tr");
|
||||||
currLink = basenames(a.href.split("?"));
|
currLink = basenames(a.href.split("?"));
|
||||||
r.no_warn = true;
|
r.no_warn = true;
|
||||||
|
|
||||||
|
if(!clgot(current, "sel"))
|
||||||
|
{
|
||||||
|
msel.so = msel.pr = null;
|
||||||
|
var trs = QSA('#files tbody tr');
|
||||||
|
for (var a = 0, aa = trs.length; a < aa; a++)
|
||||||
|
clmod(trs[a], 'sel', fun);
|
||||||
|
clmod(current, "sel", true);
|
||||||
|
msel.selui();
|
||||||
|
}
|
||||||
|
|
||||||
|
e.dataTransfer.setData("text/plain", r.getFilesString());
|
||||||
}
|
}
|
||||||
catch(ex){
|
catch(ex){
|
||||||
console.log(e.target)
|
console.log(e.target)
|
||||||
|
|
@ -11049,6 +11086,19 @@ var drag = (function() {
|
||||||
r.mktarget(f);
|
r.mktarget(f);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
r.getFilesString = function(){
|
||||||
|
var sel = msel.getsel(),
|
||||||
|
vps = [];
|
||||||
|
|
||||||
|
for (var a = 0; a < sel.length; a++) {
|
||||||
|
var link = sel[a].vp;
|
||||||
|
if(!link.startsWith(window.location.origin))
|
||||||
|
link = window.location.origin + link;
|
||||||
|
vps.push(link);
|
||||||
|
}
|
||||||
|
|
||||||
|
return vps.join("\n");
|
||||||
|
};
|
||||||
|
|
||||||
return r;
|
return r;
|
||||||
})();
|
})();
|
||||||
|
|
|
||||||
|
|
@ -1085,6 +1085,9 @@ function up2k_init(subtle) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
function onovercmn(self, e, btn) {
|
function onovercmn(self, e, btn) {
|
||||||
|
if(e.dataTransfer.getData("text/plain") && e.dataTransfer.getData("text/plain").startsWith(window.location.origin)){
|
||||||
|
return;
|
||||||
|
}
|
||||||
try {
|
try {
|
||||||
var ok = false, dt = e.dataTransfer.types;
|
var ok = false, dt = e.dataTransfer.types;
|
||||||
for (var a = 0; a < dt.length; a++)
|
for (var a = 0; a < dt.length; a++)
|
||||||
|
|
@ -1146,6 +1149,8 @@ function up2k_init(subtle) {
|
||||||
document.body.ondrop = gotfile;
|
document.body.ondrop = gotfile;
|
||||||
ebi('u2btn').ondrop = gotfile;
|
ebi('u2btn').ondrop = gotfile;
|
||||||
ebi('u2btn').ondragover = onoverbtn;
|
ebi('u2btn').ondragover = onoverbtn;
|
||||||
|
ebi('wrap').ondrop = gotfile;
|
||||||
|
ebi('wrap').ondragover = onoverbtn;
|
||||||
|
|
||||||
var drops = [ebi('up_dz'), ebi('srch_dz')];
|
var drops = [ebi('up_dz'), ebi('srch_dz')];
|
||||||
for (var a = 0; a < 2; a++) {
|
for (var a = 0; a < 2; a++) {
|
||||||
|
|
@ -1188,6 +1193,19 @@ function up2k_init(subtle) {
|
||||||
|
|
||||||
function gotfile(e) {
|
function gotfile(e) {
|
||||||
ev(e);
|
ev(e);
|
||||||
|
|
||||||
|
console.log(e.dataTransfer.getData("text/plain"))
|
||||||
|
if(e.dataTransfer && e.dataTransfer.getData("text/plain").startsWith(window.location.origin)){
|
||||||
|
var currLink = e.dataTransfer.getData("text/plain");
|
||||||
|
console.log(currLink);
|
||||||
|
fileman.clip = currLink.split("\n");
|
||||||
|
|
||||||
|
fileman.cut();
|
||||||
|
msel.evsel();
|
||||||
|
fileman.paste(true);
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
nenters = 0;
|
nenters = 0;
|
||||||
offdrag.call(this);
|
offdrag.call(this);
|
||||||
// var dz = this && this.getAttribute('id');
|
// var dz = this && this.getAttribute('id');
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue