Vue3 changes how attributes are inherited https://vuejs.org/guide/components/attrs#attribute-inheritance
This addresses the issue by adding a `inheritAttrs: false` to the resource-fetch mixin which seems to correlate with the usage of ResourceTable as a root element. Specifically what happened is that when RootTable was used at the root in these cases the value of :rows would get overwritten causing the table to be empty.
I also fixed some spacing issues by changing how we render "outlet" also an inherritedAttr.
* Changes for new design
- New visuals
- Pagination controls --> load more
- finished testing of label select with pagination off
# Conflicts:
# shell/edit/provisioning.cattle.io.cluster/__tests__/Basics.tests.ts
* Changes following review
* Update Node list to support server-side pagination
- Setup pagination headers for the node type
- Define a pattern for fetching custom list secondary resources
- Major improvements to the way pagination settings are defined and created
- Lots of docs improvements
- Handle calling fetch again once fetch is in progress (nuxt caches running request)
- Validate filter fields (not all are supported by the vai cache
- General pagination fixes
* Lint / test / fixes
* Improvements to configmap e2e test & Improve pagination disabled
* Beef up validation
* Fix missing name column in non-server-side paginated node list
* Fix PR automation actions
- fix syntax
- catch scenario where a pr has no fixed issue
> There's duplication between files, see https://github.com/rancher/dashboard/pull/10534
* CI bump
* Fixes post merge
* Wire in 2.9.0 settings for server-side pagination
- Everything is gated on `on-disk-steve-cache` feature flag
- There's a backend in progress item to resolve a `revision` issue, until then disable watching a resource given it
- Global Settings - Performance
- Added new setting to enable server side pagination
- this is incompatible with two other performance settings
* Integrate pagination with configmaps in cis clusterscanbenchmark edit form
Also
- improved labeled select pagination
- gate label select pagination functinality on steve cache being enabled
* - harvester machine-config
- project monitoring (and bug fixes)
* Disable workload screen if vai cache is on
- temp step until we get new overview
* TODOs and TEST
* Conditionally remove fetch of all secrets from SelectOrCreateAuthSecret
* TODOs and TEST
* Update SimpleSecretSelector
- only used in monitoring.coreos.com.alertmanagerconfig context
* View and Edit ingress - secrets
* node detail page - pods list
* Backup/Restore: Secrets (WIP)
* Backup/Restore: Secrets, and other usages of SimpleSecretSelector / SelectOrCreateAuthSecret
* Edit: Service account
* Add comments for remaining items
* Paginate Secret selection for logging providers
- Allow `None` option in Paginationed LabelSelect
- Optionally classify pagination response
* WIP
* fixes arfter merge
* Don't suggest container names, not practical
- previously all pods were fetched... and we scrapped all container names from them
- this is a scaling nightmare, user now must just enter the name/s to match
* Avoid findAll secrets in SimpleSecretSelector
* tidying up
* Move LabeledSelect/index.vue back to LabeledSelect.vue to not break extensions
* changes after self review... 1
* changes after self review... 2
* ooof
* changes after self review... 3
* fix formatting
* Link new paginated label select with pagination setting
* Work around failing kubewarden unit tests in check-plugins gate
* Fix backup.spec e2e test
* fix formatting, paginationUtils.isSteveCacheEnabled --> paginationUtils.isEnabled
* Don't fetch all secrets on cloud creds page
* Fix backup.spec e2e test
* TODO tidying / tracking
* don't getch ALL workloads for hacky way to get a link to a service's workload
* Fix bad merge
* Updates after working with vai cache image
* test fixes
* Create a convienence wrapper called ResourceLabelSelector that hides most of the complexity
* fix unit test
* Add alt-loading indicator to sortable table, use for pagination
* Updates following review
* Remove workload health until #10417 is resolved
* Updates following review
* changes following self review
* Fix bottom bar of edit backup, edit restore pages
* revert temp change
* changes following self review
* Workaround for kubewarden unit tests in check plugin gate
* bump
* Fix e2e
* Fix linting
* type fixing
* fix standard loading indicator
* - improve filtering without pagination
- update allowed fields given latest backend changes
- enable on by default exact filter string matches (disable for lists
* remove temp code
* fix linting
* Changes following review
* Fixes for vai cache feature flag
- name was changed from on-disk-steve-cache to ui-sql-cache
- fix timing issue - don't watch resources until we know the vai cache feature flag
* Changes following review
* Fix two sketchy tests
- new exception in docs page
- don't nav to page via button click and then goto same page
* More test improvement
- force user to go to tab which is source of route guard issue
- move setup stuff to a test for cypress to re-retry
* changes following review
- Setup pagination headers for the node type
- Define a pattern for fetching custom list secondary resources
- Major improvements to the way pagination settings are defined and created
- Lots of docs improvements
- Handle calling fetch again once fetch is in progress (nuxt caches running request)
- Validate filter fields (not all are supported by the vai cache
- General pagination fixes
- General changes following review comments
- Fix issue where in local cluster the systen classed namespace associated with a project would get muddled with selecting user resources in mathing project
- Part of this is a big refacture, most of the code to create pag filter params is now in a helper filer
- Added much improved typing
- Fixed issue where the dynamic namespaces (c-, p-, etc) weren't correctly hidden
- Move user to previous page if last entry on last page deleted (and there is a previous page)
- Fix confusing preference to hide dynamic namespaces (c-, p-, etc)
* working on making sure we show a 404 page with a proper error
* code cleanup + add logic to capture 404s for resource instance details
* add e2e tests
* address PR comments + adjust e2e tests
* cover 404 on cluster for dynamic plugins
* address PR comments
* catching bogus resources on authenticated middleware with redirect to 404 page
* fix lint issue
* address PR comments + fix issue with e2e tests
* Fix l10n
- Ensure error messages doesn't reference 'list' when not on a list page
- The new way the feature works means going to a list with an unknown resource results in the generic message, but this is preferably over the above
* fix e2e tests
---------
Co-authored-by: Alexandre Alves <aalves@Alexandres-MacBook-Pro.local>
Co-authored-by: Alexandre Alves <aalves@Alexandres-MBP.lan>
Co-authored-by: Richard Cox <richard.cox@suse.com>
- Filtering is now no longer done via `resources.project.cattle.io.`
- No need to update the URL anywhere or massage resources fetched via endpoint
- Also no need to make the planned change to remove `resources.project.cattle.io.` from side nav
> This uses a new endpoint that has yet to merge. See https://github.com/rancher/rancher/issues/40140
WIP
- Contains console.warns (via custom logger, can be disabled)
- Waiting for final BE endpoint changes to merge
- Contains TODOs to resolve on final enpoint changes delivered
Pertinent Points
- Incompatible with incremental loading / manual refresh
- Harder to get counts (need to sum up from different namespaces)
- Requires use of new steve pagination
- Enforced NS threshold has been removed
- The threshold only applies to the primary resource. This has issues when loading a low count primary (daemon sets) which depends on a very high count secondary (pods)
- Fixing this would involve knowing all secondary resources a list uses, which isn't currently possible (each resource is requested individually, need to know them all first)
- There is no way to subscribe to multiple namespaces (one or all)
- We mock this in subscribe by only persisting changes to resources from within target namespaces
- Everything should work with Advanced Worker enabled
- caused by circular dependency of
- index.vue --> resource-fetch mixin --> resource-fetch-namespaced mixin --> index.vue
- not sure why the works on most pages... but bugs out for this one... but the fix makes sense
- When there are over a configurable amount of resources to display in a list force the user to select a single namespace and use it to fetch resources related to the list
- Disabled by default, this can be enabled via the usual Global Settings --> Performance setting as usual
Functional Comments
- Gates for forcing the filter (count, resource type is namespaced, etc) apply only to the resources shown in the list.
- For example PV's aren't namespaced, so no enforced filtering. However they fetch PVC's which are namespaced
- For example we could have 10 resources to show in the list, but the resource types list component fetches 10000 other resources. The secondary resources are not taken in to account
- If we're under the threshold and have fetched all resources, if in that session we go over the threshold we won't fetch NS specific resources (because we have them all already)
- If we're over the threshold and have fetched namespaced resources, if in that session we go under the threshold we will fetch all resources
- If we're over the threshold and have fetched namespaced resources, going to a page that needs them all will result in us fetching them all (for instance from `events` to `cluster dashboard`)
- Deselecting a namespace and selecting it again should not kick off another http request
General Commit Comments
- The threshold to enforce the filter is set at 1500 as per manual fresh and incremental loading
- Optimised some code in ResourceList, resource-fetch and $loadingResources
* add query param to url for simple table filtering on SortableTable
* enable query param for simple filtering for only default and custom single tabled list pages
* enable query param for simple filtering for workloads list + other minor updates
Co-authored-by: Alexandre Alves <aalves@Alexandres-MacBook-Pro.local>
* Prevent ESLint to format generated paths
* Add HTML ESLint Rules
* Format all the Vue HTML templates except Harvester
* Exclude Harvester package from linting HTML, keeping old formatting rules
* add all changes regarding advanced filtering
* minor fix to filter logic on which the scenario for only value prop was not covered + fix styling issue on adv filter modal box
* remove unwanted prop on catalog.app table + clear white spaces
* clear white spaces
* fix broken dark mode on advanced filtering#
* fix merge conflicts
* fix issue where we couldnt load prov cluster details page + add solution so that manual refresh and adv filtering work together in terms of UX
* fix styling for dark mode
* address PR comments
* address PR comments with multiple changes + move adv filtering logic to a mixin + add missing translations
* fix live and delayed updates on adv filtering
* fix issues where label values where not appearing on the rows + move click event binding to toggle flag watcher + move update cols to box toggle flag watcher
* remove translation that was moved to dedicated file
* address PR comments + fix filtering of labels + keep cols previous visibility on each evaluation of the table options
Co-authored-by: Alexandre Alves <aalves@Alexandres-MBP.lan>
Co-authored-by: Alexandre Alves <aalves@Alexandres-MacBook-Pro.local>
* removing check for restriction of types on incremental+manual + update masthead to incorportate directly the ResourceLoadingIndicator so that it can used by list views with custom mastheads + move catalog.clusterrepo typedescription to its rightful component and delete custom list view + updating custom list views to use resource-fetch mixin
* continue updating custom list views to use resource-fetch mixin
* finish updating custom list views to use resource-fetch mixin + prevent error on loadAdd mutation where type is not set in store yet + code cleanup
* address PR comments
* update all custom list views to use loading prop on ResourceTable rather than Loading component + use getter to get incremental updates propagated from the store into the table itself + other minor fixes
* revert changes to mutation loadAdd as check is not needed
* revert all changes to shell/list/harvesterhci.io.management.cluster.vue
* revert deletion of clusterrepo due to CI/CD validation of plugin
* add manual + refresh to namespaces list + fix issue where switching between workspaces results in the manual refresh button continually spinning
* move rows and loading flag to resource-fetch and do necessary changes to custom lists to minimize code changes for the future
* Minor fixes
- Match existing loading check in projectnamespace list (had a check for currentCluster, probably not needed but added just in case)
- Fixed masthead loading indicator for management users and features
Co-authored-by: Alexandre Alves <aalves@Alexandres-MacBook-Pro.local>
Co-authored-by: Alexandre Alves <aalves@Alexandres-MBP.lan>
Co-authored-by: Richard Cox <richard.cox@suse.com>
Script Changes
- fixed `require` errors
- ensure dashboard ignores output of scripts (useful for local dev)
Dashboard Changes
- only show the resource loading indicator if incremental loading is enabled
- Add manual refresh experimental feature to specific list views
- Add incremental loading experimental feature to specific list views
Co-authored-by: Alexandre Alves <aalves@Alexandres-MBP.lan>
Co-authored-by: Alexandre Alves <aalves@Alexandres-MacBook-Pro.local>
Co-authored-by: Richard Cox <richard.cox@suse.com>
* Doc
* v0.7.0
* v0.7.1
* v0.7.2
* Add creators
* v0.1.14
* v0.1.17
* Add Yarn link
* Tidy ups and typos
* Allow models to be loaded from plugins
* v0.1.15
* v0.1.18
* v0.6.6
* Improve readme, fix cyperss log msg
* v0.1.17
* v0.1.19
* v0.6.7
* v0.6.8
* Fix logo ref when in shell
* Fix lint issues
* Fix error in example
* Fix script to work on linux
* Add ability to revert moves without losing changes
* Fix bug with custom models in a plugin
* Fix build of UI packages
* Add dist-pkg to .eslintignore
* Pull out util from extend-router to prevent router being pulled in UI packages
* Update PLUGINS.md
* Remove duplicate dependency
* Reduce size of built UI packages
* Share codemirror. Other tidy ups
* Further improvements
* Tidy ups to support i18n in plugins
* Clen up add comments
* More clean-ups and comments added
* Rename from extension to plugin
* Missed file in rename
* v0.6.9
* TIdy ups following rename
* v0.1.20
* v0.1.21
* More refactor and tidy up
* v0.1.22
* v0.1.18
* v0.1.19
* v0.1.23
* v0.6.10
* Version Packages. Improve naming. Unload.
* v0.6.11
* v0.1.20
* v0.1.21
* v0.1.24
* v0.6.12
* v0.1.25
* v0.1.22
* v0.6.13
* Fix issues when plugin is builtin
* Add missing files
* Fix lint issues and watcher ignores
* Fixes following review
* v0.1.28
* v0.1.31
* v0.6.20
* Fix coer.js version
* Fix bug where plugins included via npm don't work
* Changes post merge
* Move plugins doc to dev guide, add note at top of README
* Update cypress version
* Add note about the reset --hard in rejig -d
* Fixes post merge
* Rename @ranch to @rancher and ad plugins
* Improve routes support, add package assets support
* Add uninstall hooks and pass interal opts
* Fix rejig script
* Minor fixes
* Routing tweaks
- attempted to improve `addRoutes` typing, failed a lot
- improved typings in plugins.ts
- added "@pkg/*" entry and vue-shim (for importing components) to the pkg creator
- fixed some linting
- safely fail when Verdaccio isn't running
- fixed some typos
* Remove frontmatter-markdown-loader reference from nuxt-config
* Revert "Remove frontmatter-markdown-loader reference from nuxt-config"
This reverts commit 29ef6f2f7b.
* Exclude creators from dashboard build
* Revert "Exclude creators from dashboard build"
This reverts commit 8ede93ee7c.
* Ingore creators via tsconfig
- We're still susceptible with vue shims in multiple packages
- Need to determine why packages can't use shim from route
- Probably need to move `./vue-shim.d.ts` in to `./shell`. Needs testing with a pkg that imports a component
* After rejig
Co-authored-by: Neil MacDougall <nmacdougall@suse.com>
Co-authored-by: Neil MacDougall <nwmac@users.noreply.github.com>