Commit graph

51 commits

Author SHA1 Message Date
lucasgarfield
a42a6a220f ShareImageModal: Add ShareImageModal to clone (share) AWS composes 2022-11-08 11:29:31 +01:00
lucasgarfield
5c37e3b45b Images Table: Add clones table for AWS composes 2022-11-08 11:29:31 +01:00
regexowl
9c4c24746f ImagesTable: Fix Recreate image button
This removes an extra `/` from the path for the `navigate` function to be able to resolve relative path correctly.
2022-11-07 12:40:12 +01:00
regexowl
f32f65c9fb ImagesTable: Remove the icon from the download link
Fixes #803. This removes the download icon and adds brackets around the file extension.
2022-11-03 13:53:56 +01:00
Simon de Vlieger
35afba1bf2 imagestable: request.json link now non-styled
By adding custom CSS For the `ib-subdued-link` class the link now looks
like normal text. This approach was chosen as other approaches such as
clicking a non-rendered link cause serious ruckus in the test suite.

This resolves: #805.
2022-10-25 18:00:40 +02:00
Simon de Vlieger
87b853fc13 imagestable: removed label from release 2022-10-25 17:55:53 +02:00
Ondrej Ezr
f3d44adf01 Hide launch button until image is built
Move the conditional render on the main ImageLink component.
Also use destruct for props to streamline the usage of props.
2022-10-24 13:37:45 +02:00
regexowl
5168b80eeb ImagesTable: Indicate expiration of aws.s3 targets
This adds indication of expiring presigned urls for aws.s3 targets. Previously the targets remained marked as `Ready` until the builds disappeared after 14 days.

When an image is ready, the countdown in hours is shown in `Status` column. After that the image is marked as `Expired` and the download link changes to `Recreate image`.
2022-10-20 11:08:47 +02:00
Ondrej Ezr
357401ecfa Add the provisioning Button 2022-10-18 10:37:29 +02:00
Sanne Raymaekers
03421acc74 src/Router: use release as a basename in BrowserRouter
The insights platform is moving to react router v6, meaning router
contexts can no longer be nested. As a result all applications will end
up sharing the same `BrowserRouter`.

Switch to using the release (`/` or `/beta/`) as a basename for the
BrowserRouter, and offload the full path (`/insights/$appname`) to the
individual routes. This makes it easier to drop the BrowserRouter in
image builder for the platform one in future.
2022-10-17 15:53:21 +02:00
lucasgarfield
a17a759d5e Redux: Modernize Redux store
This commit modernizes the Redux store to bring it in line with the
current recommended best practices/patterns. It is possible because of a
recent previous commit that added Redux Toolkit as a dependency.

For detailed information on what modern Redux entails, see the Redux docs:
https://redux.js.org/introduction/getting-started#learn-modern-redux-livestream

Practically speaking, this means a huge reduction in boilerplate code.
Maintaining and extending the code will be much easier. All Redux logic
is now encapsulated by 'slices'. Reducers are defined in the slices, and
action creators and action types are generated automatically.

Redux Toolkit includes Immer, which greatly simplifies writing reducer logic
much simpler - state updates in Redux must be immutable, but working
with Javascript objects in an immutable fashion is clumsy, requiring
gratuitious use of the spread ... operator. With Immer, the state can be
updated as if mutable updates were allowed. Reducer logic has been
changed to take advantage of this in this commit.

This commit also removes a large amount of unused code. Fingers crossed
that nothing breaks. The tests do pass, afterall...

One other minor change... composesGet was renamed to fetchComposes and
composeGetStatus was renamed to fetchComposeStatus. This is in line with
the Redux documentation examples.
2022-09-30 13:17:09 +02:00
regexowl
03ff9fd3d9 ImagesTable: Increase bottom margin of the pagination toolbar
Fixes #797. This increases the size of the margin at the bottom of the table of images. That way the pagination controls are not obscured by the notifications icon.
2022-09-23 18:16:20 +02:00
Sanne Raymaekers
e868ffcaa6 ImagesTable: Reset polling each time the composes are updated
Previously the polling was started once on mount, but the reference to
the list of composes the polling function had didn't get updated. Reset
the polling on each render, ensuring the polling function has the latest
the list of composes from the store.

Fixes #767
2022-09-21 23:09:56 +02:00
regexowl
45d0db3f04 ImagesTable: Increase font size of text in Status column
Fixes #808. This removes the `<small>` tag around status message to unify the font size within the table.
2022-09-20 14:50:10 +02:00
regexowl
0bced556a9 ESLint: Use --fix with new rules to order import declarations
Related to #795. This applies the new sorting rules in ESLint to the files by running `npm run lint:js:fix`
2022-09-14 13:24:38 +02:00
regexowl
05e678f8c1 ImagesTable: Add pagination to the bottom of the table
Fixes #594. This adds pagination to the bottom of the images list so the user doesn't have to scroll up to use it.

Tests were also updated to reflect the change.
2022-09-14 10:32:38 +02:00
Ondřej Budai
5264896bff ImagesTable: add option to download a raw compose request
In order to help people transition from using GUI to use the API directly,
it's helpful to give them an easy way to inspect the whole raw compose
request.

This commit adds a new button next to each compose that simply downloads
the original compose request in a json format. This request can then be
directly piped into the IB API to build a new image.

Original idea by Troy Dawson

Co-authored-by: Lucas Garfield <lucas@redhat.com>

Signed-off-by: Ondřej Budai <ondrej@budai.cz>
2022-08-15 15:38:13 +02:00
Jacob Kozol
4fa71cede8 update style across the project
The eslint updates require style changes in all components.
2022-05-23 12:47:20 +02:00
Sanne Raymaekers
cfaa8a463d CreateImageWizard: RHEL 9
Expose rhel-90, it has reached GA.
2022-05-18 15:24:04 +02:00
Gianluca Zuccarelli
90d15807a6 ImagesTable: add error status
Add error information for failed image
builds. The error details are only displayed
for failed builds and the error highest up
the error chain is displayed in the expandable
section of the image.
2022-04-29 17:13:37 +02:00
lucasgarfield
d7035d544b ImagesTable: Show UUID in expandable details row
This commit displays the UUID in an expandable details row. This is
necessary because if an image was named, the UUID was not displayed.
It is important that a user know the UUID for troubleshooting, for
example in the case of requesting help with an image.

To facilitate this, the original Table component was converted to a
TableComposable component. TableComposable is newer and recommended over
the older Table by PatternFly.
2022-04-26 16:11:30 +02:00
Chloe Kaubisch
760a4366e9 LandingPage: tighten space between status icon and text
Tighten the space between the status icon and the status
text.

Fixes #595
2022-04-01 12:40:19 +02:00
Jacob Kozol
20c1537d8e CreateImageWizard: navigate to review step on recreate
When recreating an image navigate to the review step instead of the
initial step. This requires forming the step history to enable a
functional sidebar.
2022-03-23 12:30:42 +01:00
Jacob Kozol
d16f71c98f ImagesTable: add ability to recreate image type 2022-03-23 12:30:42 +01:00
Jacob Kozol
a16244edaa ImagesTable: migrate to functional component
The ImagesTable component is now a functional instead of class
component. This is useful because it allows us to use react hooks in the
component.
2022-03-17 16:49:21 +01:00
lucasgarfield
f85f60bcf0 CreateImageWizard: Use new DocumentationButton component in ImagesTable 2022-03-04 16:44:12 +01:00
Sanne Raymaekers
531e2ac1b0 CreateImageWizard: Expose centos 9 stream 2022-03-02 17:03:09 +01:00
Jacob Kozol
2300af1152 ImagesTable: add image name
If a user has specified an image name the name will appear. Otherwise
the image's UUID will appear.

The test needed to be modified to search for the compose in the store
with either the image name or the id
2022-03-02 16:24:35 +01:00
Jacob Kozol
81629feaad ImagesTable: add target labels for new image types
The "guest-image", "image-installer", and "vsphere" image types now
display proper labels in the ImagesTable target column. Also, the upload
component is renamed to Target for consistency.
2022-01-14 22:23:50 +01:00
Jacob Kozol
59e951653d ImagesTable: add image download link
The new blobby image types are uploaded to aws.s3 for download. Instead
of linking to a cloud instance, these image types display a download
link.
2022-01-14 22:23:50 +01:00
Jacob Kozol
989d5fabac ImagesTable: align gcp image details with other instance text
The link for the gcp Instance description was not set to isInline.
Fixing this aligns the text with the rest of the instance links.
2022-01-09 17:13:03 +01:00
Jacob Kozol
c230d41d88 ImagesTable: add title to Instance column
Also, test the table has expected headers.
2021-11-30 12:08:52 +01:00
Jacob Kozol
6468d33d25 ImagesTable: update pending text
"Image build is pending" is more in line with the rest of our status
texts.
2021-11-22 00:32:12 +00:00
Sanne Raymaekers
b986067079 constants: Introduce RHEL_8 constant
Bump rhel-84 to rhel-85.
2021-11-11 19:13:48 +01:00
Sanne Raymaekers
e86b210a22 src: Use rhel-84 instead of rhel-8 2021-06-16 11:35:05 +02:00
Sanne Raymaekers
d45ee17aca src: Rename RHEL 8.3 to just RHEL 8
We should pull these labels/descriptions from the service, but let's do
that separately.
2021-06-03 17:04:22 +02:00
Jacob Kozol
6db456a17c ImagesTable: data-testid should be lowercase 2021-06-02 15:45:35 +02:00
Jacob Kozol
ebdfbbf57d ImagesTable: add gcp info
When a gcp image is successfully uploaded the user needs to know the
project id, image name, and account the image is shared with. These are
now displayed in a popover accessible from the status section of the
images table.
2021-06-02 15:44:38 +02:00
Jacob Kozol
3571a7b3c6 ImagesTable: add azure image link
When an azure image is successfully uploaded the user is provided a link
to view the image in the azure web portal.
2021-06-01 17:55:53 +02:00
Sanne Raymaekers
c7e8fc57ec src: Update documentation links 2021-05-20 11:00:02 +02:00
Jacob Kozol
7cd775cfb3 ImagesTable: add link to launch uploaded aws image
The images list now contains a link to the ec2 launch wizard for a
successfully uploaded aws image.
2021-05-17 19:37:15 +02:00
Jacob Kozol
e85e51e574 ImagesTable: display date created
The date an image was created at should be displayed in the format:
Month Day, Year. i.e. Apr 28, 2021.
2021-05-03 13:58:25 +02:00
Jacob Kozol
3cf9f8c3a3 ImageBuildStatus: refactor image status
Remove excessive status elements since there only needs to be one status
statement for each image in the list. Also, replace the pending spinner
with a pending icon.
2021-05-03 13:58:25 +02:00
Jacob Kozol
f8abe70004 ImagesTable: refactor list of images
Remove unnecessary styling on the rows in the images list. Reorder the
columns to put the target and status next to each other. Use upload_type
instead of upload_status. Stop storing columns in state since they are a
constant.
2021-05-03 13:58:25 +02:00
Jacob Kozol
14a7c7e39d ImagesTable: add compose pagination
The list of composes is now paginated. The default is 10 composes per
page. This quantity can be changed. When the page or the quantity per
page is changed then the next set of composes will be fetched.
2021-04-30 17:58:14 +02:00
Jacob Kozol
df39b6915c ImagesTable: switch to patternfly toolbar
Patternfly's toolbar component is now used. Also remove the ToolbarGroup
component since we do yet need to group our toolbar items.
2021-04-30 17:58:14 +02:00
Jacob Kozol
4f58f6202a store: get composes using limit and offset
The composeGetAll action is refactored to composesGet. It now uses
passes limit and offset as params so that pagination can be used. Also,
the COMPOSE_ADDED reducer case only adds new compose ids to allIds if
the id is new/unique.
2021-04-30 17:58:14 +02:00
Jacob Kozol
9b08788fd2 store: add get all composes api call
The ImagesTable will now trigger a thunk to fetch all of users composes
on load. The response of the /composes api call does not include status
so we currently only fetch the first 10 composes and fetch the status
for each of them.
2021-04-23 15:53:43 +02:00
Jacob Kozol
1f962b44ae store: move status polling to redux
Updating a composes status is no longer done from the ImagesTable
component. Instead the composeGetStatus thunk is used to make the api
call and dispatch the COMPOSE_UPDATED_STATUS action. The polling still
occurs from the component.
2021-04-23 15:53:43 +02:00
Jacob Kozol
29b684599b store: add request field to compose object
The compose object should have the initial compose request stored in a
field called request. The id and image_status are independent of the
request so should not be set within it.
2021-04-23 15:53:43 +02:00