[OpenNMS/opennms] e17ecd: NMS-20182: Keep legacy <textarea>s readable in dar...
Scott Theleman via opennms-cvs <[email protected]>
| Newsgroups | gmane.network.opennms.cvs |
|---|---|
| Message-ID | <OpenNMS/opennms/push/refs/heads/jira/NMS-20182-various-ui-fixes-smoke/[email protected]> |
Branch: refs/heads/jira/NMS-20182-various-ui-fixes-smoke
Home: https://github.com/OpenNMS/opennms
Commit: e17ecdb9c56ed114e3bc237f82d70bed2fd23a47
https://github.com/OpenNMS/opennms/commit/e17ecdb9c56ed114e3bc237f82d70bed2fd23a47
Author: Scott Theleman <[email protected]>
Date: 2026-08-20 (Thu, 20 Aug 2026)
Changed paths:
M ui/src/styles/opennms-styles.scss
Log Message:
-----------
NMS-20182: Keep legacy <textarea>s readable in dark mode
The alarm detail page's Sticky Memo and Journal Memo textareas carry no
`.form-control` class, so Bootstrap gives them no explicit background or
text color. In dark mode PrimeVue emits `color-scheme: dark` on the
document, which inherits into the legacy JSP page and makes the browser
paint those textareas with dark UA field colors on a light-only page.
Add `textarea` to the existing rule that already pins native selects,
checkboxes and radios to `color-scheme: light`, so legacy textareas stay
dark-on-light in both themes. Only the menu bundle imports this
stylesheet, so the SPA's PrimeVue Textarea (which sets its colors from
theme tokens) is unaffected.
Commit: 094abb630c17c060e9c66c76693e563211965477
https://github.com/OpenNMS/opennms/commit/094abb630c17c060e9c66c76693e563211965477
Author: Scott Theleman <[email protected]>
Date: 2026-08-20 (Thu, 20 Aug 2026)
Changed paths:
M opennms-webapp/src/main/webapp/WEB-INF/jsp/alarm/list.jsp
M ui/src/components/Device/DCBTable.vue
M ui/src/styles/onms-base.scss
M ui/src/styles/opennms-styles.scss
Log Message:
-----------
NMS-20182: Stop a:visited from overriding button label colors
`a:visited` has a pseudo-class in the selector, so it outranks Bootstrap's
single-class `.btn-secondary`. Any list-page menu item that was both an
anchor with an href and an already-visited URL therefore lost its white
label: "View all alarms" and "Short/Long Listing" on the alarm list,
"View all events" and the "Next" pagination button on the event list. The
items rendered as anchors without an href ("Advanced Search", "Severity
Legend", "Help") are never :visited, which is why they stayed white.
The rule was redundant anyway — the `a` rule above it already colors
visited links, since an author declaration beats the UA's visited color —
so drop it from both places it was declared and leave a note about why it
should not come back. Also drop the two `text-white` workarounds it had
prompted on the alarm list, and DCBTable's scoped `a:visited`, so its
node links keep one color in both states.
Commit: 917343425061a4f5cbae31418cc87f5e1290b59c
https://github.com/OpenNMS/opennms/commit/917343425061a4f5cbae31418cc87f5e1290b59c
Author: Scott Theleman <[email protected]>
Date: 2026-08-20 (Thu, 20 Aug 2026)
Changed paths:
M opennms-base-assembly/src/main/filtered/etc/search-actions.xml
Log Message:
-----------
Add Vue Resource Graphs, Geographical Map and Topological Map to 'search-actions.xml' so they are searchable.
Commit: 6f32ec4ff619ecaf6346fdb8c8707f9b55186eab
https://github.com/OpenNMS/opennms/commit/6f32ec4ff619ecaf6346fdb8c8707f9b55186eab
Author: Scott Theleman <[email protected]>
Date: 2026-08-20 (Thu, 20 Aug 2026)
Changed paths:
M ui/packages/onms-ui/src/components/OnmsDialog.vue
M ui/packages/onms-ui/src/components/OnmsDrawer.vue
M ui/src/components/Nodes/ColumnSelectionDrawer.vue
M ui/src/components/Nodes/NodeAdvancedFiltersDrawer.vue
M ui/src/main/App.vue
Log Message:
-----------
NMS-20182: Lock page scroll while a drawer or modal dialog is open
The drawers are modal, but PrimeVue defaults `blockScroll` to false, so the
wheel over an open drawer scrolled the node table behind it — the page's
scrollbar sat at the viewport edge and read as the drawer's. In the Advanced
Filters drawer it was worse: that drawer's own scroller made two adjacent
scrollbars, only one of which belonged to it.
Turn `blockScroll` on in the seam wrappers — unconditionally for Drawer,
tracking `modal` for Dialog, which also covers OnmsConfirmationDialog and
OnmsMessageDialog.
That alone is not enough here. `html { overflow-x: hidden }` makes <html> the
SPA's scroll container, so the body class PrimeVue toggles never reaches the
element that actually scrolls; lock <html> off that class instead. Match open
`.p-overlay-mask` elements as well, because PrimeVue's block/unblock is not
reference-counted: closing a dialog opened inside an open drawer removed the
body class and unlocked the page while the drawer was still up. Add
`scrollbar-gutter: stable` so hiding the page scrollbar does not shift the
fixed Menubar and side rail — PrimeVue's `padding-right` compensation only
moves in-flow content.
Finally, drop the two node drawers' inner `height: 100%; overflow: auto`, so
PrimeVue's `.p-drawer-content` is each drawer's single scroll container.
Commit: f28f018a75d93ab6d38763ad0c672e2a6504f361
https://github.com/OpenNMS/opennms/commit/f28f018a75d93ab6d38763ad0c672e2a6504f361
Author: Scott Theleman <[email protected]>
Date: 2026-08-20 (Thu, 20 Aug 2026)
Changed paths:
M ui/src/components/Common/FormField.vue
M ui/src/components/SnmpConfiguration/SnmpConfigDetailsPanel.vue
M ui/tests/components/Common/FormField.test.ts
Log Message:
-----------
NMS-20182: Align the SNMP Add button with the inputs beside it
The button sat outside any FormField, so it never skipped the vertical space
its siblings' labels occupy and its top edge landed a label-height above their
inputs. An eyeballed `margin-top` had been standing in for that space and was
too small.
Give FormField a `reserveLabelSpace` prop instead: with no label of its own it
lays out an aria-hidden, `for`-less <label> so an unlabelled field still lines
its control up with the labelled fields next to it. A real <label> element is
what makes this work — the label line box comes from the global `label`
typography, which a <span> would not pick up — and it keeps the stand-in in
step with the labelled case for free.
The Add button now sits in such a FormField and needs no offset of its own;
matching the input height keeps their centers aligned as before.
Commit: 79b84ae53d244e83cf53992b85bcfc613b7adf76
https://github.com/OpenNMS/opennms/commit/79b84ae53d244e83cf53992b85bcfc613b7adf76
Author: Scott Theleman <[email protected]>
Date: 2026-08-20 (Thu, 20 Aug 2026)
Changed paths:
M core/web-assets/src/main/assets/style/opennms-theme.scss
M opennms-webapp/src/main/webapp/includes/bootstrap-footer.jsp
M opennms-webapp/src/main/webapp/includes/bootstrap.jsp
M ui/src/main/App.vue
Log Message:
-----------
NMS-20182: Sit the JSP footer at the bottom of a short page
JSP pages left #content a plain block, so the footer stopped wherever the
content ended: on a short page it floated hundreds of pixels above the bottom
of the window (157px into a 969px viewport on the node list). The Vue SPA does
not have this problem because its layout grid is `min-height: 100vh` with a 1fr
content row that takes up the slack.
Give #content the same shape with flexbox. Block layout has no way to push a
last child down — auto margins only work in flex and grid — so the container has
to become a flex column.
Page markup must not become flex items in the process: that stretches
inline-level children (the outage list's .btn-group grew to the full content
width), collapses ones sized by auto margins (the reports page's <hr> shrank to
nothing) and stops margin collapsing. So bootstrap.jsp wraps everything but the
footer in a new #content-body div, leaving #content with exactly two flex items
and all page markup inside a plain block, where it lays out exactly as before.
#content-body takes the slack; the footer follows it.
Also drop the SPA's default body margin, which sat outside .app-layout's
`min-height: 100vh`: it made every page overflow the viewport by ~16px, so even
a page that fit scrolled and its footer never reached the bottom of the window.
Both stacks now put the footer exactly at the bottom edge.
Commit: 9926195276374fc34f93557b33611e769ddba0b5
https://github.com/OpenNMS/opennms/commit/9926195276374fc34f93557b33611e769ddba0b5
Author: Scott Theleman <[email protected]>
Date: 2026-08-20 (Thu, 20 Aug 2026)
Changed paths:
M ui/src/components/Layout/Footer.vue
Log Message:
-----------
NMS-20182: Drop the SPA footer's 1rem spacer div
The spacer sat inside the layout's footer row, making it 57px tall instead of
41px. A page whose content needs the full height left over from the header —
SNMP Config, OpenAPI and Resource Graphs all want exactly 868px at a 969px
viewport — therefore overflowed by the spacer's 16px and grew a scrollbar with
nothing to scroll to. Those three now fit exactly, and the footer looks the same
without it: it keeps its own 0.5rem padding and top border.
Commit: a7e28874b15bad603ccbfdd43926c1040c74b135
https://github.com/OpenNMS/opennms/commit/a7e28874b15bad603ccbfdd43926c1040c74b135
Author: Scott Theleman <[email protected]>
Date: 2026-08-20 (Thu, 20 Aug 2026)
Changed paths:
M ui/src/components/Logs/Editor.vue
M ui/src/components/Logs/Logs.vue
M ui/src/components/SCV/SCVForm.vue
M ui/src/containers/Map.vue
Log Message:
-----------
NMS-20182: Stop Map, Logs and SCV clipping the footer
Each of these pages sizes its tall element with a hand-picked `calc(100vh - x)`,
and each x was too small for the chrome actually above and below it, so the page
overflowed the viewport and pushed the footer off the bottom of the window — most
visibly on the map, where the footer was cut in half.
Derive the subtraction instead of guessing it: the masthead comes off via
--onms-header-height, then the 41px footer band, then whatever that page stacks
around the element — a breadcrumb row, card padding, a heading, a filter box.
Each site spells the terms out so the next person can check the arithmetic
against what they see. Map was 21px over, Logs 62px, SCV 7px; all three now fit
exactly, at a 969px viewport and at 720px.
The Logs page needed both halves of its card: capping only the editor left the
log list, with its heading and filter box, as the taller column.
Compare: https://github.com/OpenNMS/opennms/compare/53173a597bce...a7e28874b15b
To unsubscribe from these emails, change your notification settings at https://github.com/OpenNMS/opennms/settings/notifications
_______________________________________________
Please read the OpenNMS Mailing List FAQ:
http://www.opennms.org/wiki/index.php?page=MailingListFaq
opennms-cvs mailing list
To *unsubscribe* or change your subscription options, see the bottom of this page:
https://lists.sourceforge.net/lists/listinfo/opennms-cvs