Add a table customisation example to the docs

Change-Id: I5f4f7195aff21f10317969ee537485a033284df9
Closes-Bug: #1324982
Reinstate highlighting of selected container in Containers view

The AJAX updating of the containers is the culprit here in a couple of ways.

Firstly, the AJAX update (the short-circuit in MultiTableView.construct_tables)
doesn't have the context from the URL which indicates which of the rows should
be highlighted. This is because the current_item_id is only set on the
navigation table in the case where the whole browser is being rendered, rather
than just part of it. Shifting setting that attribute to all cases allows
lower-level access to the attribute.

Secondly, the handling of the AJAX update (in DataTable.maybe_preempt)
doesn't check the row it creates to see whether it should be selected.

Change-Id: Ibecb761a4bde25c1ea4e33a581dd0586ecc42ea0
Closes-bug: 1299828
Long container names no longer break the page

In the containers page, if the name of a container is too long, the
objects table is no longer visible and the table is out of the screen.
There's a screenshot in the bug itself.

Change-Id: I4b37d04fec462b2b2baad5a3c76db0d0f48e5387
Closes-Bug: 1314145
Network topology crashes with timing issue

Due to a timing issue, the network topology page can issue a 500 error
if a subnet is deleted at the inopportune moment.

Inside openstack_dashboard/dashboards/project/network_topology/views.py
---> JSONView.get method:

neutron_networks = api.neutron.network_list_for_tenant(
                request,
                request.user.tenant_id)

This can return a list of network objects whose subnet list can be [None]

Later, we attempt to iterate over that list and pull the .cidr attribute
off each element:

...
                    'subnets': [{'cidr': subnet.cidr}
                                for subnet in network.subnets],
...

Obviously, None doesn't have a .cidr attribute.

The real cause is inside the api.neutron.network_list_for_tenant call
above. Each network's list of subnets should never include None.

Change-Id: Ia88c5821bec73c80c4e743180354a69dabc93735
Closes-Bug: 1304600
Adding support for volume backups

Users can create, view, delete and restore volume backups

Change-Id: I85b372013c4573018d39178314e769ec8adfd3c7
Co-Authored-By: Lin Hua Cheng <lin-hua.cheng@hp.com>
Implements: blueprint volume-backups
Raise NotImplementedError instead of NotImplemented

Change-Id: Ia6bae64fb5618208b35a652194159c365f6c46a9
Updated from global requirements

Change-Id: I6c4920c55b2ffac75a99464f9c3338d5d5c7686f
Merge "Raise NotImplementedError instead of NotImplemented"
Merge "Add a table customisation example to the docs"
Merge "Updated from global requirements"
Fix adding members to a group

Somehow data string equal to '<div class="modal hide">...</div>
<script>...</script>' is not appended correctly to '<div
id="modal_wrapper">...</div>', but works fine if <script> node is
placed into '<div class="modal hide">...</div>'.

Change-Id: I0f4ecca740e86f9e328843ba39b2bc1b5ce35565
Closes-Bug: #1338522
Merge "Network topology crashes with timing issue"
Hide "Download EC2 Credentials" if EC2 is missing

If EC2 is not a registered service, don't show the "Download EC2 Credentials"
button in the "API Access" tab.

Fixes bug 1331153

Change-Id: I4e600b49573d2d3d96e93c984346d23f02e45e28
Merge "Hide "Download EC2 Credentials" if EC2 is missing"
Merge "Long container names no longer break the page"
Imported Translations from Transifex

Change-Id: I06667407451f037f3b46a462b092a157eec3c4ea
Merge "Adding support for volume backups"
Merge "Reinstate highlighting of selected container in Containers view"
Merge "Imported Translations from Transifex"
Fix multiple Cross-Site Scripting (XSS) vulnerabilities.

 * Ensure user emails are properly escaped

User emails in the Users and Groups panel are being passed through the
urlize filter to transform them into clickable links. However, urlize
expects input to be already escaped and safe. We should make sure to
escape the strings first as email addresses are not validated and can
contain any type of string.

Closes-Bug: #1320235

 * Ensure network names are properly escaped in the Launch Instance menu

Closes-Bug: #1322197

 * Escape the URLs generated for the Horizon tables

When generating the Horizon tables, there was an assumption that only
the anchor text needed to be escaped. However some URLs are generated
based on user-provided data and should be escaped as well.

 * Use 'reverse' to generate the Resource URLs in the stacks tables

Closes-Bug: #1308727

Change-Id: Ic8a92e69f66c2d265a802f350e30f091181aa42e