A Nested Draggable List view is meant to facilitate a parent/child relationship system where there can be multiple depth levels. Each parent in a Nested Draggable List view has its own set of positioned children. Your table must have a parent column that is a reference to the id column in the same table.

Your related form for the view should use a "List" field type for the parent field with a List Type of "Database Populated". Leave Allow Empty as "Yes" or you will not be able to create top level entries. Set the Table option to be the same table as the form's table. Choose your own Description and Sort By options from the columns of the table. An example of the use in a form for events categories can be seen on the right.

While normal Draggable List views are meant to be used in concert with a module class' getAllPositioned method, you will be required to use getMatching in order to properly pull different branches of a Nested Draggable List:

// Pull top level entries
$toplevel = $moduleClass->getMatching("parent","0","position DESC, id ASC");
// Pull top level approved entries
$toplevel = $moduleClass->getMatching(array("parent","approved"),array("0","on"),"position DESC, id ASC");
// Pull top level entries that are not archived
$toplevel = $moduleClass->getMatching(array("parent","archived"),array("0",""),"position DESC, id ASC");

You can replace the 0 in the above calls with the id of the parent you wish to pull children for instead.


To edit the view's options, click the icon next to the view type chooser. For Nested Draggable List you are presented with the following options:

Filter Function

Filters allow you to choose what a user sees in a view instead of displaying every row of a given table. 
Learn More About View Filters

Nesting Column

The nesting column is the column in your table that determines the parent/child relationship. It should be a column that is UNSIGNED INT(11) which has a foreign key reference back to the id column of the table (assuming that the id column of the table is also UNSIGNED INT(11) as it should be).