1
0
mirror of https://github.com/processwire/processwire.git synced 2025-08-13 18:24:57 +02:00

Fix issue with repeaters in renderValue mode

This commit is contained in:
Ryan Cramer
2017-04-19 10:04:16 -04:00
parent e83ed750c9
commit 1c46d0d44c
3 changed files with 8 additions and 3 deletions

View File

@@ -221,6 +221,8 @@ function InputfieldRepeater($) {
var ajaxURL = ProcessWire.config.InputfieldRepeater.editorUrl + '?id=' + pageID + '&field=' + fieldName + '&repeater_edit=' + itemID;
var $spinner = $item.find('.InputfieldRepeaterDrag');
var $inputfields = $loaded.closest('.Inputfields');
if($repeater.hasClass('InputfieldRenderValueMode')) ajaxURL += '&inrvm=1';
$spinner.removeClass('fa-arrows').addClass('fa-spin fa-spinner');
repeaterID = repeaterID.replace(/_repeater\d+$/, '');

File diff suppressed because one or more lines are too long

View File

@@ -346,14 +346,16 @@ class InputfieldRepeater extends Inputfield implements InputfieldItemList {
$depth->label = $this->_('Depth');
$depthValue = $page->getDepth();
$depth->attr('value', $depthValue);
$depth->set('renderValueAsInput', true);
} else {
$depth = null;
}
$loaded = $this->wire('modules')->get('InputfieldHidden');
$loaded->attr('id+name', "loaded_repeater{$page->id}");
$loaded->class = 'InputfieldRepeaterLoaded';
$loaded->attr('value', $isLoaded ? 1 : 0);
$loaded->set('renderValueAsInput', true);
$loaded->class = 'InputfieldRepeaterLoaded';
$wrap = $this->wire('modules')->get('InputfieldFieldset');
$wrap->addClass('InputfieldRepeaterItem InputfieldNoFocus');
@@ -653,13 +655,14 @@ class InputfieldRepeater extends Inputfield implements InputfieldItemList {
$repeaterAdd = $input->get('repeater_add');
$repeaterEdit = (int) $input->get('repeater_edit');
$repeaterClone = (int) $input->get('repeater_clone');
if($input->get('inrvm')) $this->renderValueMode = true;
if($repeaterClone) {
return $this->renderValueMode ? '' : $this->renderAjaxNewItem($repeaterClone);
} else if($repeaterAdd !== null && !$noAjaxAdd) {
return $this->renderValueMode ? '' : $this->renderAjaxNewItem();
} else if($repeaterEdit) {
if($this->renderValueMode) {
return $this->buildForm($repeaterEdit)->renderValue();
return $this->buildForm($repeaterEdit)->renderValue();
} else {
return $this->buildForm($repeaterEdit)->render();
}