horizon/releasenotes/notes/generic-details-4f78452b14005e5b.yaml
Matt Borland 11968c840c Generic details display framework
This patch provides the ability for the registered detail views for
any resource type to be generically presented.

This patch does the following:
 * Adds a directive that displays a set of views (i.e. details sub-views)
 * Adds a Generic Detail display for routed pages
 * Adds the concept of a Descriptor which contains a resource type name
   and an identifier.  The identifier can be something as simple as
   a string, but may also be an object (if the resource type needs more
   than one value to look up its data, e.g. Pool Members)
 * Adds the ability for a resource type to have knowledge about how one
   of its items may be loaded, so any detail page can fetch the information
   given a basic context
 * Adds a generic Angular page (since they all just route to ng-views).
   We will see this used in subsequent patches as well.
 * Sets up a Django route to a non-navigational panel for the Details

Change-Id: Ie116b52ba196f9240fdc6bbc4a12d37beb9b9fcf
Partially-Implements: blueprint angular-registry
2016-05-16 11:39:57 -06:00

27 lines
1.1 KiB
YAML

---
prelude: >
A Details page for a resource type (e.g. Images)
may now use the Angular application-level registry
to register views so developers may easily create
or extend details views. In this implementation
these views are presented as tabs within the
Details page.
features:
- A directive (hz-details) provides the ability to
intelligently display a set of views (typically for
a Details context).
- A generic Details display parses the location to
determine the resource type, and displays relevant
details views for that type.
- A Descriptor concept allows convenient passing of
information that can globally identify an object,
for use in generic views and actions.
- Horizon now has a (non-navigational) route in Django
so generic details pages are deep-linked.
- A shared Django template is now available for use by
any Angular page.
upgrade:
- (optional) Use the common Angular template as the
basis of any Angular pages to minimize boilerplate code
and to ensure that we use similar features/framing.