comment and attributes can passed to document uploaded by drag&drop

This commit is contained in:
Uwe Steinmann 2022-03-07 15:19:42 +01:00
parent 85f7332e06
commit 22b054f764
2 changed files with 58 additions and 0 deletions

View File

@ -777,6 +777,31 @@ function onAddClipboard(ev) { /* {{{ */
}
}
// formData - instance of FormData object
// data - object to post
SeedDMSUpload.getFormData = function(formData, data, previousKey) {
if (data instanceof Object) {
Object.keys(data).forEach(key => {
const value = data[key];
if (value instanceof Object && !Array.isArray(value)) {
return this.getFormData(formData, value, key);
}
if (previousKey) {
key = `${previousKey}[${key}]`;
}
if (Array.isArray(value)) {
value.forEach(val => {
formData.append(`${key}[]`, val);
});
} else {
formData.append(key, value);
}
});
} else {
formData.append(previousKey, data);
}
}
SeedDMSUpload.handleFileUpload = function(files,obj,statusbar) {
/* target is set for the quick upload area */
var target_id = obj.data('target');
@ -794,8 +819,12 @@ function onAddClipboard(ev) { /* {{{ */
fd.append('targettype', target_type);
fd.append('folderid', target_id);
fd.append('formtoken', obj.data('uploadformtoken'));
if (typeof obj.data('comment') !== 'undefined') {
fd.append('comment', obj.data('comment'));
}
fd.append('userfile', files[i]);
fd.append('command', 'uploaddocument');
this.getFormData(fd, obj.data('attributes'), 'attributes');
// fd.append('path', files[i].webkitRelativePath);
statusbar.parent().show();

View File

@ -808,6 +808,31 @@ function onAddClipboard(ev) { /* {{{ */
}
}
// formData - instance of FormData object
// data - object to post
SeedDMSUpload.getFormData = function(formData, data, previousKey) {
if (data instanceof Object) {
Object.keys(data).forEach(key => {
const value = data[key];
if (value instanceof Object && !Array.isArray(value)) {
return this.getFormData(formData, value, key);
}
if (previousKey) {
key = `${previousKey}[${key}]`;
}
if (Array.isArray(value)) {
value.forEach(val => {
formData.append(`${key}[]`, val);
});
} else {
formData.append(key, value);
}
});
} else {
formData.append(previousKey, data);
}
}
SeedDMSUpload.handleFileUpload = function(files,obj,statusbar) {
/* target is set for the quick upload area */
var target_id = obj.data('target');
@ -825,8 +850,12 @@ function onAddClipboard(ev) { /* {{{ */
fd.append('targettype', target_type);
fd.append('folderid', target_id);
fd.append('formtoken', obj.data('uploadformtoken'));
if (typeof obj.data('comment') !== 'undefined') {
fd.append('comment', obj.data('comment'));
}
fd.append('userfile', files[i]);
fd.append('command', 'uploaddocument');
this.getFormData(fd, obj.data('attributes'), 'attributes');
// fd.append('path', files[i].webkitRelativePath);
statusbar.parent().show();