| Commit message (Collapse) | Author | Age | Files | Lines |
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This patch fixes the bug that was preventing users to delete a port
from the Admin>Networks>Port Details page
It also fixes bug preventing user from deleting a subnet from
the Admin>Networks>Port Details page.
The fix affects both Project>Networks & Admin>Networks
Co-Authored-By: Ankur Gupta <ankur.gupta@intel.com>
Change-Id: I408f190584b01e0aadd1af2d4a59438a53426e70
Closes-Bug: #1596411
Closes-Bug: #1596691
|
|\ \ |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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
|
|\ \ \ |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Using the .text() rather than .append() method will allow
the jQuery (or jqLite in this case) element object to escape
unsafe content correctly.
Change-Id: I4d41abb77714a2153a0d003868546d4b5165a85e
Closes-Bug: 1622690
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This patch adds support into magic search to initialize the
search bar to a predefined search query using an event.
This allows a prior search to be repeated, or to pre-populate
the seach field with an initial filter.
Closes-Bug: #1590164
Change-Id: I24b4fcb3df87f018d9d73aa9d1526d7b8c6026bb
|
|\ \ \ \
| |/ / /
|/| | | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Bug occurs in using batch delete more than one time in one page.
Deleted items haven't been removed from selections
after batch delete action.
Change-Id: I13b4da7deb026c28e26910e0bd763960de4bffa8
Closes-Bug: #1605083
|
|\ \ \ \
| |/ / /
|/| | | |
|
| |/ /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Fix error in Themable Select Mutation Code
$options[jj] is just an HTML element, not a jQuery object, therefore
it didn't have an .attr function on it.
Change-Id: If763204737adcdb9bd0e4ae1ba0626a71770352a
Closes-bug: 1616660
|
|\ \ \ |
|
| | |/
| |/|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
When user add any group in Project Group Tab, layout will be incorrect
in case below.
Reproduce
1) Go to /identity
2) Press 'create project' button, go to 'Project Groups' tab
3) For example, you have there two default groups: 'admins'
and 'nonadmins'. Type 'non' in the left filter field
4) Filter works correct and now 'all groups' panel has only
'nonadmins' group. Press '+' to add 'nonadmins' to project groups
5) Note that All groups panel is now empty and filter input is empty too.
Group admins will not be shown until you type 'admin' in that field.
After being pressed '+', update of user list and remove of filter
input are performed as internal process. This issue is caused by
incorrect order of these processes. This patch will fix it.
Change-Id: If73584c040846dc82aa482e75f5e5d95dfb6525e
Closes-Bug: #1543620
|
|\ \ \
| |/ /
|/| | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Added setProperties that allow a descriptor object to pass in. If the value
is a string, assume that it is a label. See example in doc and test for usage.
Change-Id: I7211c52e2f128c2c3174625f8670d3929be57397
|
|\ \ \ |
|
| | |/
| |/|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This addresses the suggestions found by Rob and Travis:
- The Admin panel doesn't show *all* images, just those either in the current
project or exposed as public (same as Project). (Travis)
FIX: The Admin panel now supplies is_public: None as the Python code does,
which allows all images to be shown.
- The 'Is Public' attribute is in the drawer now (even on large screen sizes)
and we can't sort by shared, public etc, as far as I can tell. I don't think
we specifically need the buttons like the previous design had, but it feels
like a regression to have no filtering or sorting on that field? Perhaps
someone with better glance knowledge could correct me.
FIX: Added 'visibility' as a synthesized field and added as a facet, making
sure to use the current project to correctly identify 'Shared with Project'.
Did *not* add 'Is Public' as that is a vestigial concept.
- Create/Edit Image > Image Details tab needs help text. Create has some info,
but Edit has nothing really. Also, we can drop that "description" header in
the help text; it doesnt add any value. This would be a nice improvement over
the Python version for novice users, and shouldnt take long to enter - just
pull info from the API docs.
NO CHANGE: Let's not block enablement on verbiage. I think we need a better
consistency and I don't believe the last-minute is the best time to add this
because it's very easy to create/find nits.
- Create Volume help text is also entirely blank. We should fill that out
with some useful instructions, IMO.
FIX: Added basic help text.
- Create Volume should default to the first Availability Zone if there is
only one, as it is a required field anyway.
FIX: I added logic for this, and also added in some test features so we don't
lose coverage.
- The Image Details page now longer lists the owner ID. I don't think this
is addressed by Travis' patch either.
FIX: This is now under the 'Security' heading.
- Kernel ID and Ramdisk ID seem empty in angular image details, but populated
in the python equivalent.
FIX: This was a regression that this patch fixes.
- Why are created/updated/ID separated into "Record Properties"? Is there
something in the API about this, or is it just a presentation construct?
CHANGE: Moved into the general 'Image' header. Added a filter so that these
can be implemented as basic property registrations.
- I think 'Filename' in angular image details can be hidden if empty.
CHANGE: Instead of hiding, we can show the standard '-' if no filename.
Change-Id: I4b770f9e61f9a8b1bd735d95c2ccc75bc21dd944
Partially-Implements: blueprint angularize-images-table
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
hz-field-directive was developed using hz images panel where every
single property had at least the no value filter applied. However,
when using it with properties that don't have the no value filter
applied and there is no value, we'll see the following in console.log
angular.js:12783 TypeError: Cannot read property 'then' of undefined
Change-Id: I14f8d56cc9086e7e25e11c081de34bc9d21389d0
Closes-Bug: #1614630
|
|\ \ |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Upon submitting a wizard modal, such as Launch Instance,
the modal remains open and the submit button is disabled.
This patch puts a spinner in the submit button as well to
show that work is going on in the background.
Note: Jenkins keeps failing due to firefox issues, so I'm
trying a different download link to see if it helps.
Change-Id: Ie800d9cc635d6b92af600e0bfe6846c70b6ca065
Closes-Bug: #1461641
|
|\ \ \ |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
As per agreed in Austin summit and then confirmed in the midcycle,
the inline_edit form/functionality is more an issue than a solution.
It leads to many bugs and UX is not the best.
Implements: blueprint remove-table-inline-edit
Change-Id: I91394e4a63afadb66659b6b7c04cb7f8da948ff8
|
|\ \ \ \ |
|
| | |/ /
| |/| |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
To pass a binary blob in a POST request, browser sets the header
'Content-Type: multipart/form-data', which in turn causes all form
fields' values to be passed as strings. Circumvent this by storing
original field values as a JSON string on client-side and decoding it
on server-side. As a result the setting HORIZON_IMAGES_UPLOAD_MODE =
'legacy' will start working together with Glance V2.
Closes-Bug: #1613703
Change-Id: I53a8fbba15e4c3c6c17d6ef1ffe701634efda149
|
|/ / /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This adds the project name column to ng images, which
is required in order to support an admin view for images.
In addition the hz-property directive could not handle
promises, which is required for doing things like
looking up the project name from the project id.
This adds limited support for that.
Change-Id: I0bb3782a23cf6ddff249459089b96a532aa8a0d8
Partially-Implements: blueprint angularize-images-table
|
|\ \ \ |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
we have merged patch that will hide the help-button on
workflow steps if helpUrl is not defined
https://review.openstack.org/#/c/299705/
However, it forgot to factor in the 'first' step.
With this patch, you can see it used on its parent patch:
Create Volume action removed the helpUrl and the
helpBtn doesn't show up either.
Change-Id: I7e3ee4d03b9f5f1fa924d7f233e4fa4ea4ed12a7
|
| |_|/
|/| |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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
|
|\ \ \ |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
First, now there are 2 '/api/glance/images/ API wrapper endpoints for
creating a new image - POST and PUT. The POST endpoint which existed
before now resides at PUT. This was done to support legacy
(i.e. proxied by web-server) file uploads in Angular Create Image,
because Django (which we need to use in that case) doesn't correctly
process PUT request. So, if local file binary payload is added to the
form contents, we send it using POST request.
Second, speaking of '/api/glance/images' PUT request previously known
as POST... Where before the POST call to Horizon REST API wrappers
returned the final image object that Glance just created, now there
are two possibilities for what happens after PUT is sent.
* When Create Image form Source Type is set to URL, then everything is
going as before.
* When Source Type is set to File, then just a file name instead of an
actual Blob is sent to '/api/glance/images', then the Glance Image
is queued for creation and Horizon web-server responds with an Image
object which dict() representation has 2 additional keys:
'upload_url' and 'token_id'. The 'upload_url' tells the location for
the subsequent CORS request, while 'token_id' is passed as a header
in that request, so Keystone would let it in. CORS upload is started
immediately as Image is queued for creation (first promise is
resolved) and returns the second promise, which is resolved once the
upload finishes. The modal form hangs until second promise resolves
to indicate that upload is in progress. Upload progress notification
is added in a follow-up patch.
DEPLOY NOTES
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).
Related-Bug: #1467890
Implements blueprint: horizon-glance-large-image-upload
Change-Id: I5d842d614c16d3250380ea1dc1c6e0289d206fb5
|
|\ \ \ \
| |/ / /
|/| | | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
In the django tables, if a resource goes into a transitional-state
(think building, deleting, shutting-down, ...) the table would highlight
that behavior with 2 changes:
A) the row would be highlighted
B) a barber-pole would show up in the status column
The new-ish registry-based hz-resource-table wasn't making either of
those visual changes. But now it is! Hurray for fewer regressions!
Change-Id: Ic84b1eabc2c32e7ba48bf9ce2279f69a4e9a95e0
Partially-Implements: blueprint angular-registry
Co-Authored-By: Tyr Johanson tyr@hpe.com
|
|/ / /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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
|
|\ \ \
| | | |
| | | |
| | | | |
Update Metadata overflow fail"
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Style: Host Aggregate: Update Metadata overflow fail
admin/images: 'Update Metadata' overflow text failure, seen here:
https://i.imgur.com/LlI1x1I.png
Also took the oportunity to fix a color problem on selected rows.
Closes-bug: #1570513
Closes-bug: #1570477
Change-Id: I46ffdb4cbd74e5e20e613852dbf00e83b6ab9521
|
|\ \ \ \ |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
---
Includes numerous bug fixes to hz-dynamic-table and friends to be
responsive to dynamic table configurations or trackBy expressions.
---
Some resource types (like subnets) can only be listed for a given
parent container (like networks). This patch modifies the
hz-resource-table to allow a user to pass in extra paramters that
will be passed to the list function for a given resource type.
For example usage: See DNSaaS
https://review.openstack.org/#/c/341182/9/designatedashboard/static/designatedashboard/resources/os-designate-recordset/details/zone-recordsets.html
For example:
This allows hz-resource-table to be used to show a list of subnets
as one of the details views for a network. The details view
controller passes in the current network ID as an extra paramter
to the hz-resource-table, which in turn, supplies that value to
the subnets list function. The subnets list function can use
the parameters it is given to build the appropriate API call.
This is very similar to what already exists to pass server search
parameters from magic search to the API in the angular images
table.
Change-Id: I90c851aef0a452e4e8ef39e938ac3ca67a93cfac
Partially-Implements: blueprint angular-registry
Closes-Bug: 1608462
|
|\ \ \ \ \ |
|
| | |_|_|/
| |/| | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Running eslint is effectively useless nowdays because of the
overwhelming number of warnings returned.
This patch fixes the existing "braces-style" errors.
I've decided to only fix those errors here to keep the patch small, and
not destroy any chance of success by needing to rebase every 5 minutes.
Other fixes will be incoming.
Change-Id: I0cc2772287ce3f4b3ddb808764dd8d9b1c569d02
Partial-Bug: #1554824
|
|\ \ \ \ \
| |_|/ / /
|/| | | | |
|
| |/ / /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Running eslint is effectively useless nowdays because of the
overwhelming number of warnings returned.
This patch fixes the existing "no-use-before-define" errors in the
horizon/static/horizon/js/horizon.heattop.js file.
I've decided to only fix those errors here to keep the patch small, and
not destroy any chance of success by needing to rebase every 5 minutes.
Other fixes will be incoming.
Change-Id: I347a472a0eac2e35df14e48f28403a3b8a243c57
Partial-Bug: #1554824
|
|\ \ \ \ |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Array metadata appends an operator automatically, which
means the value will still contain something and it
doesn't get detected for removal.
In addition, bad APIs like glance v1 will store a property
with mixed case, but then return only lower case when
listing them. However, it will not remove the property
when you request to remove it unless it matches the original
case (sad panda). So, this patch will reset the proper
casing for properties defined as metadata definitions before
making the request to save the metadata.
Change-Id: I1e5a6fde35b7be6118f21ac46ad0aea088280215
Closes-Bug: 1606988
|
|\ \ \ \ \ |
|
| | |/ / /
| |/| | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Running eslint is effectively useless nowdays because of the
overwhelming number of warnings returned.
This patch fixes the existing "no-unneeded-ternary" errors.
I've decided to only fix those errors here to keep the patch small, and
not destroy any chance of success by needing to rebase every 5 minutes.
Other fixes will be incoming.
Change-Id: I0d6d104560dc3b6cc10cc3ff00e45230ce5fa836
Partial-Bug: #1554824
|
|\ \ \ \ \
| |_|_|/ /
|/| | | | |
|
| | |/ /
| |/| |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
hz-dynamic-table doesn't have any way to dynamically determine
whether or not to display a column. For example,
in openstack dashboard, we may want to display a column
only in certain policies pass check, if certain settings
are enabled, or services are enabled. In addition, a generic
allowed function can just be set on the column config.
This patch adds this ability as a reusable service.
The reusable service will make it possible for horizon
to easily check common sets of permissions on a
variety of objects including the hz-dynamic-table columns
(in this patch).
Child patches demonstrate its use on the images table.
Change-Id: I9f92b69d86d830387a83c28ec5829fb3c43fc4a6
Partially-Implements: blueprint angularize-images-table
Co-Authored-By: Matt Borland <matt.borland@hpe.com>
|
|\ \ \ \
| |/ / /
|/| | | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Developer dashboard panel which shows:
- resource types currently in the resource registry browser
- the details that are set for each resource type
- links to generic table views (if available)
- available actions (with WIP mechanism to exercise the action)
To test:
- Open Developer -> Resources
- notice how Images item is green
- exercise some of the global actions (create image)
- enter an image id to exercise the item actions
- batch actions not currently testable
- click the images "Generic Table View" link
Partially-Implements: blueprint angular-registry
Change-Id: Ib931fac9917a50c268b2e63ff7a0de42052c62c8
|
|\ \ \ \ |
|