[OpenNMS/opennms] 9cc1ee: NMS-20119: Destination Paths tab

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

  Changed paths:
    M opennms-config/src/main/java/org/opennms/netmgt/config/GroupManager.java
    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/DestinationPathEditorDialog.vue
    A ui/src/components/AdminNotifications/DestinationPathsTable.vue
    A ui/src/components/AdminNotifications/TargetRowEditor.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-20119: Destination Paths tab

Adds the Destination Paths tab: path list with a test-trigger action, and
an editor covering initial delay, targets (users, groups, on-call roles,
email addresses) with per-target commands, intervals and auto-notify, and
escalations — the Browser notification method is selectable end to end.
The /rest/notification-config destination-path mutation, commands and
on-call-roles endpoints wrap the same destinationPaths.xml,
notificationCommands.xml and groups.xml factories the legacy wizard uses.
GroupManager now rebuilds its role map on every parse so removing the last
role in groups.xml is not masked by a stale cache.
Depends on the Notifications page base PR.


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

  Changed paths:
    M ui/src/components/AdminNotifications/ConfigureNotificationsDialog.vue
    M ui/src/components/AdminNotifications/DestinationPathEditorDialog.vue
    M ui/src/services/notificationConfigService.ts
    M ui/src/stores/notificationConfigStore.ts
    M ui/tests/stores/notificationConfigStore.test.ts

  Log Message:
  -----------
  NMS-20119: keep legacy commands editable and stop the tab latching on error

A destination path that uses a command outside the enabled set (e.g. textPage)
now keeps that command selectable while editing, so removing it is no longer a
one-way trip; brand-new paths still cannot add disabled commands. The
destination-paths tab loader now reports real success: the path, command and
user/group lookups return null on failure and the store surfaces a boolean, so a
failed fetch retries instead of latching the tab with empty pickers for the life
of the page.


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

  Changed paths:
    M ui/src/components/AdminNotifications/DestinationPathEditorDialog.vue
    M ui/src/components/AdminNotifications/DestinationPathsTable.vue
    M ui/src/components/AdminNotifications/TargetRowEditor.vue

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

Migrate the Destination Paths tab — the paths table, the path editor
dialog, and the target-row editor — onto the Onms-* seam wrappers so
the page passes the no-direct-primevue lint rule. iftalabel stays on
PrimeVue (no wrapper). Behaviour and markup are otherwise unchanged.


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

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

  Log Message:
  -----------
  NMS-20119: stop mutating the row prop in TargetRowEditor

The target row editor edited its `row` prop in place, which the
parent relies on (it reads the fields back from its own array).
Switch `row` to defineModel so the two-way flow is explicit and the
vue/no-mutating-props errors clear, with no behaviour change.


  Commit: 243f6df0c76a5f28d2e73b33b628613d1c230c07
      https://github.com/OpenNMS/opennms/commit/243f6df0c76a5f28d2e73b33b628613d1c230c07
  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

  Log Message:
  -----------
  NMS-20119: reload destination paths from disk when a save fails

addPath/replacePath/removePath mutate the in-memory map and only then
saveCurrent(); on a save error (I/O failure, or the marshalled XML
failing schema validation) memory is left ahead of the file and the
factory won't re-read until a restart. Reload from disk in the failure
path of all three mutations so the in-memory notification config matches
what actually persisted.


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

  Changed paths:
    M ui/src/components/AdminNotifications/DestinationPathEditorDialog.vue
    M ui/src/components/AdminNotifications/TargetRowEditor.vue

  Log Message:
  -----------
  NMS-20119: address review — OnmsIconButton for the remove-target button, OnmsDialog width prop

TargetRowEditor's remove button uses OnmsIconButton with a Cancel icon
component instead of OnmsButton with a fallthrough icon="pi pi-times";
DestinationPathEditorDialog routes sizing through the width prop
(min(900px, 95vw)) and drops maximizable, which the dialog seam does not
expose. Removes the $attrs reliance the seam exists to prevent.


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

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

  Log Message:
  -----------
  NMS-20119: 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: 0837164f7c14ed4483f0b7f202e58e4262cfb285
      https://github.com/OpenNMS/opennms/commit/0837164f7c14ed4483f0b7f202e58e4262cfb285
  Author: Jose Anes <[email protected]>
  Date:   2026-08-05 (Wed, 05 Aug 2026)

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

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

The .destination-path-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.


Compare: https://github.com/OpenNMS/opennms/compare/bb3c30ed52c6...0837164f7c14

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.