mirror of
https://github.com/silverstripe/silverstripe-framework
synced 2024-10-22 14:05:37 +02:00
Merge pull request #4503 from patricknelson/issue-4502-sort-autocomplete
FIX for #4502 Prevents JSON.parse() from scrambling sorted results from server-side.
This commit is contained in:
commit
0768434997
@ -218,7 +218,12 @@ class GridFieldAddExistingAutocompleter
|
|||||||
$originalSourceFileComments = Config::inst()->get('SSViewer', 'source_file_comments');
|
$originalSourceFileComments = Config::inst()->get('SSViewer', 'source_file_comments');
|
||||||
Config::inst()->update('SSViewer', 'source_file_comments', false);
|
Config::inst()->update('SSViewer', 'source_file_comments', false);
|
||||||
foreach($results as $result) {
|
foreach($results as $result) {
|
||||||
$json[$result->ID] = html_entity_decode(SSViewer::fromString($this->resultsFormat)->process($result));
|
$title = html_entity_decode(SSViewer::fromString($this->resultsFormat)->process($result));
|
||||||
|
$json[] = array(
|
||||||
|
'label' => $title,
|
||||||
|
'value' => $title,
|
||||||
|
'id' => $result->ID,
|
||||||
|
);
|
||||||
}
|
}
|
||||||
Config::inst()->update('SSViewer', 'source_file_comments', $originalSourceFileComments);
|
Config::inst()->update('SSViewer', 'source_file_comments', $originalSourceFileComments);
|
||||||
return Convert::array2json($json);
|
return Convert::array2json($json);
|
||||||
|
@ -371,9 +371,7 @@
|
|||||||
url: $(searchField).data('searchUrl'),
|
url: $(searchField).data('searchUrl'),
|
||||||
data: encodeURIComponent(searchField.attr('name'))+'='+encodeURIComponent(searchField.val()),
|
data: encodeURIComponent(searchField.attr('name'))+'='+encodeURIComponent(searchField.val()),
|
||||||
success: function(data) {
|
success: function(data) {
|
||||||
response( $.map(JSON.parse(data), function( name, id ) {
|
response(JSON.parse(data));
|
||||||
return { label: name, value: name, id: id };
|
|
||||||
}));
|
|
||||||
},
|
},
|
||||||
error: function(e) {
|
error: function(e) {
|
||||||
alert(ss.i18n._t('GRIDFIELD.ERRORINTRANSACTION', 'An error occured while fetching data from the server\n Please try again later.'));
|
alert(ss.i18n._t('GRIDFIELD.ERRORINTRANSACTION', 'An error occured while fetching data from the server\n Please try again later.'));
|
||||||
|
@ -41,7 +41,11 @@ class GridFieldAddExistingAutocompleterTest extends FunctionalTest {
|
|||||||
$this->assertFalse($response->isError());
|
$this->assertFalse($response->isError());
|
||||||
$result = Convert::json2array($response->getBody());
|
$result = Convert::json2array($response->getBody());
|
||||||
$this->assertEquals(1, count($result));
|
$this->assertEquals(1, count($result));
|
||||||
$this->assertEquals(array($team2->ID => 'Team 2'), $result);
|
$this->assertEquals(array(array(
|
||||||
|
'label' => 'Team 2',
|
||||||
|
'value' => 'Team 2',
|
||||||
|
'id' => $team2->ID,
|
||||||
|
)), $result);
|
||||||
|
|
||||||
$response = $this->post(
|
$response = $this->post(
|
||||||
'GridFieldAddExistingAutocompleterTest_Controller/Form/field/testfield/'
|
'GridFieldAddExistingAutocompleterTest_Controller/Form/field/testfield/'
|
||||||
|
Loading…
Reference in New Issue
Block a user