mirror of
https://github.com/processwire/processwire.git
synced 2025-08-10 16:54:44 +02:00
Fix issue with InputfieldFile non-ajax mode not working for some cases and bump version to 3.0.62
This commit is contained in:
@@ -763,7 +763,7 @@ class Pagefile extends WireData {
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public function __toString() {
|
public function __toString() {
|
||||||
return $this->basename;
|
return (string) $this->basename;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -45,7 +45,7 @@ class ProcessWire extends Wire {
|
|||||||
* Reversion revision number
|
* Reversion revision number
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
const versionRevision = 61;
|
const versionRevision = 62;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Version suffix string (when applicable)
|
* Version suffix string (when applicable)
|
||||||
|
@@ -112,10 +112,10 @@ $(document).ready(function() {
|
|||||||
$("body").addClass("ie-no-drop"); // ??
|
$("body").addClass("ie-no-drop"); // ??
|
||||||
|
|
||||||
$(document).on('change', '.InputfieldFileUpload input[type=file]', function() {
|
$(document).on('change', '.InputfieldFileUpload input[type=file]', function() {
|
||||||
|
|
||||||
var $t = $(this);
|
var $t = $(this);
|
||||||
var $mask = $t.parent(".InputMask");
|
var $mask = $t.closest(".InputMask");
|
||||||
|
|
||||||
if($t.val().length > 1) {
|
if($t.val().length > 1) {
|
||||||
$mask.addClass("ui-state-disabled");
|
$mask.addClass("ui-state-disabled");
|
||||||
} else {
|
} else {
|
||||||
@@ -130,18 +130,22 @@ $(document).ready(function() {
|
|||||||
var maxFiles = parseInt($upload.find('.InputfieldFileMaxFiles').val());
|
var maxFiles = parseInt($upload.find('.InputfieldFileMaxFiles').val());
|
||||||
var numFiles = $list.children('li').length + $upload.find('input[type=file]').length + 1;
|
var numFiles = $list.children('li').length + $upload.find('input[type=file]').length + 1;
|
||||||
|
|
||||||
if(maxFiles > 0 && numFiles >= maxFiles) return;
|
if(maxFiles > 0 && numFiles >= maxFiles) {
|
||||||
|
// no more files allowed
|
||||||
|
} else {
|
||||||
|
$upload.find(".InputMask").not(":last").each(function() {
|
||||||
|
var $m = $(this);
|
||||||
|
if($m.find("input[type=file]").val() < 1) $m.remove();
|
||||||
|
});
|
||||||
|
|
||||||
$upload.find(".InputMask").not(":last").each(function() {
|
// add another input
|
||||||
var $m = $(this);
|
var $mask2 = $mask.clone().removeClass("ui-state-disabled");
|
||||||
if($m.find("input[type=file]").val() < 1) $m.remove();
|
var $input = $mask2.find('input[type=file]');
|
||||||
});
|
$input.attr('id', $input.attr('id') + '-');
|
||||||
|
$input.val('');
|
||||||
// add another input
|
$mask2.insertAfter($mask);
|
||||||
var $i = $mask.clone().removeClass("ui-state-disabled");
|
$mask2.css('margin-left', '0.5em').removeClass('ui-state-active');
|
||||||
$i.children("input[type=file]").val('');
|
}
|
||||||
$i.insertAfter($mask);
|
|
||||||
$i.css('margin-left', '0.5em').removeClass('ui-state-active');
|
|
||||||
|
|
||||||
// update file input to contain file name
|
// update file input to contain file name
|
||||||
var name = $t.val();
|
var name = $t.val();
|
||||||
|
File diff suppressed because one or more lines are too long
@@ -136,17 +136,7 @@ class InputfieldFile extends Inputfield implements InputfieldItemList, Inputfiel
|
|||||||
|| $this->wire('input')->get('reloadInputfieldAjax')
|
|| $this->wire('input')->get('reloadInputfieldAjax')
|
||||||
|| $this->wire('input')->get('renderInputfieldAjax');
|
|| $this->wire('input')->get('renderInputfieldAjax');
|
||||||
|
|
||||||
// get the max filesize
|
$this->setMaxFilesize(trim(ini_get('post_max_size')));
|
||||||
$filesize = trim(ini_get('post_max_size'));
|
|
||||||
$last = strtolower(substr($filesize, -1));
|
|
||||||
if(ctype_alpha($last)) $filesize = rtrim($filesize, $last);
|
|
||||||
$filesize = (int) $filesize;
|
|
||||||
if($last == 'g') $this->maxFilesize = (($filesize*1024)*1024)*1024;
|
|
||||||
else if($last == 'm') $this->maxFilesize = ($filesize*1024)*1024;
|
|
||||||
else if($last == 'k') $this->maxFilesize = $filesize*1024;
|
|
||||||
else if((int) $filesize > 0) $this->maxFilesize = (int) $filesize;
|
|
||||||
else $this->maxFilesize = (5*1024)*1024;
|
|
||||||
|
|
||||||
$this->uploadOnlyMode = (int) $this->wire('input')->get('uploadOnlyMode');
|
$this->uploadOnlyMode = (int) $this->wire('input')->get('uploadOnlyMode');
|
||||||
$this->addClass('InputfieldItemList', 'wrapClass');
|
$this->addClass('InputfieldItemList', 'wrapClass');
|
||||||
$this->addClass('InputfieldHasFileList', 'wrapClass');
|
$this->addClass('InputfieldHasFileList', 'wrapClass');
|
||||||
@@ -166,6 +156,41 @@ class InputfieldFile extends Inputfield implements InputfieldItemList, Inputfiel
|
|||||||
if($key == 'deleteLabel') return $this->labels['delete'];
|
if($key == 'deleteLabel') return $this->labels['delete'];
|
||||||
return parent::get($key);
|
return parent::get($key);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function set($key, $value) {
|
||||||
|
if($key == 'maxFilesize') return $this->setMaxFilesize($value);
|
||||||
|
return parent::set($key, $value);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the max file size in bytes or use string like "30m", "2g" "500k"
|
||||||
|
*
|
||||||
|
* @param int|string $filesize
|
||||||
|
* @return $this
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public function setMaxFilesize($filesize) {
|
||||||
|
if(ctype_digit("$filesize")) {
|
||||||
|
$this->maxFilesize = (int) $filesize;
|
||||||
|
} else {
|
||||||
|
$filesize = rtrim($filesize, 'bB'); // convert mb=>m, gb=>g, kb=>k
|
||||||
|
$last = strtolower(substr($filesize, -1));
|
||||||
|
if(ctype_alpha($last)) $filesize = rtrim($filesize, $last);
|
||||||
|
$filesize = (int) $filesize;
|
||||||
|
if($last == 'g') {
|
||||||
|
$this->maxFilesize = (($filesize * 1024) * 1024) * 1024;
|
||||||
|
} else if($last == 'm') {
|
||||||
|
$this->maxFilesize = ($filesize * 1024) * 1024;
|
||||||
|
} else if($last == 'k') {
|
||||||
|
$this->maxFilesize = $filesize * 1024;
|
||||||
|
} else if($filesize > 0) {
|
||||||
|
$this->maxFilesize = $filesize;
|
||||||
|
} else {
|
||||||
|
$this->maxFilesize = (5 * 1024) * 1024;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Per Inputfield interface, returns true when this field is empty
|
* Per Inputfield interface, returns true when this field is empty
|
||||||
|
Reference in New Issue
Block a user