Initially the color changed with hover and looked weird, now it no
longer changes color on hover.
Closes-Bug #1600004: Inconsistent table color in Flavor Popover
Change-Id: Iecc7048f7c0051bae9702bd8855f3a83680f3d09
changed the heading type from h5 to h4 to enlarge it without
altering the appearance of other h5's. This was done because
the current font size made locating the text amongst the many
larger elements on the page, this change allows a user to
quickly identify the purpose of the sections below.
Closes-Bug #1743683
Change-Id: I992ed598d59e4fef6baa18139288782003a1ade3
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
IE11/Edge browsers doesn't scale SVG images correct if
weight and height is specified directly in SVG. Also these
browsers doesn't work well with max-height style.
Change-Id: I3fe643dd5e0d47cb0e5a658c84d23a8750c217e7
Closes-Bug: #1715674
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>
This removes some oddities with the CSS causing select menus to be
hidden in some circumstances. The side effect of this is that when the
modal body is tall, the window now scrolls instead of the body. I'm not
sure if this is actually bad, but its different.
Change-Id: If890ada4c1c450962789db23e9b4cfc50fe77900
Closes-Bug: 1603496
The datepicker plugin that we use provides its own css file, which we
were including and using, however, it was not inheriting any theme
variables. Because the CSS was built with the default Bootstrap
skin in mind, it looked fine until you tried it on a different theme
and it inherited nothing.
A very minimal SCSS has been provided that actually pulls in theme
variables. The datepicker markup has been broken into templates that
will allow more granular overrides.
Change-Id: I3b6c92a205b2bfff908cb720974821db517a6a3f
Partially-implements: blueprint horizon-dynamic-theme
Partially-Implements: blueprint bootstrap-html-standards
Cursor styling is overridden by 'pointer-events: none' as the item
is no longer the target of mouse events, so the cursor will always
be default.
Change-Id: I672d590b1e1da5aabba12dfb77f4cc4bde71e4cd
Much like the themable selects and checkboxes, number spinners
should also be themable.
Standard number spinners are not very customizable. We should use
existing buttons and fonts to add their functionality to allow a
richer experience if desired downstream.
An example of how to customize the spinner was placed in Material.
The example shows how to use flexbox to change layout type from
column to row, change icon order, and how to override the icons.
'autocomplete' needs to be false on this new element, otherwise
the browser will retain and load the last value without actually
triggering any JavaScript events by which we can key on and update
the state of the spinner buttons.
Change-Id: Ifd266cd515a903841e2d28e2f4731879116e3513
Closes-bug: #1598311
Added two charts for Number of Volumes and Total Volume Storage quotas
on Angular launch instance modal when cinder is enabled.
The charts reflect the volume usage of the new instances to be created
as the user changes the configuration on the modal.
Updated the chart styling for the charts to align better.
Change-Id: Ie744ada2317624153fcfdf9abdf4d7b26996a35e
Partially-implements: blueprint launch-instance-volume-quotas
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
A developer panel that allows you to edit schema forms in real-time,
with multiple examples. Also, you can view that same form in a
standard Horizon modal to preview what the form will look like. Based
on http://schemaform.io/examples/bootstrap-example.html
Also fixes some bugs in the schema-form implementation:
- Arrays cleaned up and fixed
- Tab arrays cleaned up
- Improved modal form to use schema.title if available
Co-Authored-By: Rob Cresswell <robert.cresswell@outlook.com>
Change-Id: Ia75a18d4c0c064ae618ee923cd6d602b1ef6e66e
The media query for the sidebar menu was incorrect. This patch
updates the correct min value when the sidebar should be displayed
Change-Id: If6c424843d559aba87caf19333e1b725bf24e4cc
Closes-bug: #1661422
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
Added space between the nav-tabs and tab content on details panels.
Removed the bullet points in front of instance IP addresses
and security groups.
Change-Id: I426e73eca0ef8ac57434631da75cb602674be893
Closes-bug: #1625310
- 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
The default bootstrap styling for table rows uses the same classes as
alerts (warning, danger etc). Rather than layering additional logic
around this with a new class, we should just fall back to the documented
boostrap method.
Also resets the warning colour to its default bootstrap variable, rather
than carrying an altered version.
Change-Id: I3472244fcbbd121a8de48d78084554760dab6385
Closes-Bug: 1615632
Adds a word-break class that can be added to tables to prevent large
column values breaking the table shape.
Change-Id: Icca10d9c29254d176dc7f8b7c039bc19c3f52c72
Related-Bug: 1565724
Closes-Bug: 1584785
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
Since large Glance images even temporarily stored on dashboard side
tend to fill up Web Server filesystem, it is desirable to route image
payload directly to Glance service (which usually streams it to
storage backend, which in turn has plenty of space).
To make it possible we need to trick Django into thinking that a file
was selected inside FileInput, while its contents are not actually
transferred to Django server. Then, once image is created client-side
code needs to know the exact url the image payload needs to be
transferred to. Both tasks are solved via using ExternalFileField /
ExternalUploadMeta classes which allow to work around the usual Django
form processing workflow with minimal changes to CreateImage form
business logic.
The client-side code relies on CORS being enabled for Glance service
(otherwise browser would forbid the PUT request to a location
different from the one form content came from). In a Devstack setup
you'll need to edit [cors] section of glance-api.conf file, setting
`allowed_origin` setting to the full hostname of the web server (say,
http://<HOST_IP>/dashboard) and restart glance-api process.
A progress bar is implemented to track the progress of a file upload,
in case a really huge image is transferred.
The new machinery could be easily switched on/off with a single
setting `HORIZON_IMAGES_UPLOAD_MODE` set to 'direct' / 'legacy'.
Related-Bug: #1467890
Closes-Bug: #1403129
Implements blueprint: horizon-glance-large-image-upload
Change-Id: I01d02f75268186b43066df6fd966aa01c08e01d7
Removed legacy style that was augmenting global UL lists.
Partially-Implements blueprint bootstrap-theme-preview
Change-Id: I805d2e4f9d0ae9703e725f9be9090f8fea5e948c
System Information End points should be big enough for URL labels
by default.
Closes-bug: #1609138
Change-Id: Ic936072435055502e268fe15c07076620e4acde3
project/vpn: Add IPSec Policy: HInt test has a bulleted list that
looks odd and is hard to read, see here: https://i.imgur.com/1jlPBBj.png
Took the opportunity to also clean up the IKE Policy and VPN views as
well.
Closes-bug: #1570526
Change-Id: Idfff6c48a237ce703756b3ab8e0dd37705a35b22
As follow on work to restoring the old network topology, this patch
separates embedded CSS in one of the html files into a separate SCSS
file.
This change is not intended to make topology themable. There is still
much work that needs to be done and will follow up soon.
Change-Id: I46b7152a24fc1f7a26a1752ba22d80e31ff1ffdb
Horizon radio buttons were using the standard browser radio buttons.
The default radio buttons have been altered to allow for a highly
customized experience through the use of CSS pseudo elements and
Icon Fonts. This allows the color, size, and unselected and selected
states of the checkbox to be altered. The 'default' theme uses the
standard Font Awesome radio button icons. The 'material' theme uses
the Material Design radio buttons. It was noted, during this refactor,
that there was an error in the _themable_checkbox template. This has
been fixed.
Change-Id: I1ca2e39e893b45adddf513c0dcb2670b2876594f
Partially-Implements: blueprint horizon-theme-css-reorg
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
This patch overrides a Bootstrap's default property that disables
mouse events on elements with .form-control-feedback class. The password
icon had pointer-events: none; affecting password reveal functionality
in login form and Identity->Users->Create User. It also modifies the default
cursor for the password icon with pointer.
This patch also fixes a bug where the Eye Icon is misaligned when passwords
don't match (See #1604196)
Change-Id: I052321a5cc9adc1a7ffdfce4da0b55c245481a2d
Closes-bug: #1593430
Closes-bug: #1604196
Material progress bars are so thin, that when you add text to them, its
unplesant. We need to support a progress bar type containing text that
is bigger by default.
Used this opportunity to align other progress bar experiences, and in
addition, generalize the text progress bar and progress loader bar for
general use everywhere.
Change-Id: I3d51c6a4582e3dc043f30632b6635a9ff17f5fbf
Closes-bug: #1602880
Original Bootstrap CSS depends on empty href attributes to style
cursors for several components. Adding href attributes to link tags in
AngularJS will cause unwanted route changes. This styling fix ensures
the correct cursor styling is applied to link tags without the need
for the href attribute to be added.
Closes-Bug: 1582673
Co-Authored-By: Revon Mathews <revon.mathews@intel.com>
Change-Id: I9c65e54d07db7aaeef1585a6f21c31c354951609