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