all called functions can have functions options setable during init
function_options is a new object that will be passed on as the last parameter on all functions
This commit is contained in:
@@ -208,7 +208,7 @@ function afusPostUpload(target_file, file_pos, target_router, file_info, data)
|
|||||||
document.getElementById(target_file + '-uid-' + file_pos).value = file_info.file_uid;
|
document.getElementById(target_file + '-uid-' + file_pos).value = file_info.file_uid;
|
||||||
// append uid, file name, size into uploaded too
|
// append uid, file name, size into uploaded too
|
||||||
if (typeof AFUS_functions[target_file].fileUploaded === 'function') {
|
if (typeof AFUS_functions[target_file].fileUploaded === 'function') {
|
||||||
AFUS_functions[target_file].fileUploaded(target_file, file_pos, target_router, data);
|
AFUS_functions[target_file].fileUploaded(target_file, file_pos, target_router, data, AFUS_config[target_file].function_options);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -366,6 +366,15 @@ function afusUploaderConfigCheck(config)
|
|||||||
// must be boolean
|
// must be boolean
|
||||||
config.auto_submit = false;
|
config.auto_submit = false;
|
||||||
}
|
}
|
||||||
|
if (!keyInObject('function_options', config)) {
|
||||||
|
config.function_options = {};
|
||||||
|
} else if (!(
|
||||||
|
typeof config.function_options === 'object' &&
|
||||||
|
config.function_options !== null
|
||||||
|
)) {
|
||||||
|
// must be object
|
||||||
|
config.function_options = {};
|
||||||
|
}
|
||||||
// set path name
|
// set path name
|
||||||
config.path = window.location.pathname;
|
config.path = window.location.pathname;
|
||||||
// do we end in .php, we need to remove the name then, we just want the path
|
// do we end in .php, we need to remove the name then, we just want the path
|
||||||
@@ -379,7 +388,7 @@ function afusUploaderConfigCheck(config)
|
|||||||
// write general config things into config
|
// write general config things into config
|
||||||
AFUS_config[target_file] = {};
|
AFUS_config[target_file] = {};
|
||||||
for (var ent of [
|
for (var ent of [
|
||||||
'target_file', 'target_form', 'path',
|
'target_file', 'target_form', 'path', 'function_options',
|
||||||
'max_files', 'max_file_size', 'allowed_extensions', 'allowed_file_types',
|
'max_files', 'max_file_size', 'allowed_extensions', 'allowed_file_types',
|
||||||
'target_router', 'target_action', 'form_parameters', 'auto_submit'
|
'target_router', 'target_action', 'form_parameters', 'auto_submit'
|
||||||
]) {
|
]) {
|
||||||
@@ -478,6 +487,7 @@ function afusSupportAjaxUploadWithProgress()
|
|||||||
* Added BEFORE fileBeforeUpload parameters
|
* Added BEFORE fileBeforeUpload parameters
|
||||||
* {Object} [translation={}] Translated strings pushed into the AFUS_strings object
|
* {Object} [translation={}] Translated strings pushed into the AFUS_strings object
|
||||||
* {Boolean} [auto_submit=false] if we override the submit button and directly upload
|
* {Boolean} [auto_submit=false] if we override the submit button and directly upload
|
||||||
|
* {Object} [function_options={}] Additional data to pass to functions
|
||||||
* {Function} [fileChange=''] Function run on change of -file element entry
|
* {Function} [fileChange=''] Function run on change of -file element entry
|
||||||
* Parameters are target_file, file_pos, target_router
|
* Parameters are target_file, file_pos, target_router
|
||||||
* {Function} [fileChangeAll=''] Function run on change of -file element entry
|
* {Function} [fileChangeAll=''] Function run on change of -file element entry
|
||||||
@@ -546,7 +556,7 @@ function initAjaxUploader(config) // eslint-disable-line
|
|||||||
document.getElementById(target_file + '-abort-all-div').style.display = 'none';
|
document.getElementById(target_file + '-abort-all-div').style.display = 'none';
|
||||||
// call clear post
|
// call clear post
|
||||||
if (typeof AFUS_functions[target_file].fileClear === 'function') {
|
if (typeof AFUS_functions[target_file].fileClear === 'function') {
|
||||||
AFUS_functions[target_file].fileClear(target_file, config.target_router);
|
AFUS_functions[target_file].fileClear(target_file, config.target_router, AFUS_config[target_file].function_options);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -733,7 +743,7 @@ function afusPassThroughEvent(target_file, max_files, target_router, auto_submit
|
|||||||
}
|
}
|
||||||
// delete
|
// delete
|
||||||
if (typeof AFUS_functions[target_file].fileRemove === 'function') {
|
if (typeof AFUS_functions[target_file].fileRemove === 'function') {
|
||||||
AFUS_functions[target_file].fileRemove(target_file, i, target_router);
|
AFUS_functions[target_file].fileRemove(target_file, i, target_router, AFUS_config[target_file].function_options);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
el_sub.innerHTML = AFUS_strings[target_file].remove || 'Remove';
|
el_sub.innerHTML = AFUS_strings[target_file].remove || 'Remove';
|
||||||
@@ -755,12 +765,12 @@ function afusPassThroughEvent(target_file, max_files, target_router, auto_submit
|
|||||||
document.getElementById(target_file + '-upload-status').appendChild(el);
|
document.getElementById(target_file + '-upload-status').appendChild(el);
|
||||||
// file change update per file
|
// file change update per file
|
||||||
if (typeof AFUS_functions[target_file].fileChange === 'function') {
|
if (typeof AFUS_functions[target_file].fileChange === 'function') {
|
||||||
AFUS_functions[target_file].fileChange(target_file, i, target_router);
|
AFUS_functions[target_file].fileChange(target_file, i, target_router, AFUS_config[target_file].function_options);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// file change update after all files processed
|
// file change update after all files processed
|
||||||
if (typeof AFUS_functions[target_file].fileChangeAll === 'function') {
|
if (typeof AFUS_functions[target_file].fileChangeAll === 'function') {
|
||||||
AFUS_functions[target_file].fileChangeAll(target_file, target_router);
|
AFUS_functions[target_file].fileChangeAll(target_file, target_router, AFUS_config[target_file].function_options);
|
||||||
}
|
}
|
||||||
// updated file list render
|
// updated file list render
|
||||||
document.getElementById(target_file + '-upload-status').style.display = '';
|
document.getElementById(target_file + '-upload-status').style.display = '';
|
||||||
@@ -888,7 +898,7 @@ function afusInitFullFormAjaxUpload(target_file, target_form, config)
|
|||||||
afusFinalPostUpload(target_file);
|
afusFinalPostUpload(target_file);
|
||||||
// if there is a final function, call it
|
// if there is a final function, call it
|
||||||
if (typeof AFUS_functions[target_file].fileUploadedAll === 'function') {
|
if (typeof AFUS_functions[target_file].fileUploadedAll === 'function') {
|
||||||
AFUS_functions[target_file].fileUploadedAll(target_file, config.target_router, AFUS_config[target_file].all_success);
|
AFUS_functions[target_file].fileUploadedAll(target_file, config.target_router, AFUS_config[target_file].all_success, AFUS_config[target_file].function_options);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
// Avoid normal form submission
|
// Avoid normal form submission
|
||||||
@@ -914,7 +924,7 @@ class afusAsyncUploader
|
|||||||
// additional data to append to the form submit (global)
|
// additional data to append to the form submit (global)
|
||||||
this.form_append = {};
|
this.form_append = {};
|
||||||
if (typeof AFUS_functions[this.target_file].fileBeforeUploadAll === 'function') {
|
if (typeof AFUS_functions[this.target_file].fileBeforeUploadAll === 'function') {
|
||||||
for (const [key, value] of Object.entries(AFUS_functions[this.target_file].fileBeforeUploadAll(this.target_file, AFUS_config[this.target_file].target_router))) {
|
for (const [key, value] of Object.entries(AFUS_functions[this.target_file].fileBeforeUploadAll(this.target_file, AFUS_config[this.target_file].target_router, AFUS_config[target_file].function_options))) {
|
||||||
this.form_append[key] = value;
|
this.form_append[key] = value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1030,7 +1040,7 @@ function afusSendFile(target_file, file, form_append)
|
|||||||
}
|
}
|
||||||
// external data gets added
|
// external data gets added
|
||||||
if (typeof AFUS_functions[target_file].fileBeforeUpload === 'function') {
|
if (typeof AFUS_functions[target_file].fileBeforeUpload === 'function') {
|
||||||
for (const [key, value] of Object.entries(AFUS_functions[target_file].fileBeforeUpload(target_file, file_pos, AFUS_config[target_file].target_router))) {
|
for (const [key, value] of Object.entries(AFUS_functions[target_file].fileBeforeUpload(target_file, file_pos, AFUS_config[target_file].target_router, AFUS_config[target_file].function_options))) {
|
||||||
formData.append(key, value);
|
formData.append(key, value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1210,7 +1220,7 @@ function afusOnReadyStateChangeHandler(target_file, file_pos, target_router, evt
|
|||||||
AFUS_config[target_file].all_success = false;
|
AFUS_config[target_file].all_success = false;
|
||||||
// call per file upload error function if exsts
|
// call per file upload error function if exsts
|
||||||
if (typeof AFUS_functions[target_file].fileUploadError === 'function') {
|
if (typeof AFUS_functions[target_file].fileUploadError === 'function') {
|
||||||
AFUS_functions[target_file].fileUploadError(target_file, file_pos, target_router, responseData.content);
|
AFUS_functions[target_file].fileUploadError(target_file, file_pos, target_router, responseData.content, AFUS_config[target_file].function_options);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -96,12 +96,14 @@ function ajaxWrapper(call_id, queryString = {}, control = {}, url = 'backend.php
|
|||||||
/**
|
/**
|
||||||
* FILE CHANGE:
|
* FILE CHANGE:
|
||||||
* helper call for ajax file upload on file selected
|
* helper call for ajax file upload on file selected
|
||||||
* @param {Number} file_pos Position in upload queue
|
* @param {String} target_file The file upload target prefix id
|
||||||
* @param {String} target_file The file upload target prefix id
|
* @param {Number} file_pos Position in upload queue
|
||||||
|
* @param {String} target_router [description]
|
||||||
|
* @param {Object} options additional functions options
|
||||||
*/
|
*/
|
||||||
function fileChangeFunction(target_file, file_pos, target_router)
|
function fileChangeFunction(target_file, file_pos, target_router, options={})
|
||||||
{
|
{
|
||||||
console.log('{FILE} CHANGE [%s/%s] FUNCTION CALL [%s]', target_file, file_pos, target_router);
|
console.log('{FILE} CHANGE [%s/%s] FUNCTION CALL [%s]: [%o]', target_file, file_pos, target_router, options);
|
||||||
clearAlerts();
|
clearAlerts();
|
||||||
// console.log('Upload Status: %s', $('#' + target_file + '-upload-status').outerHeight());
|
// console.log('Upload Status: %s', $('#' + target_file + '-upload-status').outerHeight());
|
||||||
}
|
}
|
||||||
@@ -328,6 +330,7 @@ $(document).ready(function () {
|
|||||||
target_action: '',
|
target_action: '',
|
||||||
form_parameters: {'parameter_a': 'Value 123'},
|
form_parameters: {'parameter_a': 'Value 123'},
|
||||||
auto_submit: false,
|
auto_submit: false,
|
||||||
|
function_options: {action_box_id: 'actionBox-alt', 'other': 'free'},
|
||||||
fileChange: fileChangeFunction,
|
fileChange: fileChangeFunction,
|
||||||
fileChangeAll: fileChangeFunctionAll,
|
fileChangeAll: fileChangeFunctionAll,
|
||||||
fileRemove: fileRemoveFunction,
|
fileRemove: fileRemoveFunction,
|
||||||
|
|||||||
Reference in New Issue
Block a user