Moodle
  1. Moodle
  2. MDL-32999 META: Files UI Stage 2 polishing in master
  3. MDL-33136

Drag/dropping a file with the same name should allow you to replace a file in filemanager

    Details

    • Type: Sub-task Sub-task
    • Status: Closed
    • Priority: Blocker Blocker
    • Resolution: Fixed
    • Affects Version/s: 2.3
    • Fix Version/s: 2.3
    • Component/s: Filepicker
    • Labels:
    • Testing Instructions:
      Hide

      To test this you should set up the following:
      On your computer, two folders (which I will refer to as A & B), each with 3 images in (3 images in each folder can be the same, but it is helpful to have different images in the two folders), named:

      • file.jpg
      • file_1.jpg
      • file_2.jpg
      • file_3.jpg
      • bigfile.jpg (a file larger than the currently configured max file size)

      A Moodle forum, with max attachments set to 3.
      Start a new post, then try to drag & drop the following combinations of files (reload the page, as appropriate, in between tests to reset the filemanager):

      1. 'file' from A; then 'file' from B - expect options: overwrite, cancel, rename to 'file_1.jpg'
      1.a) click cancel - expect: no file uploaded
      1.b) click overwrite - expect: thumbnail of 'file.jpg' updated to reflect replacement file
      1.c) click rename - expect: files 'file' and 'file_1' in filemanager, with appropriate thumbnails

      2. 'file' from A; then 'file' and 'file_1' (at the same time) from B - expect option to rename 'file' to 'file_2.jpg'
      2.a) click cancel - expect: no file uploaded
      2.b) click overwrite - expect: thumbnail of 'file' updated, 'file_1' added
      2.c) click rename - expect: files 'file', 'file_1' and 'file_2' all present in filemanager

      3. 'file', 'file_1' from A; 'file', 'file_1' from B (at the same time) - expect options: overwrite, overwrite all, cancel, rename to 'file_2', rename all
      3.a) click cancel - expect: no file uploaded
      3.b) click overwrite all - expect: 'file' and 'file_1' thumbnails updated
      3.c) click rename all - expect: error - you are allowed to upload a maximum of 3 files to this item (and no files uploaded)
      3.d) click overwrite - expect options: overwrite, cancel, rename to 'file_2'
      3.d)i) click cancel - expect: no files uploaded
      3.d)ii) click overwrite - expect: 'file' and 'file_1' thumbnails updated
      3.d)iii) click rename - expect: 'file' thumbnail updated, 'file_1' unchanged, 'file_2' uploaded
      3.e) click rename - expect options: overwrite, cancel (no rename option, as that would exceed file limit)
      3.e)i) click cancel - expect: no files uploaded
      3.e)ii) click overwrite - expect: 'file' unchanged, 'file_1' thumbnail updated, 'file_2' created

      4. 'file', 'file_1', 'file_2', 'file_3' from A (at same time and individually) - expect: error - you are allowed to upload a maximum of 3 files to this item (and no files uploaded)

      5. 'file', 'file_1', 'file_2' from A; 'file_2', 'file_3' (at same time) from B - expect: error - you are allowed to upload a maximum of 3 files to this item (and no files uploaded)

      6. 'file', 'file_1', 'file_2' from A; 'file', 'file_1', 'file_2' (at same time) from B - expect: overwrite, overwrite all, cancel
      6.a) click overwrite all - expect: all thumbnails updated
      6.b) click cancel - expect: no files updated
      6.c) click overwrite, then cancel - expect: no files updated

      7. 'bigfile' from A - expect: the file bigfile.jpg has exceeded the maximum size allowed (and no files uploaded)

      8. 'file', 'bigfile', 'file_1' (at same time) from A - expect: the file bigfile.jpg has exceeded the maximum size allowed (and no files uploaded)

      9. Increase the attachments limit to 8 files (or create a 'folder' resource) and then try dragging, 'file', 'file_1', 'file_2' from A; then 'file', 'file_1', 'file_2', 'file_3' from B. Click rename in each case and make sure the following renames happen:
      file => file_4, file_1 => file_5, file_2 => file_6 (file_3 should upload without any renaming needed)

      Are you still reading this? If so, congratulations! You've probably tested most situations that can occur (apart from any I've missed, so try a few other random combinations of uploading, deleting, overwriting, renaming, etc. to see what happens).

      Note: I've probably got some of the wording for the errors slightly wrong, as I'm writing this without looking at the code, but the gist of them should be about right

      Show
      To test this you should set up the following: On your computer, two folders (which I will refer to as A & B), each with 3 images in (3 images in each folder can be the same, but it is helpful to have different images in the two folders), named: file.jpg file_1.jpg file_2.jpg file_3.jpg bigfile.jpg (a file larger than the currently configured max file size) A Moodle forum, with max attachments set to 3. Start a new post, then try to drag & drop the following combinations of files (reload the page, as appropriate, in between tests to reset the filemanager): 1. 'file' from A; then 'file' from B - expect options: overwrite, cancel, rename to 'file_1.jpg' 1.a) click cancel - expect: no file uploaded 1.b) click overwrite - expect: thumbnail of 'file.jpg' updated to reflect replacement file 1.c) click rename - expect: files 'file' and 'file_1' in filemanager, with appropriate thumbnails 2. 'file' from A; then 'file' and 'file_1' (at the same time) from B - expect option to rename 'file' to 'file_2.jpg' 2.a) click cancel - expect: no file uploaded 2.b) click overwrite - expect: thumbnail of 'file' updated, 'file_1' added 2.c) click rename - expect: files 'file', 'file_1' and 'file_2' all present in filemanager 3. 'file', 'file_1' from A; 'file', 'file_1' from B (at the same time) - expect options: overwrite, overwrite all, cancel, rename to 'file_2', rename all 3.a) click cancel - expect: no file uploaded 3.b) click overwrite all - expect: 'file' and 'file_1' thumbnails updated 3.c) click rename all - expect: error - you are allowed to upload a maximum of 3 files to this item (and no files uploaded) 3.d) click overwrite - expect options: overwrite, cancel, rename to 'file_2' 3.d)i) click cancel - expect: no files uploaded 3.d)ii) click overwrite - expect: 'file' and 'file_1' thumbnails updated 3.d)iii) click rename - expect: 'file' thumbnail updated, 'file_1' unchanged, 'file_2' uploaded 3.e) click rename - expect options: overwrite, cancel (no rename option, as that would exceed file limit) 3.e)i) click cancel - expect: no files uploaded 3.e)ii) click overwrite - expect: 'file' unchanged, 'file_1' thumbnail updated, 'file_2' created 4. 'file', 'file_1', 'file_2', 'file_3' from A (at same time and individually) - expect: error - you are allowed to upload a maximum of 3 files to this item (and no files uploaded) 5. 'file', 'file_1', 'file_2' from A; 'file_2', 'file_3' (at same time) from B - expect: error - you are allowed to upload a maximum of 3 files to this item (and no files uploaded) 6. 'file', 'file_1', 'file_2' from A; 'file', 'file_1', 'file_2' (at same time) from B - expect: overwrite, overwrite all, cancel 6.a) click overwrite all - expect: all thumbnails updated 6.b) click cancel - expect: no files updated 6.c) click overwrite, then cancel - expect: no files updated 7. 'bigfile' from A - expect: the file bigfile.jpg has exceeded the maximum size allowed (and no files uploaded) 8. 'file', 'bigfile', 'file_1' (at same time) from A - expect: the file bigfile.jpg has exceeded the maximum size allowed (and no files uploaded) 9. Increase the attachments limit to 8 files (or create a 'folder' resource) and then try dragging, 'file', 'file_1', 'file_2' from A; then 'file', 'file_1', 'file_2', 'file_3' from B. Click rename in each case and make sure the following renames happen: file => file_4, file_1 => file_5, file_2 => file_6 (file_3 should upload without any renaming needed) Are you still reading this? If so, congratulations! You've probably tested most situations that can occur (apart from any I've missed, so try a few other random combinations of uploading, deleting, overwriting, renaming, etc. to see what happens). Note: I've probably got some of the wording for the errors slightly wrong, as I'm writing this without looking at the code, but the gist of them should be about right
    • Affected Branches:
      MOODLE_23_STABLE
    • Fixed Branches:
      MOODLE_23_STABLE
    • Pull Master Branch:
      MDL-33136_dndfilemanager_replace_file
    • Rank:
      40997

      Description

      We need to make sure drag and dropping file "examplename" into a filemanager that already has an "examplename" will throw up the little dialog with options to "Overwrite or save as examplename_2", exactly like filepicker does.

      (Marina, sorry, couldn't find an existing issue for this)

        Issue Links

          Activity

          Hide
          Martin Dougiamas added a comment -

          Assigning to Davo to have a look at because Marina is swamped and there are more issues to this than meets the eye. She'll explain.

          Show
          Martin Dougiamas added a comment - Assigning to Davo to have a look at because Marina is swamped and there are more issues to this than meets the eye. She'll explain.
          Hide
          Marina Glancy added a comment - - edited

          This is what I have so far:

          https://github.com/marinaglancy/moodle/compare/master...wip-MDL-33136-master

          files uploads need to be done one after another, not simultaneously
          and the files limit needs to be checked after each upload
          because if we overwrite - the number of files does not change

          I have not figured out yet how to insert the dialogue from filepicker into dndupload

          Show
          Marina Glancy added a comment - - edited This is what I have so far: https://github.com/marinaglancy/moodle/compare/master...wip-MDL-33136-master files uploads need to be done one after another, not simultaneously and the files limit needs to be checked after each upload because if we overwrite - the number of files does not change I have not figured out yet how to insert the dialogue from filepicker into dndupload
          Hide
          Davo Smith added a comment -

          Just trying to clarify the workflow here:

          For each file the user drops (at once, or separately):

          1. upload the file
          2. find out if there is a name clash (temporarily renaming the newly uploaded file to something that doesn't clash)
          3. ask the user what they want to do
          • for overwrite, we send a message back to the server to delete the original and rename the new file
          • for copy we do nothing (as the server already renamed for us)
          1. If we went for 'copy' we then check the file count and, if we have now exceeded the file count, abandon the whole upload and try to revert all the files back to their original states (including recovering any files we deleted due to overwrites) - this is important to keep the 'all or nothing' state of multi-file drag and drop.

          Maybe a more practical workflow might look like this:

          1. store a list of filenames in the current folder within the javascript (passed along with the display refresh)
          2. when the user drops files, precheck all the new filenames against this list and pop up as many 'rename/overwrite/cancel' dialogs as needed (checking that the proposed rename neither clashes with an existing file, nor one of the renames the user has already agreed to)
          3. once the user has finished responding to these, count the number of files that are 'rename' or just 'upload (with no clashes)' and check against the max files limit and notify the user if the limit is exceeded
          4. get on with the upload, indicating, for each file, whether the file is a 'noclash/rename' (as we do the rename before sending it, so there will be no longer a clash) or 'overwrite' - obviously we will need some extra checks on the server to make sure we don't go over the file limit.

          Thinking this through, a 'noclash/rename' upload that turned out to clash with an existing file should always result in the file being rejected and an error appearing (it is either a bug to be fixed, or a hacking attempt with modified JS). An 'overwrite', where the original isn't found on the server, should be safe to proceed, as long as we continue to monitor the maxfiles limit on the server side (the worst outcome of an incorrect 'overwrite' is that only some of the files dragged in one go would be uploaded, if we reached the maxfiles limit, but this outcome would only happen if there was a bug in the JS, or someone had deliberately hacked it locally to try and work around the limits).

          How does that sound as a plan?

          Show
          Davo Smith added a comment - Just trying to clarify the workflow here: For each file the user drops (at once, or separately): upload the file find out if there is a name clash (temporarily renaming the newly uploaded file to something that doesn't clash) ask the user what they want to do for overwrite, we send a message back to the server to delete the original and rename the new file for copy we do nothing (as the server already renamed for us) If we went for 'copy' we then check the file count and, if we have now exceeded the file count, abandon the whole upload and try to revert all the files back to their original states (including recovering any files we deleted due to overwrites) - this is important to keep the 'all or nothing' state of multi-file drag and drop. Maybe a more practical workflow might look like this: store a list of filenames in the current folder within the javascript (passed along with the display refresh) when the user drops files, precheck all the new filenames against this list and pop up as many 'rename/overwrite/cancel' dialogs as needed (checking that the proposed rename neither clashes with an existing file, nor one of the renames the user has already agreed to) once the user has finished responding to these, count the number of files that are 'rename' or just 'upload (with no clashes)' and check against the max files limit and notify the user if the limit is exceeded get on with the upload, indicating, for each file, whether the file is a 'noclash/rename' (as we do the rename before sending it, so there will be no longer a clash) or 'overwrite' - obviously we will need some extra checks on the server to make sure we don't go over the file limit. Thinking this through, a 'noclash/rename' upload that turned out to clash with an existing file should always result in the file being rejected and an error appearing (it is either a bug to be fixed, or a hacking attempt with modified JS). An 'overwrite', where the original isn't found on the server, should be safe to proceed, as long as we continue to monitor the maxfiles limit on the server side (the worst outcome of an incorrect 'overwrite' is that only some of the files dragged in one go would be uploaded, if we reached the maxfiles limit, but this outcome would only happen if there was a bug in the JS, or someone had deliberately hacked it locally to try and work around the limits). How does that sound as a plan?
          Hide
          Martin Dougiamas added a comment - - edited

          Amazing isn't it? Something so simple becomes something so complex. Tracking the clashes through multiple renames is a bit of nightmare and as you say there can still be errors.

          How about this simpler solution:

          Check all the incoming files against all the existing files:

          1. If there are no clashes at all then proceed as now.
          2. If there are ANY clashes at all then print a dialog like this

          These files have the same names as existing files: catdog.jpg wubzee.jpg
          Please drag these files in separately to process them properly.

          And then cancel the whole thing (or do all the files except those exceptions). I can't decide which would be better.

          Show
          Martin Dougiamas added a comment - - edited Amazing isn't it? Something so simple becomes something so complex. Tracking the clashes through multiple renames is a bit of nightmare and as you say there can still be errors. How about this simpler solution: Check all the incoming files against all the existing files: If there are no clashes at all then proceed as now. If there are ANY clashes at all then print a dialog like this These files have the same names as existing files: catdog.jpg wubzee.jpg Please drag these files in separately to process them properly. And then cancel the whole thing (or do all the files except those exceptions). I can't decide which would be better.
          Hide
          Davo Smith added a comment -

          Cancel all files is better than upload all the ones which don't clash.

          However, on this matter, from the usability point of view I much prefer the idea of being able to drag a whole bunch of files and get 'rename / overwrite / cancel' options for each of the relevant files, rather than being forced to drag individual clashing files.

          This is similar to what happens on a course if you drag multiple files and you need to ask for user input on multiple ones - it asks for each one in turn (try dragging 3 zip files onto a course and see what happens).

          I don't think the multiple-renames is a real issue - three lists:

          1. current server files
          2. uploading files
          3. files with a name clash
          • Loop through the uploading files, comparing with 1. and adding to list 2. or 3. depending on whether or not a clash is found.
          • Then loop through 3., pick a name that doesn't clash with 1. or 2. (increment suffix until not found in 1 or 2), ask the user what to do - if it's a rename add to 2., if not, the name is already in 1., so don't worry about it.
          Show
          Davo Smith added a comment - Cancel all files is better than upload all the ones which don't clash. However, on this matter, from the usability point of view I much prefer the idea of being able to drag a whole bunch of files and get 'rename / overwrite / cancel' options for each of the relevant files, rather than being forced to drag individual clashing files. This is similar to what happens on a course if you drag multiple files and you need to ask for user input on multiple ones - it asks for each one in turn (try dragging 3 zip files onto a course and see what happens). I don't think the multiple-renames is a real issue - three lists: current server files uploading files files with a name clash Loop through the uploading files, comparing with 1. and adding to list 2. or 3. depending on whether or not a clash is found. Then loop through 3., pick a name that doesn't clash with 1. or 2. (increment suffix until not found in 1 or 2), ask the user what to do - if it's a rename add to 2., if not, the name is already in 1., so don't worry about it.
          Hide
          Martin Dougiamas added a comment -

          Just tried the multiple zip upload and that does look pretty good.

          That logic looks sensible too.

          I was just worried about a lot of work for a case that wouldn't happen too often, but if you are able to do that then cool!

          Show
          Martin Dougiamas added a comment - Just tried the multiple zip upload and that does look pretty good. That logic looks sensible too. I was just worried about a lot of work for a case that wouldn't happen too often, but if you are able to do that then cool!
          Hide
          Martin Dougiamas added a comment -

          If it's easy can I just suggest a "Overwrite all" button on the first of those dialogs to bypass all the following ones?

          Show
          Martin Dougiamas added a comment - If it's easy can I just suggest a "Overwrite all" button on the first of those dialogs to bypass all the following ones?
          Hide
          Davo Smith added a comment -

          OK, I will try and work on a fix for this - I can't promise it today, but will try to get done by the end of the weekend.

          Show
          Davo Smith added a comment - OK, I will try and work on a fix for this - I can't promise it today, but will try to get done by the end of the weekend.
          Hide
          Davo Smith added a comment -

          The user is now presented with a dialog for each file in the upload that has the same name as one of the existing files in the current folder in the filemanager element. They can overwrite the original, rename the file (names automatically generated) or cancel the entire upload.

          If there is more than one name clash, then the options 'overwrite all' and 'rename all' are shown.

          The maxfiles limit is honoured, triggering a pop-up message and cancelling the download, as soon as it can be determined that there are too many files being uploaded (which may not be until after the user has chosen 'rename' instead of 'overwrite'). Note: the 'rename' option is hidden, once the maximum number of files has been reached.

          I've also replaced the 'alerts' (when exceeding maxfiles or maxbytes) with YUI popups.

          I'll write some testing instructions later, as I need a break now (and there are far too many different situations for me to write out quickly).

          Show
          Davo Smith added a comment - The user is now presented with a dialog for each file in the upload that has the same name as one of the existing files in the current folder in the filemanager element. They can overwrite the original, rename the file (names automatically generated) or cancel the entire upload. If there is more than one name clash, then the options 'overwrite all' and 'rename all' are shown. The maxfiles limit is honoured, triggering a pop-up message and cancelling the download, as soon as it can be determined that there are too many files being uploaded (which may not be until after the user has chosen 'rename' instead of 'overwrite'). Note: the 'rename' option is hidden, once the maximum number of files has been reached. I've also replaced the 'alerts' (when exceeding maxfiles or maxbytes) with YUI popups. I'll write some testing instructions later, as I need a break now (and there are far too many different situations for me to write out quickly).
          Hide
          Davo Smith added a comment -

          Testing instructions added (hopefully complete!)

          Show
          Davo Smith added a comment - Testing instructions added (hopefully complete!)
          Hide
          Martin Dougiamas added a comment -

          This worked beautifully for me on Chrome and Firefox in all kinds of mixed scenarios, and always did what I expected. Great job!

          Only niggle is that the dialog buttons are unwieldy but I appreciated the difficulty of doing anything else and I would not let that stop this going in.

          I only looked at the code cursorily (there's a lot of it!) but it looks OK to me.

          This is a big usability improvement and my +3 for integration!

          Show
          Martin Dougiamas added a comment - This worked beautifully for me on Chrome and Firefox in all kinds of mixed scenarios, and always did what I expected. Great job! Only niggle is that the dialog buttons are unwieldy but I appreciated the difficulty of doing anything else and I would not let that stop this going in. I only looked at the code cursorily (there's a lot of it!) but it looks OK to me. This is a big usability improvement and my +3 for integration!
          Hide
          Marina Glancy added a comment -

          Davo, looks great and in such a prompt response! Thanks!

          There is one regression: 'Overwrite' and 'Cancel' buttons in NON-DND overwrite dialogue stopped working. And the filename for 'Rename' button is built differently from dnd there (I like your version more!). This is both in case of uploading a file and picking it from repository. I noticed you changed process_upload in back end, this is probably connected. The button 'Rename' works but does not refresh the files list any more.
          (By the way, there are bugs MDL-33719 and MDL-33802 that seem to be duplicates, that say that list is not refreshed when overwriting. If you could fix it as well would be great)

          And a couple comments from code/ui review:

          I think we should add that 'core_dndupload' requires 'core_filepicker'. Although there is no problem now because dndupload is only called with either filepicker or filemanager (who requires filepicker).

          There are a couple commented console.log() calls left in the code

          Can I suggest one little change to UI?
          When name conflict occurs I would show:

          [Overwrite] [Rename to ...] [Skip] [Cancel]
          [ ] Don't ask again

          Except that it would make a window smaller, at the moment there is no possibility to skip a file and continue uploading others

          Show
          Marina Glancy added a comment - Davo, looks great and in such a prompt response! Thanks! There is one regression: 'Overwrite' and 'Cancel' buttons in NON-DND overwrite dialogue stopped working. And the filename for 'Rename' button is built differently from dnd there (I like your version more!). This is both in case of uploading a file and picking it from repository. I noticed you changed process_upload in back end, this is probably connected. The button 'Rename' works but does not refresh the files list any more. (By the way, there are bugs MDL-33719 and MDL-33802 that seem to be duplicates, that say that list is not refreshed when overwriting. If you could fix it as well would be great) And a couple comments from code/ui review: I think we should add that 'core_dndupload' requires 'core_filepicker'. Although there is no problem now because dndupload is only called with either filepicker or filemanager (who requires filepicker). There are a couple commented console.log() calls left in the code Can I suggest one little change to UI? When name conflict occurs I would show: [Overwrite] [Rename to ...] [Skip] [Cancel] [ ] Don't ask again Except that it would make a window smaller, at the moment there is no possibility to skip a file and continue uploading others
          Hide
          Dan Poltawski added a comment -

          Davo, i'm waiting on this a bit for your input. I'll try and be around in UK time today.

          Show
          Dan Poltawski added a comment - Davo, i'm waiting on this a bit for your input. I'll try and be around in UK time today.
          Hide
          Davo Smith added a comment -

          Taking a look at the moment

          Show
          Davo Smith added a comment - Taking a look at the moment
          Hide
          Davo Smith added a comment -

          Regression fixed - stupid mistake on my behalf, I'd managed to delete a line from repository/filepicker.js, rather than the copy of the function which I'd put into lib/form/dndupload.js

          Added 'core_filepicker' requirement to 'core_dndupload'

          I've removed the commented-out 'console.log' lines (I hadn't been quite sure if they were still wanted to make later debugging easier). I'm still not quite sure to do with the 'add_error' calls, when there is an error on the server side - should these just become 'alerts' again (not pretty, but a server connection error isn't pretty anyway and should be a rare occurrence, so maybe not an issue)?

          'Skip button' - I personally prefer to keep an entire drag & drop operation atomic: either all the files are uploaded or none are. I also think that 'overwrite all' and 'rename all' are clearer (and easier to code!) than a 'don't ask again' box (it makes it very clear exactly what operation will be done to the rest of the files, and also makes it clear that this only applies to the current operation, not a global setting that the user will be stuck with forever).

          I've tweaked the 'rename all' button, so it does not show if the 'rename' button is already hidden.

          In an extra commit, I've added an alternative layout for the dialogue box, that puts the 'overwrite all' and 'rename all' buttons on a second line, instead of extending the original line. This reduces the width of the box and makes the layout a bit more consistent with the version without the 'all' buttons. The only downside is it looks a little odd when the 'rename' buttons are hidden (but odd in a consistent way, which I think is OK).

          Show
          Davo Smith added a comment - Regression fixed - stupid mistake on my behalf, I'd managed to delete a line from repository/filepicker.js, rather than the copy of the function which I'd put into lib/form/dndupload.js Added 'core_filepicker' requirement to 'core_dndupload' I've removed the commented-out 'console.log' lines (I hadn't been quite sure if they were still wanted to make later debugging easier). I'm still not quite sure to do with the 'add_error' calls, when there is an error on the server side - should these just become 'alerts' again (not pretty, but a server connection error isn't pretty anyway and should be a rare occurrence, so maybe not an issue)? 'Skip button' - I personally prefer to keep an entire drag & drop operation atomic: either all the files are uploaded or none are. I also think that 'overwrite all' and 'rename all' are clearer (and easier to code!) than a 'don't ask again' box (it makes it very clear exactly what operation will be done to the rest of the files, and also makes it clear that this only applies to the current operation, not a global setting that the user will be stuck with forever). I've tweaked the 'rename all' button, so it does not show if the 'rename' button is already hidden. In an extra commit, I've added an alternative layout for the dialogue box, that puts the 'overwrite all' and 'rename all' buttons on a second line, instead of extending the original line. This reduces the width of the box and makes the layout a bit more consistent with the version without the 'all' buttons. The only downside is it looks a little odd when the 'rename' buttons are hidden (but odd in a consistent way, which I think is OK).
          Hide
          Davo Smith added a comment -

          Tweaking testing instructions, as 'rename all' button now hidden when 'rename' button is hidden.

          Show
          Davo Smith added a comment - Tweaking testing instructions, as 'rename all' button now hidden when 'rename' button is hidden.
          Hide
          Dan Poltawski added a comment -

          I've integrated this, lets have some major testing action!!

          Show
          Dan Poltawski added a comment - I've integrated this, lets have some major testing action!!
          Hide
          Adrian Greeve added a comment -

          Thanks for the thorough test instructions. I tried out the different iterations of adding, deleting, renaming and overwriting files. I didn't come across any problems. Everything is working as it should.
          Thanks

          Show
          Adrian Greeve added a comment - Thanks for the thorough test instructions. I tried out the different iterations of adding, deleting, renaming and overwriting files. I didn't come across any problems. Everything is working as it should. Thanks
          Hide
          Eloy Lafuente (stronk7) added a comment -

          And this has been incorporated to all the weekly builds and also, to Moodle 2.3 Release Candidate 1, yay!

          Many, many thanks for your hard work!

          Ciao

          Show
          Eloy Lafuente (stronk7) added a comment - And this has been incorporated to all the weekly builds and also, to Moodle 2.3 Release Candidate 1, yay! Many, many thanks for your hard work! Ciao

            People

            • Votes:
              9 Vote for this issue
              Watchers:
              8 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: