From 4421da0d1d3782e7464b436401a404535e620721 Mon Sep 17 00:00:00 2001 From: Damien De Paoli Date: Sun, 26 Oct 2025 13:32:31 +1100 Subject: [PATCH] make move_files have EntryAmendments, do not remove from the UI instantly, and handle just like delete_files, remove restriction on forcing the page to go back to / on search, with new logic its not an issue, also force MoveDBox to start with Storage path rather than another, MOST moves should be to Storage, but should tweak this to be the opposite of current path type --- BUGs | 3 ++- files.py | 3 +-- internal/js/files_support.js | 42 +++++++++++++++--------------------- job.py | 4 +--- pa_job_manager.py | 1 + 5 files changed, 22 insertions(+), 31 deletions(-) diff --git a/BUGs b/BUGs index 23f7061..47afd0b 100644 --- a/BUGs +++ b/BUGs @@ -1,4 +1,5 @@ -### Next: 144 +### Next: 146 +BUG-145: when I selected a few files with ctrl-click, moved them, the end result was "no files in path" BUG-143: if I skip next fast enough in files_ip, it can get the warning about changes to entry list... (would have though I disabled next page until loaded) BUG-142: after transforming, the face data is still in the old spots, really should delete it / make it recalc BUG-141: can currently try to flip a video (in a highlighted group) diff --git a/files.py b/files.py index d470549..a558e72 100644 --- a/files.py +++ b/files.py @@ -674,8 +674,7 @@ def move_files(): for el in request.form: jex.append( JobExtra( name=f"{el}", value=str(request.form[el]) ) ) job=NewJob( name="move_files", num_files=0, wait_for=None, jex=jex, desc="to move selected file(s)" ) - # data is not used, but send response to trigger CheckForJobs() - return jsonify( job_id=job.id ) + return jsonify( job=job_schema.dump(job) ) @login_required @app.route("/view/", methods=["POST"]) diff --git a/internal/js/files_support.js b/internal/js/files_support.js index c6fcaf9..7a12a17 100644 --- a/internal/js/files_support.js +++ b/internal/js/files_support.js @@ -87,18 +87,6 @@ function GetExistingDirsAsDiv( dt, divname, ptype ) } ) } -// wrapper to do some clean up before POST to /move_files or /delete_files -// used to remove the highlighted item(s) && reset the numbering so highlighting continues to work -function MoveOrDelCleanUpUI() -{ - // remove the images being moved (so UI immediately 'sees' the move) - $("[name^=eid-]").each( function() { $('#'+$(this).attr('value')).remove() } ) - // reorder the images via ecnt again, so future highlighting can work - // document.mf_id=0; $('.figure').each( function() { $(this).attr('ecnt', document.mf_id ); document.mf_id++ } ) - $('#dbox').modal('hide') -} - - // show the DBox for a move file, includes all thumbnails of selected files to move // and a pre-populated folder to move them into, with text field to add a suffix function MoveDBox(path_details) @@ -116,7 +104,7 @@ function MoveDBox(path_details) yr=$('.highlight').first().attr('yr') dt=$('.highlight').first().attr('date') div+='
Use Existing Directory (in the chosen path):
' - GetExistingDirsAsDiv( dt, "existing", path_details[0].type.name ) + GetExistingDirsAsDiv( dt, "existing", 'Storage' ) div+=`
@@ -125,7 +113,7 @@ function MoveDBox(path_details) div+= '' div+= '' div+=` @@ -139,8 +127,16 @@ function MoveDBox(path_details)
- +
` @@ -183,7 +179,7 @@ function processAmendments( ams ) // function to add data for document.amendment based on id and amt // used when we transform several images in files_*, or single image in viewer // show the DBox for a delete/restore file, includes all thumbnails of selected files -// with appropriate coloured button to Delete or Restore files` +// with appropriate coloured button to Delete or Restore files function DelDBox(del_or_undel) { to_del = GetSelnAsData() @@ -208,10 +204,6 @@ function DelDBox(del_or_undel)