diff --git a/ui-ngx/src/app/modules/home/pages/notification/recipient/recipient-notification-dialog.component.html b/ui-ngx/src/app/modules/home/pages/notification/recipient/recipient-notification-dialog.component.html index 378407d862..9988adcc92 100644 --- a/ui-ngx/src/app/modules/home/pages/notification/recipient/recipient-notification-dialog.component.html +++ b/ui-ngx/src/app/modules/home/pages/notification/recipient/recipient-notification-dialog.component.html @@ -61,12 +61,11 @@
- - {{ 'tenant.tenant' | translate }} - {{ 'tenant-profile.tenant-profile' | translate }} - + + {{ 'tenant.tenant' | translate }} + {{ 'tenant-profile.tenant-profile' | translate }} +
+
+ + notification.webhook-url + + + {{ 'notification.webhook-url-required' | translate }} + + + + notification.channel-name + + + {{ 'notification.channel-name-required' | translate }} + + +
notification.description diff --git a/ui-ngx/src/app/modules/home/pages/notification/recipient/recipient-notification-dialog.component.scss b/ui-ngx/src/app/modules/home/pages/notification/recipient/recipient-notification-dialog.component.scss index 8406cae3fe..8a6dec0b47 100644 --- a/ui-ngx/src/app/modules/home/pages/notification/recipient/recipient-notification-dialog.component.scss +++ b/ui-ngx/src/app/modules/home/pages/notification/recipient/recipient-notification-dialog.component.scss @@ -20,6 +20,7 @@ form.tb-dialog-container { min-width: 600px; max-height: 100vh; + color: rgba(0, 0, 0, 0.87); } .mat-dialog-content { @@ -30,6 +31,11 @@ display: block; padding-bottom: 6px; } + + .tb-notification-tenant-group { + width: 280px; + margin-bottom: 16px; + } } :host ::ng-deep { @@ -52,58 +58,4 @@ flex-direction: column; } } - - .mat-button-toggle-group.tb-notification-tenant-group { - &.mat-button-toggle-group-appearance-standard { - border: none; - border-radius: 18px; - margin-bottom: 14px; - - .mat-button-toggle + .mat-button-toggle { - border-left: none; - } - } - - .mat-button-toggle { - background: rgba(0, 0, 0, 0.06); - height: 36px; - align-items: center; - display: flex; - - .mat-button-toggle-ripple { - top: 2px; - left: 2px; - right: 2px; - bottom: 2px; - border-radius: 18px; - } - } - - .mat-button-toggle-button { - color: #959595; - } - - .mat-button-toggle-focus-overlay { - border-radius: 18px; - margin: 2px; - } - - .mat-button-toggle-checked .mat-button-toggle-button { - background-color: $tb-primary-color; - color: #fff; - border-radius: 18px; - margin-left: 2px; - margin-right: 2px; - } - - .mat-button-toggle-appearance-standard .mat-button-toggle-label-content { - line-height: 34px; - font-size: 16px; - font-weight: 500; - } - - .mat-button-toggle-checked.mat-button-toggle-appearance-standard:not(.mat-button-toggle-disabled):hover .mat-button-toggle-focus-overlay { - opacity: .01; - } - } } diff --git a/ui-ngx/src/app/modules/home/pages/notification/recipient/recipient-notification-dialog.component.ts b/ui-ngx/src/app/modules/home/pages/notification/recipient/recipient-notification-dialog.component.ts index c07d8beb75..16ef8d12ae 100644 --- a/ui-ngx/src/app/modules/home/pages/notification/recipient/recipient-notification-dialog.component.ts +++ b/ui-ngx/src/app/modules/home/pages/notification/recipient/recipient-notification-dialog.component.ts @@ -39,7 +39,6 @@ import { Authority } from '@shared/models/authority.enum'; import { AuthState } from '@core/auth/auth.models'; import { getCurrentAuthState } from '@core/auth/auth.selectors'; import { AuthUser } from '@shared/models/user.model'; -import { control } from 'leaflet'; export interface RecipientNotificationDialogData { target?: NotificationTarget; @@ -99,6 +98,8 @@ export class RecipientNotificationDialogComponent extends }), conversationType: [{value: SlackChanelType.PUBLIC_CHANNEL, disabled: true}], conversation: [{value: '', disabled: true}, Validators.required], + webhookUrl: [{value: '', disabled: true}, Validators.required], + channelName: [{value: '', disabled: true}, Validators.required], description: [null] }) }); @@ -116,6 +117,10 @@ export class RecipientNotificationDialogComponent extends this.targetNotificationForm.get('configuration.conversationType').enable({emitEvent: false}); this.targetNotificationForm.get('configuration.conversation').enable({emitEvent: false}); break; + case NotificationTargetType.MICROSOFT_TEAMS: + this.targetNotificationForm.get('configuration.webhookUrl').enable({emitEvent: false}); + this.targetNotificationForm.get('configuration.channelName').enable({emitEvent: false}); + break; } this.targetNotificationForm.get('configuration.type').enable({emitEvent: false}); this.targetNotificationForm.get('configuration.description').enable({emitEvent: false}); @@ -160,7 +165,7 @@ export class RecipientNotificationDialogComponent extends if (isDefinedAndNotNull(data.target)) { this.targetNotificationForm.patchValue(data.target, {emitEvent: false}); this.targetNotificationForm.get('configuration.type').updateValueAndValidity({onlySelf: true}); - if (this.isSysAdmin() && data.target.configuration.usersFilter.type === NotificationTargetConfigType.TENANT_ADMINISTRATORS) { + if (this.isSysAdmin() && data.target.configuration.usersFilter?.type === NotificationTargetConfigType.TENANT_ADMINISTRATORS) { this.targetNotificationForm.get('configuration.usersFilter.filterByTenants') .patchValue(!Array.isArray(this.data.target.configuration.usersFilter.tenantProfilesIds), {onlySelf: true}); } diff --git a/ui-ngx/src/app/modules/home/pages/notification/rule/rule-notification-dialog.component.scss b/ui-ngx/src/app/modules/home/pages/notification/rule/rule-notification-dialog.component.scss index 7e582d2b7d..438d44b664 100644 --- a/ui-ngx/src/app/modules/home/pages/notification/rule/rule-notification-dialog.component.scss +++ b/ui-ngx/src/app/modules/home/pages/notification/rule/rule-notification-dialog.component.scss @@ -97,6 +97,7 @@ flex-direction: column; height: 100%; padding: 0 !important; + color: rgba(0, 0, 0, 0.87); .mat-stepper-horizontal { display: flex; diff --git a/ui-ngx/src/app/modules/home/pages/notification/sent/sent-error-dialog.component.scss b/ui-ngx/src/app/modules/home/pages/notification/sent/sent-error-dialog.component.scss index 95301b4daa..52a40155e4 100644 --- a/ui-ngx/src/app/modules/home/pages/notification/sent/sent-error-dialog.component.scss +++ b/ui-ngx/src/app/modules/home/pages/notification/sent/sent-error-dialog.component.scss @@ -17,6 +17,7 @@ display: block; width: 600px; max-width: 100%; + color: rgba(0, 0, 0, 0.87); h6 { font-weight: 500; diff --git a/ui-ngx/src/app/modules/home/pages/notification/sent/sent-notification-dialog.component.html b/ui-ngx/src/app/modules/home/pages/notification/sent/sent-notification-dialog.component.html index 4ff13778e5..878131dd24 100644 --- a/ui-ngx/src/app/modules/home/pages/notification/sent/sent-notification-dialog.component.html +++ b/ui-ngx/src/app/modules/home/pages/notification/sent/sent-notification-dialog.component.html @@ -27,7 +27,6 @@ -
{{ 'notification.compose' | translate }}
- - {{ 'notification.start-from-scratch' | translate }} - {{ 'notification.use-template' | translate }} - + + {{ 'notification.start-from-scratch' | translate }} + {{ 'notification.use-template' | translate }} +
-
-
- +
+
+ {{ 'icon.icon' | translate }} -
- +
+ - +
-
-
- - {{ 'notification.action-button' | translate }} - -
-
- - notification.button-text - - - {{ 'notification.button-text-required' | translate }} - - - {{ 'notification.button-text-max-length' | translate : - {length: webTemplateForm.get('additionalConfig.actionButtonConfig.text').getError('maxlength').requiredLength} - }} - - -
-
- - notification.action-type - - - {{ actionButtonLinkTypeTranslateMap.get(actionButtonLinkType) | translate }} - - - - - notification.link - - - {{ 'notification.link-required' | translate }} - - - - - - - - -
- - {{ 'notification.set-entity-from-notification' | translate }} - -
-
+
+
+ + + + + {{ 'notification.action-button' | translate }} + + + + +
+ + notification.button-text + + + {{ 'notification.button-text-required' | translate }} + + + {{ 'notification.button-text-max-length' | translate : + {length: webTemplateForm.get('additionalConfig.actionButtonConfig.text').getError('maxlength').requiredLength} + }} + + +
+
+ + notification.action-type + + + {{ actionButtonLinkTypeTranslateMap.get(actionButtonLinkType) | translate }} + + + + + notification.link + + + {{ 'notification.link-required' | translate }} + + + + + + + + +
+ + {{ 'notification.set-entity-from-notification' | translate }} + +
+
+
@@ -333,6 +340,78 @@ + + {{ 'notification.delivery-method.microsoft-teams' | translate }} +
+ {{ 'notification.input-fields-support-templatization' | translate}} + +
+
+ + notification.subject + + + + notification.message + + + {{ 'notification.message-required' | translate }} + + +
+
+
notification.theme-color
+ +
+
+ + + + + {{ 'notification.action-button' | translate }} + + + + +
+ + notification.button-text + + + {{ 'notification.button-text-required' | translate }} + + + {{ 'notification.button-text-max-length' | translate : + {length: microsoftTeamsTemplateForm.get('button.name').getError('maxlength').requiredLength} + }} + + + + notification.link + + + {{ 'notification.link-required' | translate }} + + +
+
+
+
+
+
+
{{ 'notification.review' | translate }} +
+
+ +
notification.delivery-method.microsoft-teams-preview
+
+
+
{{ preview.processedTemplates.MICROSOFT_TEAMS.subject }}
+ {{ preview.processedTemplates.MICROSOFT_TEAMS.body }} +
+
supervisor_account @@ -399,7 +488,7 @@
-
+
diff --git a/ui-ngx/src/app/modules/home/pages/notification/sent/sent-notification-dialog.component.scss b/ui-ngx/src/app/modules/home/pages/notification/sent/sent-notification-dialog.component.scss index 0702d6bf52..7d838eab70 100644 --- a/ui-ngx/src/app/modules/home/pages/notification/sent/sent-notification-dialog.component.scss +++ b/ui-ngx/src/app/modules/home/pages/notification/sent/sent-notification-dialog.component.scss @@ -16,13 +16,33 @@ @import "../../../../../../scss/constants"; @import "../../../../../../theme"; -:host-context(.tb-fullscreen-dialog .mat-mdc-dialog-container) { +:host { width: 820px; height: 100%; max-width: 100%; max-height: 100vh; - display: flex; - flex-direction: column; + display: grid; + grid-template-rows: min-content 4px minmax(auto, 1fr) min-content min-content; +} + +:host-context(.tb-fullscreen-dialog .mat-mdc-dialog-container) { + .mat-mdc-dialog-content { + grid-row: 3; + display: flex; + flex-direction: column; + height: 100%; + padding: 0; + color: rgba(0, 0, 0, 0.87); + } + + .tb-dialog-actions { + grid-row: 5; + display: flex; + } + + .mat-divider { + grid-row: 4; + } .tb-title { font-size: 16px; @@ -76,6 +96,7 @@ .delivery-method-container { display: inline-flex; flex: 1 1 calc(50% - 8px); + max-width: calc(50% - 8px); padding: 16px 12px; border: 1px solid rgba(0, 0, 0, 0.1); border-radius: 6px; @@ -178,17 +199,28 @@ line-height: 20px; overflow-x: auto; } + + &.mini { + font-size: 12px; + line-height: 1.25; + + .subject { + font-size: 14px; + line-height: 1.5; + padding-bottom: 4px; + } + } } } + + .tb-notification-use-template-toggle-group { + margin-bottom: 24px; + width: 320px; + } } :host ::ng-deep { .mat-mdc-dialog-content { - display: flex; - flex-direction: column; - height: 100%; - padding: 0 !important; - .mat-stepper-horizontal { display: flex; height: 100%; @@ -209,59 +241,9 @@ } } } - } - - .mat-button-toggle-group.tb-notification-use-template-toggle-group { - &.mat-button-toggle-group-appearance-standard { - border: none; - border-radius: 18px; - margin-bottom: 24px; - - .mat-button-toggle + .mat-button-toggle { - border-left: none; - } - } - - .mat-button-toggle { - background: rgba(0, 0, 0, 0.06); - height: 36px; - align-items: center; - display: flex; - - .mat-button-toggle-ripple { - top: 2px; - left: 2px; - right: 2px; - bottom: 2px; - border-radius: 18px; - } - } - .mat-button-toggle-button { - color: #959595; - } - - .mat-button-toggle-focus-overlay { - border-radius: 18px; - margin: 2px; - } - - .mat-button-toggle-checked .mat-button-toggle-button { - background-color: $tb-primary-color; - color: #fff; - border-radius: 18px; - margin-left: 2px; - margin-right: 2px; - } - - .mat-button-toggle-appearance-standard .mat-button-toggle-label-content { - line-height: 34px; - font-size: 16px; - font-weight: 500; - } - - .mat-button-toggle-checked.mat-button-toggle-appearance-standard:not(.mat-button-toggle-disabled):hover .mat-button-toggle-focus-overlay { - opacity: .01; + .tb-form-panel .mat-expansion-panel.tb-settings > .mat-expansion-panel-content > .mat-expansion-panel-body { + gap: 0; } } @@ -273,9 +255,7 @@ } } } -} -:host ::ng-deep { .delivery-methods-container { .delivery-method-container { &.interact * { diff --git a/ui-ngx/src/app/modules/home/pages/notification/template/template-configuration.ts b/ui-ngx/src/app/modules/home/pages/notification/template/template-configuration.ts index b3fa00ef72..dade64c22e 100644 --- a/ui-ngx/src/app/modules/home/pages/notification/template/template-configuration.ts +++ b/ui-ngx/src/app/modules/home/pages/notification/template/template-configuration.ts @@ -43,6 +43,7 @@ export abstract class TemplateConfiguration extends DialogComponent< emailTemplateForm: FormGroup; smsTemplateForm: FormGroup; slackTemplateForm: FormGroup; + microsoftTeamsTemplateForm: FormGroup; notificationDeliveryMethods = Object.keys(NotificationDeliveryMethod) as NotificationDeliveryMethod[]; notificationDeliveryMethodTranslateMap = NotificationDeliveryMethodTranslateMap; @@ -95,7 +96,7 @@ export abstract class TemplateConfiguration extends DialogComponent< icon: this.fb.group({ enabled: [false], icon: [{value: 'notifications', disabled: true}, Validators.required], - color: ['#757575'] + color: [{value: '#757575', disabled: true}] }), actionButtonConfig: this.fb.group({ enabled: [false], @@ -114,8 +115,10 @@ export abstract class TemplateConfiguration extends DialogComponent< ).subscribe((value) => { if (value) { this.webTemplateForm.get('additionalConfig.icon.icon').enable({emitEvent: false}); + this.webTemplateForm.get('additionalConfig.icon.color').enable({emitEvent: false}); } else { this.webTemplateForm.get('additionalConfig.icon.icon').disable({emitEvent: false}); + this.webTemplateForm.get('additionalConfig.icon.color').disable({emitEvent: false}); } }); @@ -163,11 +166,34 @@ export abstract class TemplateConfiguration extends DialogComponent< body: ['', Validators.required] }); + this.microsoftTeamsTemplateForm = this.fb.group({ + subject: [''], + body: ['', Validators.required], + themeColor: [''], + button: this.fb.group({ + enabled: [false], + name: [{value: '', disabled: true}, [Validators.required, Validators.maxLength(50)]], + uri: [{value: '', disabled: true}, Validators.required], + }), + }); + + this.microsoftTeamsTemplateForm.get('button.enabled').valueChanges.pipe( + takeUntil(this.destroy$) + ).subscribe((value) => { + if (value) { + this.microsoftTeamsTemplateForm.get('button').enable({emitEvent: false}); + } else { + this.microsoftTeamsTemplateForm.get('button').disable({emitEvent: false}); + this.microsoftTeamsTemplateForm.get('button.enabled').enable({emitEvent: false}); + } + }); + this.deliveryMethodFormsMap = new Map([ [NotificationDeliveryMethod.WEB, this.webTemplateForm], [NotificationDeliveryMethod.EMAIL, this.emailTemplateForm], [NotificationDeliveryMethod.SMS, this.smsTemplateForm], - [NotificationDeliveryMethod.SLACK, this.slackTemplateForm] + [NotificationDeliveryMethod.SLACK, this.slackTemplateForm], + [NotificationDeliveryMethod.MICROSOFT_TEAMS, this.microsoftTeamsTemplateForm] ]); } diff --git a/ui-ngx/src/app/modules/home/pages/notification/template/template-notification-dialog.component.html b/ui-ngx/src/app/modules/home/pages/notification/template/template-notification-dialog.component.html index 067258fa24..6d27ef4980 100644 --- a/ui-ngx/src/app/modules/home/pages/notification/template/template-notification-dialog.component.html +++ b/ui-ngx/src/app/modules/home/pages/notification/template/template-notification-dialog.component.html @@ -27,7 +27,6 @@ -
-
-
- +
+
+ {{ 'icon.icon' | translate }} -
- +
+ - +
-
-
- - {{ 'notification.action-button' | translate }} - -
-
- - notification.button-text - - - {{ 'notification.button-text-required' | translate }} - - - {{ 'notification.button-text-max-length' | translate : - {length: webTemplateForm.get('additionalConfig.actionButtonConfig.text').getError('maxlength').requiredLength} - }} - - -
-
- - notification.action-type - - - {{ actionButtonLinkTypeTranslateMap.get(actionButtonLinkType) | translate }} - - - - - notification.link - - - {{ 'notification.link-required' | translate }} - - - - - - - - -
- - {{ 'notification.set-entity-from-notification' | translate }} - -
-
+
+
+ + + + + {{ 'notification.action-button' | translate }} + + + + +
+ + notification.button-text + + + {{ 'notification.button-text-required' | translate }} + + + {{ 'notification.button-text-max-length' | translate : + {length: webTemplateForm.get('additionalConfig.actionButtonConfig.text').getError('maxlength').requiredLength} + }} + + +
+
+ + notification.action-type + + + {{ actionButtonLinkTypeTranslateMap.get(actionButtonLinkType) | translate }} + + + + + notification.link + + + {{ 'notification.link-required' | translate }} + + + + + + + + +
+ + {{ 'notification.set-entity-from-notification' | translate }} + +
+
+
@@ -259,10 +267,81 @@ + + {{ 'notification.delivery-method.microsoft-teams' | translate }} +
+ {{ 'notification.input-fields-support-templatization' | translate}} + +
+
+ + notification.subject + + + + notification.message + + + {{ 'notification.message-required' | translate }} + + +
+
+
notification.theme-color
+ +
+
+ + + + + {{ 'notification.action-button' | translate }} + + + + +
+ + notification.button-text + + + {{ 'notification.button-text-required' | translate }} + + + {{ 'notification.button-text-max-length' | translate : + {length: microsoftTeamsTemplateForm.get('button.name').getError('maxlength').requiredLength} + }} + + + + notification.link + + + {{ 'notification.link-required' | translate }} + + +
+
+
+
+
+
+
-
+
diff --git a/ui-ngx/src/app/modules/home/pages/notification/template/template-notification-dialog.component.scss b/ui-ngx/src/app/modules/home/pages/notification/template/template-notification-dialog.component.scss index 1a5fa270a8..507054440d 100644 --- a/ui-ngx/src/app/modules/home/pages/notification/template/template-notification-dialog.component.scss +++ b/ui-ngx/src/app/modules/home/pages/notification/template/template-notification-dialog.component.scss @@ -16,13 +16,33 @@ @import "../../../../../../scss/constants"; @import "../../../../../../theme"; -:host-context(.tb-fullscreen-dialog .mat-mdc-dialog-container) { - width: 800px; +:host { + width: 840px; height: 100%; max-width: 100%; max-height: 100vh; - display: flex; - flex-direction: column; + display: grid; + grid-template-rows: min-content 4px minmax(auto, 1fr) min-content min-content; +} + +:host-context(.tb-fullscreen-dialog .mat-mdc-dialog-container) { + .mat-mdc-dialog-content { + grid-row: 3; + display: flex; + flex-direction: column; + height: 100%; + padding: 0; + color: rgba(0, 0, 0, 0.87); + } + + .tb-dialog-actions { + grid-row: 5; + display: flex; + } + + .mat-divider { + grid-row: 4; + } .tb-title { font-size: 16px; @@ -70,6 +90,7 @@ .delivery-method-container { display: inline-flex; flex: 1 1 calc(50% - 8px); + max-width: calc(50% - 8px); padding: 16px 12px; border: 1px solid rgba(0, 0, 0, 0.1); border-radius: 6px; @@ -80,28 +101,10 @@ } } } - - .additional-config-group { - padding: 16px 16px 4px; - margin-bottom: 12px; - border: 1px solid rgba(0, 0, 0, 0.1); - border-radius: 6px; - width: 100%; - height: 100%; - - .toggle { - margin-bottom: 12px; - } - } } :host ::ng-deep { .mat-mdc-dialog-content { - display: flex; - flex-direction: column; - height: 100%; - padding: 0 !important; - .mat-stepper-horizontal { display: flex; height: 100%; @@ -122,5 +125,9 @@ } } } + + .tb-form-panel .mat-expansion-panel.tb-settings > .mat-expansion-panel-content > .mat-expansion-panel-body { + gap: 0; + } } } diff --git a/ui-ngx/src/app/shared/models/notification.models.ts b/ui-ngx/src/app/shared/models/notification.models.ts index edafef4704..9414368029 100644 --- a/ui-ngx/src/app/shared/models/notification.models.ts +++ b/ui-ngx/src/app/shared/models/notification.models.ts @@ -246,7 +246,9 @@ export interface NotificationTarget extends Omit, configuration: NotificationTargetConfig; } -export interface NotificationTargetConfig extends Partial { +export interface NotificationTargetConfig extends Partial { description?: string; type: NotificationTargetType; } @@ -276,14 +278,21 @@ export interface SlackNotificationTargetConfig { conversationType: SlackChanelType; conversation: SlackConversation; } + +export interface MicrosoftTeamsNotificationTargetConfig { + webhookUrl: string; + channelName: string; +} export enum NotificationTargetType { PLATFORM_USERS = 'PLATFORM_USERS', - SLACK = 'SLACK' + SLACK = 'SLACK', + MICROSOFT_TEAMS = 'MICROSOFT_TEAMS' } export const NotificationTargetTypeTranslationMap = new Map([ [NotificationTargetType.PLATFORM_USERS, 'notification.platform-users'], - [NotificationTargetType.SLACK, 'notification.delivery-method.slack'] + [NotificationTargetType.SLACK, 'notification.delivery-method.slack'], + [NotificationTargetType.MICROSOFT_TEAMS, 'notification.delivery-method.microsoft-teams'], ]); export interface NotificationTemplate extends Omit, 'label'>, ExportableEntity { @@ -299,14 +308,17 @@ interface NotificationTemplateConfig { } export interface DeliveryMethodNotificationTemplate extends - Partial{ - body?: string; + Partial{ + body: string; enabled: boolean; method: NotificationDeliveryMethod; } interface WebDeliveryMethodNotificationTemplate { - subject?: string; + subject: string; additionalConfig: WebDeliveryMethodAdditionalConfig; } @@ -336,6 +348,15 @@ interface SlackDeliveryMethodNotificationTemplate { conversationId: string; } +interface MicrosoftTeamsDeliveryMethodNotificationTemplate { + subject?: string; + button: { + enabled: boolean; + name?: string; + uri?: string; + }; +} + export enum NotificationStatus { SENT = 'SENT', READ = 'READ' @@ -345,14 +366,16 @@ export enum NotificationDeliveryMethod { WEB = 'WEB', SMS = 'SMS', EMAIL = 'EMAIL', - SLACK = 'SLACK' + SLACK = 'SLACK', + MICROSOFT_TEAMS = 'MICROSOFT_TEAMS' } export const NotificationDeliveryMethodTranslateMap = new Map([ [NotificationDeliveryMethod.WEB, 'notification.delivery-method.web'], [NotificationDeliveryMethod.SMS, 'notification.delivery-method.sms'], [NotificationDeliveryMethod.EMAIL, 'notification.delivery-method.email'], - [NotificationDeliveryMethod.SLACK, 'notification.delivery-method.slack'] + [NotificationDeliveryMethod.SLACK, 'notification.delivery-method.slack'], + [NotificationDeliveryMethod.MICROSOFT_TEAMS, 'notification.delivery-method.microsoft-teams'], ]); export enum NotificationRequestStatus { diff --git a/ui-ngx/src/assets/locale/locale.constant-en_US.json b/ui-ngx/src/assets/locale/locale.constant-en_US.json index 0f96a5f1dc..53e28f97ce 100644 --- a/ui-ngx/src/assets/locale/locale.constant-en_US.json +++ b/ui-ngx/src/assets/locale/locale.constant-en_US.json @@ -2914,6 +2914,8 @@ "email-preview": "Email notification preview", "slack": "Slack", "slack-preview": "Slack notification preview", + "microsoft-teams": "Microsoft teams", + "microsoft-teams-preview": "Microsoft teams notification preview", "sms": "SMS", "sms-preview": "SMS notification preview", "web": "Web", @@ -3079,6 +3081,7 @@ "tenant-profiles-list-rule-hint": "If the field is empty, the trigger will be applied to all tenant profiles", "tenants-list-rule-hint": "If the field is empty, the trigger will be applied to all tenants", "threshold": "Threshold", + "theme-color": "Theme color", "time": "Time", "track-rule-node-events": "Track rule node events", "trigger": { @@ -3100,7 +3103,12 @@ "updated": "Updated", "use-template": "Use template", "view-all": "View all", - "warning": "Warning" + "warning": "Warning", + "webhook-url": "Webhook URL", + "webhook-url-required": "Webhook URL is required", + "channel-name": "Chanel name", + "channel-name-required": "Chanel name is required" + }, "ota-update": { "add": "Add package",