diff --git a/public/js/legacy/widgets/form/fields.js b/public/js/legacy/widgets/form/fields.js index 47a4f5fa44..2443487ecd 100644 --- a/public/js/legacy/widgets/form/fields.js +++ b/public/js/legacy/widgets/form/fields.js @@ -1202,14 +1202,15 @@ SelectField.prototype.make_input = function() { if(!cur_frm) return; var fl = cur_frm.doc.file_list; if(fl) { + fl = JSON.parse(fl); this.df.options = ''; - var fl = fl.split('\n'); - for(var i in fl) { - var fname = fl[i].split(',')[0]; + + for(var fname in fl) { if(fname.substr(0,4)!="http") fname = "files/" + fname; this.df.options += '\n' + fname; } + this.set_description(""); } else { this.df.options = '' diff --git a/public/js/wn/upload.js b/public/js/wn/upload.js index 25fda55db0..e21ab936b9 100644 --- a/public/js/wn/upload.js +++ b/public/js/wn/upload.js @@ -4,9 +4,6 @@ // parent, args, callback wn.upload = { make: function(opts) { - var id = wn.dom.set_unique_id(); - $(opts.parent).append(); - var $upload = $("
" + repl(wn._('Upload a file')+':
\

\ OR:

\ @@ -15,9 +12,8 @@ wn.upload = { + '


\
', { - id: id, action: wn.request.url - })).appendTo(opts.parent) + })).appendTo(opts.parent); // get the first file @@ -43,16 +39,12 @@ wn.upload = { }) }, upload_file: function(fileobj, args, callback) { - if(!fileobj && !args.file_url) { + if(!fileobj && !args.file_url) { msgprint(_("Please attach a file or set a URL")); return; } - - var freader = new FileReader(); - freader.onload = function() { - args.filedata = freader.result.split(",")[1]; - args.filename = fileobj.name; + var _upload_file = function() { var msgbox = msgprint(wn._("Uploading...")); wn.call({ "method": "uploadfile", @@ -62,10 +54,23 @@ wn.upload = { if(r.exc) { msgprint("There were errors in uploading."); } - callback(r.message, fileobj.name, r); + callback(r.message, args.filename || args.file_url, r); } }); } - freader.readAsDataURL(fileobj); + + if(args.file_url) { + _upload_file(); + } else { + var freader = new FileReader(); + + freader.onload = function() { + args.filename = fileobj.name; + args.filedata = freader.result.split(",")[1]; + _upload_file(); + }; + + freader.readAsDataURL(fileobj); + } } } \ No newline at end of file diff --git a/webnotes/utils/file_manager.py b/webnotes/utils/file_manager.py index 44657ba378..b287f25f4f 100644 --- a/webnotes/utils/file_manager.py +++ b/webnotes/utils/file_manager.py @@ -124,7 +124,7 @@ def get_new_fname_based_on_version(files_path, fname): versions.sort() if "-" in versions[-1]: - version = int(versions.split("-")[-1]) or 1 + version = int(versions[-1].split("-")[-1]) or 1 else: version = 1 diff --git a/webnotes/widgets/form/save.py b/webnotes/widgets/form/save.py index 14ad5c07b9..c83bca5734 100644 --- a/webnotes/widgets/form/save.py +++ b/webnotes/widgets/form/save.py @@ -58,6 +58,9 @@ def cancel(doctype=None, name=None): raise e def send_updated_docs(wrapper): + from load import add_file_list + add_file_list(wrapper.doc.doctype, wrapper.doc.name, wrapper.doclist) + webnotes.response['main_doc_name'] = wrapper.doc.name webnotes.response['doctype'] = wrapper.doc.doctype webnotes.response['docname'] = wrapper.doc.name