* app card component
* cover upgradable and installed statuses
* support tags
* comment out handle clicks
* add matching chart logic
* add unit tests
* add unit tests for chart model
* fix e2e tests
* fix e2e test
* add secondary text link in css
* change AppCard to a generic ItemCard
* continue making itemcard more generic
* fix reference issue
* title slot + variant styling
* code cleanup + minor refactor
* new icons
* update icon lib + minor refactor and styling
* unit tests
* more unit tests for chart model
* refactor some slots + finishing touches
* some accessibility updates
* minor styling
* move image div inside slot
* uncomment e2e tests
* fix charts selector
* fix test
* fix statuses alignment
* more robust header styling
* remove PropType
* updated translation key
* update key
* rename
* improve aria labels + minor cleanup
* fix import
* replace deep targetting lazyimage css with style attr
* remove deep for actions + fix small header alignment
* rename component
* remove extra check
* add comments
* add comments to model
* use id instead of chartName
* remove todos
* fix matching app logic not including the latest version
* wrapper styling
* imporve performance
* debounce search query
* update e2e tests
* support actions as prop
* dynamic card layout when variant is not set
* fixed unit tests + lint
* removed unnecessary default props
* fix e2e test
* improve aria label message + remove unnecessary ones
* move component
* fix export component
* Only calc variant twice
* lint
* fix unset debouncedSearchQuery
* add requestAnimationFrame to optimize observer
* update card po and its usage
* rename
* replace .no-card-click with RcItemCardAction component
* Revert ResizeObserver, also cache filteredCharts map result
---------
Co-authored-by: Mo Mesgin <mmesgin@Mos-M2-MacBook-Pro.local>
Co-authored-by: Richard Cox <ricox@suse.com>
* Add support for HTML banners
* Add support for HTML banners
* Updates test so it runs okay after the text banner tests
* Fix for html tests running after others
* Improve e2e test reliability
* Add aria-labels
* Test / Wire in new label filtering to limited places
- Wired in to
- Workload detail page - pods and services (broken due to reverse selector)
- Service Detail - Pods List
- Service create/edit - Pod selector tab
- Also
- Fix showPodRestarts in random location
- TODOs
- Lots of testing / validation required
- reverse deployment --> service selector (not services given deployment, but for each service contains pods from deployment)
- workload model usages of pods getter
- services model usages of pods getter
- many many more....
* wired in, NOT tested
* improvement
* sdfdsf
* ryrty
* werer
* The great test off begins
* testing and tidying
* testing and tidying
* First good run
* tests, fixes and improvements
* updates
* Tidying up
* Fixes (namespace orientated), tweaks, updates
* Fix unit test
* Fixes for vai off
* Re-write `matching`
- handle namespaces better (given if the resource is namespaced
- better align with legacy matching fn (given specific scenarios that should return none or all)
* Lots of fixes, but mainly vai off --> pods list --> deployment detail --> pods list updates correctly
* fix lint, unit test
* e2e fix
* Fix weird plugins build validation failure (TS error on expected param for JS method with a default)
* Fix workload services
* changes following mini code review
* Only show pods tab if workload type supports it, always show pod resource table if tab is shown
Revert changes to object merge behavior because the existing behavior is destructive when merging deeply nested user values. For example, a default object contains the value:
```js
a: {
b: true,
c: true,
d: {
e: true,
f: {
g: true,
e: { },
f: [ ],
},
},
}
```
and a user value modifies `g`, which is stored as:
```js
a: {
d: {
f: {
g: false,
},
},
}
```
When the object is merged, deeply nested values will only be taken from the user values, causing properties to be lost. Furthermore, default properties for `f` can also be dropped. This operation is too destructive, and it's better to merge user-supplied properties with defaults than to drastically alter YAML altogether.
Signed-off-by: Phillip Rak <rak.phillip@gmail.com>
* refactor catalog install and uninstall extension modals as a prompt modal + add unit tests
* remove todos
* address merge conflicts + revert change to structuredClone + update unit test
* refactor add repos and developer load extension modals as a prompt modal + add unit tests
* fix broken unit test
* remove unused prop
* remove todos
* code cleanup
* fix a few components for a11y + add unit tests related to a11y
* fix issues with sr output for banners settings with ColorInput and RadioGroup + update unit tests + fix lint issues
* fix lint issue
* Overwrite default chart values with user supplied values
Changes to merge behavior so that user supplied values overwrite default values when merging. The lodash merge operation merges object properties recursively, meaning that any keys in the left-most object will remain present. The customizer function works to overwrite any duplicate properties present in the user values.
Signed-off-by: Phillip Rak <rak.phillip@gmail.com>
* Add ability to handle objects to `mergeWithReplaceArrays`
This renames `mergeWithReplaceArrays` to `mergeWithReplace` and adds functionality for working with objects. I'm opting to extend the existing util after I found that objects are not the only concern In reviewing prior work #14165 that dealt with arrays. Defaulting `replaceObjectProps` to `false` keeps the existing behavior in place for other usages of `mergeWithReplace`, limiting the chance for regressions in rke2 yaml.
Signed-off-by: Phillip Rak <rak.phillip@gmail.com>
* Unit test object merging behavior
Signed-off-by: Phillip Rak <rak.phillip@gmail.com>
---------
Signed-off-by: Phillip Rak <rak.phillip@gmail.com>
* add role 'none' to hr elements in TopLevelMenu
* add missing role and label to SideNav
* add aria-label to show/hide button in the Password component
* add role 'none' to hr elements
* add missing alt to user avatar image
* Assign route resources in `created()` hook
Signed-off-by: Phillip Rak <rak.phillip@gmail.com>
* Move init logic go `created()` hook
Signed-off-by: Phillip Rak <rak.phillip@gmail.com>
* Remove constants from data props
Signed-off-by: Phillip Rak <rak.phillip@gmail.com>
* Move init logic to `fetch()` hook
Signed-off-by: Phillip Rak <rak.phillip@gmail.com>
* Move vuex getters into computed props
Signed-off-by: Phillip Rak <rak.phillip@gmail.com>
---------
Signed-off-by: Phillip Rak <rak.phillip@gmail.com>
- 'almost' applies to enabling SSP by default
- Previously the ui-performance object contained a required set of resources to apply SSP to
- This isn't workable going forward where the available resources will be updated between versions
- Now the default is to use a set of default resources which can change between versions
- Users can override if they wish
* working on focus trap composable
* working on slide in panel refactor
* add change so that we dont have a change on the component diff
* fix slidein extension details panel key nav
* fine tune cluster badge trigger btn
* finish work on extensions page
* fix lint errors
* address pr comments
* fix problems of propagation
* update return focus for some modals in the extensions main screen
* remove dead code + fix focus selector return for add extensions repo and developer install modals
* working on key nav for cluster badge appearance
* color input is now key nav friendly + tooltip works on focus + trying to get focus trap to work properly
* remove console logs + add focus trap to card component with prop control + fix element for config badge button
* fix lint problem
* fix TS errors on pkg build
* remove step of building the skeleton app in the check-plugins-build step, which imo doesnt serve any purpose whatsoever
* add focus-trap as a shell dependency + revert publish script change
* remove focus-trap directive + improve chaining event handler modifiers
* pin focus-trap to 7.6.2 + replace link for button on cluster explorer main page + remove unused ev
* address pr comments
* cluster list now uses resource table
* New PaginatedResourceTable
* WIP
* add context to pag setting
* tidying up
* Add server-side pagination to cluster explorer events and general events list
* Servier-side pagination for catalog apps, cluster repo and operation
* Servier-side pagination for Service --> HPA, inmgress, services
* Server-side pagination for home page clusters list and side bar clusters
- Functional Changes
- SSP now works after vue3 bump
- Home Page Clusters list now uses server-side pagination
- Side Bar clusters list now uses server-side pagination
- Wire in now supported sorting / filtering by id and name used for table columns
- Allow pagination to be enabled given a specific context
- Call findPage without persisting to store
- New Pagination Tools
- PaginatedResourceTable - Convenience Component, wraps ResourceTable with pagination specific props
- PaginationWrapper - Convenience class to handle requests for resources and updates to them (avoiding store)
- Regressions
- Side Nav menu ready state was `mgmtCluster.isReady && !pCluster?.hasError`, now ???
* fixes after merge. apply PagResTable to node list, vue3 fixes
* - Fix issue where list components containing PaginatedResourceTables would incorrectly fetch all resources anyway
- convert reminaing storage lists
* policy section
* fix async button in manual refresh mode
* fgh
* aaaaa
* Server-side pagination for home page clusters list and side bar clusters
- Functional Changes
- SSP now works after vue3 bump
- Home Page Clusters list now uses server-side pagination
- Side Bar clusters list now uses server-side pagination
- Wire in now supported sorting / filtering by id and name used for table columns
- Allow pagination to be enabled given a specific context
- Call findPage without persisting to store
- New Pagination Tools
- PaginatedResourceTable - Convenience Component, wraps ResourceTable with pagination specific props
- PaginationWrapper - Convenience class to handle requests for resources and updates to them (avoiding store)
- Regressions
- Side Nav menu ready state was `mgmtCluster.isReady && !pCluster?.hasError`, now ???
* Iteration
Note - prov clusters is broken (only fetches local) due to blocking pr. breals
- notPinned list
* Fix dupe inStore
- remove from resource list, put in resource-fetch (used also by pag res table)
* Fix dupe inStore
- remove from resource list, put in resource-fetch (used also by pag res table)
* Two fixes
- changes namespaces kicked of side nav cluster requests (thought pinnedIds changed)
- fix generic lists re-fetching given ns filter changes (they don't have namespaced arg)
* fixes / updates
* testing/tidying
* WIP - Rest of workload lists
* finish off workloads
* tidying up
* fix non-generic list filtering by namespace
* remove comment, backport fix
* test fixes
* E2E: Ensure we wait for cluster entries to exist before clicking on them
* backport fix for local/api filtering
* Remove debug code
* Changes after review
* e2e fixes / debugging
* More e2e fixes
* More e2e fixes
* More e2e fixes
* Fix generic pages that filter on pagination
* Attempt to fix flaky vai test
* Fix after merge from master
* Updates following new indexed files
* Fix lint and test
* Changes given real cluster tests
- general fixes
- correct issue were sorting prov clusters on mgmt cluster props (issue in master as well...)
- bit the bullet, we now don't fetch all mgmt clusters on dashboard visit.
- there could be knock on affects, but we'd need to remove it sometime in 2.11....
* Fix issues with diplaying rke1 data in home page
- includes https://github.com/rancher/dashboard/pull/12881
* Fix unit tests
* remove invalid sort/filter type
* Running through new indexed fields
* fix unit tests
* lint fixes
* Fixes after small review
* lint
* Test for check-plugin-gates pkg build from shell
* e2e fixes
* Testing new indexed fields with dev image
* tidyuing up imports in hope to fix ts error in check-plugins gate
* Fix failing check-plugin-gates
- caused by shell/scripts/test-plugins-build.sh importing list/catalog.cattle.io.clusterrepo.vue
- the component had been updated to a TS component
- check-plugin build outputs TS errors for a component file imports
- vs code shows no errors for imported file
* tidying up a smidge
* Many tweaks
- Remove final todo's
- includes fix for service type clusterip/headless overlap
- Removed ununused ENDPOINT column (note ENDPOINT formatter used in other columns)
- Testing freshly added index fields
* Improve location of new place where componentWillFetch is set
* fix lint, comment updated
* Fix failing e2e tests
- fix cluster dashboard events test
- fix and greatly improve flaky events test
- fix hpa test
- functional fixes
- fix sorting/filtering events by object type
- fix hpa columns
- Performance Fix
- go back to using git repo status cluster ready / desired stats instead of costly clusterResourceStatus (churn can call this a LOT)
- Improve load time of fleet cluster detail page
- Bug Fix
- Using targetClustersReady and targetClusters doesn't seem to work in some cases, revert back to previous
- General Fixes
- Fix weird fleet cluster list column alignment
- socket updates remove all properties from an object on update, this included `_values`
- switch to more solit / response secrets getter instead
Top notes
- Helm app references secret by owner refs
- helm repo update action supplies helm app update and receives references to helm operationin response
- This creates a new secret and updates the helm app's secret owner reference
- ui receives socket up to helm app containing new secret owner ref
- force fetch of secrets on visit on install app/chart detail/app detail page
- add somre jsdoc
Note
This shouldn't break extensions UNLESS extension developers have implemented
custom chart install/upgrade processes. Existing extensions like kubewarden
or elemental are fine (they redirect to actual chart install process rather
than have their own)
* fix cluster dashboard cattle and fleet agent healthchecks when user has limited permissions
* add test for standard uesr cluster dashboard
* clean up commented code
* fix cluster dashboard unit test
* fix cluster dashboard e2e test
The `useStore` composable was implemented for Vue2 because vuex did not provide anything for the composition api. Now that we have migrated to Vue3, we have `useStore` exposed to us via Vuex.
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
We had this `hasTabs` api which implicitly allowed a chart install override component to implicitly define tabs instead of just having the component define them explicitly.
This required prop drilling to work and it doesn't appear to work any longer with dynamic components. Since this was only used in two places I removed support for this and simplified the implementation.