add hook addDocumentContentFile() for extra form field getting data for file upload (e.g. a web page), better validation

This commit is contained in:
Uwe Steinmann 2021-07-08 14:16:13 +02:00
parent 4149c33b39
commit 91170c7db3
2 changed files with 27 additions and 5 deletions

View File

@ -58,9 +58,11 @@ $(document).ready(function() {
/* The fineuploader validation is actually checking all fields that can contain
* a file to be uploaded. First checks if an alternative input field is set,
* second loops through the list of scheduled uploads, checking if at least one
* file will be submitted.
* file will be submitted. param[0] is the fineuploader, param[1] is the
* field from the dropfolder
*/
jQuery.validator.addMethod("fineuploader", function(value, element, params) {
console.log(params);
if(params[1].val() != '')
return true;
uploader = params[0];
@ -98,10 +100,12 @@ $(document).ready(function() {
} else {
?>
'userfile[]': {
alternatives: $('#dropfolderfileadddocform')
require_from_group: [1, ".fileupload-group"]
// alternatives: $('#dropfolderfileadddocform')
},
dropfolderfileadddocform: {
alternatives: $("#userfile") //$(".btn-file input")
require_from_group: [1, ".fileupload-group"]
// alternatives: $("#userfile")
}
<?php
}
@ -156,6 +160,7 @@ $(document).ready(function() {
$folderid = $folder->getId();
$this->htmlAddHeader('<script type="text/javascript" src="../views/'.$this->theme.'/vendors/jquery-validation/jquery.validate.js"></script>'."\n", 'js');
$this->htmlAddHeader('<script type="text/javascript" src="../views/'.$this->theme.'/vendors/jquery-validation/additional-methods.js"></script>'."\n", 'js');
$this->htmlAddHeader('<script type="text/javascript" src="../views/'.$this->theme.'/styles/validation-default.js"></script>'."\n", 'js');
if($enablelargefileupload) {
$this->htmlAddHeader('<script type="text/javascript" src="../views/'.$this->theme.'/vendors/fine-uploader/jquery.fine-uploader.min.js"></script>'."\n", 'js');
@ -392,6 +397,13 @@ $(document).ready(function() {
$this->getDropFolderChooserHtml("adddocform", $dropfolderfile)
);
}
if($arr = $this->callHook('addDocumentContentFile')) {
if(is_array($arr)) {
$this->formField($arr[0], $arr[1], isset($arr[2]) ? $arr[2] : null);
} elseif(is_string($arr)) {
echo $arr;
}
}
if(!$nodocumentformfields || !in_array('version_comment', $nodocumentformfields)) {
$this->formField(
getMLText("comment_for_current_version"),

View File

@ -96,10 +96,12 @@ $(document).ready( function() {
} else {
?>
userfile: {
alternatives: $('#dropfolderfileform1')
require_from_group: [1, ".fileupload-group"]
// alternatives: $('#dropfolderfileform1')
},
dropfolderfileform1: {
alternatives: $('#userfile')
require_from_group: [1, ".fileupload-group"]
// alternatives: $('#userfile')
}
<?php
}
@ -145,6 +147,7 @@ console.log(element);
$documentid = $document->getId();
$this->htmlAddHeader('<script type="text/javascript" src="../views/'.$this->theme.'/vendors/jquery-validation/jquery.validate.js"></script>'."\n", 'js');
$this->htmlAddHeader('<script type="text/javascript" src="../views/'.$this->theme.'/vendors/jquery-validation/additional-methods.js"></script>'."\n", 'js');
$this->htmlAddHeader('<script type="text/javascript" src="../views/'.$this->theme.'/styles/validation-default.js"></script>'."\n", 'js');
if($enablelargefileupload) {
$this->htmlAddHeader('<script type="text/javascript" src="../views/'.$this->theme.'/vendors/fine-uploader/jquery.fine-uploader.min.js"></script>'."\n", 'js');
@ -229,6 +232,13 @@ console.log(element);
$this->getDropFolderChooserHtml("form1")
);
}
if($arr = $this->callHook('addDocumentContentFile')) {
if(is_array($arr)) {
$this->formField($arr[0], $arr[1], isset($arr[2]) ? $arr[2] : null);
} elseif(is_string($arr)) {
echo $arr;
}
}
if(!$nodocumentformfields || !in_array('version_comment', $nodocumentformfields)) {
$this->formField(
getMLText("comment"),