mirror of
https://github.com/UndefinedOffset/SortableGridField.git
synced 2024-06-16 17:41:30 +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:
|
jobs:
|
||||||
silverstripe_410_php74:
|
silverstripe_411_php74:
|
||||||
name: "Silverstripe 4.10 | PHP 7.4"
|
name: "Silverstripe 4.11 | PHP 7.4"
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
if: "!contains(github.event.head_commit.message, '[skip ci]') && !contains(github.event.head_commit.message, '[ci skip]')"
|
if: "!contains(github.event.head_commit.message, '[skip ci]') && !contains(github.event.head_commit.message, '[ci skip]')"
|
||||||
env:
|
env:
|
||||||
|
@ -69,8 +69,8 @@ jobs:
|
||||||
uses: actions/cache@v2
|
uses: actions/cache@v2
|
||||||
with:
|
with:
|
||||||
path: ${{ steps.composer-cache.outputs.dir }}
|
path: ${{ steps.composer-cache.outputs.dir }}
|
||||||
key: ${{ runner.os }}-composer-ss410-php74-${{ hashFiles('**/composer.json') }}-${{ hashFiles('.github/workflows/ci.yml') }}
|
key: ${{ runner.os }}-composer-ss411-php74-${{ hashFiles('**/composer.json') }}-${{ hashFiles('.github/workflows/ci.yml') }}
|
||||||
restore-keys: ${{ runner.os }}-composer-ss410-php74-
|
restore-keys: ${{ runner.os }}-composer-ss411-php74-
|
||||||
|
|
||||||
- name: Install Composer dependencies
|
- name: Install Composer dependencies
|
||||||
env:
|
env:
|
||||||
|
@ -78,8 +78,8 @@ jobs:
|
||||||
run: |
|
run: |
|
||||||
composer self-update --ansi || true
|
composer self-update --ansi || true
|
||||||
if [[ $GITHUB_ACCESS_TOKEN ]]; then composer config --ansi -g github-oauth.github.com $GITHUB_ACCESS_TOKEN; fi
|
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/admin 1.11.* --no-update
|
||||||
composer require silverstripe/versioned 1.10.*
|
composer require silverstripe/versioned 1.11.*
|
||||||
composer install --verbose --no-interaction --no-progress --no-suggest --optimize-autoloader --ansi
|
composer install --verbose --no-interaction --no-progress --no-suggest --optimize-autoloader --ansi
|
||||||
|
|
||||||
- name: Configure Environment
|
- name: Configure Environment
|
||||||
|
@ -92,8 +92,8 @@ jobs:
|
||||||
SS_DATABASE_PORT: ${{ job.services.mysql.ports['3306'] }}
|
SS_DATABASE_PORT: ${{ job.services.mysql.ports['3306'] }}
|
||||||
run: vendor/bin/phpunit --colors=always --printer UndefinedOffset\\SortableGridField\\Tests\\PHPUnit\\Bootstrap\\GitHubActionsAnnotatorPrinter
|
run: vendor/bin/phpunit --colors=always --printer UndefinedOffset\\SortableGridField\\Tests\\PHPUnit\\Bootstrap\\GitHubActionsAnnotatorPrinter
|
||||||
|
|
||||||
silverstripe_410_php80:
|
silverstripe_411_php80:
|
||||||
name: "Silverstripe 4.10 | PHP 8.0"
|
name: "Silverstripe 4.11 | PHP 8.0"
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
if: "!contains(github.event.head_commit.message, '[skip ci]') && !contains(github.event.head_commit.message, '[ci skip]')"
|
if: "!contains(github.event.head_commit.message, '[skip ci]') && !contains(github.event.head_commit.message, '[ci skip]')"
|
||||||
env:
|
env:
|
||||||
|
@ -146,8 +146,8 @@ jobs:
|
||||||
uses: actions/cache@v2
|
uses: actions/cache@v2
|
||||||
with:
|
with:
|
||||||
path: ${{ steps.composer-cache.outputs.dir }}
|
path: ${{ steps.composer-cache.outputs.dir }}
|
||||||
key: ${{ runner.os }}-composer-ss410-php80-${{ hashFiles('**/composer.json') }}-${{ hashFiles('.github/workflows/ci.yml') }}
|
key: ${{ runner.os }}-composer-ss411-php80-${{ hashFiles('**/composer.json') }}-${{ hashFiles('.github/workflows/ci.yml') }}
|
||||||
restore-keys: ${{ runner.os }}-composer-ss410-php80-
|
restore-keys: ${{ runner.os }}-composer-ss411-php80-
|
||||||
|
|
||||||
- name: Install Composer dependencies
|
- name: Install Composer dependencies
|
||||||
env:
|
env:
|
||||||
|
@ -155,85 +155,11 @@ jobs:
|
||||||
run: |
|
run: |
|
||||||
composer self-update --ansi || true
|
composer self-update --ansi || true
|
||||||
if [[ $GITHUB_ACCESS_TOKEN ]]; then composer config --ansi -g github-oauth.github.com $GITHUB_ACCESS_TOKEN; fi
|
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 config allow-plugins.composer/installers true
|
||||||
composer require silverstripe/versioned 1.10.*
|
composer config allow-plugins.silverstripe/recipe-plugin true
|
||||||
composer install --verbose --no-interaction --no-progress --no-suggest --optimize-autoloader --ansi
|
composer config allow-plugins.silverstripe/vendor-plugin true
|
||||||
|
composer require silverstripe/admin 1.11.* --no-update
|
||||||
- name: Configure Environment
|
composer require silverstripe/versioned 1.11.*
|
||||||
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 install --verbose --no-interaction --no-progress --no-suggest --optimize-autoloader --ansi
|
composer install --verbose --no-interaction --no-progress --no-suggest --optimize-autoloader --ansi
|
||||||
|
|
||||||
- name: Configure Environment
|
- name: Configure Environment
|
||||||
|
|
|
@ -1,5 +1,8 @@
|
||||||
# Change Log
|
# 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)
|
## [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)
|
[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
|
## Requirements
|
||||||
|
|
||||||
* SilverStripe 4.x
|
* SilverStripe 4.11+
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"require": {
|
"require": {
|
||||||
"silverstripe/framework": "~4.0",
|
"silverstripe/framework": "~4.11",
|
||||||
"silverstripe/versioned": "^1.0",
|
"silverstripe/versioned": "^1.0",
|
||||||
"silverstripe/vendor-plugin": "^1.0"
|
"silverstripe/vendor-plugin": "^1.0"
|
||||||
},
|
},
|
||||||
|
|
|
@ -19,7 +19,7 @@ class TestPage extends Page
|
||||||
$fields = parent::getCMSFields();
|
$fields = parent::getCMSFields();
|
||||||
|
|
||||||
$conf = GridFieldConfig_RelationEditor::create(10);
|
$conf = GridFieldConfig_RelationEditor::create(10);
|
||||||
$conf->addComponent(new GridFieldSortableRows('SortOrder'));
|
$conf->addComponent(GridFieldSortableRows::create('SortOrder'));
|
||||||
|
|
||||||
$fields->addFieldToTab(
|
$fields->addFieldToTab(
|
||||||
'Root.TestObjects',
|
'Root.TestObjects',
|
||||||
|
|
|
@ -25,9 +25,9 @@ class TestPage extends Page
|
||||||
$fields = parent::getCMSFields();
|
$fields = parent::getCMSFields();
|
||||||
|
|
||||||
$conf = GridFieldConfig_RelationEditor::create(10);
|
$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;
|
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
|
// This is just a precaution to ensure we got a GridField from dataFieldByName() which you should have
|
||||||
if ($gridField instanceof GridField) {
|
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\ClassInfo;
|
||||||
use SilverStripe\Core\Config\Config;
|
use SilverStripe\Core\Config\Config;
|
||||||
use SilverStripe\Core\Injector\Injector;
|
use SilverStripe\Core\Injector\Injector;
|
||||||
|
use SilverStripe\Forms\GridField\AbstractGridFieldComponent;
|
||||||
use SilverStripe\Forms\GridField\GridField;
|
use SilverStripe\Forms\GridField\GridField;
|
||||||
use SilverStripe\Forms\GridField\GridField_ActionProvider;
|
use SilverStripe\Forms\GridField\GridField_ActionProvider;
|
||||||
use SilverStripe\Forms\GridField\GridField_DataManipulator;
|
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}
|
* 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 */
|
/** @var string */
|
||||||
protected $sortColumn;
|
protected $sortColumn;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user