From 47024f060c7f718fa1bd017bca885ca5196a5ce3 Mon Sep 17 00:00:00 2001 From: Kianna <30884335+kiannaquach@users.noreply.github.com> Date: Mon, 5 Feb 2024 09:08:10 -0800 Subject: [PATCH] UI: Fix bugs in custom messages (#25169) * Fix bugs in custom messages * Add new line split helper file * Fix multiple banner issue * Code cleanup * Add tests * Add more tests * Remove empty state action * Remove test --- ui/app/templates/vault/cluster.hbs | 19 +++++++++++--- .../page/create-and-edit-message-form.hbs | 10 +++++++- .../page/create-and-edit-message-form.js | 8 +++++- .../addon/components/messages/page/list.hbs | 12 +-------- .../components/messages/preview-image.hbs | 8 +++--- ui/lib/core/addon/helpers/new-line-split.js | 12 +++++++++ ui/lib/core/app/helpers/new-line-split.js | 6 +++++ .../page/create-and-edit-message-test.js | 1 - .../config-ui/messages/page/list-test.js | 1 - .../helpers/new-line-split-test.js | 25 +++++++++++++++++++ 10 files changed, 80 insertions(+), 22 deletions(-) create mode 100644 ui/lib/core/addon/helpers/new-line-split.js create mode 100644 ui/lib/core/app/helpers/new-line-split.js create mode 100644 ui/tests/integration/helpers/new-line-split-test.js diff --git a/ui/app/templates/vault/cluster.hbs b/ui/app/templates/vault/cluster.hbs index 51bc94daa0..a6f1c299c0 100644 --- a/ui/app/templates/vault/cluster.hbs +++ b/ui/app/templates/vault/cluster.hbs @@ -13,9 +13,11 @@ as |A| > {{bannerMessage.title}} - - {{bannerMessage.message}} - + {{#each (new-line-split bannerMessage.message) as |msg|}} + + {{msg}} + + {{/each}} {{#unless (is-empty-value bannerMessage.link)}} {{#each-in bannerMessage.link as |title href|}} - {{modalMessage.message}} + {{#each (new-line-split modalMessage.message) as |msg|}} + {{#if (eq msg "")}} +
+ {{else}} +
+ {{msg}} +
+ {{/if}} + {{/each}} {{#unless (is-empty-value modalMessage.link)}} {{#each-in modalMessage.link as |title href|}} {{title}} {{/each-in}} {{/unless}}
+ diff --git a/ui/lib/config-ui/addon/components/messages/page/create-and-edit-message-form.hbs b/ui/lib/config-ui/addon/components/messages/page/create-and-edit-message-form.hbs index f59e996d82..e4806fcf90 100644 --- a/ui/lib/config-ui/addon/components/messages/page/create-and-edit-message-form.hbs +++ b/ui/lib/config-ui/addon/components/messages/page/create-and-edit-message-form.hbs @@ -94,7 +94,15 @@ {{@message.title}} - {{@message.message}} + {{#each (new-line-split @message.message) as |msg|}} + {{#if (eq msg "")}} +
+ {{else}} +
+ {{msg}} +
+ {{/if}} + {{/each}} {{#unless (is-empty-value @message.link)}} {{#each-in @message.link as |title href|}} {{title}} diff --git a/ui/lib/config-ui/addon/components/messages/page/create-and-edit-message-form.js b/ui/lib/config-ui/addon/components/messages/page/create-and-edit-message-form.js index 1f2059e884..6740b9c551 100644 --- a/ui/lib/config-ui/addon/components/messages/page/create-and-edit-message-form.js +++ b/ui/lib/config-ui/addon/components/messages/page/create-and-edit-message-form.js @@ -10,6 +10,7 @@ import errorMessage from 'vault/utils/error-message'; import { inject as service } from '@ember/service'; import { action } from '@ember/object'; import Ember from 'ember'; +import { isAfter } from 'date-fns'; /** * @module Page::CreateAndEditMessageForm @@ -58,8 +59,13 @@ export default class MessagesList extends Component { this.userConfirmation = ''; const isValid = this.validate(); + const modalMessages = this.args.messages?.filter((message) => message.type === 'modal') || []; + const hasExpiredModalMessages = modalMessages.every((message) => { + if (!message.endTime) return false; + return isAfter(new Date(), new Date(message.endTime)); + }); - if (this.args.hasSomeActiveModals && this.args.message.type === 'modal') { + if (!hasExpiredModalMessages && this.args.hasSomeActiveModals && this.args.message.type === 'modal') { this.showMultipleModalsMessage = true; const isConfirmed = yield this.getUserConfirmation.perform(); if (!isConfirmed) return; diff --git a/ui/lib/config-ui/addon/components/messages/page/list.hbs b/ui/lib/config-ui/addon/components/messages/page/list.hbs index e43bd519bc..fe8a4da454 100644 --- a/ui/lib/config-ui/addon/components/messages/page/list.hbs +++ b/ui/lib/config-ui/addon/components/messages/page/list.hbs @@ -100,17 +100,7 @@ - - + /> {{/if}} {{#if this.showMaxMessageModal}} diff --git a/ui/lib/config-ui/addon/components/messages/preview-image.hbs b/ui/lib/config-ui/addon/components/messages/preview-image.hbs index 1cea191def..e1e709a087 100644 --- a/ui/lib/config-ui/addon/components/messages/preview-image.hbs +++ b/ui/lib/config-ui/addon/components/messages/preview-image.hbs @@ -20,9 +20,11 @@ as |A| > {{@message.title}} - - {{@message.message}} - + {{#each (new-line-split @message.message) as |msg|}} + + {{msg}} + + {{/each}} {{#unless (is-empty-value @message.link)}} {{#each-in @message.link as |title href|}} \nSecond new line.\nThird new line.']); + assert.deepEqual(lines, ['First new line.
', 'Second new line.', 'Third new line.']); + lines = newLineSplit(['First new line./n\nSecond new line.\nThird new line.']); + assert.deepEqual(lines, ['First new line./n', 'Second new line.', 'Third new line.']); + lines = newLineSplit(['First new line.\n\nSecond new line.\n\nThird new line.']); + assert.deepEqual(lines, ['First new line.', '', 'Second new line.', '', 'Third new line.']); + }); +});