From 04cbea2cd61a504bd53a8b1bf3dfaf64e3af26ac Mon Sep 17 00:00:00 2001 From: Frederic Massart Date: Mon, 25 Feb 2013 20:23:54 +0800 Subject: [PATCH] MDL-36900 files: D&D upload uses new file name increment function --- lib/form/dndupload.js | 36 ++++++------------------------------ 1 file changed, 6 insertions(+), 30 deletions(-) diff --git a/lib/form/dndupload.js b/lib/form/dndupload.js index e6a6ad37be5..4be065040c7 100644 --- a/lib/form/dndupload.js +++ b/lib/form/dndupload.js @@ -778,41 +778,17 @@ M.form_dndupload.init = function(Y, options) { }, /** - * Adds _NUMBER to the end of the filename and increments this number until - * a unique name is found + * Gets a unique file name + * * @param string filename * @return string the unique filename generated */ generate_unique_name: function(filename) { - // Split the filename into the basename + extension. - var extension; - var basename; - var dotpos = filename.lastIndexOf('.'); - if (dotpos == -1) { - basename = filename; - extension = ''; - } else { - basename = filename.substr(0, dotpos); - extension = filename.substr(dotpos, filename.length); - } - - // Look to see if the name already has (NN) at the end of it. - var number = 0; - var hasnumber = basename.match(/^(.*) \((\d+)\)$/); - if (hasnumber !== null) { - // Note the current number & remove it from the basename. - number = parseInt(hasnumber[2], 10); - basename = hasnumber[1]; - } - // Loop through increating numbers until a unique name is found. - var newname; - do { - number++; - newname = basename + ' (' + number + ')' + extension; - } while (this.has_name_clash(newname)); - - return newname; + while (this.has_name_clash(filename)) { + filename = increment_filename(filename); + } + return filename; }, /**