From 2a16847724b255a9ca874f3534f259be15106d38 Mon Sep 17 00:00:00 2001 From: Luke Towers Date: Sat, 8 Jul 2017 13:34:04 -0600 Subject: [PATCH] Add support for readOnly Repeater Widgets (#2960) * Add support for previewMode in Repeater FormWidget Refs: #2724, https://github.com/octobercms/october/commit/5f91c45f7997571290b3cbc1307a69b642d6c6e6 * Add support for previewMode in Repeater FormWidget Refs: #2724, https://github.com/octobercms/october/commit/5f91c45f7997571290b3cbc1307a69b642d6c6e6 * Add support for previewMode in Repeater FormWidget Refs: #2724, https://github.com/octobercms/october/commit/5f91c45f7997571290b3cbc1307a69b642d6c6e6 * Add support for previewMode in Repeater FormWidget Refs: #2724, https://github.com/octobercms/october/commit/5f91c45f7997571290b3cbc1307a69b642d6c6e6 --- modules/backend/formwidgets/Repeater.php | 10 +++++ .../repeater/assets/js/repeater.js | 7 +++- .../repeater/partials/_repeater.htm | 38 ++++++++++--------- .../repeater/partials/_repeater_item.htm | 32 ++++++++-------- 4 files changed, 53 insertions(+), 34 deletions(-) diff --git a/modules/backend/formwidgets/Repeater.php b/modules/backend/formwidgets/Repeater.php index dd9bf7b82..efec0c143 100644 --- a/modules/backend/formwidgets/Repeater.php +++ b/modules/backend/formwidgets/Repeater.php @@ -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; diff --git a/modules/backend/formwidgets/repeater/assets/js/repeater.js b/modules/backend/formwidgets/repeater/assets/js/repeater.js index d1fda348e..3c23f8530 100644 --- a/modules/backend/formwidgets/repeater/assets/js/repeater.js +++ b/modules/backend/formwidgets/repeater/assets/js/repeater.js @@ -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 diff --git a/modules/backend/formwidgets/repeater/partials/_repeater.htm b/modules/backend/formwidgets/repeater/partials/_repeater.htm index 79cea1e78..aec9388e6 100644 --- a/modules/backend/formwidgets/repeater/partials/_repeater.htm +++ b/modules/backend/formwidgets/repeater/partials/_repeater.htm @@ -13,24 +13,26 @@ -
- - - - - - - - - -
+ previewMode): ?> +
+ + + + + + + + + +
+