Unleash is being used to determine whether or not to use the Launch
wizard for Azure and GCP images. Unleash is not yet supported in our
ephemeral environments, but we want our ephemeral environments to have
parity with beta. This commit ensures that the Launch wizard opens for
Azure and GCP images in ephemeral.
Related to HMS-1886: Clicking the recreate button on a build with a lot
of packages results in the user being rate limited.
Package summaries are obtained by querying the Content Sources API. A
large number of packages requires a large number of requests and leads
to the rate limiting problem when using the 'Recreate image' function.
This commit fixes the problem by not requesting or displaying package
summaries when 'Recreate image' is used. (Note that newly added packages
will still request and display a summary.)
The 'Recreate image' function will soon be replaced by
blueprints. This hotfix should carry us forward until then.
This commit integrates Mock Service Worker into the browser. This will
allow us to use MSW to mock network requests at the API level from a
browser using the same MSW fixtures that we are currently using for our
testing. This means we will be able to have the same environment for
debugging, development, and testing if desired.
To develop using MSW, the developer will now use `npm run
stage-beta:msw`. The dev server will start as normal, but now any
request made that has a corresponding fixture will be intercepted and
the fixture used to generate the response.
This adds an MSW=TRUE environment variable to the run script. When this
environment variable is present, the dev webpack config will copy
mockServiceWorker.js into the build directory (/dist) using CopyPlugin
and will add some necessary headers to the dev server's responses using
DefinePlugin.
This commit removes the base URL from the MSW handlers. This is
necessary in order for MSW to integrate into the browser (future commit)
and does not adversely affect the current test integration with MSW.
By using the standard HTML property name, PF4 considered the Radio
uncontrolled. This causes warnings in the console.
By using the correct property names, PF4 correctly considers the
component controlled.
If an image does not contain a subscription_id property, the link to
view the image in Azure will be malformed. This happens when a user
creates an Azure image in beta/preview using sources, and then clicks
the 'View uploaded image' link in stable.
Now, if an Azure image was created using sources (as evidenced by presence
of a source_id in request's upload options), the Launch button appears
and its popover has a link to Preview.
If an image does not contain a share_with_accounts property, launch
links do not appear in the launch popover. This happens when a user
creates an AWS image in beta/preview, and then clicks Launch in stable.
A message is now displayed that explains the image was created using
Preview features, and the link to Preview has been clarified to be more
explicit.
This disables sharing to new regions in case of failed build of the parent image.
The regions that always end in failure were also disabled in the `ShareImageModal`.
This makes the wizard feel much 'faster' for a better user experience.
The implementation uses RTK Query for prefetching. For most API
requests, prefetching is done when the 'next' button is hovered over on
the previous step.
This adds a temporary value of current date to `created_at` for newly created images.
This is not the most elegant solution and will be reworked after the ImagesTable refactor.
There is a bug in Patternfly that causes 'pop out' selects (those that
use the menuAppendTo="parent" prop) to be rendered underneat the wizard
footer.
Until this is patched in Patternfly, we will have to live with
suboptimal select menus that scroll inside the modal.
This disables the "Add all" button in the `DualListSelectorControl` on the Packages step when there's too many results to display, even if there's an exact match.
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.
This commit adds filtering based on architecture and version to the
repositories table in the wizard.
Apart from filtering, this commit now shows *all* repositories,
regardless of their status. Previously, invalid repositories were not
displayed. A future PR will add a status column and edge case handling
(how to handle an invalid repo, etc...). For now, invalid repos are
displayed and can be selected.
RTK Query is now used to manage the state of the repositories.
Previously, the repositories were fetched in a useEffect hook upon
opening the wizard.
MSW is now used instead of jest mocking for the tests involving
repositories. The repositories test fixture now contains a function that
mimics the content sources API.
With our quickstarts now merged to prod we can
start using the quickstart API to invoke them.
Also change all Beta user facing text to Preview
Signed-off-by: Pavel Odvody <pavel@redhat.com>
This updates spacing between the description and buttons as shown in mocks.
Nesting of the `<p>` tags was also removed to eliminate `Warning: validateDOMNesting(...): <p> cannot appear as a descendant of <p>` from the console logs.
To avoid confusion between custom and payload repositories.
Custom repositories will be embedded in the yum config, payload
repositories are used for installing packages.