Hierarchical tables

The other half of the hierarchical tableselect example: the administrative tables of a tree that select nothing, which is most of them. Three of them, and the tree sits somewhere different in each. The outline of a book is a tree carried by indentation and dragged into shape, whose first cell holds a text field, so a page is renamed and moved in the same submission. The manage display form is a tree that is not indentation at all but grouping: rows belong to a region, the regions are announced by rows spanning the whole table, a message row is printed under each one whether it is needed or not, and every row carries five widgets in five columns. The listing is the same tree printed rather than administered, with no form element in any cell and a row header in the first one. Nothing is saved, and the trees are made up, so the page renders the same on every site.

A tree with a text field in the first cell

The outline of a book, which is the tree form nobody thinks of first and the one that puts the most in a row: the first cell holds the indentation of the row and then a text field, so a page is renamed and moved in the same submission. Nothing is chosen here, so the column of check boxes is not missing -- there was never anything to select. What that leaves in the first cell is a drag handle, some number of indentation markers, and a text input whose width has to survive both of them at every level of the tree.

Title Weight Parent Operations
 
 
 
 
 
 

A tree that is grouping rather than indentation

The manage display form, where the hierarchy is a different shape: no row is indented under another, and what a row belongs to is a region, announced by a row that spans the whole table. Under every region title comes a message row, which the real form leaves in the markup whether the region is empty or not and hides with a class when it is filled -- so a theme that styles it only when it is visible has styled half of it. The rest of a row is the reason this table exists at all: five widgets in five columns, the last of them a settings summary and the button that opens it, none of which is the same width twice.

Field Weight Parent Region Label Format
No field is displayed.
Image
Image style: Large (480×480)
Linked to content
Body
Trimmed limit: 600 characters
Tags
Link to the referenced entity
Links
Disabled
No field is hidden.
Author
Link to the referenced entity
Comments
Threading: enabled
50 comments per page

A tree with nothing in it to edit

The same outline printed rather than administered: a table of rows, no form element in any cell, and no form around it either. It is what a list builder outputs, and it is worth having under the two forms above because almost everything a theme does to a table of widgets -- the height of a row, the space around a cell, the alignment of a column -- was decided by the widgets and is wrong here. Two things this table can afford that neither form above can: a caption, which names the table to a screen reader without a heading, and a row header in the first cell, which a table of controls cannot have because the header of a row is no place for the control that operates on it.

Pages of the handbook
Title Pages Updated Operations
Getting started 4
 
Installing the site
2
 
 
Requirements
0
 
First steps
0
Theming 3
 
Templates
0
 
Libraries and assets
0
Deployment 0

The tables with a column of check boxes or radio buttons in front of the tree are on the hierarchical tableselect example, which is the other half of this one. The two forms these are all modelled on, reproduced rather than varied, are on the menu and taxonomy overview example.