This patch adds object actions to the angular Swift interface
including viewing, download, upload etc.
This patch also adds a new "link" type to the action list
directives, which is used for file download links in the action
buttons. Additionally some event propogation issues are corrected
in the action buttons.
To test set DISABLED = False in _1921_project_ng_containers_panel.py
Change-Id: Iacad529d743a8a5a64028d91271b50b5b32f0182
Co-Author: Neill Cox <neill@ingenious.com.au>
Co-Author: Diana Whitten <hurgleburgler@gmail.com>
Partially-Implements: blueprint angularize-swift
How to Test:
1. Go to Identity > Projects > Create Project modal
2. Don't fill out any fields and click submit button
3. Look at help-block
*Now matches error styling on ng-Launch Instance wizard
Change-Id: I79e0d9ed8acb86da8bf31c5010f90e79c763f983
Closes-Bug: #1555833
Shrink browser width to see the navigation menu change into a
hamburger menu. Click on the icon to toggle menu. See the
hamburg(l)er icon change into an arrow.
Click on bug report for before screenshot.
Change-Id: If9ed4406f01e6e0d206d9bfcacbf588ff5f2e9dc
Closes-Bug: #1555394
This patch adds listing of containers and objects in selected
containers, but not additional functionality. That additional
functionality will be added in subsequent patches.
To test set DISABLED = False in _1921_project_ng_containers_panel.py
Change-Id: I37980a7b84dbddb99d8f1d4d8235cc11917da30e
Co-Author: Neill Cox <neill@ingenious.com.au>
Partially-Implements: blueprint angularize-swift
At the moment, we can view the credentials of ec2 in Horizon.
But we can not delete or update it.
When information of access key and secret key were leaked out,
it would be nice if we can regenerate a credentials via not only
CLI but also Horizon.
Thus we need to provide a function user can change ec2
credentials when user want to do it.
Change-Id: Ibaebad73eb9a869564bd7d52e2f6b69a503a60c3
Closes-Bug: #1519764
Table Action dropdown hovers should inherit from the theme better.
Right now, they only toggle the font color, which actually doesn't
look very good in themes that have a primary color that clashes with
the danger color.
Turned this into a mixin, for ease of customization. Material has
been augmented to show how to use this.
Closes-bug: #1553389
Change-Id: I832ce7c778a6cca96219f9bcb7fbc03c891d5d07
Some things on the new LI needed tweaking for material design:
* Help Icon Strangeness -- Snazz added
* Material Icon Alignment -- Removed Custom Size
* Required Icon Size Strangeness - Specificity Required
Change-Id: I09620f25192352ab47dd329e8a594a9fd091a6a3
partial-bug: 1538491
This patch makes the new angular Launch Instance workflow mostly
themeable. Most of the existing CSS has been deleted, and this now
follows bootstraps markup. This is not intended to solve all edge cases
given the size of the work, but is a big step in the right direction.
Changes:
- Use stacked nav tabs for navigation. Move base nav tabs toward
bootstrap default. Style primary side nav as before.
- Use bootstraps form markup for modal
- Use bootstraps form markup for form fields and their errors
- Make pie charts and tables inherit any missing theme variables. A more
thorough pass will be done on this next release cycle.
Closes-Bug: 1538491
Change-Id: Ic20b7f4341a2853ca334824c6a811125b04e88cc
The headers in the top nav's selection menus aren't visible on wide
screens because they are set to white no matter what. This should
only happen on the small screen.
Closes-bug: #1552463
Change-Id: I6838d0caa8d102e5f84fb9ebf5c3ee1c6c953506
Horizon checkboxes were using a standard checkbox. Unfortunately,
this type of checkbox is only customizable through Chrome, and
even then, its not completely flexible.
The default checkboxes have now 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 customized.
The 'default' theme uses the standard Font Awesome checked and
unchecked icons. The 'material' now uses the Material Design
checkbox design.
It was also noticed (and fixed) that the help-icon on the forms
were not the same color as its corresponding text.
Partially-Implements: blueprint horizon-theme-css-reorg
Change-Id: I52602357d831a5e978fe6916b37b0cde9edb2b9b
This patch unifies the Python and Angular table styles (there is no
reason for them to look drastically different).
- Clean up table header in _data_table.html
- Remove page_header styling for default theme, as it causes the angular
panels to shift downwards on the page
- Removed styling workarounds from default themes
- Removed several chunks of angular specific scss code, including the
'modern' class
- Removed the "Actions" header in python tables, to match Angular
- Removed duplicate 'no items to display' info in footer, when table is
empty.
- Also fixes the Containers header, which was different to all the
others
Closes-Bug: 1517081
Co-Authored-By: Diana Whitten <hurgleburgler@gmail.com>
Change-Id: Id71aab6e8bbbcd1f7fa4d5575156e4d3c6aa990d
Right now, the material sidebar does not lose its left padding at
smaller screen sizes. It should.
Closes-bug: #1549422
Change-Id: Ia21c209b5b28df09ce29942be1787d4ef9044d10
Horizon themes are now configurable at a user level, through the use
of cookies. The themes that can be set are configurable at a
deployment level through settings.py. Horizon can be configured to
run with multiple themes, and allow users to choose which themes
they wish to run.
Django Compressor:
In order to support dynamic themes, each theme configuration must
be pre-compiled through the Django compressor. By making use of its
built in COMPRESS_OFFLINE_CONTEXT, we now return a generator to
create each of the theme's necessary offline contexts.
Templates:
Horizon themes allowed template overrides via their 'templates'
subfolder. In order to maintain this parity, a custom theme template
loader was created. It is run before the other loads, and simply
looks for a Django template in the current theme (cookie driven)
before diverting to the previous template loaders.
Static Files:
Horizon themes allowed static overrides of the images in
'dashboard/img' folder. A template tag, 'themable_asset' was created
to maintain this parity. Any asset that is wished to be made themable,
given that it is located in Horizon's 'static/dashboard' folder, can
now be made ot be themable. By making this a template tag, this
gives the developers more granular control over what branders can
customize.
Angular and Plugins:
By far, the trickiest part of this task, Angular and Plugins are
dynamic in the files that they 'discover'. SCSS is not flexible in
this manner at ALL. SCSS disallows the importation of a variable
name. To get around this, themes.scss was created as a Django
template. This template is the top level import file for all styles
within Horizon, and therefore, allows ALL the scss files to share a
common namespace and thus, can use shared variables as well as extend
shared styles.
Other:
This change is fundamental, in that it changes the method by which
Horizon ingests its SCSS files. Many problems existing in the
previous implementation, in an effort to make Horizon flexible, its
SCSS was made very inflexible. This patch corrects those problems.
Change-Id: Ic48b4b5c1d1a41f1e01a8d52784c9d38d192c8f1
Implements: blueprint horizon-dynamic-theme
Closes-Bug: #1480427
On compressing the 'material' theme:
Compressing... SassDeprecationWarning: Can't find any matching rules
to extend u'.mdi-view-grid' -- thiswill be fatal in 2.0, unless
!optional is specified! (at custom/horizon/_icons.scss:10)
WARNING:py.warnings:SassDeprecationWarning: Can't find any matching
rules to extend u'.mdi-view-grid' -- thiswill be fatal in 2.0, unless
!optional is specified! (at custom/horizon/_icons.scss:10)
The icon that we were attempting to replace is this one:
http://fortawesome.github.io/Font-Awesome/icon/th-large/
The correct replacement for this, IS in fact view-grid,
but view-grid is not available in our current version of
material design icons. We will fall back to view-module
until we can get this updated:
https://materialdesignicons.com/icon/view-module
Closes-bug: #1539971
Change-Id: If57d8cbd332a219dd5b6d986ce4fc938034533d6
Because the $static_url scss variable is now available through the
scss namespace by default via the settings.py value for STATIC_URL,
it is no longer necessary to have an example theme on how to set
this manually.
Change-Id: I39ddfbd8e574768202233cfff09c8699486b3c01
Closes-Bug: #1478794
Elements on the navbar (Hamburger menu, Brand, and Responsive
Overflow Menu) need to correctly inherit colors from the theme.
Also, Bootswatch's 'paper' sets the color of the
.dropdown-header to be a light gray regardless of whether its an
inverse navbar. This is not ideal. It should inherit the same color.
Change-Id: I29ebfe82209d16a785b7171cc1662768c7c3191c
Co-Authored-By: Diana Whitten <hurgleburgler@gmail.com>
Closes-bug: #1539951
Closes-bug: #1539952
Closes-bug: #1539960
Closes-bug: #1540745
The first step in the dynamic theme effort requires that the context
selection picker inherit properly from a dropdown menu, so that the
styles can be shared and the experience is matched.
Dynamic themes will use the 'select' experience of the context menu
but from within the user menu, so it was necessary to match the
experiences to minimize duplicated code.
The style of the context menu was extremely dependant on DOM structure
and therefore difficult to customize. This has been simplified by using
classes and attempting to keep specificity as low as possible.
Change-Id: Idb9e8f5c1d246688418f68e12fb53f094c01ea34
Partially-implements: blueprint horizon-dynamic-theme
Partially-Implements: blueprint bootstrap-html-standards
A bunch of extra padding was added to the tables for some reason. It's
not needed, as bootstraps rows/cols provide any padding already.
Change-Id: If462004899afa8bcf3d7a10ab181206f47596bea
Closes-Bug: 1543166
Removing the element, as it was not really needed at all.
Also, removed a debug statement that was discovered in
material.hamburger.js while refactoring for this change.
Added a 'container-fluid' class to the content body
as well, because it is not possible to configure Horizon
as a non-fluid layout without a container element around
the first 'row' element.
Change-Id: I097ea31f991e8d15987b7cf54b77a309d6155771
Closes-bug: #1368924
The responsive menu on the 'default' theme shouldn't have the little
'arrow' associated with it.
Closes-bug: #1539972
Change-Id: Icb4a500e9bd3bb1e11853391a5357876ffa61348
The navbar should have been using the built in navbar-fixed-top class
as it is a fixed top navbar. After added the correct class, the
correct z-index value was added via Bootstrap, then the messages
container simply needed to add a z-index that would appropriately
place it above dropdowns.
The user menu was simply a symptom of the overall problem, where all
the dropdowns in the navbar needed to behave the same way.
The z-index variables of the theme were used, therefore the
incorrect stacking of the messages over the spinner and the modal
were fixed at the same time.
It was noted that the right padding of the messages was using the
incorrect padding variable. This was corrected.
Closes-bug: #1408640
Co-Authored-By: Diana Whitten <hurgleburgler@gmail.com>
Change-Id: I1d59049d43e74c2a897673307593993f4291da39
Material buttons actually have a border radius:
http://preview.tinyurl.com/zw5ftjf
Theme Preview Pages should use Font Awesome
H2 should not be manually overridden
Change-Id: I8951e04d463ef897815d8a46ad93e5d2327d4793
Closes-bug: #1528369
Closes-bug: #1528368
Closes-bug: #1528372
A major part of the css reorg is a better organization of the css
styles themselves. horizon.scss should be a global import level file.
Organize the Component Imports alphabetically. Also, standardize
quotes to match.
Change-Id: I39e62135d1200db56c46449c274d2acdccb72a00
Partially-Implements: blueprint horizon-theme-css-reorg
Added to _icons.scss (times: 'close') and also alphabetize
the icons for easy searching.
Change-Id: I5d1867a225dc77403bfbda7fde61db91fecc0b94
Closes-Bug: #1538261
A major part of the css reorg is a better organization of the css
styles themselves. horizon.scss should be a global import level file.
page-header is a Bootstrap style. We shouldn't be overriding it so
much. Inherit from the theme. Also, fixed padding of header on
default theme.
Change-Id: I771e03b3fc24ccd716bb556ecb8342e0da1dc37b
Partially-Implements: blueprint horizon-theme-css-reorg
A major part of the css reorg is a better organization of the css
styles themselves. horizon.scss should be a global import level file.
Move form customization into 'default' theme.
Change-Id: Ibd49562e6da8713efbb9a2e0c0d37f14f0ef8df0
Partially-Implements: blueprint horizon-theme-css-reorg
The delimiter in the context selector should use an icon to enable
vast customization options.
Change-Id: I07551471213e79b6f7d6e1c95ccc7a605c2a9418
Closes-bug: #1537594
A recent branding effort exposed several aspects of the header
templates that need to be more composable to enable richer
customizations.
The Horizon _header.html template has many components within it:
region pickers, user menus, logos. All of these things are highly
desirable to customize, but because it is all contained in the same
template, a brander will have to override the entire template. This
is not ideal as it increase the cost of maintenance.
The splash section of the login page, the context selector, the logo
section of the header, the user menu and the region selector are now
composable to a much more granular level. The top navigation menus
can now be used outside of existing within a list. The templates
now allow use as normal, standalone dropdown items.
Also, the current primary color used for 'material' was highly
unpleasant with OpenStack Red. Another color on the material design
palette was chosen, very close to the previous blue. See
https://www.google.com/design/spec/style/color.html#color-color-palette
To showcase this new composability, 'material' now shows how to
customize the logo and logo-splash beyond just replacing the png, but
now allowing the use of any type of image. In this case, the
OpenStack logos have been upgraded with their svg counterparts.
It was also noted that the context selection menu was using the wrong
variable to set the color of its links. This was corrected.
Closes-Bug: #1518584
Change-Id: Ib544176b9836e17fc913170664646e1d10eda831