mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-05-08 19:42:15 +09:00
Patch exec_json() and related functions to support file uploads
This commit is contained in:
parent
0a625662f7
commit
d45c116c56
2 changed files with 35 additions and 6 deletions
|
|
@ -215,7 +215,12 @@
|
||||||
var action_parts = action.split('.');
|
var action_parts = action.split('.');
|
||||||
var request_info;
|
var request_info;
|
||||||
if (action === 'raw') {
|
if (action === 'raw') {
|
||||||
request_info = 'RAW FORM SUBMISSION';
|
if (params instanceof FormData) {
|
||||||
|
request_info = params.get('module') + '.' + params.get('act');
|
||||||
|
} else {
|
||||||
|
request_info = 'RAW FORM SUBMISSION';
|
||||||
|
}
|
||||||
|
console.log(request_info);
|
||||||
} else {
|
} else {
|
||||||
params = params ? ($.isArray(params) ? arr2obj(params) : params) : {};
|
params = params ? ($.isArray(params) ? arr2obj(params) : params) : {};
|
||||||
//if (action_parts.length != 2) return;
|
//if (action_parts.length != 2) return;
|
||||||
|
|
@ -342,7 +347,7 @@
|
||||||
|
|
||||||
// Send the AJAX request.
|
// Send the AJAX request.
|
||||||
try {
|
try {
|
||||||
$.ajax({
|
var args = {
|
||||||
type: "POST",
|
type: "POST",
|
||||||
dataType: "json",
|
dataType: "json",
|
||||||
url: url,
|
url: url,
|
||||||
|
|
@ -351,7 +356,11 @@
|
||||||
headers : headers,
|
headers : headers,
|
||||||
success : successHandler,
|
success : successHandler,
|
||||||
error : errorHandler
|
error : errorHandler
|
||||||
});
|
};
|
||||||
|
if (params instanceof FormData) {
|
||||||
|
args.contentType = false;
|
||||||
|
}
|
||||||
|
$.ajax(args);
|
||||||
} catch(e) {
|
} catch(e) {
|
||||||
alert(e);
|
alert(e);
|
||||||
return;
|
return;
|
||||||
|
|
|
||||||
|
|
@ -415,6 +415,7 @@ function legacy_filter(filter_name, form, module, act, callback, responses, conf
|
||||||
|
|
||||||
args[0] = filter_name;
|
args[0] = filter_name;
|
||||||
args[1] = function(f) {
|
args[1] = function(f) {
|
||||||
|
var hasFile = false;
|
||||||
var params = {}, res = [], elms = f.elements, data = $(f).serializeArray();
|
var params = {}, res = [], elms = f.elements, data = $(f).serializeArray();
|
||||||
$.each(data, function(i, field) {
|
$.each(data, function(i, field) {
|
||||||
var v = $.trim(field.value), n = field.name;
|
var v = $.trim(field.value), n = field.name;
|
||||||
|
|
@ -435,11 +436,20 @@ function legacy_filter(filter_name, form, module, act, callback, responses, conf
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
$(f).find('input[type=file][name^=extra_vars]').each(function() {
|
||||||
|
if (this.files && this.files[0]) {
|
||||||
|
params[this.name] = this.files[0];
|
||||||
|
hasFile = true;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
if (confirm_msg && !confirm(confirm_msg)) return false;
|
if (confirm_msg && !confirm(confirm_msg)) return false;
|
||||||
|
|
||||||
//exec_xml(module, act, params, callback, responses, params, form);
|
params['module'] = module;
|
||||||
|
params['act'] = act;
|
||||||
params['_rx_ajax_compat'] = 'XMLRPC';
|
params['_rx_ajax_compat'] = 'XMLRPC';
|
||||||
exec_json(module + '.' + act, params, function(result) {
|
|
||||||
|
var callback_wrapper = function(result) {
|
||||||
if (!result) {
|
if (!result) {
|
||||||
result = {};
|
result = {};
|
||||||
}
|
}
|
||||||
|
|
@ -454,7 +464,17 @@ function legacy_filter(filter_name, form, module, act, callback, responses, conf
|
||||||
});
|
});
|
||||||
callback(filtered_result, responses, params, form);
|
callback(filtered_result, responses, params, form);
|
||||||
}
|
}
|
||||||
});
|
};
|
||||||
|
|
||||||
|
if (!hasFile) {
|
||||||
|
exec_json(module + '.' + act, params, callback_wrapper);
|
||||||
|
} else {
|
||||||
|
var fd = new FormData();
|
||||||
|
for (let key in params) {
|
||||||
|
fd.append(key, params[key]);
|
||||||
|
}
|
||||||
|
exec_json('raw', fd, callback_wrapper);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
v.cast('ADD_CALLBACK', args);
|
v.cast('ADD_CALLBACK', args);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue