Add support for readOnly Repeater Widgets (#2960)
* Add support for previewMode in Repeater FormWidget Refs: #2724,5f91c45f79* Add support for previewMode in Repeater FormWidget Refs: #2724,5f91c45f79* Add support for previewMode in Repeater FormWidget Refs: #2724,5f91c45f79* Add support for previewMode in Repeater FormWidget Refs: #2724,5f91c45f79
This commit is contained in:
parent
aeba740243
commit
2a16847724
|
|
@ -91,6 +91,10 @@ class Repeater extends FormWidgetBase
|
|||
'maxItems',
|
||||
]);
|
||||
|
||||
if ($this->formField->disabled) {
|
||||
$this->previewMode = true;
|
||||
}
|
||||
|
||||
$fieldName = $this->formField->getName(false);
|
||||
$this->indexInputName = self::INDEX_PREFIX.$fieldName;
|
||||
$this->groupInputName = self::GROUP_PREFIX.$fieldName;
|
||||
|
|
@ -116,6 +120,12 @@ class Repeater extends FormWidgetBase
|
|||
*/
|
||||
public function prepareVars()
|
||||
{
|
||||
if ($this->previewMode) {
|
||||
foreach ($this->formWidgets as $widget) {
|
||||
$widget->previewMode = true;
|
||||
}
|
||||
}
|
||||
|
||||
$this->vars['indexInputName'] = $this->indexInputName;
|
||||
$this->vars['groupInputName'] = $this->groupInputName;
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
/*
|
||||
* Field Repeater plugin
|
||||
*
|
||||
*
|
||||
* Data attributes:
|
||||
* - data-control="fieldrepeater" - enables the plugin on an element
|
||||
* - data-option="value" - an option with a value
|
||||
|
|
@ -193,6 +193,11 @@
|
|||
var $textInput = $('input[type=text]:first', $target)
|
||||
if ($textInput.length) {
|
||||
return $textInput.val()
|
||||
} else {
|
||||
var $disabledTextInput = $('.text-field > .form-control', $target)
|
||||
if ($disabledTextInput.length) {
|
||||
return $disabledTextInput.text()
|
||||
}
|
||||
}
|
||||
|
||||
return defaultText
|
||||
|
|
|
|||
|
|
@ -13,24 +13,26 @@
|
|||
<?php endforeach ?>
|
||||
</ul>
|
||||
|
||||
<div class="field-repeater-add-item loading-indicator-container indicator-center">
|
||||
<?php if ($useGroups): ?>
|
||||
<a
|
||||
href="javascript:;"
|
||||
data-repeater-add-group
|
||||
data-load-indicator>
|
||||
<?= e(trans($prompt)) ?>
|
||||
</a>
|
||||
<?php else: ?>
|
||||
<a
|
||||
href="javascript:;"
|
||||
data-repeater-add
|
||||
data-request="<?= $this->getEventHandler('onAddItem') ?>"
|
||||
data-load-indicator>
|
||||
<?= e(trans($prompt)) ?>
|
||||
</a>
|
||||
<?php endif ?>
|
||||
</div>
|
||||
<?php if (!$this->previewMode): ?>
|
||||
<div class="field-repeater-add-item loading-indicator-container indicator-center">
|
||||
<?php if ($useGroups): ?>
|
||||
<a
|
||||
href="javascript:;"
|
||||
data-repeater-add-group
|
||||
data-load-indicator>
|
||||
<?= e(trans($prompt)) ?>
|
||||
</a>
|
||||
<?php else: ?>
|
||||
<a
|
||||
href="javascript:;"
|
||||
data-repeater-add
|
||||
data-request="<?= $this->getEventHandler('onAddItem') ?>"
|
||||
data-load-indicator>
|
||||
<?= e(trans($prompt)) ?>
|
||||
</a>
|
||||
<?php endif ?>
|
||||
</div>
|
||||
<?php endif ?>
|
||||
|
||||
<script type="text/template" data-group-palette-template>
|
||||
<div class="popover-head">
|
||||
|
|
|
|||
|
|
@ -6,22 +6,24 @@
|
|||
<?= $itemTitle ? 'data-collapse-title="'.$itemTitle.'"' : '' ?>
|
||||
class="field-repeater-item">
|
||||
|
||||
<div class="repeater-item-handle <?= $this->getId('items') ?>-handle">
|
||||
<i class="icon-bars"></i>
|
||||
</div>
|
||||
<?php if (!$this->previewMode): ?>
|
||||
<div class="repeater-item-handle <?= $this->getId('items') ?>-handle">
|
||||
<i class="icon-bars"></i>
|
||||
</div>
|
||||
|
||||
<div class="repeater-item-remove">
|
||||
<button
|
||||
type="button"
|
||||
class="close"
|
||||
aria-label="Remove"
|
||||
data-repeater-remove
|
||||
data-request="<?= $this->getEventHandler('onRemoveItem') ?>"
|
||||
data-request-data="'_repeater_index': '<?= $indexValue ?>', '_repeater_group': '<?= $groupCode ?>'"
|
||||
data-request-confirm="<?= e(trans('backend::lang.form.action_confirm')) ?>">
|
||||
<span aria-hidden="true">×</span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="repeater-item-remove">
|
||||
<button
|
||||
type="button"
|
||||
class="close"
|
||||
aria-label="Remove"
|
||||
data-repeater-remove
|
||||
data-request="<?= $this->getEventHandler('onRemoveItem') ?>"
|
||||
data-request-data="'_repeater_index': '<?= $indexValue ?>', '_repeater_group': '<?= $groupCode ?>'"
|
||||
data-request-confirm="<?= e(trans('backend::lang.form.action_confirm')) ?>">
|
||||
<span aria-hidden="true">×</span>
|
||||
</button>
|
||||
</div>
|
||||
<?php endif ?>
|
||||
|
||||
<div class="repeater-item-collapse">
|
||||
<a href="javascript:;" class="repeater-item-collapse-one">
|
||||
|
|
|
|||
Loading…
Reference in New Issue