From ad7498f34e53cc5c80c885aca1624d35af3900bd Mon Sep 17 00:00:00 2001 From: Giancarlo Errigo Mattos Date: Wed, 27 May 2026 15:28:36 +0200 Subject: [PATCH] MT#64801 Make custom announcements terminal destinations * Create internal identifier for custom announcements to act as terminal destinations for call forwarding rules Change-Id: Id6f64b08c686a860bf7acf05d8943262dad31d1b --- src/components/call-forwarding/CscCfGroupTitle.vue | 12 +++--------- src/helpers/call-forwarding-destinations.js | 2 +- 2 files changed, 4 insertions(+), 10 deletions(-) diff --git a/src/components/call-forwarding/CscCfGroupTitle.vue b/src/components/call-forwarding/CscCfGroupTitle.vue index d9060195..78a29a53 100644 --- a/src/components/call-forwarding/CscCfGroupTitle.vue +++ b/src/components/call-forwarding/CscCfGroupTitle.vue @@ -401,9 +401,9 @@ import CscCfConditionPopupDateRange from 'components/call-forwarding/CscCfCondit import CscCfConditionPopupOfficeHours from 'components/call-forwarding/CscCfConditionPopupOfficeHours' import CscCfConditionPopupWeekdays from 'components/call-forwarding/CscCfConditionPopupWeekdays' import CscCfPopupMenuItemSeatSelect from 'components/call-forwarding/CscCfPopupMenuItemSeatSelect' -import _ from 'lodash' import { PROFILE_ATTRIBUTE_MAP } from 'src/constants' import numberFilter from 'src/filters/number' +import { isTerminalDestination } from 'src/helpers/call-forwarding-destinations' import destination from 'src/mixins/destination' import { mapActions, mapGetters, mapState } from 'vuex' @@ -482,13 +482,7 @@ export default { return `csc-cf-group-${this.destinationSet.id}` }, hasTermination () { - const lastDestination = _.last(this.destinationSet.destinations).destination - const lastDestinationId = _.last(this.destinationSet.destinations).announcement_id - return _.endsWith(lastDestination, 'voicebox.local') || - _.endsWith(lastDestination, 'fax2mail.local') || - _.endsWith(lastDestination, 'managersecretary.local') || - _.endsWith(lastDestination, 'conference.local') || - (_.endsWith(lastDestination, 'app.local') && !lastDestinationId) + return isTerminalDestination(this.destinationSet.destinations?.at(-1)) }, showVoicebox () { return this.hasSubscriberProfileAttribute(PROFILE_ATTRIBUTE_MAP.voiceMail) @@ -507,7 +501,7 @@ export default { async addDestinationEvent (originalPayload) { this.$wait.start(this.waitIdentifier) let payload = { ...originalPayload, defaultAnnouncementId: null } - if (_.isArray(this.announcements) && this.announcements.length > 0) { + if (Array.isArray(this.announcements) && this.announcements.length > 0) { payload.defaultAnnouncementId = this.announcements[0].value } diff --git a/src/helpers/call-forwarding-destinations.js b/src/helpers/call-forwarding-destinations.js index 7010bf1a..92fe4649 100644 --- a/src/helpers/call-forwarding-destinations.js +++ b/src/helpers/call-forwarding-destinations.js @@ -10,7 +10,7 @@ function isMovableDestination (destination) { return destinationType === DestinationType.Number } -function isTerminalDestination (destination) { +export function isTerminalDestination (destination) { return !isMovableDestination(destination) }