[7839] Data Farm > Applications 4 - remaining vue + loaders - #8052
[7839] Data Farm > Applications 4 - remaining vue + loaders#8052n-lark wants to merge 18 commits into
Conversation
…pplication mixin, add a detail-page skeleton loader
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #8052 +/- ##
=======================================
Coverage 76.18% 76.18%
=======================================
Files 440 440
Lines 23607 23607
Branches 6288 6288
=======================================
Hits 17984 17984
Misses 5623 5623
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
|
Nice migration, the One thing on Would it be worth a small render test for that page with an unloaded store, just so this path is covered? The store additions themselves have good coverage. |
|
Two small non-blocking things for possible follow-up: Stale app data in the list cache. Delete-while-viewing, as a seam with #8030. If a |
|
Hey @andypalmi ty for the review - I guarded the breadcrumb with |
andypalmi
left a comment
There was a problem hiding this comment.
Both fixes look great. The v-if="team && application" guard resolves the breadcrumb null-deref, and the delete watcher is nicely guarded — previous && !application keeps it off the initial load, and !this.loading.deleting cleanly separates a remote delete from a self-initiated one so there's no double alert or double redirect. The redirect-to-Applications-with-notice is a good seam with #8030's realtime path.
Approving. Two optional follow-ups, neither blocking merge:
setActiveApplication's{...existing, ...application}merge can still let a partialinstance.application/device.applicationoverwrite a list card's present keys until the next full refetch — worth a look at some point, but fine to defer.- The store additions have good coverage; if it's ever convenient, a small render test for
createInstance.vuewith an unloaded store (and one for the delete watcher) would lock in these two paths.
|
I would have preferred to hold off on the skeleton loaders a bit, because there are some prerequisites that depend on them.
Fixing all of this would extend the scope of this task, which is why I would have preferred to go with the page loader approach first and tackle these as a follow-up feature focused on skeleton loaders. That would also have given us a chance to identify these niche cases up front and land on a cohesive approach when rolling skeleton loaders out, not just for applications, but across the other entities and pages in the app as well. |
| this.clearActiveApplication() | ||
| }, | ||
| methods: { | ||
| async loadApplicationData () { |
There was a problem hiding this comment.
shouldn't these be in the application data-farm?
There was a problem hiding this comment.
or are they moved in a follow-up? I didn't read the follow-ups yet
There was a problem hiding this comment.
The app load already uses the store loadActiveApplication. The instances will get moved under the hosted instances work #8076
|
I stand corrected, I just noticed that you removed the skeleton loaders in the follow-up |
|
Hey @cstns! For this comment the Page Loader PR is merged in, dropping skeletons entirely, so the skeleton-specific points no longer apply. The rest is pre-existing behavior in files this PR doesn't touch, handled in the per-entity loader follow-ups:
These land as each child entity gets its own store + loader. This PR just swaps the old per-page ff-loading for the shared page loader. If there is anything you specifically want me to address here please lmk! |
| data () { | ||
| return { | ||
| applicationInstances: new Map(), | ||
| loadingInstanceStatuses: false |
Description
See test plan: #7839 (comment)
Related Issue(s)
Resolves #7839
data-farmstore instead of local fetch.mixins/Application.js, replaced by auseActiveApplicationcomposable.ApplicationDetailSkeleton.The loading work for the ux store will be done in a follow up - Applications 5 - UXStore Loader Registry #8053
Checklist
flowforge.yml?FlowFuse/helmto update ConfigMap TemplateFlowFuse/CloudProjectto update values for Staging/ProductionLabels
area:migrationlabel