Change record status: 
Project: 
Introduced in branch: 
8.x
Description: 

Certain entity types, like user roles, filter formats, taxonomy vocabularies, and languages, all have a need for a specific ordering.
To make that easier, a specific subclass of EntityListBuilder was added, \Drupal\Core\Config\Entity\DraggableListBuilder.

In order for the controller to work properly, the entity type must have an weight entity key set in their entity type annotation.

To use the draggable list controller, a subclass needs to be created and specified in the entity type annotation. That subclass needs to implement getFormId() and very likely override buildHeader() and buildRow().

/**
 * Provides a listing of user roles.
 */
class RoleListBuilder extends DraggableListBuilder {

  public function getFormId() {
    return 'user_admin_roles_form';
  }

  public function buildHeader() {
    $header['label'] = t('Name');
    return $header + parent::buildHeader();
  }

  public function buildRow(EntityInterface $entity) {
    $row['label'] = $this->getLabel($entity);
    return $row + parent::buildRow($entity);
  }

}
Impacts: 
Module developers
Updates Done (doc team, etc.)
Online documentation: 
Not done
Theming guide: 
Not done
Module developer documentation: 
Not done
Examples project: 
Not done
Coder Review: 
Not done
Coder Upgrade: 
Not done
Other: 
Other updates done