•  
     
    story #42989 Expand level N-1 artifact link in Cross Tracker Search
Summary
Empty
Expand level N-1 artifact link in Cross Tracker Search
Empty

Display caret when an artifact has links (reverse or forward) in @pretty_title column.

On expand, get the linked artifacts with a modified version of the source query. A spike is needed to evaluate two approaches:

  • First, based on linked_artifacts route to get ids and the, re-issue a TQL query with @id IN (...)
  • Second, based on source TQL rewrite. For this solution, we should investigate how we can have a query without FROM of with a specific one like FROM LINKED_ARTIFACTS() or equivalent.

Artifact links must be first sorted by direction (forward and then reverse) then, the ORDER BY should be done with the same criteria as for the source query.

Fetching the linked artifacts can be done in parallel (or forward and then reverse) in order to produce results visible to end users sooner.

Render the arrows (probably something to extract from roadmap).

Columns and rows should be re-usable.

Mockup needs:

  • Loading stage while performing the query
  • Error state if query has a problem, timeout, etc.

To be clarified:

  • do we need to have a "load more" or a load on scroll if dataset is huge ?

At this stage it's not expected to have "placeholder columns" (columns that will have results only for artifact links)

Empty
Empty
Status
Cross tracker search
On going
Development
  • [ ] Does it involves User Interface? 
  • [ ] Are there any mockups?
  • [ ] Are permissions checked?
  • [ ] Does it need Javascript development?
  • [ ] Does it need a forge upgrade bucket?
  • [ ] Does it need to execute things in system events?
  • [ ] Does it impact project creation (templates)?
  • [ ] Is it exploratory?

Render the arrows (probably something to extract from roadmap).

Mockup needs:

  • Loading stage while performing the query
  • Error state if query has a problem, timeout, etc.

To be clarified:

  • do we need to have a "load more" or a load on scroll if dataset is huge ?
Details
#42989
Clarck Robinson (robinsoc)
2025-05-14 15:18
2025-05-14 15:18
43936

References
Referencing story #42989

Git commit

tuleap/tuleap/stable

feat: introduce cross_tracker_widget_display_artifact_link feature flag ca3079d66d
refactor: Remove unused calls in rest-querier 196d31805d
feat: display the caret if the artifact has linked artifacts 84fd2d030b
feat: REST routes to retrieve reverse & forward links 4cef646cab
feat: be able to expand a row 6add105ea0
refactor: Extract svg-arrow-path 5f84c6c148
feat: displays artifact links skeletons 1a28dee88a
refactor: Move arrows documentation to tlp-doc 📝 9cdcd52b5b
feat: display forward links when a row is expanded afcaa097ca
feat: display reverse links when a row is expanded 809e54039c
feat: indent @pretty_title according to depth in XTS 56a83c7356
feat: REST routes to retrieve reverse & forward links e37dea8af2
refactor: add ArtifactRows component to simplify the recursivity 272c69a2fe
fix: show previously fetched results on re-expand 759ec02559
refacto: compute even/odd rows and last cells of XTS with CSS a8af10d6ca
feat: display error message when some links could not be retrieved 0995e4ced9
Expand carret should load links in XTS widget for unsaved query 85f98a704f