Commit graph

95 commits

Author SHA1 Message Date
lucasgarfield
0fd07f1f74 RTKQ: Add typing to RTKQ hooks in apiSlice
This commit adds typing to the RTK Query hooks. The hooks have been
refactored to be simpler and all custom query functions have been
removed.
2023-06-20 16:36:39 +02:00
lucasgarfield
05b411c241 Wizard: Add 'Refresh' button to repositories step
Users may visit the Repositories service to add or modify repositories
while they are on the repositories step in the wizard. This commit adds
a 'Refresh' button that will refetch the repositories and update the
table so that the user does not have to restart the wizard to view their
modifications.
2023-05-04 14:13:17 +02:00
Sanne Raymaekers
f0679d1196 CreateImageWizard: rename custom- to payload-repositories
To avoid confusion between custom and payload repositories.

Custom repositories will be embedded in the yum config, payload
repositories are used for installing packages.
2023-05-02 14:33:53 +02:00
lucasgarfield
7bca4c7438 LandingPage/ImagesTable/Wizard: Remove all insights global calls
This commit replaces all calls to the insights.chrome global with calls
to the useChrome() hook (or the useGetEnvironment() custom hook that
wraps useChrome()).
2023-04-28 17:07:31 +02:00
lucasgarfield
b2e6e3cf04 Wizard: Use useChrome hook to set beta feature flag
The use of chrome.isBeta is deprecated, the useChrome hook should be
used instead to obtain an isBeta() function. Using the deprecrated
chrome.isBeta pollutes the browser console with warning messages.

This commit replaces the isBeta() helper function with a new custom
hook, useGetEnvironment().

We still sometimes need to know which environment is running outside of
React components, where we cannot call the useChrome() or
useGetEnvironment() hooks. For instance, in the json used to define a
wizard step. Therefore a new isBeta variable has been added to the
form's initialState for use in these cases.
2023-04-28 17:07:31 +02:00
regexowl
79fe46474a Wizard: Update text on Packages and Additional Red Hat packages steps
This removes unnecessary sentences from the description of Packages and Additional Red Hat packages steps. The min and max height of the `DualListSelector` was also updated.
2023-04-26 18:24:28 +02:00
regexowl
876e605a23 Wizard: Ensure unique IDs for buttons
Fixes #1065.

This sets buttons on the Repositories and Additional custom packages steps to `CustomButtons` to ensure buttons in each of the steps have a unique ID.
2023-04-13 13:58:16 +02:00
Ondrej Ezr
065900c0f8 Add sources selection for Azure
Fixes HMS-1511
2023-04-13 13:32:23 +02:00
regexowl
87dc7f8440 Wizard: Update links on File system configuration step
Fixes #1023. This updates the links on the File system configuration step.
2023-03-29 14:28:13 +02:00
lucasgarfield
4c2a410dd7 Wizard: Expose beta features in qa environment
The QE team has requested that all beta features be exposed in the
ephemeral environment (insights.chrome.getEnvironment() === 'qa').
2023-03-28 09:26:13 +02:00
Sanne Raymaekers
724668a3a4 CreateImageWizard: add org id in activation key popover 2023-03-08 16:45:31 +01:00
Sanne Raymaekers
62421e3670 CreateImageWizard: update register later text 2023-03-08 16:45:31 +01:00
Sanne Raymaekers
9e6d951641 CreateImageWizard: rhc support 2023-03-08 16:45:31 +01:00
lucasgarfield
b861b3dde8 Wizard: Update activation keys link text and URI
This commit updates the link on the registration step so users are
directed to the exact place where they can manage keys.

Because managing keys through the customer portal will soon become
deprecated (keys will be managed through the keys service on insights)
the text was also changed to be more general.
2023-03-06 15:51:34 +01:00
lucasgarfield
53ce67ab47 Wizard: Add beta flag for AWS sources
This commit makes the new AWS sources feature only available in beta.

Note that the RTKQ hooks related to AWS sources are called in several
places outside of the AWS Target step (a prefetch on the Image Output
step and useQuery hook on the review step) but have not been hidden
behind beta flags - this should not present any problems and will make
exposing this feature in stable much easier when the time comes.
2023-03-01 11:25:28 +01:00
lucasgarfield
a474163343 Wizard: Add ability to specify AWS target using sources
This commit adds the ability to specify AWS targets using the sources
service on insights.

This is the first commit to the codebase that makes use of the new RTK
Query endpoints, so I will provide a bit of additional context here:

The sources are obtained by calling the `useGetAWSSourcesQuery()` hook.
This hook can be called in any component where information about the
sources is needed.

A few tricks are used to make the user experience as responsive as
possible.

The `prefetch()` hook provided by RTK Query is called when the user
clicks on the AWS button on the image output step. This triggers the
initial request for the sources, which will then (hopefully) be ready by the
time the user clicks to the next step (the AWS target environment step)
where they are needed.

Because we anticipate a common user workflow to involve using the Create
image wizard in one browser tab and the sources service in another tab,
sources are also refetched every time the source dropdown is opened.
This means that if a user adds a source while in the middle of using the
wizard, they will be able to see it in the wizard's sources dropdown
without refreshing their browser.

Finally, because of the `Recreate image` feature, the
`useGetAWSSourcesQuery` hook also needs to be called on the review step.
2023-03-01 11:25:28 +01:00
Sanne Raymaekers
a25ec459d8 CreateImageWizard: use content sources in production beta
Enables package searching and custom repositories.
2023-01-25 16:15:51 +01:00
regexowl
cbd6b1e4cb Wizard: Update the File system step
Fixes #911. Fixes #912.

This updates the File system step. The changes are:
- changed the toggle group for selecting the mode of partitioning to radio select and updated information for each radio button as mentioned in #911
- added information to the "automatic" option of the file system configuration as mentioned in #912
- updated information for the "manual" option of the configuration as mentioned in mocks
2023-01-19 16:07:58 +01:00
lucasgarfield
280c11c824 Wizard: Change '3rd party repositories' to 'Custom repositories'
All instances of '3rd party repositories' (and its variations) have been
changed to 'Custom repositories'. This is in better agreement with the
content sources app on consoledot, which generally is called either
'Custom Repositories' or 'Repositories'. Additionally, it is possible to
add and manage Red Hat repositories via content sources, which makes
'3rd party' confusing.
2023-01-04 16:16:25 +01:00
lucasgarfield
5adc0e7d4a Wizard: Add 3rd Party Repositories
Adds support for 3rd party repositories using the Red Hat Insights
Repositories app on console.redhat.com.

The packages step has been refactored heavily to reduce the bug surface
area and improve its reusability (it is now used in two Wizard steps).

New features related to the Repositories app are currently only exposed
in stage. Because stage and production are quite divergent (they have
different steps, for instance) there are separate test suites for the
production and stage versions of the Wizard. When these features are
moved into production, the two test suites can be merged into one.
2023-01-03 10:05:39 +01:00
regexowl
4924a436f7 Wizard: Add activation key information in Registration step
This adds a `TextList` with additional information for a chosen activation key in Registration step of the Wizard.

Component `AdditionalKeyInformation` is wrapped within a new component called `RegistrationKeyInformation` for the purpose of displaying the information on the Registration step. As the component needed to use `FormSpy` element to work properly in this context within the Data Driven Forms.
Without it the validation of the form didn't work as expected, because of a persisting reference to the element it was evaluated against.

Popover for an Activation key was also updated according to SPUR mocks.
2022-12-14 10:31:54 +01:00
regexowl
dd08069e48 Wizard: Improve validation of GCP targets
Fixes #879. This adds anchor at the beginning of the regular expression for validation of GCP targets.
2022-12-02 17:06:49 +01:00
regexowl
ab1a7f4aab ESLint: Use --fix with updated rules to order imports
This applies the updated sorting rules to the files by running `npm run lint:js:fix`
2022-12-02 16:29:58 +01:00
Sanne Raymaekers
39ec63b0c3 CreateImageWizard: custom buttons for each step
This adds custom buttons for each step, where each button has an id
taking the format `$step-(next|previous|cancel)-button`.
2022-12-01 16:31:53 +01:00
lucasgarfield
ed9325615c Wizard: Display default region 2022-11-08 11:29:31 +01:00
Sanne Raymaekers
06d47e5428 CreateImageWizard: fix typo in aws step 2022-11-07 12:26:08 +01:00
Chloe Kaubisch
ae69466af4 createimagewizard: clear subscription data
Clear subscription data when centos release is selected.
Fixes #787
2022-10-04 16:31:37 +02:00
lucasgarfield
de4e9bea07 Wizard: Improve file system configuration error messaging
This commit improves the file system configuration step's error handling
by performing validation only when the next button is clicked. This
allows an invalid state to temporarily exist while the user is modifying
the mountpoints without bothersome error messages needlessly appearing.

Broadly speaking there were two options for the implementation: (1)
delay the validation, performing validation only upon clicking the next
button -or- (2) perform validation immediately as normal but hide error
messages until the next button is clicked. Option (1) proved to be
untenable - Data Driven Forms does provide `pauseValidation()` and
`resumeValidation()` functions from React Final Form which theoretically
would make this option possible... However, we need to call
`resumeValidation()` in the next button's click handler and then
immediately make a decision based on the validation results either to
remain on the step and display the errors or move to the next step.
When we tried implmenting this we found that `resumeValidation()` does
not immediately peform validation - validation only resumes after
exiting the handler. Therefore, this approach was not considered and
option (2) was used.

In order to gain control over the behavior of the next button, custom
buttons are implemented for this step. Sharing state between the custom
buttons and the form was a challenge. With pure React it would have been
as simple as moving the relevant state to the parent component, but that
was not possible due to Data Driven Forms. Instead, state is shared
using the form state. A new property,
`'file-system-config-show-errors'`, in the form state is used to
determine whether or not error messages should be displayed.

In order to cause a re-render upon a change in
`'file-system-config-show-errors'`, the file system configuration
component is wrapped in a `<FormSpy>` component.
2022-09-23 18:11:35 +02:00
regexowl
af062a5945 Wizard: Update description on the Packages step
Fixes #773. This changes description of the Packages step according to recent SPUR.
2022-09-19 16:19:30 +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
c9c75da7ba Wizard: Fix UI issues for Microsoft Azure Target environment
Fixes #772. This updates description of the step according to recent SPUR.
The `Authorizing an Azure account` expandable was removed (both from the step and `ImageCreator.js`) as well as `Destination` heading. Size of the Oauth 2.0 link was changed from small to default.
2022-09-02 10:37:08 +02:00
regexowl
2520b99ad1 Wizard: Match the case of System configuration with other step titles
Fixes #768. This matches System configuration case with the case of the other step titles as per recent SPUR.
2022-08-25 15:57:55 +02:00
regexowl
dfbabc1f47 Wizard: Add clarification to AWS and GCP environment steps
Fixes #770. This clarifies that the user is responsible for copying the AWS/GCP image to their account before the image expires.
2022-08-25 10:20:04 +02:00
regexowl
401229ee96 Wizard: Fix GCP step popover text
Fixes #771. This changes `e.g.` to `For example:` and `Google Workspace
domain/Cloud Identity domain` to `Google Workspace domain or Cloud
Identity domain` as per recent SPUR.
2022-08-19 15:28:17 +02:00
lucasgarfield
489d6a334f CreateImageWizard: Add CentOS acknowledgement
Adds a PF4 info <Alert> that informs users that CentOS is intended only
for development of RHEL-Next if CentOS is the selected distro in the
Image Output step.
2022-07-08 11:17:10 +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
4c881fb2b1 CreateImageWizard: Make RHEL 9 the default release 2022-05-19 12:04:27 +02:00
Sanne Raymaekers
cfaa8a463d CreateImageWizard: RHEL 9
Expose rhel-90, it has reached GA.
2022-05-18 15:24:04 +02:00
Jacob Kozol
40f7be170c CreateImageWizard: require max image name length of 100 chars 2022-05-13 12:51:48 +02:00
Sanne Raymaekers
4da829ff8f CreateImageWizard: Don't show centos on non-beta
The distinction is made by checking if the distribution contained
'rhel'. This is the same way the review page determins if it should show
a registration tab.
2022-04-22 16:44:48 +02:00
Jacob Kozol
2f5f6dcc46 CreateImageWizard: move name image step to end
The Details step is renamed to Name Image and moved to the last step
before Review. Also, the validation is removed since all utf-8
characters are supported for image names.
2022-04-19 14:07:46 +02:00
Gianluca Zuccarelli
78123bff0e CreateImageWizard: target env validation
Validation is not enforced on the image output step
when selecting and then deselecting an image type. This
is because the only validation which is set is `Required`.
However, after deselecting an image type the input becomes
a key-value object with all the values set to false. This
commit adds a custom validator to check that at least one
value in the object is set to true. Fixes #575
2022-04-04 15:11:45 +02:00
Sanne Raymaekers
5643a142d1 CreateImageWizard: Add customTitle to step template
This is used by substeps.
2022-03-29 16:13:14 +02:00
lucasgarfield
c28e0d15b6 CreateImageWizard: Make steps autofocus on first input upon render
The default behavior of Data Driven Forms when moving to the previous or
next step is to maintain focus on the previous or next button,
respectively.

This commit makes the UI more friendly to keyboard users by focusing
on the first input element of a given step when it is rendered.

Whenever possible, autofocus is achieved by passing components the
autoFocus prop. When this is not possible, then useRef and useEffect hooks
are used to set focus.

At the moment, it is not possible to autofocus the image output step's
release selector or the file system configuration step's toggle using the
above methods. This is because these PatternFly components do not
currently pass props to the appropriate child component and do not
support ref forwarding. The best option for autofocus in these cases is
currently being investigated.
2022-03-25 15:47:48 +01:00
Sanne Raymaekers
a0883793ba CreateImageWizard: Step template with id
The template is the default template from data driven forms, with the id
added.

Fixes #642
2022-03-25 12:43:31 +01:00
Gianluca Zuccarelli
29f82bc248 CreateImageWizard: gcp popover padding/margin
The margin on the `ul` list inside the gcp
information popover was causing the popover
to look unevenly spaced. Removing the left
margin resolves this. This commit fixes #630
2022-03-24 14:55:44 +01:00
Jacob Kozol
7aaedd67ab CreateImageWizard: rename google to gcp in form state 2022-03-23 12:30:42 +01:00
lucasgarfield
0c9b0f1070 CreateImageWizard: Add image output instructions
Resolves #596. Adds the text `Image builder allows you to create a
custom image and push it to target environments.` and a link to the
documentation to the image output step.
2022-03-04 16:44:12 +01:00
Gianluca Zuccarelli
1ec63ba357 CreateImageWizard: prefocus aws input field
Autofocus the input field in the aws step
of the CreateImageWizard modal.
2022-03-04 12:18:15 +01:00
Sanne Raymaekers
531e2ac1b0 CreateImageWizard: Expose centos 9 stream 2022-03-02 17:03:09 +01:00