From 6774920003a3a15a880dd215b35dbe11cd2500bc Mon Sep 17 00:00:00 2001 From: Luke Towers Date: Sat, 11 Aug 2018 20:27:53 -0600 Subject: [PATCH] Finish implementing titleFrom option for Repeaters Ref: https://github.com/octobercms/october/commit/e7609aa5e8eef1342320fc0e7793cb88748b789f --- modules/backend/formwidgets/Repeater.php | 9 ++++++++- .../backend/formwidgets/repeater/assets/js/repeater.js | 2 +- .../backend/formwidgets/repeater/partials/_repeater.htm | 1 + 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/modules/backend/formwidgets/Repeater.php b/modules/backend/formwidgets/Repeater.php index 788725ab4..2981a770a 100644 --- a/modules/backend/formwidgets/Repeater.php +++ b/modules/backend/formwidgets/Repeater.php @@ -31,6 +31,11 @@ class Repeater extends FormWidgetBase */ public $sortable = false; + /** + * @var string Field name to use for the title of collapsed items + */ + public $titleFrom = false; + /** * @var int Maximum repeated items allowable. */ @@ -88,6 +93,7 @@ class Repeater extends FormWidgetBase 'form', 'prompt', 'sortable', + 'titleFrom', 'maxItems', ]); @@ -125,7 +131,7 @@ class Repeater extends FormWidgetBase if (!self::$onAddItemCalled) { $this->processExistingItems(); } - + if ($this->previewMode) { foreach ($this->formWidgets as $widget) { $widget->previewMode = true; @@ -137,6 +143,7 @@ class Repeater extends FormWidgetBase $this->vars['prompt'] = $this->prompt; $this->vars['formWidgets'] = $this->formWidgets; + $this->vars['titleFrom'] = $this->titleFrom; $this->vars['maxItems'] = $this->maxItems; $this->vars['useGroups'] = $this->useGroups; diff --git a/modules/backend/formwidgets/repeater/assets/js/repeater.js b/modules/backend/formwidgets/repeater/assets/js/repeater.js index 649abd0d6..8e17827e5 100644 --- a/modules/backend/formwidgets/repeater/assets/js/repeater.js +++ b/modules/backend/formwidgets/repeater/assets/js/repeater.js @@ -181,7 +181,7 @@ } if (this.options.titleFrom) { - $target = $('[data-field-name="'+this.options.titleFrom+'"]') + $target = $('[data-field-name="'+this.options.titleFrom+'"]', $item) if (!$target.length) { $target = $item } diff --git a/modules/backend/formwidgets/repeater/partials/_repeater.htm b/modules/backend/formwidgets/repeater/partials/_repeater.htm index aec9388e6..5cdfb0f06 100644 --- a/modules/backend/formwidgets/repeater/partials/_repeater.htm +++ b/modules/backend/formwidgets/repeater/partials/_repeater.htm @@ -1,5 +1,6 @@
data-sortable-container="#getId('items') ?>" data-sortable-handle=".getId('items') ?>-handle">