Commit graph

1396 commits

Author SHA1 Message Date
regexowl
d77ac55482 Wizard: Skip directly to Review
When clicking "Review and finish" the user skips directly to the Review step and the name of the blueprint gets automatically populated.
2025-01-06 18:22:50 -06:00
regexowl
4af4b56332 this commit adds ssh_key to users step 2025-01-06 13:05:41 +01:00
Michal Gold
6a5871bf14 wizard: add users to review step (HMS-4906) 2025-01-06 12:28:20 +01:00
regexowl
5e4f20edf1 src: Make spinners spin
This replaces the `<InProgressIcon>` with animated spinners to indicate that something is happening.
2025-01-06 10:17:49 +01:00
regexowl
5f9f30d97b Wizard: Fix "form in form" warning
This resolves `Warning: validateDOMNesting(...): <form> cannot appear as a descendant of <form>.` warning in test output. There were two `<Form>` components nested in each other.
2025-01-02 13:18:00 +01:00
Gianluca Zuccarelli
47156c4e95 store/cockpitApi: use existing blueprint converter
Use the blueprint existing blueprint converter to convert
the on-prem blueprint to the hosted blueprint
2024-12-21 08:19:15 -06:00
Gianluca Zuccarelli
a9ebfb7e2e store/cockpitApi: scan for blueprint files
Add an initial commit to scan a preset directory for user blueprint
files. This makes use of the cockpit files api.
2024-12-21 08:19:15 -06:00
Gianluca Zuccarelli
2b82fa3c4b tsconfig: cockpit plumbing
It was necessary to do a bit of plumbing to get typescript, webpack &
vitest all happy. To do this we had had to create a separate tsconfig
for the on-prem version and the service frontend.

We override the module resolution for both config files. For on-prem we
check modules in `pkg/lib` and for the service we resolve the modules to
stub functions of the `cockpit` & `cockpit/fsinfo` modules. This was so
typescript and webpack would not complain.

For on-prem we had to intruct webpack to resolve modules from both
`node_modules` and `pkg/lib`. While for the service we set the
resulotion for the two modules to false, which means they won't get
bundled with the service.

Lastly, we needed to set some aliases in the vitest config so that
vitest could resolve the `cockpit` & `cockpit/fsinfo` modules.

Using the cjs `require` keyword to import cockpit would have worked to
make typescript and webpack compile since these imports are not
statically analysed like the `import` keyword is. However, this approach
broke the tests as `require` imports are not supported in vitest.
2024-12-21 08:19:15 -06:00
Gianluca Zuccarelli
4235885541 test/mocks: add cockpit lib mocks
Add some stub functions for the cockpit library, these will be needed
for tests to pass and for stubbing out the library for the service.
2024-12-21 08:19:15 -06:00
Gianluca Zuccarelli
570cb3eba2 store: add emptyCockpitApi
This is just to follow the convention already used in the project.
2024-12-21 08:19:15 -06:00
Michal Gold
d0f2317649 wizard: add user information step (HMS-4903)
This commit introduces the user information step with the following fields:
(*) `userName` field
(*) `password` field
(*) add unit tests for create and edit mode
2024-12-20 12:35:15 -06:00
regexowl
7da478791e devDeps: Manually bump msw from 2.6.6 to 2.7.0
This bumps msw from 2.6.6 to 2.7.0
2024-12-20 07:13:18 -06:00
regexowl
cf4289f692 Wizard: Move two files
This moves two files:
- timezonesList to the Timezone step, same as lists used for Locale
- ImportBlueprintModal.test.tsx to the test folder so all the test files are in one place
2024-12-17 17:01:34 -06:00
regexowl
ae795c3b6a Wizard: Extract ChippingInput to reusable component
This extracts input with chips from the NTP servers into a separate reusable ChippingInput component.
2024-12-16 12:12:56 -06:00
regexowl
8e046e3018 Wizard: Kernel step basics
This adds foundation for Kernel step, including gating and basic tests.
2024-12-16 10:53:06 +01:00
Anna Vítová
74c352e235 Wizard: Add popover to suggest importing on-prem
In order to hint users that on-premise blueprints are accepted in
import, we are adding a popover with a message.
2024-12-13 14:27:05 +01:00
regexowl
a5966b2f29 test: Add edit tests for hostname
This adds an edit test for the Hostname step.
2024-12-12 14:53:18 -06:00
regexowl
9b6934438a validators: Allow only lowercase characters for hostname
Validation error mentions only lowercase characters, this updates the regex accordingly.
2024-12-12 14:53:22 +02:00
regexowl
3bd4dc89c4 test: Add test to check hostname length
This adds a test to check the length of the hostname.
2024-12-12 14:53:22 +02:00
regexowl
dc24ba24e4 Wizard: Add Hostname expandable to Review step
This adds a new expandable to the Review step.
2024-12-12 13:47:09 +02:00
regexowl
73eaecc51e Wizard: Add hostname to on-prem mapper
This adds hostname to on-prem mapper and updates a test that checks if the value got parsed correctly.
2024-12-12 11:19:16 +01:00
Lucas Garfield
b4932d6a44 Wizard: Hostname validation
Hostname validation rules can be found in the hostname man pages (`man 5
hostname`). This commit tweaks the hostname validator function so it is
in line with these guidelines by limiting the length to 64 characters
and also updates the error message for invalid hostnames to provide
users with some additional guidance/context when an invalid hostname is
provided.
2024-12-11 12:59:41 -06:00
regexowl
5a514d1d04 Wizard: Add Hostname functionality
This adds a validated hostname input and new tests.
2024-12-11 12:59:41 -06:00
regexowl
75741ec40e test: Add basics Hostname tests
This adds basic tests for the Hostname step.
2024-12-10 12:37:36 -06:00
regexowl
8c108fe2ec Wizard: Basic Hostname step
This adds Hostname step basics and file structure.
2024-12-10 12:37:36 -06:00
regexowl
317f424448 test: Packages selected on import
This checks if specified packages get selected when importing a toml blueprint.
2024-12-10 11:54:11 -06:00
regexowl
e98376de1a test: Clean up comments left over after rebasing
This removes two comments left over after rebasing, both tests are already implemented a bit higher in the file.
2024-12-10 09:58:54 -06:00
regexowl
93de07c729 Wizard: Add Locale to on-prem mapper
This adds Locale values to the on-prem mapper and updates the import test to check for expected values.
2024-12-10 09:16:39 -06:00
regexowl
8d84b5eef2 Wizard: Add Locale to Review step
This adds Locale expandable to the Review step.
2024-12-10 04:15:37 -06:00
Sanne Raymaekers
3dcafd5672 store/enhancedImageBuilderApi: handle empty error data
Turns out it can also return `{error: data: {}}`, so without `errors`
inside the data object.
2024-12-10 10:30:18 +01:00
regexowl
c9efe9e22d Wizard: Use reusable sort function
This replaces sortfn with a reusable sorting function from utilities.
2024-12-09 14:30:26 -06:00
regexowl
ad02609038 Wizard: Add Languages drop down
This adds a drop down for languages selection. The options are populated with an ouput of `localectl list-locales` and sorted to display results starting with the search term first.

Also added tests.
2024-12-09 14:30:26 -06:00
regexowl
9324a33a74 Wizard: Add validation for NTP servers
This adds a validation pattern and a validation for NTP servers field.
2024-12-09 13:44:10 -06:00
regexowl
1533830095 Wizard: Add Timezone to on-prem mapper
This adds Timezone values to the on-prem mapper and updates the import test to check for expected values.
2024-12-09 12:19:01 -06:00
Lucas Garfield
3d75b5b5ee Utilities: Extract sorting function
Extracts the function used to sort packages as a utility function so it
can be reused for sorting locales as well.
2024-12-06 16:58:06 -06:00
regexowl
4899553151 test: Add Locale tests for keyboard drop down
This adds tests checking functionality of keyboard drop down and blueprint request with locale.
2024-12-06 16:58:06 -06:00
regexowl
97877114f6 Wizard: Add Keyboard drop down
This adds a drop down for keyboard selection. The options are populated with an output of `localectl list-keymaps`.
2024-12-06 16:58:06 -06:00
regexowl
60175aa911 Wizard: Remove category and fix Review alignment
This removes the chip category and adds a version slug to make the alignment on Review step work properly.
2024-12-06 13:53:56 -06:00
regexowl
1483ff9e9e Wizard: Replace the list of timezones
This replaces the list of timezones created via `Intl.supportedValuesOf('timeZone')` by tzdata-2024b list.
2024-12-06 13:53:56 -06:00
regexowl
39f618c3d8 Wizard: Update the way of adding NTP servers
This updates the way NTP servers can be added:
- helper text was removed
- add button (PlusCircle) was added to the input group utilities
- remove input button is now rendered always, but gets disabled when there's no input
- chip group was moved under the input

Also I've noticed that the "clear input" button completely cleared the list of NTP servers which would make me very angry as a user. Fixed it, so now the clear input button only clears the input field and the `clearNtpServers` action was removed as we don't use it anywhere else.
2024-12-06 13:53:56 -06:00
regexowl
b8915da3fd test: Add more test coverage for Timezone step
This adds more tests for the Timezone step:
- 'Step Timezone' -> 'revisit step button on Review works'
- 'Timezone request generated correctly'
- 'Timezone edit mode'
2024-12-06 13:53:56 -06:00
regexowl
c851d4abac Wizard: Add Timezone step to Review lists
This adds a Timezone overview to the Review step.
2024-12-06 13:53:56 -06:00
regexowl
6427dc5285 Wizard: Add Timezone dropdown and NTP servers input
This adds a Timezone select, the select is typeahead and allows to filter through all defaultTimezones. It's also scrollable so it doesn't take up all of the space.

The NTP servers are currently in a text input, the server is added by confirming with a space, comma or an Enter, making the server a chip and adding it to the array of NTP servers.
2024-12-06 13:53:56 -06:00
regexowl
ab446c2a36 Wizard: Add timezone structure to store and mapper
This creates structure and actions for the timezone customization in the wizardSlice and requestMapper.
2024-12-06 13:53:56 -06:00
Gianluca Zuccarelli
0d4bb26e0f multiple: check when var is possibly undefined
In cases where a field on an object might be undefined,
rather omit the value than set the field to undefined.
2024-12-06 12:02:34 -06:00
Gianluca Zuccarelli
d4436dc6a9 multiple: set sane defaults
Set sane defaults for some types rather than setting them to `undefined`.
This is so that we can set `exactOptionalPropertyTypes` to true in our
tsconfig.
2024-12-06 12:02:34 -06:00
Gianluca Zuccarelli
877497f81c pagination 2024-12-06 12:02:34 -06:00
Gianluca Zuccarelli
4125a9cd3b multiple: set pagination defaults
Set pagination defaults, otherwise these might be `undefined`.
2024-12-06 12:02:34 -06:00
Gianluca Zuccarelli
bad77421ae api: union undefined
Set the option to generate union undefined types for objects that have
optional items. This will allow us to enable `exactOptionalPropertyTypes`
in our tsconfig [1].

[1] This is a recommended setting, see:
https://www.typescriptlang.org/tsconfig/#exactOptionalPropertyTypes
2024-12-06 12:02:34 -06:00
regexowl
e4e83d4417 Wizard: Add locale structure to store and mapper
This creates structure and actions for the locale customization in the wizardSlice and requestMapper.
2024-12-05 11:06:11 -06:00