From 66a0e64e8b68c19f9c9c325ecb621bfe6fff9e89 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 (cherry picked from commit ad7498f34e53cc5c80c885aca1624d35af3900bd) --- 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 0d0834ad..15829305 100644 --- a/src/components/call-forwarding/CscCfGroupTitle.vue +++ b/src/components/call-forwarding/CscCfGroupTitle.vue @@ -393,9 +393,9 @@ import CscCfConditionPopupDate from 'components/call-forwarding/CscCfConditionPo import CscCfConditionPopupDateRange from 'components/call-forwarding/CscCfConditionPopupDateRange' import CscCfConditionPopupOfficeHours from 'components/call-forwarding/CscCfConditionPopupOfficeHours' import CscCfConditionPopupWeekdays from 'components/call-forwarding/CscCfConditionPopupWeekdays' -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' @@ -473,13 +473,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) @@ -498,7 +492,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 805292b6..0ab9d94a 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) }