Merge branch '4.0' into 4

This commit is contained in:
Steve Boyd 2023-05-04 13:36:50 +12:00
commit 3b9e584ab1
4 changed files with 44 additions and 6 deletions

View File

@ -19,13 +19,10 @@ This module provides a number of useful grid field components:
* `GridFieldTitleHeader` - a simple header which displays column titles.
* `GridFieldConfigurablePaginator` - a paginator for GridField that allows customisable page sizes.
This branch will aim for compatibility with Silverstripe 4.x.
## Installation
```bash
composer require symbiote/silverstripe-gridfieldextensions:^3
```sh
composer require symbiote/silverstripe-gridfieldextensions
```
For Silverstripe 3.x, please see the [compatible branch](https://github.com/symbiote/silverstripe-gridfieldextensions/tree/2).
See [docs/en/index.md](docs/en/index.md) for documentation and examples.

View File

@ -396,6 +396,13 @@ class GridFieldOrderableRows extends RequestHandler implements
if ($list instanceof DataList) {
$classname = $list->dataClass();
if ($defaultSort = Config::inst()->get($classname, 'default_sort')) {
if (is_array($defaultSort)) {
$defaultSortArray = [];
foreach ($defaultSort as $column => $direction) {
$defaultSortArray[] = "\"$column\" $direction";
}
$defaultSort = implode(', ', $defaultSortArray);
}
// Append the default sort to the end of the sort string
// This may result in redundancy... but it seems to work
$sortterm .= ($sortterm ? ', ' : '') . $defaultSort;

View File

@ -25,6 +25,7 @@ use Symbiote\GridFieldExtensions\Tests\Stub\ThroughDefinerVersioned;
use Symbiote\GridFieldExtensions\Tests\Stub\ThroughIntermediary;
use Symbiote\GridFieldExtensions\Tests\Stub\TitleObject;
use Symbiote\GridFieldExtensions\Tests\Stub\TitleSortedObject;
use Symbiote\GridFieldExtensions\Tests\Stub\TitleArraySortedObject;
use Symbiote\GridFieldExtensions\Tests\Stub\ThroughIntermediaryVersioned;
/**
@ -54,6 +55,7 @@ class GridFieldOrderableRowsTest extends SapphireTest
ThroughBelongs::class,
TitleObject::class,
TitleSortedObject::class,
TitleArraySortedObject::class,
ThroughDefinerVersioned::class,
ThroughIntermediaryVersioned::class,
ThroughBelongsVersioned::class,
@ -387,6 +389,16 @@ class GridFieldOrderableRowsTest extends SapphireTest
],
['B', 'A', 'C']
],
[
TitleArraySortedObject::class,
DataList::class,
[
['Title' => 'X', 'Iden' => 'C', 'OtherSort' => 3],
['Title' => 'Z', 'Iden' => 'A', 'OtherSort' => 2],
['Title' => 'Z', 'Iden' => 'B', 'OtherSort' => 1],
],
['C', 'B', 'A']
],
];
}
}

View File

@ -0,0 +1,22 @@
<?php
namespace Symbiote\GridFieldExtensions\Tests\Stub;
use SilverStripe\Dev\TestOnly;
use SilverStripe\ORM\DataObject;
class TitleArraySortedObject extends DataObject implements TestOnly
{
private static $db = [
'Title' => 'Varchar',
'Iden' => 'Varchar',
'OtherSort' => 'Int'
];
private static array $default_sort = [
'Title' => 'ASC',
'OtherSort' => 'ASC',
];
private static $table_name = 'TitleArraySortedObject';
}