Commit Graph

205 Commits

Author SHA1 Message Date
Radomir Dopieralski 4a89303231 Clean up the syntax of html attributes to always use double quotes
Our templates are very inconsistent and sometimes even use single and
double quotes in the same tag. This is an attempt to clean it up a
little and use double quotes everywhere.

In addition, I have run into a problem with single quotes being
incorrectly escaped by the Django compressor, and I want to see if
this will help with the issue.

Change-Id: I2d5137a87ed65c6abef38a49264346f917a1c85a
2023-04-05 11:00:26 +02:00
Radomir Dopieralski 6c814b241d Add SYSTEM_SCOPE_SERVICES setting that hides panels
Since not all services are ready to use the system scope token,
we need a way to disable and enable the use of system scope
token on a per-service basis. This setting let us configure
which services should use the system scope token. By default
the list is empty and system scope token is not used at all.

Change-Id: I5e0cdc7288221571f183a37b800c19dc4cff5707
2022-03-10 15:13:21 +01:00
Radomir Dopieralski 34a0159d1a Add system scope support to context switcher
Change-Id: Idd2ec7ae6e978a358b4b3639e86cadae06c90976
2021-11-26 14:09:46 +01:00
Akihiro Motoki 1a40115eee Use "load static" instead of "load staticfiles"
"{% load staticfiles %}" is deprecated in Django 2.1 [1] and will be
removed in Django 3.0. This commit addresses the deprecation warning.

[1] https://docs.djangoproject.com/en/3.1/releases/2.1/#id2

Change-Id: Icf0c032bae2674b4d9373b753ef8d81f3729a401
2021-01-13 21:31:36 +09:00
Radomir Dopieralski 03eaf9cd89 Avoid malformed HTML warning from jquery-migrate
The header template we are serving through ajax is starting with
a newline, which is forbidden in XHTML, and jquery complains about
this.

We need this change to upgrade jquery later.

Change-Id: If0b926b0dcf4c465c4d8ceff1e17ee9a3df1a94b
2020-11-30 15:36:04 +01:00
Ivan Kolodyazhny 1b8627c098 Set unique identifier for Django messages
Messages details template should have unique IDs to get
collapse/expand working.

Change-Id: Ia9ff81694fc7a84417ea2c998721475332a7e772
Closes: Bug #1895570
2020-09-23 16:00:43 +03:00
Marek a11aa7ff62 Forwards LOGOUT_URL to templates.
Uses the openstack context preprocessor to pass
the LOGOUT_URL from settings to templates and
changes the 'Sign out' menu entry to redirect to it
instead of the logout view directly.

closes-bug: #1747149
Change-Id: Id17ffca6b5e24779433c3f19d009bb2a77f7b901
2019-09-20 11:51:48 +02:00
Ivan Kolodyazhny 86d13968d8 Remove unused 'not_list' template argument
This is unused in Horizon itself and I didn't find any
references in plugins. Undefined variable leads to
errors during render in a debug mode.

Partial-Bug: #1720893

Change-Id: I9de0b24adfeb48f5fe14676aaec6b17b8eb52207
2019-09-10 08:41:51 +00:00
BubaVV f272d9136d Fix CSRF error on Images dashboard
Proposed patch correctly passes CSRF token to Angular application with
CSRF_COOKIE_HTTPONLY config option turned on. Also, minor release note
warning fixed

Change-Id: Iec90643078dcf3ed4ad786ecc21bfb067a242c6d
Closes-bug: #1819423
2019-03-18 19:03:40 +02:00
Akihiro Motoki 28b457bc62 UT: Detect template rendering errors
This commit enables template debug option to detect errors
in template rendering in unit tests.

Several errors in template rendering are found by enabling the
debug option and they are fixed in this commit.

Related-Bug: #1809983
Change-Id: I1a2d19f2eae62e16f02d3386abd65527bac4e7a0
2019-01-31 21:29:33 +09:00
Adrian Turjak e9f8abb659 Rework old customization templates and add new blocks
From Rocky we can now support Django's recursive template
inheritance. Let's move away from all these stand alone
templates for deployers to override and instead direct them
to recursively extend the existing templates and the blocks they
need.

This adds more blocks, docs on how to use them, and an example
theme which can be turned on and used to show how this works.

blueprint: less-customization-templates
Change-Id: I69f1e16ff1b88cec78580df0911fe3c01b7507dd
2019-01-03 17:45:29 +13:00
Ivan Kolodyazhny f6f39d86da Remove deprecated table.UpdateAction class
UpdateAction is deprecated in Newton and is used in unit-tests only

Change-Id: I7952cb77b168cc39f8fc37c3b7ffe0c830d4e0d4
2018-04-12 17:34:17 +03:00
Shu Muto 8275d67949 Reproduce navigations on refreshing ngdetails view
To setup proper navigation to side bar and breadcrumb,
this patch adds new 'defaultIndexUrl' parameter and
its getter/setter into resource-type-service.

The 'defaultIndexUrl' parameter makes details view
enable to set navigations properly in Angular-side.

Each panel module should set URL for default index view
using 'defaultIndexUrl' parameter. So, this patch adds
the `defaultIndexUrl` parameter into existing panel
modules that have Angularized details view.

Also, if query string has 'nav' parameter, the
navigation setting will be overwitten with it.
This URL overwriting may be used by panels that has
multiple index panels, like images panel.

Change-Id: I2edd44e55eb10114e5282cec1762e9635881f733
Closes-Bug: #1746706
2018-03-29 15:01:59 +09:00
Ruslan Aliev 7b45b7ae4b Fix back button on Firefox and Safari
Firefox (and Safari) uses bfcache (back-forward cache)
to load re-visited pages. The solution is to force a reload
when page is loaded from bfcache, so back button will work
correctly.
More information can be found here [1] and here [2].

[1] https://madhatted.com/2013/6/16/you-do-not-understand-browser-history
[2] https://stackoverflow.com/questions/8788802/prevent-safari-loading-from-cache-when-back-button-is-clicked

Change-Id: If023bca7c73f983e55c383856e304379c7b8be3a
Closes-bug: #1686315
2018-01-30 15:34:59 +04:00
Zuul e8da066ecc Merge "Better designed 404 error page" 2018-01-20 07:27:12 +00:00
Amelia Cordwell 924239073e Add setting for user menu links
* User menu links can be specified in the settings page
* Defaults to the standard Open RC links (bug and help links are
  not modified in this patch)
* Url, name and icon can all be specified

Change-Id: I3cbcfbf06ede18d468d4c611ad6005cb74f1b284
Closes-Bug: 1736048
2018-01-19 12:19:33 +13:00
Ola Khalifa 3220cbf729 Better designed 404 error page
Edited 404.html to make the error page more appealing and the
style now matches the login page.

Change-Id: I491f77d73beacf6d3c6ae2ded3d8cfc0cd8f5cb2
closes-bug: 1606294
2018-01-17 16:30:53 +13:00
Akihiro Motoki 6c45c47e4b Drop unnecessary executable flags
This patch also adds checks for executable files in
pep8 job.

nose ignores executable files by default, so it is important
to ensure executable flag is not set for test files [1].
openstack_dashboard/test/test_plugins/panel_tests.py was not
tested actually and it was broken. This commit fixes it too.
[1] http://nose.readthedocs.io/en/latest/usage.html#cmdoption-exe

Co-Authored-By: Ivan Kolodyazhny <e0ne@e0ne.info>
Change-Id: I3a124fa2f9f0676b2b43a094e32e3d8b18fa6005
2017-12-27 21:32:48 +00:00
Amelia Cordwell b0e696cf9a Optional removal of V2 openrc file
* Setting 'SHOW_V2_KEYSTONE_RC' added and will control whether
  or not user's are able to see links for the V2 rc file on both
  the API Access panel and the user menu.

Change-Id: I454fcf578dd8c4d2b9b52c3a9e5426b85e5298b5
2017-12-12 16:40:38 +13:00
Tyler Smith 2e7dce8268 Adds extensible header functionality
This change is to introduce a flexible mechanism for projects to
add content to horizon's navbar.
- Introduces a new plugin file variable called ADD_HEADER_SECTIONS,
  which will take a list of views.  These are template views that
  will be used to render individual header sections.
- There is a new view in openstack_dashboard/views.py to cycle
  through these added views and combine them into the complete
  header to be added to the navbar.
- This view is queried by newly added javascript after page load.
  On response it is inserted into the page's navbar.
  If more than one header is present, the first will be shown in
  the navbar, while the rest are added to a drop-down menu.
- The currently displayed header can be changed by clicking on a
  new header in the drop-down; this is stored in a cookie to
  persist the selection between pages.
- Unit tests were modified/added to verify the new plugin entry
  can be parsed successfully and the main header view can parse
  a plugin's view successfully

Change-Id: I177b69ec4e78c17f827e540a7e669af1c29e8b59
Implements: blueprint extensible-header
Signed-off-by: Tyler Smith <tyler.smith@windriver.com>
2017-10-03 17:11:06 +00:00
Jenkins b1197a9365 Merge "template for content under the login form" 2017-09-20 11:40:52 +00:00
Pierre Riteau 7c9758dcdc Fix link to serial console stylesheet
The serial_console.css stylesheet was renamed to serial_console.scss in
commit 09706c6e37, but the link
referencing it in the serial console template was not updated. As a
result the serial console is displayed with a proportional font.

This commit updates the stylesheet link and adds a compress block to
compile it from SCSS to CSS.

Change-Id: Ic8abc970e76cb67c79c2335370c63e235a23eb5a
Closes-Bug: #1714311
2017-08-31 18:04:42 +01:00
Jenkins 26cbc8d5e5 Merge "Add apple-touch-icon and safari-pinned-tab" 2017-07-27 07:42:06 +00:00
Akihiro Motoki 385870317a Split out FWaaS dashboard
Implement blueprint split-out-neutron-xaas-dashboards
Change-Id: Ieaca88dbe28cc2330d9b333082ff7e92c91e8639
2017-06-27 14:20:03 +00:00
Shu Muto 4493b6f75f Enable to set protocols of WebSocket for serial console
This patch enables to set protocols of WebSocket for serial console.
Also, this enables to use serial console not only from instance
but also plugins.
e.g. Zun UI can access container console provided by docker.

Change-Id: Ib0df9ddfc74f98bfea75abce3b5d5479e3cd47bd
Needed-By: I41f236f2762613e56748bb05eb7ce0e4c26158d2
Closes-Bug: #1698092
2017-06-19 19:17:07 +09:00
Ivan Kolodyazhny 2b3c7bdbcb Fix styles for error page template
500.html template has incorrect styles for OpenStack logo. This patch
fixes margins and background image size to fit into the container.

Change-Id: Icc2af2731eb8a842c12c073474f3865709b6de2b
Closes-Bug: #1696437
2017-06-07 17:28:53 +03:00
Mateusz Kowalski 55144382e3 Add apple-touch-icon and safari-pinned-tab
Apple devices handle website icons through Apple Touch
Icon which requires apple-touch-icon tag in stylesheet.
Also Safari pinned tab icon requires a separate SVG
for being correctly displayed.

Change-Id: I108039b263dafee3f0f23a4f7daa796eca36a52f
Closes-Bug: #1689504
2017-05-09 10:30:34 +02:00
wei.ying 02559e544e Fix the legacy experience launch instance dialog can not open
Since the commit c219a3efc6
removed js file 'horizon.instances.js' in the template file
' _scripts.html', If enable the legacy experience launch instance
(Set 'LAUNCH_INSTANCE_LEGACY_ENABLED = True' and
'LAUNCH_INSTANCE_NG_ENABLED = False' in the local_settings.py) and
click launch instance, we can not open launch instance dialog and
also see the following in console.log.

VM22778:3 Uncaught TypeError: Cannot read property 'workflow_init'
of undefined

Change-Id: Ia9e22df5129527e4b021599bbdec9a668a04ee4b
Closes-Bug: #1686431
2017-05-03 05:13:25 +08:00
Diana Whitten c219a3efc6 Horizon Spinner/Loader should inherit from theme
The Horizon spinner was using a spinner generated and animated
entirely out of JavaScript. Since CSS3 provides animates and we have
access to icon fonts, doing everything with JavaScript is not
necessary and actually taxing on the browser. Plus, all of the
spinner options were being passed in and around with JavaScript,
including the colors.  This makes it supremely difficult to use the
theme to style the spinner.

The new spinner is just defined by a handful of templates now. There
are two clientside templates to support Legacy Horizon, and one
template in the Angular to support spinners going forward.  Legacy
Horizon had two forms of spinners, so it was broken up. Angular as
not yet made use of the inline spinner, but should follow the same
markup when it is made.

There are two types of spinners, inline spinners (those shown when a
dynamic tab content is loading) and modal spinners (various other
places).  These are consistent with each other for the 'default'
experience, but their experience can be entirely customized separate
from each other.  'material' has been augmented with loaders defined
within their design spec to show the power of this new feature.

horizon.templates.js was augmented with this refactor to support only
having to compile one tempalte at a time (instead of all of them) and
caching that template so that all of them can be recompiled later.
Also, horizon.loader.js was added to house template compilation code
that was repeated in several locations.

To test overwriting page modal spinner and inline-modal spinner
examples, please follow the instructions in _loading_inline_exmaple.html,
_loading_modal_example.html under
openstack_dashboard/themes/material/templates/horizon/client_side

Change-Id: I92bc786160e070d30691eeabd4f2a50d6e2bb395
Partially-implements: blueprint horizon-theme-css-reorg
Partially-Implements: blueprint bootstrap-html-standards
Closes-bug: #1570485
2017-04-21 11:15:52 -07:00
adrian-turjak d343ca3c9c template for content under the login form
Adds a new template '_login_form_footer.html' and template
includes at the right places to use the new template.

The new template is a simple placeholder template for custom
login form footer content. Unlike the login footer, this
template places content into the form right below the login
button. Such as a link to a password reset form or other
additional links and info.

Change-Id: I671a01b71353b847fce75937fb349569d5677df4
Implements: blueprint templated-login-form-footer
2017-04-05 15:51:57 +12:00
Shu Muto 21e3d07644 Enable breadcrumbs for AngularIndexView
This patch enables breadcrumb navigation for panels using
horizon.browsers.views.AngularIndexView.

Change-Id: If6d100472e61c1cb00e18c56e25300b45d8a7098
Needed-By: Iae5edc9d370fbda20889a043a2574bd034170881
2017-03-29 11:47:52 +01:00
Rob Cresswell aa444a60b1 Add OpenStack RC Download buttons to user menu
Adds the OpenStack RC Download buttons for keystone v2 and v3 to
the user menu dropdown

Change-Id: Ia1502f3f54e42ad0f18a8535871a27858a80e3d3
Implements: blueprint reorganise-access-and-security
2017-01-31 15:26:41 +13:00
Jenkins 8201d7bc9f Merge "Keystone to Keystone Federation Drop Down" 2017-01-25 23:10:07 +00:00
Rob Cresswell 939731183b Update default OpenStack branding across Horizon
This patch updates the OpenStack logos across Horizon to the newer
versions. It also uses SVG files instead of PNG, so that it scales
better.

Change-Id: Ief3661023332ed6777256d20a4dc865f6a51695f
Closes-Bug: 1637490
2017-01-25 10:15:11 +00:00
Elvin Tubillara 69eb05ae71 Keystone to Keystone Federation Drop Down
This adds a dropdown to enable the user to switch Keystone providers using
Keystone to Keystone Federation.

Depends-On: I75b1a10a3b40b5544b60f6fdc060e0070c585977
Change-Id: Id39bf8d21c537347cbd23f63eaa3da8cc1bfff46
Implements: blueprint k2k-horizon
2017-01-19 14:59:01 -06:00
Jenkins 5166f74f44 Merge "Enable profiling of angular pages (with async requests)" 2017-01-16 15:49:03 +00:00
Paul Karikh e2cf94eb46 Enable profiling of angular pages (with async requests)
The main difficulty in tracing async requests which are made during
the rendering of Angular-based pages is tracking the root request (the
one which was made to render the skeleton page which then initiated
all other requests) throughout other requests, so they form a cohesive
trace. This is solved by capturing the root request id and exposing it
as a profiler module constant in the process of interpolating
_scripts.html Django template. Then if that constant is not an empty
dictionary, profiler module intercepts all Angular requests and adds
osprofiler headers to them.

This patch also fixes issues which arose after transitioning to the
new version of angular-bootstrap.

Change-Id: I656028b969289a473f54594681d9313ff8a07fd8
2016-12-29 18:26:19 +03:00
Kenji Ishii 295175826b Move js files into openstack_dashboard folder.
hozoin doc says that the horizon directory holds the generic
libraries and components that can be used in any Django project.

So, this patch move js files related with Openstack components into
openstack_dashboard folder.

Change-Id: Ib4ed05e1136ee3f70a201139e456d4c3b93519f3
Closes-bug: #1635519
2016-12-18 15:27:42 +09:00
Yakup Adakli 124bbb3d82 AngularJS based panels page title updated
to more logical ones instead of "Horizon - OpenStack Dashboard".

Change-Id: Ia230ba28e011e99142e7fd2379fe1735ccd0b010
Closes-Bug: #1647855
2016-12-15 15:01:37 +03:00
Rob Cresswell beb821e9c4 Revert "Turn off angular template cache preloading when DEBUG=True"
This completely breaks schema form. If you want
to reduce cache time, just use the existing setting

This reverts commit d219f6078b.

Change-Id: I74c5f860ffe9423b7d9d09fb42faabae546fd0c7
2016-12-15 08:17:15 +00:00
Richard Jones d219f6078b Turn off angular template cache preloading when DEBUG=True
This allows easier reloading of changed HTML templates when
developing them.

Change-Id: If1acaf2e03c21e13652e6c8ff0e4984b77ea8716
Fixes-Bug: 1648656
2016-12-09 11:12:45 +11:00
Timur Sufiev 4ceeef5376 Add the Profiler panel to the Developer dashboard
Provide both pythonic Django part and the static assets (angular
directives and styles) for the new panel.

DEPLOY NOTES:

To enable panel itself, copy
openstack_dashboard/local/local_settings.d/_9030_profiler_settings.py.example
file from the previous commit to
openstack_dashboard/local/local_settings.d/_9030_profiler_settings.py
and copy openstack_dashboard/contrib/developer/enabled/_9030_profiler.py
to openstack_dashboard/local/enabled/_9030_profiler.py

To support storing profiler data on server-side, MongoDB cluster needs
to be installed on Devstack host (default configuration), see
https://docs.mongodb.com/manual/tutorial/install-mongodb-on-ubuntu/#install-mongodb-community-edition
for instructions. Then, change net:bindIp: key to 0.0.0.0 inside
/etc/mongod.conf and invoke `sudo service mongod restart` for the
changes to have an effect.

Implements-blueprint: openstack-profiler-at-developer-dashboard
Change-Id: Ice7b8b4b4decad2c45a9edef3f3c4cc2ff759de4
2016-12-01 22:29:16 +03:00
Rob Cresswell 837587fe73 Improve Horizon nav sidebar
- Make menu responsive (hides on smaller screens, e,g, 1/2 laptop screen,
  tablet, mobile)
- Add aria parameters for accessibility
- Show current focus when navigating (accessibility)
- Remove the blue outline when clicking links in Chrome
- Makes menu less hideous

Change-Id: I1cdfa079f0b371d1afddefa67d8a21e93abde9ee
Implements: blueprint navigation-improvements
Closes-Bug: 1315488
Closes-Bug: 1628274
2016-11-23 16:17:13 +00:00
Ernest Millan 9841990f1c Create common code for horizon.instances.js and horizon.firewalls.js
A majority of the previously duplicated code within the above mentioned
files will now reference common-code within horizon.lists.js instead.

Change-Id: Ica397697db33422fb5393c0088d0a695c3c15002
Closes-bug: #1435908
2016-11-07 18:56:06 +00:00
Timur Sufiev 9445d15cd1 Fix various issues with compressed angular templates and plugins
First, retrieve current theme only in cases when it already has been
provided in the context. That should prevent missing 'THEME' errors
when post_compress signal is being processed, for example inside
_stylesheets.html which does not provide THEME var into the rendering
context.

Second, under certain circumstances, offline compression was producing
a different hash for compressed angular templates than runtime
template renderer was expecting. Make the combined template with all
angular templates be a deterministic - convert it from a dictionary to
a list of key-value tuples. Various order of dictionary entries in
offline and online compress phases seemed to produce 'missing compress
hash key' error.

Closed-Bug: #1603307
Change-Id: Idb48c3f68da43bba33033a71e6d69bdc112736de
2016-08-24 16:45:38 +03:00
Richard Jones 348069364c Re-work static_settings to clean up
This patch reduces duplication arbitrary directory choices for
xstatic package locations in the static directory.

It moves the xstatic configuration from the library into the
settings file, and the supporting functions move to
the openstack_dashboard.utils.settings module. Having the xstatic
module list in settings allows deployers to add new modules.

It standardises the paths the files are served from, reducing
potential conflicts.

It simplifies the interaction with the xstatic modules, and also uses
the new MAIN variable if present to determine the entry points used.

Since some of the xstatic packages were installed into special
snowflakes directories (not following a pattern) the references to
those (bootstrap_scss and font_awesome) have been fixed.

Change-Id: Ia5be0e96fff1a4ddd6058d6b030ddf96da4b46e7
2016-08-18 16:28:57 +03:00
Jenkins b5e0bd745e Merge "Navigational Breadcrumb should have contextual class" 2016-08-06 07:50:19 +00:00
Rob Cresswell 0e957dd41a Add Angular Schema Form
This patch adds Angular Schema Form[1] and its requirements to Horizon.
There are a number of advantages to this over the current methods of
defining forms and workflows:

- All fields have an individual template, making theming improvements,
  bug fixes, and bootstrap conformity easier.
- The file and line count, especially for workflows, is dramatically
  reduced. The Create Net workflow, for example, goes from 12+ files to
  2, with a big reduction in boilerplate HTML.
- All field validation messages are standardised, so we can match them
  across Horizon and plugins

What this patch contains:
- Many common form fields, including things like the themable checkboxes
  and selects.
- A basic modal template that can be passed with ui-bootstraps $modal
  service to take advantage of schema-form

Next steps:
- Remove the other modal templates so we can standardise. A single
  template opened from the $modal service is fine, and we shouldn't need
  several directives. In this case, we should deprecate them, as the
  modal forms will be used elsewhere.
- Map commonly used form items, like transfer tables, to a schema form
  type like array (they serve similar purposes, so maybe thats what
  should be replaced)
- Use themable selects instead of regular ones

1. http://schemaform.io/

Co-Authored-By: Tyr Johanson <tyr@hpe.com>
Implements: blueprint angular-schema-form
Change-Id: Ib22b2d0db2c4d4775fdef62a180cc994e8ae6280
2016-08-04 16:53:41 +00:00
Tyr Johanson fca46ab60f Pre-populate the Angular template cache and allow template overrides
This patch populates the Angular template cache from Django.
This eliminates the need for Angular to do an http get for every HTML
fragment.

In addition, now that we are filling the template cache, this patch
introduces the logic needed to override any Angular template HTML from
the current theme.

How it works:
A new template tag is created called "template_cache_preloads". This
tag is used in _scripts.html to generate a list of text/javascript
script tags, each one containing an Angular "run" method that loads
a template contents into the Angular template cache. The first time
any Horizon page is loaded after server start, the template cache
preloads are computed for the current theme.

The output of this tag is cached for 30 days in Django using the
"cache" tag. Further, that cached result is wrapped in a "compress js"
tag to collapse the individual <script> tags into 1 block of
javascript, and compress like all other javascript Horizon serves to
the client.

Finally, when using offline compression, the compressor evaluates the
nodelist (HTML content) of _scripts.html, notices the compress tag
and builds the template cache preloads for each possible theme. Later,
at runtime, when the preloads are generated for the current theme, the
compressor gets the result from the Django cache, and hashes the
contents to determine which manifest file to serve to the client.
Since the preloads generated at run-time are identical to those
generated off-line, the compressor hash matches an existing manifest
which is served to the client.

Notice that even though the template cache pre-loads are generated
off-line...the template_cache_preloads tag will be executed once
every 30 days anyway. However, since the result matches the off-line
compression, the existing manifest continues to be served to the client.

Finally, this patch ALSO watches for 'post_compress' signals. If it
detects that the angular template preloads have been re-compressed, it
clears the old version from the Django cache.

To test the template caching:
- Run horizon
- View page source
- Notice the new <script type="text/javascript"> tags contained in
  the body (only visible if COMPRESS_ENABLED=False
- Open the javascript inspector
- Load launch instance
- Notice there are no longer http calls to load each HTML fragment
  used by the Angular launch instance

To test the override:
- Set the DEFAULT_THEME='material'
- Create /horizon/openstack_dashboard/themes/material/\
static/templates/framework/widgets/help-panel/help-panel.html
- Set the content to <h1>TEST</h1>
- Run Horizon and open launch instance.
- The help content should contain "TEST"

To test the new template tag:
- set a breakpoint or print in angular.py:template_cache_preloads
  and observe when it is called during off-line or run-time use

Co-Authored-By: Diana Whitten <hurgleburgler@gmail.com>

Implements: blueprint angular-template-overrides
Change-Id: I0e4e2623be58abbc68c6e02b2e9c5d7cdaba8e4d
2016-07-13 15:38:07 -07:00
Diana Whitten 313126a806 Navigational Breadcrumb should have contextual class
Closes-bug: #1588456

Change-Id: Ib39096f6d5117ddc6d924c97c273ac58534fab57
2016-06-02 10:14:10 -07:00