From a30d523e546c1885df28c1166088714f1084c925 Mon Sep 17 00:00:00 2001 From: Ed Date: Sat, 24 Nov 2012 14:17:54 -0400 Subject: [PATCH] Added links to example classes Added link to the usage section from the migration section Corrected a few typos --- README.md | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 5456f10..6b0915d 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ SortableGridField Adds drag and drop functionality to SilverStripe 3.0's GridField -## Requirments +## Requirements * SilverStripe 3.0 ## Installation @@ -13,7 +13,7 @@ Adds drag and drop functionality to SilverStripe 3.0's GridField * Upon entering the cms and using GridFieldSortableRows component for the first time you make need to add ?flush=all to the end of the address to force the templates to regenerate ## Usage -To enable sorting on a has_many relationship set up an interger field on your data object. Also for has_many relationships make sure to set the $default_sort on the dataobject to this new interger field to ensure that the sort order is applied when the relationship is requested. For many_many relationships you must add a $many_many_extraFields static to the data object defining the relationship, see the SilverStripe documentation for more information on this. If you are using a many_many relationship you will need to do a custom getter to set the sort order of this relationship for use on the front end see bellow for an example. For new DataObjects you do not need to increment the Sort order yourself in your DataObject GridFieldSortableRows will automatically do this the next time the grid is displayed. +To enable sorting on a has_many relationship set up an integer field on your data object. Also for has_many relationships make sure to set the $default_sort on the dataobject to this new integer field to ensure that the sort order is applied when the relationship is requested. For many_many relationships you must add a $many_many_extraFields static to the data object defining the relationship, see the SilverStripe documentation for more information on this. If you are using a many_many relationship you will need to do a custom getter to set the sort order of this relationship for use on the front end see bellow for an example. For new DataObjects you do not need to increment the Sort order yourself in your DataObject GridFieldSortableRows will automatically do this the next time the grid is displayed. ```php public function getMyManyManyRelationship() { @@ -31,8 +31,12 @@ $myGridConfig->addComponent(new GridFieldSortableRows('{Column to store sort}')) To move an item to another page drag the row over the respective page button and release. +#### Full code Examples +* [has_many relationship] (docs/HasManyExample.md) +* [many_many relationship] (docs/ManyManyExample.md) + ## Migrating from SilverStripe 2.4 and Data Object Manager's SortableDataObject -SortableGridField is not the same as SortableDataObject, since it is only a component of GridField it does not have the ability to catch the object when it is saved for the first time. So SortableGridField uses 1 as the first sort index because 0 is the default for an integer field/column in the database. For migrations from 2.4 with SortableDataObject you need to setup your DataObject based on the instructions above however you must name your sort column "SortOrder" to maintain your sort indexes defined by SortableDataObject. Then you need to run the following query on the table containing your sort field, for many_many relationships this will be something like {RelationshipClass}_{RelationshipName}. This query will maintain your sort order from SortableDataObject but increment the index by 1 giving it a starting number of 1. +SortableGridField is not the same as SortableDataObject, since it is only a component of GridField it does not have the ability to catch the object when it is saved for the first time. So SortableGridField uses 1 as the first sort index because 0 is the default for an integer field/column in the database. For migrations from 2.4 with SortableDataObject you need to setup your DataObject [based on the instructions above] (#usage) however you must name your sort column "SortOrder" to maintain your sort indexes defined by SortableDataObject. Then you need to run the following query on the table containing your sort field, for many_many relationships this will be something like {RelationshipClass}_{RelationshipName}. This query will maintain your sort order from SortableDataObject but increment the index by 1 giving it a starting number of 1. ```sql UPDATE YourTable SET SortOrder=SortOrder+1;