feat: load last job
This commit is contained in:
parent
77bb821ecf
commit
9dbd94daac
@ -130,12 +130,16 @@ class JobTable: Reactor.Component {
|
|||||||
self.timer(30ms, function() { self.update(); });
|
self.timer(30ms, function() { self.update(); });
|
||||||
}
|
}
|
||||||
|
|
||||||
function addJob(id, path, to, show_hidden, is_remote) {
|
function addJob(id, path, to, file_num, show_hidden, is_remote) {
|
||||||
this.jobs.push({ type: "transfer",
|
var job = { type: "transfer",
|
||||||
id: id, path: path, to: to,
|
id: id, path: path, to: to,
|
||||||
include_hidden: show_hidden,
|
include_hidden: show_hidden,
|
||||||
is_remote: is_remote });
|
is_remote: is_remote };
|
||||||
|
this.jobs.push(job);
|
||||||
this.job_map[id] = this.jobs[this.jobs.length - 1];
|
this.job_map[id] = this.jobs[this.jobs.length - 1];
|
||||||
|
jobIdCounter = id + 1;
|
||||||
|
handler.send_files(id, path, to, show_hidden, is_remote);
|
||||||
|
stdout.println(JSON.stringify(job));
|
||||||
}
|
}
|
||||||
|
|
||||||
function addDelDir(path, is_remote) {
|
function addDelDir(path, is_remote) {
|
||||||
@ -617,6 +621,7 @@ function initializeFileTransfer()
|
|||||||
}
|
}
|
||||||
|
|
||||||
handler.updateFolderFiles = function(fd) {
|
handler.updateFolderFiles = function(fd) {
|
||||||
|
stdout.println("update folder files: " + JSON.stringify(fd));
|
||||||
fd.entries = fd.entries || [];
|
fd.entries = fd.entries || [];
|
||||||
if (fd.id > 0) {
|
if (fd.id > 0) {
|
||||||
var jt = file_transfer.job_table;
|
var jt = file_transfer.job_table;
|
||||||
@ -668,6 +673,7 @@ handler.clearAllJobs = function() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
handler.addJob = function (id, path, to, file_num, show_hidden, is_remote) {
|
handler.addJob = function (id, path, to, file_num, show_hidden, is_remote) {
|
||||||
|
stdout.println("restore job: " + is_remote);
|
||||||
file_transfer.job_table.addJob(id,path,to,file_num,show_hidden,is_remote);
|
file_transfer.job_table.addJob(id,path,to,file_num,show_hidden,is_remote);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1387,10 +1387,6 @@ impl Remote {
|
|||||||
self.handler
|
self.handler
|
||||||
.call("setConnectionType", &make_args!(peer.is_secured(), direct));
|
.call("setConnectionType", &make_args!(peer.is_secured(), direct));
|
||||||
|
|
||||||
if conn_type == ConnType::FILE_TRANSFER {
|
|
||||||
self.load_last_jobs().await;
|
|
||||||
}
|
|
||||||
|
|
||||||
// just build for now
|
// just build for now
|
||||||
#[cfg(not(windows))]
|
#[cfg(not(windows))]
|
||||||
let (_tx_holder, mut rx_clip_client) = mpsc::unbounded_channel::<i32>();
|
let (_tx_holder, mut rx_clip_client) = mpsc::unbounded_channel::<i32>();
|
||||||
@ -1541,7 +1537,7 @@ impl Remote {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async fn load_last_jobs(&mut self) {
|
async fn load_last_jobs(&mut self) {
|
||||||
println!("start load last jobs");
|
log::info!("start load last jobs");
|
||||||
self.handler.call("clearAllJobs",&make_args!());
|
self.handler.call("clearAllJobs",&make_args!());
|
||||||
let pc = self.handler.load_config();
|
let pc = self.handler.load_config();
|
||||||
if pc.transfer.write_jobs.is_empty() && pc.transfer.read_jobs.is_empty() {
|
if pc.transfer.write_jobs.is_empty() && pc.transfer.read_jobs.is_empty() {
|
||||||
@ -1549,15 +1545,13 @@ impl Remote {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// TODO: can add a confirm dialog
|
// TODO: can add a confirm dialog
|
||||||
let mut cnt = 0;
|
let mut cnt = 1;
|
||||||
for job_str in pc.transfer.read_jobs.iter() {
|
for job_str in pc.transfer.read_jobs.iter() {
|
||||||
let job: Result<TransferJobMeta, serde_json::Error> = serde_json::from_str(&job_str);
|
let job: Result<TransferJobMeta, serde_json::Error> = serde_json::from_str(&job_str);
|
||||||
if let Ok(job) = job {
|
if let Ok(job) = job {
|
||||||
self.handler.call("addJob",&make_args!(
|
self.handler.call("addJob",&make_args!(
|
||||||
cnt,job.remote.clone(),job.to.clone(),job.file_num,job.show_hidden, false
|
cnt,job.remote.clone(),job.to.clone(),job.file_num,job.show_hidden, false
|
||||||
));
|
));
|
||||||
self.handler.send_files(cnt, job.remote.clone(),
|
|
||||||
job.to.clone(), job.show_hidden, false);
|
|
||||||
cnt += 1;
|
cnt += 1;
|
||||||
println!("restore read_job: {:?}",job);
|
println!("restore read_job: {:?}",job);
|
||||||
}
|
}
|
||||||
@ -1568,8 +1562,6 @@ impl Remote {
|
|||||||
self.handler.call("addJob",&make_args!(
|
self.handler.call("addJob",&make_args!(
|
||||||
cnt,job.remote.clone(),job.to.clone(),job.file_num,job.show_hidden, true
|
cnt,job.remote.clone(),job.to.clone(),job.file_num,job.show_hidden, true
|
||||||
));
|
));
|
||||||
self.handler.send_files(cnt, job.remote.clone(),
|
|
||||||
job.to.clone(), job.show_hidden, true);
|
|
||||||
cnt += 1;
|
cnt += 1;
|
||||||
println!("restore write_job: {:?}",job);
|
println!("restore write_job: {:?}",job);
|
||||||
}
|
}
|
||||||
@ -1895,6 +1887,10 @@ impl Remote {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if self.handler.is_file_transfer() {
|
||||||
|
self.load_last_jobs().await;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
_ => {}
|
_ => {}
|
||||||
},
|
},
|
||||||
@ -1932,6 +1928,7 @@ impl Remote {
|
|||||||
}
|
}
|
||||||
self.handler.call("updateFolderFiles", &make_args!(m));
|
self.handler.call("updateFolderFiles", &make_args!(m));
|
||||||
if let Some(job) = fs::get_job(fd.id, &mut self.write_jobs) {
|
if let Some(job) = fs::get_job(fd.id, &mut self.write_jobs) {
|
||||||
|
log::info!("job set_files: {:?}",entries);
|
||||||
job.set_files(entries);
|
job.set_files(entries);
|
||||||
} else if let Some(job) = self.remove_jobs.get_mut(&fd.id) {
|
} else if let Some(job) = self.remove_jobs.get_mut(&fd.id) {
|
||||||
job.files = entries;
|
job.files = entries;
|
||||||
@ -2040,7 +2037,7 @@ impl Remote {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
Some(file_response::Union::block(block)) => {
|
Some(file_response::Union::block(block)) => {
|
||||||
log::info!("file response block, file num: {}", block.file_num);
|
log::info!("file response block, file id:{}, file num: {}",block.id, block.file_num);
|
||||||
if let Some(job) = fs::get_job(block.id, &mut self.write_jobs) {
|
if let Some(job) = fs::get_job(block.id, &mut self.write_jobs) {
|
||||||
if let Err(_err) = job.write(block, None).await {
|
if let Err(_err) = job.write(block, None).await {
|
||||||
// to-do: add "skip" for writing job
|
// to-do: add "skip" for writing job
|
||||||
|
Loading…
x
Reference in New Issue
Block a user