[OpenNMS/opennms] 6c83a2: NMS-20118: Event Notifications tab

joseanesONMS via opennms-cvs <[email protected]>
Newsgroups gmane.network.opennms.cvs
Message-ID <OpenNMS/opennms/push/refs/heads/jira/NMS-20118-event-notifications/[email protected]>
  Branch: refs/heads/jira/NMS-20118-event-notifications
  Home:   https://github.com/OpenNMS/opennms
  Commit: 6c83a2014344a81d8a9b50bdd1bf15262d293396
      https://github.com/OpenNMS/opennms/commit/6c83a2014344a81d8a9b50bdd1bf15262d293396
  Author: Jose Anes <[email protected]>
  Date:   2026-08-05 (Wed, 05 Aug 2026)

  Changed paths:
    M opennms-webapp-rest/src/main/java/org/opennms/web/rest/v1/NotificationConfigRestService.java
    M opennms-webapp-rest/src/test/java/org/opennms/web/rest/v1/NotificationConfigRestServiceIT.java
    M ui/src/components/AdminNotifications/ConfigureNotificationsDialog.vue
    A ui/src/components/AdminNotifications/EventNotificationEditorDialog.vue
    A ui/src/components/AdminNotifications/EventNotificationsTable.vue
    M ui/src/services/index.ts
    M ui/src/services/notificationConfigService.ts
    M ui/src/stores/notificationConfigStore.ts
    M ui/src/types/notificationConfig.ts
    M ui/tests/stores/notificationConfigStore.test.ts

  Log Message:
  -----------
  NMS-20118: Event Notifications tab

Replaces the event-notifications placeholder with the tab content: the
notification list with per-notification on/off toggles, an add/edit
dialog with a searchable UEI picker fed by the event configuration, and
delete with confirmation. The /rest/notification-config
event-notifications endpoints wrap the notifications.xml factory the
legacy wizard uses.

Deleting the last event notification is rejected (notifications.xsd
requires at least one, and the schema-validated save would diverge
memory from the file until a restart), and validation covers every field
whose asserting setter could kill the factory's in-place update chain,
including status and parameter names/values.


  Commit: 6d7f547f820cfbab4be4422b4fdd7eae063afeea
      https://github.com/OpenNMS/opennms/commit/6d7f547f820cfbab4be4422b4fdd7eae063afeea
  Author: Jose Anes <[email protected]>
  Date:   2026-08-05 (Wed, 05 Aug 2026)

  Changed paths:
    M ui/src/components/AdminNotifications/EventNotificationsTable.vue
    M ui/src/services/notificationConfigService.ts

  Log Message:
  -----------
  NMS-20118: surface the delete guard and disable deleting the last notification

Deleting an event notification now surfaces the server's reason instead of a
generic failure, so the "last event notification cannot be deleted" guard reads
as an explanation rather than an unexplained error. The Delete button is disabled
when only one notification remains, with a title pointing the user at turning it
off instead.


  Commit: 31ec87d30f68d4eef0bc2fedf6d150ae563c5b39
      https://github.com/OpenNMS/opennms/commit/31ec87d30f68d4eef0bc2fedf6d150ae563c5b39
  Author: Jose Anes <[email protected]>
  Date:   2026-08-05 (Wed, 05 Aug 2026)

  Changed paths:
    M ui/tests/stores/notificationConfigStore.test.ts

  Log Message:
  -----------
  NMS-20118: event-notifications loader reports real success

The event-notifications tab loader now returns every([...]).every(Boolean)
instead of a literal true: getEventNotifications returns null on failure and the
store reports a boolean, so a failed fetch retries instead of latching the default
tab on "No event notifications configured." Rebased onto the updated base. Adds a
store test pinning the failure contract.


  Commit: d7aeea042f33639efdb5ad9605edd421311dabca
      https://github.com/OpenNMS/opennms/commit/d7aeea042f33639efdb5ad9605edd421311dabca
  Author: Jose Anes <[email protected]>
  Date:   2026-08-05 (Wed, 05 Aug 2026)

  Changed paths:
    M ui/src/components/AdminNotifications/EventNotificationEditorDialog.vue
    M ui/src/components/AdminNotifications/EventNotificationsTable.vue

  Log Message:
  -----------
  NMS-20118: use @opennms/onms-ui wrappers instead of direct PrimeVue

Migrate the Event Notifications tab — its table and the add/edit
dialog — onto the Onms-* seam wrappers so the page passes the
no-direct-primevue lint rule. iftalabel stays on PrimeVue (no wrapper).
The UEI autocomplete drops its custom two-line suggestion slot, which
OnmsAutoComplete does not forward; suggestions show the UEI via
optionLabel.


  Commit: 15cfb11c55905acb1c036192bf08747e29cd75be
      https://github.com/OpenNMS/opennms/commit/15cfb11c55905acb1c036192bf08747e29cd75be
  Author: Jose Anes <[email protected]>
  Date:   2026-08-05 (Wed, 05 Aug 2026)

  Changed paths:
    M ui/src/components/AdminNotifications/EventNotificationEditorDialog.vue

  Log Message:
  -----------
  NMS-20118: address review — route dialog sizing through the OnmsDialog width prop

EventNotificationEditorDialog uses the seam's width prop (min(700px, 95vw))
instead of :style, which rode $attrs into PrimeVue.


  Commit: 4842a00599974880a0376ba384fd5eb336480bf6
      https://github.com/OpenNMS/opennms/commit/4842a00599974880a0376ba384fd5eb336480bf6
  Author: Jose Anes <[email protected]>
  Date:   2026-08-05 (Wed, 05 Aug 2026)

  Changed paths:
    M ui/src/components/AdminNotifications/EventNotificationEditorDialog.vue

  Log Message:
  -----------
  NMS-20118: fix white dialog panel in dark mode

PrimeVue's dark tokens reach the editor dialog's form fields but not its
teleported panel, leaving a white surface on a dark page. Pin the panel,
header, content and footer to the dark surface off the .open-dark class.


  Commit: bbe2ce6652cbc00793d8afa470f570fe4945cea9
      https://github.com/OpenNMS/opennms/commit/bbe2ce6652cbc00793d8afa470f570fe4945cea9
  Author: Jose Anes <[email protected]>
  Date:   2026-08-05 (Wed, 05 Aug 2026)

  Changed paths:
    M ui/src/components/AdminNotifications/EventNotificationEditorDialog.vue

  Log Message:
  -----------
  NMS-20118: drop the non-functional per-dialog dark band-aid

The .event-notification-editor-dialog class does not land on the teleported
.p-dialog root, so this rule never matched. The working dark-panel fix lives in
the Notifications page container, targeting .p-dialog directly.


  Commit: 146e265f2c263e90ed0d241c17ab34719f9bc183
      https://github.com/OpenNMS/opennms/commit/146e265f2c263e90ed0d241c17ab34719f9bc183
  Author: Jose Anes <[email protected]>
  Date:   2026-08-05 (Wed, 05 Aug 2026)

  Changed paths:
    M ui/packages/onms-ui/src/components/OnmsAutoComplete.vue
    M ui/src/components/AdminNotifications/EventNotificationEditorDialog.vue

  Log Message:
  -----------
  NMS-20118: restore the UEI type-ahead's event-label option rendering

OnmsAutoComplete did not forward PrimeVue AutoComplete's #option slot, so
the seam migration had to drop the UEI suggestions' two-line template and
they rendered as the bare UEI. Forward the #option slot in the wrapper and
restore the slot so each suggestion shows the UEI plus its event label.


  Commit: 96b00c3c18c96ec9d38af3e68c4fc67a1c45c73a
      https://github.com/OpenNMS/opennms/commit/96b00c3c18c96ec9d38af3e68c4fc67a1c45c73a
  Author: Jose Anes <[email protected]>
  Date:   2026-08-05 (Wed, 05 Aug 2026)

  Changed paths:
    M ui/src/components/AdminNotifications/EventNotificationEditorDialog.vue

  Log Message:
  -----------
  NMS-20118: expand Add Event Notification modal

Surface the notification fields the single modal was silently preserving:
an Advanced options disclosure with the notification parameters (name/value
repeater), varbind, event-severity and notice-queue. Lead with a full-width
Event UEI selector that shows each event's friendly label above its UEI, and
add '?' help for the Rule and the (confusing) Numeric Message field. Seed the
legacy subject/numeric defaults.


  Commit: b75e74674b3d736cb254f91573bb4fb5a41cecdb
      https://github.com/OpenNMS/opennms/commit/b75e74674b3d736cb254f91573bb4fb5a41cecdb
  Author: Jose Anes <[email protected]>
  Date:   2026-08-05 (Wed, 05 Aug 2026)

  Changed paths:
    M opennms-webapp-rest/src/main/java/org/opennms/web/rest/v1/NotificationConfigRestService.java
    M ui/src/components/AdminNotifications/EventNotificationEditorDialog.vue
    M ui/src/services/index.ts
    M ui/src/services/notificationConfigService.ts
    M ui/src/types/notificationConfig.ts

  Log Message:
  -----------
  NMS-20118: rule builder and validation for event notifications

Add a Builder/Raw rule editor to the Add Event Notification modal: the
Builder assembles the filter from an IP-address filter plus Services (OR)
and excluded-Services (NOT) pickers the way the legacy wizard did, round-
trips an existing rule back into the controls where it can, and a Validate
button previews the matching interfaces/services. Backed by two new
webapp-rest endpoints — a service list and a FilterDao-based rule preview.
Also refine the numeric-message help wording.


  Commit: d85d238c1737e5f3384dd396add1a974703bb40e
      https://github.com/OpenNMS/opennms/commit/d85d238c1737e5f3384dd396add1a974703bb40e
  Author: Jose Anes <[email protected]>
  Date:   2026-08-05 (Wed, 05 Aug 2026)

  Changed paths:
    M ui/src/components/AdminNotifications/EventNotificationEditorDialog.vue

  Log Message:
  -----------
  NMS-20118: single rule field, wider modal, pager wording

Merge the standalone Rule field and the builder into one Rule block so the
two can't diverge — Builder drives the rule via the pickers, Raw edits it
directly, and switching to Builder falls back to Raw when the rule is too
advanced to represent. Widen the modal and label the numeric message as a
pager field.


  Commit: 3106bf2e812c47cb9c89f3bcb0742c0ca1f5ade8
      https://github.com/OpenNMS/opennms/commit/3106bf2e812c47cb9c89f3bcb0742c0ca1f5ade8
  Author: Jose Anes <[email protected]>
  Date:   2026-08-05 (Wed, 05 Aug 2026)

  Changed paths:
    M ui/src/components/AdminNotifications/EventNotificationEditorDialog.vue

  Log Message:
  -----------
  NMS-20118: let the rule builder round-trip hyphenated service names

The Raw->Builder parse used is\w+, which stops at the hyphen in service
names like OpenNMS-DB, so those rules were wrongly flagged too advanced and
stuck in Raw. Match is[\w.-]+ so they round-trip into the pickers.


  Commit: 46a0c0562e521495344f3a664b5c224cbe1e28d6
      https://github.com/OpenNMS/opennms/commit/46a0c0562e521495344f3a664b5c224cbe1e28d6
  Author: Jose Anes <[email protected]>
  Date:   2026-08-05 (Wed, 05 Aug 2026)

  Changed paths:
    M ui/src/components/AdminNotifications/EventNotificationEditorDialog.vue

  Log Message:
  -----------
  NMS-20118: fix dark-mode contrast of the generated-rule preview

The preview used --p-surface-100 as a background, which is dark in dark mode
and left the rule text nearly unreadable. Drop the fill for a border and
theme-aware text tokens so it reads in both themes.


  Commit: 4b337cba9744e24ef008f279b72fbd3ce5a17b59
      https://github.com/OpenNMS/opennms/commit/4b337cba9744e24ef008f279b72fbd3ce5a17b59
  Author: Jose Anes <[email protected]>
  Date:   2026-08-05 (Wed, 05 Aug 2026)

  Changed paths:
    M opennms-webapp-rest/src/main/java/org/opennms/web/rest/v1/NotificationConfigRestService.java
    M ui/src/components/AdminNotifications/EventNotificationEditorDialog.vue

  Log Message:
  -----------
  NMS-20118: harden Add Event Notification validation

Add inline field validation with messages (name required + 255-char cap +
duplicate-name check, UEI required + ~regex validity, destination path, text
message), length caps on the text inputs, rule-syntax validation on save
(client via the validate endpoint, server via FilterDao), an in-dialog error
banner instead of a modal-hidden toast, and server-side varbind validation.


Compare: https://github.com/OpenNMS/opennms/compare/6d39a93cdb7c...4b337cba9744

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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.