* fix item 2: All page content should be contained by landmarks
* fix item 4. Elements must only use permitted ARIA attributes
* fix item 6. ARIA attributes must conform to valid values
* fix bug on item 6. and fix item 7. <ul> and <ol> must only directly contain <li>, <script> or <template> elements
* fix item 8. Interactive controls must not be nested
* fix item 10. ARIA toggle fields must have an accessible name
* fix item 11. autocomplete attribute must be used correctly
* fix item 12. Form elements must have labels
* fix item 14. ARIA input fields must have an accessible name
* fix item 15. Buttons must have discernible text
* fix item 16. Images must have alternative text
* working on item 17
* finish fix item 17. ARIA role should be appropriate for the element
* fix wrong role in hidden inputs
* address pr comments
0c6eb6473d introduced a change that moved the call to `selectContainer` out `data` and into the `created` hook. Before this change, any modifications made by invoking `selectContainer` would get overwritten by setting container in the data prop. `selectContainer` only needs to be invoked once on first render, and the changed method in `shell/edit/workload/index.vue` satisfies this requirement.
Signed-off-by: Phillip Rak <rak.phillip@gmail.com>
The `name` prop for tabs assigns an id to a `section` element in the underlying tab. Since ids must be unique in the document, there conflicts can arise when programmatically selecting tabs.
Signed-off-by: Phillip Rak <rak.phillip@gmail.com>
Options for CSI can be either a string or an object; objects contain a label property.
Replace periods with `-` in keys like `driver.longhorn.io` so that the i18n implementation will properly match a translation.
Signed-off-by: Phillip Rak <rak.phillip@gmail.com>
`defaultContainer` retains its values even after navigating away from the workload create form. This behavior was not observed in Vue2, and it requires further investigation to fully understand.
To address this issue in the short term, using `structuredClone` to create a deep copy of defaultContainer ensures that modifications to the container do not persist after navigating away from the form.
Signed-off-by: Phillip Rak <rak.phillip@gmail.com>
* remove $set from AKS validators
* fix cruGKE not rendering
* fix most aks unit tests
* fix crueks and eks config unit tests
* fix eks networking and nodegroup unit tests
* fix gke unit tests
* fix consumption gauge test
* fix namespacefilter tests
* fix command and taints unit tests
* fix questions unit tests
* fix hpa and service unit tests
* fix registryconfigs unit tests
* fix job unit tests
* fix longhorn unit tests
* fix addextensionsrepos unit tests
* fix rke2 basics unit tests
* fix container shell unit tests
* fix last aks pool test
* fix mount tests
* fix namespace and pv unit tests
* fix codemirror unit tests
* clean up aks, boolean, namespacefilter unit tests
* fix namespacefilter test
* remove redundant test case
This approach uses the spread operator to create a new array instead of using push. It appears that using push on a nested property of a reactive object was not triggering Vue's reactivity in this instance, while creating a new array does the job.
Signed-off-by: Phillip Rak <rak.phillip@gmail.com>
* Correct file naming and small TS issues
Correct TS related issues
* Manual replacement of :is on standard HTML tags
* Add missing required in the code dependencies
* Correct SCSS import
* Correct test file naming
* Correct typo in markup
* Use alias for types import
- default storage class is set via annotation
- annotations can be `"true"` or `"false"`
- previously we only checked for truthy when finding default
- this mean `"false"` counted as true