@@ -150,6 +150,14 @@ class InputfieldRepeater extends Inputfield {
150
150
$wrap = wire('modules')->get('InputfieldFieldset');
151
151
$wrap->label = "$label #" . (++$cnt);
152
152
153
+ // add a hidden field that will be populated with a positive value for all visible repeater items
154
+ // this is so that processInput can see this item should be a published item
155
+ $f = wire('modules')->get('InputfieldHidden');
156
+ $f->attr('name', "publish_repeater{$page->id}");
157
+ $f->attr('class', 'InputfieldRepeaterPublish');
158
+ $f->attr('value', $page->is(Page::statusHidden) ? 0 : 1);
159
+ $wrap->add($f);
160
+
153
161
if($page->is(Page::statusHidden)) {
154
162
$wrap->class = 'InputfieldRepeaterReady';
155
163
$wrap->label .= ' - ' . $this->_('New');
@@ -162,6 +170,7 @@ class InputfieldRepeater extends Inputfield {
162
170
$f->attr('value', $page->id);
163
171
$wrap->add($f);
164
172
173
+
165
174
} else if($page->is(Page::statusUnpublished)) {
166
175
$wrap->label .= ' - ' . $this->_('Unpublished');
167
176
}
@@ -222,6 +231,7 @@ class InputfieldRepeater extends Inputfield {
222
231
$deleteName = "delete_repeater{$page->id}";
223
232
$sortName = "sort_repeater{$page->id}";
224
233
$disabledName = "_disable_repeater{$page->id}";
234
+ $publishName = "publish_repeater{$page->id}";
225
235
226
236
if($input->$deleteName == $page->id) {
227
237
$value->remove($page);
@@ -234,6 +244,10 @@ class InputfieldRepeater extends Inputfield {
234
244
continue;
235
245
}
236
246
247
+ if($input->$publishName > 0 && $page->is(Page::statusHidden)) {
248
+ $page->removeStatus(Page::statusHidden | Page::statusUnpublished);
249
+ }
250
+
237
251
$page->sort = (int) $input->$sortName;
238
252
if($page->isChanged('sort')) {
239
253
$this->message("Sort changed for field {$this->field} page {$page->id}", Notice::debug);
0 commit comments