NMS-20169: Migrate Graph Collections (KSC Reports) to Vue UI - #8750
Open
joseanesONMS wants to merge 2 commits into
Open
NMS-20169: Migrate Graph Collections (KSC Reports) to Vue UI#8750joseanesONMS wants to merge 2 commits into
joseanesONMS wants to merge 2 commits into
Conversation
Replace the legacy AngularJS/JSP KSC pages with a PrimeVue single-page
flow under /ui, reusing the resource-graph chart components verbatim so a
report's graphs render with the same visualizations and no new chart code.
Each KSC graph carries {resourceId, graphtype, timespan}, which feed the
existing Graph.vue directly; the only new rendering logic is a TypeScript
port of KSC_PerformanceReportFactory.getBeginEndTime that resolves the 25
symbolic timespans to concrete start/end times.
Add the CRUD surface the editor needs to KscRestService: DELETE a report,
replace a whole report, and let POST assign the next id server-side (and
accept JSON). The list endpoint returns full reports (not terse) so the
list shows a graph count and edits load every graph. Report editing is
reserved for administrators in the Vue UI (matching the legacy page); the
REST endpoints keep the platform ROLE_REST contract like the existing
create/add-graph endpoints. The Dashboards "Graph Collections" menu entry
now points at the Vue route; the legacy page stays reachable as "Graph
Collections (Legacy)".
- New pages: list (view/edit/duplicate/delete/create/reload) and a report
view that lays graphs out honoring graphs_per_line.
- Report and per-graph editor dialogs; the graph editor picks a resource
(node -> child) then a prefab graph, with inline validation. Edit and
Duplicate load the full report by id so Save never drops graphs.
- kscStore/kscService over rest/ksc; a failed list load surfaces an error
instead of reading as an empty configuration.
- Tests: KscRestServiceIT covers create/update/delete/list; Vitest covers
the timespan port, resourceId decoding, and the store's CRUD paths.
joseanesONMS
force-pushed
the
jira/NMS-20169-graph-collections
branch
from
August 5, 2026 18:34
c415e63 to
54718a9
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Converts the legacy AngularJS/JSP "Graph Collections" (KSC Reports) page to a PrimeVue SPA under
/uiwith full report and per-graph CRUD. Reports render through the existing resource-graph chart components unchanged, so there are no new chart widgets.{resourceId, graphtype, timespan}feed the existingGraph.vuedirectly; the only new rendering code is a TypeScript port ofKSC_PerformanceReportFactory.getBeginEndTimecovering all 25 timespans (unit-tested).KscRestServicegainsDELETE /ksc/{id}, whole-report replace viaPOST /ksc/{id}, and a JSON-acceptingPOST /kscthat assigns the next id server-side.GET /kscnow returns full reports rather than terse ones, so the list shows a graph count and edits load every graph.ROLE_RESTcontract.Testing:
KscRestServiceITcovers create/update/delete/list against a temporary database; Vitest covers the timespan port, resourceId decoding, and the store's CRUD paths.