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.']);
+ });
+});