mirror of
https://github.com/UndefinedOffset/SortableGridField.git
synced 2024-09-20 23:15:56 +02:00
Compare commits
5 Commits
66dfcc25ad
...
c3915cc2b8
Author | SHA1 | Date | |
---|---|---|---|
|
c3915cc2b8 | ||
|
255347b755 | ||
|
eabbe33342 | ||
|
f5a5346349 | ||
|
e374c93ae3 |
104
.github/workflows/ci.yml
vendored
104
.github/workflows/ci.yml
vendored
@ -15,8 +15,8 @@ on:
|
||||
|
||||
|
||||
jobs:
|
||||
silverstripe_410_php74:
|
||||
name: "Silverstripe 4.10 | PHP 7.4"
|
||||
silverstripe_411_php74:
|
||||
name: "Silverstripe 4.11 | PHP 7.4"
|
||||
runs-on: ubuntu-latest
|
||||
if: "!contains(github.event.head_commit.message, '[skip ci]') && !contains(github.event.head_commit.message, '[ci skip]')"
|
||||
env:
|
||||
@ -69,8 +69,8 @@ jobs:
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: ${{ steps.composer-cache.outputs.dir }}
|
||||
key: ${{ runner.os }}-composer-ss410-php74-${{ hashFiles('**/composer.json') }}-${{ hashFiles('.github/workflows/ci.yml') }}
|
||||
restore-keys: ${{ runner.os }}-composer-ss410-php74-
|
||||
key: ${{ runner.os }}-composer-ss411-php74-${{ hashFiles('**/composer.json') }}-${{ hashFiles('.github/workflows/ci.yml') }}
|
||||
restore-keys: ${{ runner.os }}-composer-ss411-php74-
|
||||
|
||||
- name: Install Composer dependencies
|
||||
env:
|
||||
@ -78,8 +78,8 @@ jobs:
|
||||
run: |
|
||||
composer self-update --ansi || true
|
||||
if [[ $GITHUB_ACCESS_TOKEN ]]; then composer config --ansi -g github-oauth.github.com $GITHUB_ACCESS_TOKEN; fi
|
||||
composer require silverstripe/admin 1.10.* --no-update
|
||||
composer require silverstripe/versioned 1.10.*
|
||||
composer require silverstripe/admin 1.11.* --no-update
|
||||
composer require silverstripe/versioned 1.11.*
|
||||
composer install --verbose --no-interaction --no-progress --no-suggest --optimize-autoloader --ansi
|
||||
|
||||
- name: Configure Environment
|
||||
@ -92,8 +92,8 @@ jobs:
|
||||
SS_DATABASE_PORT: ${{ job.services.mysql.ports['3306'] }}
|
||||
run: vendor/bin/phpunit --colors=always --printer UndefinedOffset\\SortableGridField\\Tests\\PHPUnit\\Bootstrap\\GitHubActionsAnnotatorPrinter
|
||||
|
||||
silverstripe_410_php80:
|
||||
name: "Silverstripe 4.10 | PHP 8.0"
|
||||
silverstripe_411_php80:
|
||||
name: "Silverstripe 4.11 | PHP 8.0"
|
||||
runs-on: ubuntu-latest
|
||||
if: "!contains(github.event.head_commit.message, '[skip ci]') && !contains(github.event.head_commit.message, '[ci skip]')"
|
||||
env:
|
||||
@ -146,8 +146,8 @@ jobs:
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: ${{ steps.composer-cache.outputs.dir }}
|
||||
key: ${{ runner.os }}-composer-ss410-php80-${{ hashFiles('**/composer.json') }}-${{ hashFiles('.github/workflows/ci.yml') }}
|
||||
restore-keys: ${{ runner.os }}-composer-ss410-php80-
|
||||
key: ${{ runner.os }}-composer-ss411-php80-${{ hashFiles('**/composer.json') }}-${{ hashFiles('.github/workflows/ci.yml') }}
|
||||
restore-keys: ${{ runner.os }}-composer-ss411-php80-
|
||||
|
||||
- name: Install Composer dependencies
|
||||
env:
|
||||
@ -155,85 +155,11 @@ jobs:
|
||||
run: |
|
||||
composer self-update --ansi || true
|
||||
if [[ $GITHUB_ACCESS_TOKEN ]]; then composer config --ansi -g github-oauth.github.com $GITHUB_ACCESS_TOKEN; fi
|
||||
composer require silverstripe/admin 1.10.* --no-update
|
||||
composer require silverstripe/versioned 1.10.*
|
||||
composer install --verbose --no-interaction --no-progress --no-suggest --optimize-autoloader --ansi
|
||||
|
||||
- name: Configure Environment
|
||||
run: |
|
||||
cp tests/utils/actions.env.template .env
|
||||
mkdir artifacts
|
||||
|
||||
- name: Perform PHPUnit Tests
|
||||
env:
|
||||
SS_DATABASE_PORT: ${{ job.services.mysql.ports['3306'] }}
|
||||
run: vendor/bin/phpunit --colors=always --printer UndefinedOffset\\SortableGridField\\Tests\\PHPUnit\\Bootstrap\\GitHubActionsAnnotatorPrinter
|
||||
|
||||
silverstripe_49_php74:
|
||||
name: "Silverstripe 4.9 | PHP 7.4"
|
||||
runs-on: ubuntu-latest
|
||||
if: "!contains(github.event.head_commit.message, '[skip ci]') && !contains(github.event.head_commit.message, '[ci skip]')"
|
||||
env:
|
||||
php_version: 7.4
|
||||
php_extensions: ctype, dom, fileinfo, hash, intl, mbstring, session, simplexml, tokenizer, xml, pdo, mysqli, gd, zip
|
||||
services:
|
||||
mysql:
|
||||
image: mysql:5.7
|
||||
env:
|
||||
MYSQL_ALLOW_EMPTY_PASSWORD: false
|
||||
MYSQL_ROOT_PASSWORD: testpassword
|
||||
MYSQL_DATABASE: test_db
|
||||
ports:
|
||||
- 3306/tcp
|
||||
options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
|
||||
- name: Setup PHP Extension Cache
|
||||
id: cache-env
|
||||
uses: shivammathur/cache-extensions@v1
|
||||
with:
|
||||
php-version: ${{ env.php_version }}
|
||||
extensions: ${{ env.php_extensions }}
|
||||
key: php74-ext-cache-${{ hashFiles('.github/workflows/ci.yml') }}
|
||||
|
||||
- name: Cache PHP Extensions
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: ${{ steps.cache-env.outputs.dir }}
|
||||
key: ${{ steps.cache-env.outputs.key }}
|
||||
restore-keys: ${{ steps.cache-env.outputs.key }}
|
||||
|
||||
- name: Setup PHP, with composer and extensions
|
||||
uses: shivammathur/setup-php@v2
|
||||
with:
|
||||
php-version: ${{ env.php_version }}
|
||||
extensions: ${{ env.php_extensions }}
|
||||
ini-values: log_errors=On, error_log="${{github.workspace}}/artifacts/php_errors.log"
|
||||
coverage: none
|
||||
tools: composer:v1
|
||||
|
||||
- name: Get composer cache directory
|
||||
id: composer-cache
|
||||
run: echo "::set-output name=dir::$(composer config cache-files-dir)"
|
||||
|
||||
- name: Cache composer dependencies
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: ${{ steps.composer-cache.outputs.dir }}
|
||||
key: ${{ runner.os }}-composer-ss49-php74-${{ hashFiles('**/composer.json') }}-${{ hashFiles('.github/workflows/ci.yml') }}
|
||||
restore-keys: ${{ runner.os }}-composer-ss49-php74-
|
||||
|
||||
- name: Install Composer dependencies
|
||||
env:
|
||||
GITHUB_ACCESS_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: |
|
||||
composer self-update --ansi || true
|
||||
if [[ $GITHUB_ACCESS_TOKEN ]]; then composer config --ansi -g github-oauth.github.com $GITHUB_ACCESS_TOKEN; fi
|
||||
composer require silverstripe/admin 1.9.* --no-update
|
||||
composer require silverstripe/versioned 1.9.*
|
||||
composer config allow-plugins.composer/installers true
|
||||
composer config allow-plugins.silverstripe/recipe-plugin true
|
||||
composer config allow-plugins.silverstripe/vendor-plugin true
|
||||
composer require silverstripe/admin 1.11.* --no-update
|
||||
composer require silverstripe/versioned 1.11.*
|
||||
composer install --verbose --no-interaction --no-progress --no-suggest --optimize-autoloader --ansi
|
||||
|
||||
- name: Configure Environment
|
||||
|
@ -1,5 +1,8 @@
|
||||
# Change Log
|
||||
|
||||
## [2.1.0](https://github.com/UndefinedOffset/SortableGridField/tree/2.1.0) (2022-07-06)
|
||||
[Full Changelog](https://github.com/UndefinedOffset/SortableGridField/compare/2.0.9...2.1.0)
|
||||
|
||||
## [2.0.9](https://github.com/UndefinedOffset/SortableGridField/tree/2.0.9) (2021-07-19)
|
||||
[Full Changelog](https://github.com/UndefinedOffset/SortableGridField/compare/2.0.8...2.0.9)
|
||||
|
||||
|
@ -12,7 +12,7 @@ Adds drag and drop functionality to SilverStripe 4's GridField
|
||||
|
||||
## Requirements
|
||||
|
||||
* SilverStripe 4.x
|
||||
* SilverStripe 4.11+
|
||||
|
||||
## Installation
|
||||
|
||||
|
@ -12,7 +12,7 @@
|
||||
}
|
||||
],
|
||||
"require": {
|
||||
"silverstripe/framework": "~4.0",
|
||||
"silverstripe/framework": "~4.11",
|
||||
"silverstripe/versioned": "^1.0",
|
||||
"silverstripe/vendor-plugin": "^1.0"
|
||||
},
|
||||
|
@ -19,7 +19,7 @@ class TestPage extends Page
|
||||
$fields = parent::getCMSFields();
|
||||
|
||||
$conf = GridFieldConfig_RelationEditor::create(10);
|
||||
$conf->addComponent(new GridFieldSortableRows('SortOrder'));
|
||||
$conf->addComponent(GridFieldSortableRows::create('SortOrder'));
|
||||
|
||||
$fields->addFieldToTab(
|
||||
'Root.TestObjects',
|
||||
|
@ -25,9 +25,9 @@ class TestPage extends Page
|
||||
$fields = parent::getCMSFields();
|
||||
|
||||
$conf = GridFieldConfig_RelationEditor::create(10);
|
||||
$conf->addComponent(new GridFieldSortableRows('SortOrder'));
|
||||
$conf->addComponent(GridFieldSortableRows::create('SortOrder'));
|
||||
|
||||
$fields->addFieldToTab('Root.TestObjects', new GridField('TestObjects', 'TestObjects', $this->TestObjects(), $conf));
|
||||
$fields->addFieldToTab('Root.TestObjects', GridField::create('TestObjects', 'TestObjects', $this->TestObjects(), $conf));
|
||||
|
||||
return $fields;
|
||||
}
|
||||
|
@ -27,7 +27,7 @@ class MyModelAdmin extends ModelAdmin
|
||||
|
||||
// This is just a precaution to ensure we got a GridField from dataFieldByName() which you should have
|
||||
if ($gridField instanceof GridField) {
|
||||
$gridField->getConfig()->addComponent(new GridFieldSortableRows('SortOrder'));
|
||||
$gridField->getConfig()->addComponent(GridFieldSortableRows::create('SortOrder'));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -6,6 +6,7 @@ use SilverStripe\Control\Controller;
|
||||
use SilverStripe\Core\ClassInfo;
|
||||
use SilverStripe\Core\Config\Config;
|
||||
use SilverStripe\Core\Injector\Injector;
|
||||
use SilverStripe\Forms\GridField\AbstractGridFieldComponent;
|
||||
use SilverStripe\Forms\GridField\GridField;
|
||||
use SilverStripe\Forms\GridField\GridField_ActionProvider;
|
||||
use SilverStripe\Forms\GridField\GridField_DataManipulator;
|
||||
@ -30,7 +31,7 @@ use SilverStripe\View\Requirements;
|
||||
/**
|
||||
* This component provides a checkbox which when checked enables drag-and-drop re-ordering of elements displayed in a {@link GridField}
|
||||
*/
|
||||
class GridFieldSortableRows implements GridField_HTMLProvider, GridField_ActionProvider, GridField_DataManipulator
|
||||
class GridFieldSortableRows extends AbstractGridFieldComponent implements GridField_HTMLProvider, GridField_ActionProvider, GridField_DataManipulator
|
||||
{
|
||||
/** @var string */
|
||||
protected $sortColumn;
|
||||
|
Loading…
Reference in New Issue
Block a user