Skip to content

[7849] Carried-over search term from Home status tiles breaks pagination on Hosted Instances list #7925

Open
n-lark wants to merge 10 commits into
mainfrom
7849-hosted-search
Open

[7849] Carried-over search term from Home status tiles breaks pagination on Hosted Instances list #7925
n-lark wants to merge 10 commits into
mainfrom
7849-hosted-search

Conversation

@n-lark

@n-lark n-lark commented Jul 23, 2026

Copy link
Copy Markdown
Contributor

Description

See test plan here: #7849 (comment)

Image

What changed & why

  • Search box is name-only; status moved to a "Status" dropdown. The search previously did double duty (name + a hidden status query), which returned no results and broke pagination. Now search filters by name, and the Status dropdown (Running / Error / Not Running) filters by state — both run server-side and combine.
  • Loading states consolidated into a skeleton loader. The old full-page spinner + empty-state checks could flash "No Data Found" mid-load (worst on landing with a filter). Now there's a single loading signal and the table shows a skeleton while loading, so empty states only appear once data has actually loaded.
  • Fetch requests are sequence-guarded. Typing fires several requests; responses can arrive out of order, and a stale (often empty) one would overwrite the correct results. Each fetch now carries a sequence number and only the latest response is applied.
  • Global-search deep-links still filter. Server-side search disabled the table's old client-side handling of a carried searchQuery, so the page now reads that param and drives the server query — clicking an instance in global search lands on the list filtered by that name.

Related Issue(s)

Resolves #7849

Checklist

  • I have read the contribution guidelines
  • Suitable unit/system level tests have been added and they pass
  • Documentation has been updated
    • Upgrade instructions
    • Configuration details
    • Concepts
  • Changes flowforge.yml?
    • Issue/PR raised on FlowFuse/helm to update ConfigMap Template
    • Issue/PR raised on FlowFuse/CloudProject to update values for Staging/Production
  • Link to Changelog Entry PR, or note why one is not needed.

Labels

  • Includes a DB migration? -> add the area:migration label

@n-lark n-lark self-assigned this Jul 23, 2026
@codecov

codecov Bot commented Jul 23, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 75.64%. Comparing base (e220d2e) to head (f32e1b1).
⚠️ Report is 3 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #7925      +/-   ##
==========================================
- Coverage   75.72%   75.64%   -0.09%     
==========================================
  Files         434      434              
  Lines       23198    23254      +56     
  Branches     6161     6182      +21     
==========================================
+ Hits        17567    17590      +23     
- Misses       5631     5664      +33     
Flag Coverage Δ
backend 75.64% <100.00%> (-0.09%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@n-lark
n-lark requested review from Yndira-E, allthedoll and andypalmi and removed request for Yndira-E, allthedoll and andypalmi July 23, 2026 19:00
Comment thread frontend/src/pages/team/Instances.vue Outdated
@n-lark
n-lark requested a review from cstns July 24, 2026 00:02
@n-lark
n-lark marked this pull request as ready for review July 24, 2026 00:02
@n-lark
n-lark requested review from andypalmi and knolleary July 24, 2026 00:02
Comment thread frontend/src/pages/team/Instances.vue Outdated
return {
loading: false,
loading: true,
fetchSeq: 0,

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this looks like we're patching up some strong code smells

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

an abortController would be the better approach here

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

by using the fetchSeq leaves the requests to get fulfilled even if they should have been canceled

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

swapped to abortController

@update:page-size="onPageSizeChange"
>
<template #actions>
<ff-popover

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

there's an outline on the button when first getting clicked which we should remove

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is the keyboard-focus outline, it's on every ff-btn app-wide, not unique to this PR. It has to stay for keyboard focus (WCAG 2.4.7) but we can probably hide it just on mouse-click. It would be a shared button change so if we want that we should create a follow up since it has a wide scope.

v-for="filter in statusFilters" :key="filter.key"
:title="filter.label"
:data-action="'filter-' + filter.key"
@click="toggleStatusGroup(filter.key)"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we should keep the url params in sync with the stats group when toggled. Ex: landing on the instances page with a filter from the dashboard, changing the filter works but upon page refresh were taken back to the original filter we landed with

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

Comment thread frontend/src/pages/team/Instances.vue
@n-lark
n-lark requested a review from cstns July 24, 2026 14:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Carried-over search term from Home status tiles breaks pagination on Hosted Instances list

2 participants