changed to consistently use restore instead of awful undelete
This commit is contained in:
8
files.py
8
files.py
@@ -345,16 +345,16 @@ def rm_dups():
|
|||||||
|
|
||||||
return render_template("base.html")
|
return render_template("base.html")
|
||||||
|
|
||||||
@app.route("/undelete_files", methods=["POST"])
|
@app.route("/restore_files", methods=["POST"])
|
||||||
def undelete_files():
|
def restore_files():
|
||||||
jex=[]
|
jex=[]
|
||||||
for el in request.form:
|
for el in request.form:
|
||||||
print( f"{el}={request.form[el]}" )
|
print( f"{el}={request.form[el]}" )
|
||||||
jex.append( JobExtra( name=f"{el}", value=request.form[el] ) )
|
jex.append( JobExtra( name=f"{el}", value=request.form[el] ) )
|
||||||
|
|
||||||
job=NewJob( "undelete_files", 0, None, jex )
|
job=NewJob( "restore_files", 0, None, jex )
|
||||||
st.SetAlert("success")
|
st.SetAlert("success")
|
||||||
st.SetMessage( f"Created <a href=/job/{job.id}>Job #{job.id}</a> to undelete selected file(s)")
|
st.SetMessage( f"Created <a href=/job/{job.id}>Job #{job.id}</a> to restore selected file(s)")
|
||||||
return render_template("base.html")
|
return render_template("base.html")
|
||||||
|
|
||||||
@app.route("/delete_files", methods=["POST"])
|
@app.route("/delete_files", methods=["POST"])
|
||||||
|
|||||||
@@ -399,8 +399,8 @@ def RunJob(job):
|
|||||||
RemoveDups(job)
|
RemoveDups(job)
|
||||||
elif job.name == "delete_files":
|
elif job.name == "delete_files":
|
||||||
JobDeleteFiles(job)
|
JobDeleteFiles(job)
|
||||||
elif job.name == "undelete_files":
|
elif job.name == "restore_files":
|
||||||
JobUnDeleteFiles(job)
|
JobRestoreFiles(job)
|
||||||
elif job.name == "processai":
|
elif job.name == "processai":
|
||||||
JobProcessAI(job)
|
JobProcessAI(job)
|
||||||
else:
|
else:
|
||||||
@@ -608,10 +608,10 @@ def RemoveFileFromFS( del_me ):
|
|||||||
print( f"ERROR: Failed to remove file from filesystem - which={src}, err: {e}")
|
print( f"ERROR: Failed to remove file from filesystem - which={src}, err: {e}")
|
||||||
return
|
return
|
||||||
|
|
||||||
# Function that undeletes a file that was deleted (moved into the Bin)
|
# Function that restores a file that was deleted (moved into the Bin)
|
||||||
# it moves file on the filesystem back to its original path and then changes the database path from the Bin path
|
# it moves file on the filesystem back to its original path and then changes the database path from the Bin path
|
||||||
# to the original import or storage path and appropriate dir
|
# to the original import or storage path and appropriate dir
|
||||||
def UnDeleteFile(job,restore_me):
|
def RestoreFile(job,restore_me):
|
||||||
try:
|
try:
|
||||||
# rel_path for a file in the Bin, is like 'Import/images_to_process/1111', so just prepend static/
|
# rel_path for a file in the Bin, is like 'Import/images_to_process/1111', so just prepend static/
|
||||||
dst_dir='static/' + restore_me.in_dir.rel_path + '/'
|
dst_dir='static/' + restore_me.in_dir.rel_path + '/'
|
||||||
@@ -620,7 +620,7 @@ def UnDeleteFile(job,restore_me):
|
|||||||
dst=dst_dir + '/' + restore_me.name
|
dst=dst_dir + '/' + restore_me.name
|
||||||
os.replace( src, dst )
|
os.replace( src, dst )
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print( f"ERROR: Failed to undelete (mv) file on filesystem - which={src} to {dst}, err: {e}")
|
print( f"ERROR: Failed to restores (mv) file on filesystem - which={src} to {dst}, err: {e}")
|
||||||
|
|
||||||
# need these for AddDir calls below to work
|
# need these for AddDir calls below to work
|
||||||
orig_file_details = session.query(DelFile).get(restore_me.id)
|
orig_file_details = session.query(DelFile).get(restore_me.id)
|
||||||
@@ -670,7 +670,7 @@ def MoveFileToRecycleBin(job,del_me):
|
|||||||
parent_dir=session.query(Dir).join(PathDirLink).filter(PathDirLink.path_id==bin_path.id).first()
|
parent_dir=session.query(Dir).join(PathDirLink).filter(PathDirLink.path_id==bin_path.id).first()
|
||||||
|
|
||||||
print( f"need to keep this (ind): {del_me.in_dir.in_path.path_prefix}" )
|
print( f"need to keep this (ind): {del_me.in_dir.in_path.path_prefix}" )
|
||||||
# if we ever need to undelete, lets remember this file's original path
|
# if we ever need to restore, lets remember this file's original path
|
||||||
# (use a string in case the dir/path is ever deleted from FS (and then DB) and we need to recreate)
|
# (use a string in case the dir/path is ever deleted from FS (and then DB) and we need to recreate)
|
||||||
del_file_details = DelFile( file_eid=del_me.id, orig_path_prefix=del_me.in_dir.in_path.path_prefix )
|
del_file_details = DelFile( file_eid=del_me.id, orig_path_prefix=del_me.in_dir.in_path.path_prefix )
|
||||||
session.add( del_file_details )
|
session.add( del_file_details )
|
||||||
@@ -1178,14 +1178,14 @@ def JobDeleteFiles(job):
|
|||||||
FinishJob(job, f"Finished deleting selected file(s)")
|
FinishJob(job, f"Finished deleting selected file(s)")
|
||||||
return
|
return
|
||||||
|
|
||||||
def JobUnDeleteFiles(job):
|
def JobRestoreFiles(job):
|
||||||
AddLogForJob(job, f"INFO: Starting Undelete Files job...")
|
AddLogForJob(job, f"INFO: Starting Restore Files job...")
|
||||||
for jex in job.extra:
|
for jex in job.extra:
|
||||||
if 'eid-' in jex.name:
|
if 'eid-' in jex.name:
|
||||||
restore_me=session.query(Entry).join(File).filter(Entry.id==jex.value).first()
|
restore_me=session.query(Entry).join(File).filter(Entry.id==jex.value).first()
|
||||||
AddLogForJob(job, f"INFO: Removing file: #{restore_me.id} -> {restore_me}" )
|
AddLogForJob(job, f"INFO: Removing file: #{restore_me.id} -> {restore_me}" )
|
||||||
UnDeleteFile(job,restore_me)
|
RestoreFile(job,restore_me)
|
||||||
FinishJob(job, f"Finished undeleting selected file(s)")
|
FinishJob(job, f"Finished restoring selected file(s)")
|
||||||
return
|
return
|
||||||
|
|
||||||
def ValidateSettingsPaths():
|
def ValidateSettingsPaths():
|
||||||
|
|||||||
@@ -246,10 +246,10 @@ function DelDBox(del_or_undel)
|
|||||||
if( del_or_undel == "Delete" )
|
if( del_or_undel == "Delete" )
|
||||||
div+="'/delete_files', "
|
div+="'/delete_files', "
|
||||||
else
|
else
|
||||||
div+="'/undelete_files', "
|
div+="'/restore_files', "
|
||||||
div+=`
|
div+=`
|
||||||
data: to_del,
|
data: to_del,
|
||||||
success: function(data){ console.log('Delete File(s) succeeded - TODO: need a FE msg' ); return false; } })" class="btn btn-outline-danger col-lg-2">Ok</button>
|
success: function(data){ console.log('Delete/Restore File(s) succeeded - TODO: need a FE msg' ); return false; } })" class="btn btn-outline-danger col-lg-2">Ok</button>
|
||||||
</div>
|
</div>
|
||||||
`
|
`
|
||||||
$('#dbox-content').html(div)
|
$('#dbox-content').html(div)
|
||||||
@@ -340,7 +340,7 @@ $.contextMenu({
|
|||||||
view: { name: "View File" },
|
view: { name: "View File" },
|
||||||
sep: "---",
|
sep: "---",
|
||||||
move: { name: "Move selected file(s) to new storage folder" },
|
move: { name: "Move selected file(s) to new storage folder" },
|
||||||
undel: { name: "Undelete Selected file(s)" }
|
undel: { name: "Restore selected file(s)" }
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
item_list = {
|
item_list = {
|
||||||
|
|||||||
Reference in New Issue
Block a user