Skip to content

Commit 7aea69b

Browse files
committed
Add option to override results wrap key
1 parent 2c1ae85 commit 7aea69b

File tree

2 files changed

+8
-4
lines changed

2 files changed

+8
-4
lines changed

src/Html/Editor/Fields/Select2.php

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -108,14 +108,15 @@ public function ajaxData(array|string $data): static
108108
*
109109
* @param string $display
110110
* @param string $id
111+
* @param string $wrap
111112
* @return $this
112113
*/
113-
public function processPaginatedResults(string $display = 'text', string $id = 'id'): static
114+
public function processPaginatedResults(string $display = 'text', string $id = 'id', string $wrap = 'results'): static
114115
{
115116
$script = 'function(data, params) { ';
116117
$script .= 'params.page = params.page || 1; ';
117-
$script .= "data.data.map(function(e) { e.text = e.$display; e.id = e.$id; return e; }); ";
118-
$script .= 'return { results: data.data, pagination: { more: data.meta.current_page < data.meta.last_page } };';
118+
$script .= "data.$wrap.map(function(e) { e.text = e.$display; e.id = e.$id; return e; }); ";
119+
$script .= "return { results: data.$wrap, pagination: { more: data.meta.current_page < data.meta.last_page } };";
119120
$script .= '}';
120121

121122
return $this->processResults($script);

tests/FieldTest.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -197,7 +197,10 @@ public function it_can_create_select2_field()
197197
$this->assertEquals('/url', $field->opts['ajax']['url']);
198198
$this->assertStringContainsString('e.text = e.username', $field->opts['ajax']['processResults']);
199199
$this->assertStringContainsString('e.id = e.user_id', $field->opts['ajax']['processResults']);
200-
$this->assertStringContainsString('data.meta.current_page < data.meta.last_page', $field->opts['ajax']['processResults']);
200+
$this->assertStringContainsString('data.results.map', $field->opts['ajax']['processResults']);
201+
202+
$field->processPaginatedResults('username', 'user_id', 'data');
203+
$this->assertStringContainsString('data.data.map', $field->opts['ajax']['processResults']);
201204

202205
$field->placeholder('New Placeholder');
203206
$this->assertEquals('New Placeholder', $field->opts['placeholder']['text']);

0 commit comments

Comments
 (0)