diff --git a/ui/app/transforms/object.js b/ui/app/transforms/object.js
index 8ab20c7a09c4..31f06690728d 100644
--- a/ui/app/transforms/object.js
+++ b/ui/app/transforms/object.js
@@ -20,7 +20,7 @@ export default class ObjectTransform extends Transform {
if (typeOf(value) !== 'object') {
return {};
} else {
- return JSON.stringify(value) === '{"":""}' ? {} : value;
+ return value;
}
}
}
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 a51050ccb4f0..c1819373bbca 100644
--- a/ui/lib/config-ui/addon/components/messages/page/list.hbs
+++ b/ui/lib/config-ui/addon/components/messages/page/list.hbs
@@ -49,14 +49,10 @@
{{message.title}}
-
+
diff --git a/ui/lib/config-ui/addon/components/messages/page/list.js b/ui/lib/config-ui/addon/components/messages/page/list.js
index b97f01c7d96c..7325277f379b 100644
--- a/ui/lib/config-ui/addon/components/messages/page/list.js
+++ b/ui/lib/config-ui/addon/components/messages/page/list.js
@@ -32,6 +32,8 @@ export default class MessagesList extends Component {
get formattedMessages() {
return this.args.messages.map((message) => {
let badgeDisplayText = '';
+ let badgeColor = 'neutral';
+
if (message.active) {
if (message.endTime) {
badgeDisplayText = `Active until ${dateFormat([message.endTime, 'MMM d, yyyy hh:mm aaa'], {
@@ -40,19 +42,23 @@ export default class MessagesList extends Component {
} else {
badgeDisplayText = 'Active';
}
+ badgeColor = 'success';
} else {
if (message.isStartTimeAfterToday) {
badgeDisplayText = `Scheduled: ${dateFormat([message.startTime, 'MMM d, yyyy hh:mm aaa'], {
withTimeZone: true,
})}`;
+ badgeColor = 'highlight';
} else {
badgeDisplayText = `Inactive: ${dateFormat([message.startTime, 'MMM d, yyyy hh:mm aaa'], {
withTimeZone: true,
})}`;
+ badgeColor = 'neutral';
}
}
message.badgeDisplayText = badgeDisplayText;
+ message.badgeColor = badgeColor;
return message;
});
}
diff --git a/ui/tests/helpers/config-ui/message-selectors.js b/ui/tests/helpers/config-ui/message-selectors.js
index 7e0afd0acc34..7e054c321567 100644
--- a/ui/tests/helpers/config-ui/message-selectors.js
+++ b/ui/tests/helpers/config-ui/message-selectors.js
@@ -18,4 +18,5 @@ export const PAGE = {
alert: (name) => `data-test-custom-alert=${name}`,
alertTitle: (name) => `[data-test-custom-alert-title="${name}"]`,
alertDescription: (name) => `[data-test-custom-alert-description="${name}"]`,
+ badge: (name) => `[data-test-badge="${name}"]`,
};
diff --git a/ui/tests/integration/components/config-ui/messages/page/details-test.js b/ui/tests/integration/components/config-ui/messages/page/details-test.js
index d910ecc88a32..84473f1dc6c7 100644
--- a/ui/tests/integration/components/config-ui/messages/page/details-test.js
+++ b/ui/tests/integration/components/config-ui/messages/page/details-test.js
@@ -46,8 +46,8 @@ module('Integration | Component | messages/page/details', function (hooks) {
title: 'Message title 1',
message: 'Some long long long message',
link: { here: 'www.example.com' },
- startTime: '2021-08-01T00:00:00Z',
- endTime: '',
+ start_time: '2021-08-01T00:00:00Z',
+ end_time: '',
canDeleteCustomMessages: true,
canEditCustomMessages: true,
});
diff --git a/ui/tests/integration/components/config-ui/messages/page/list-test.js b/ui/tests/integration/components/config-ui/messages/page/list-test.js
index 7de88d2043c2..1b06b48e48cf 100644
--- a/ui/tests/integration/components/config-ui/messages/page/list-test.js
+++ b/ui/tests/integration/components/config-ui/messages/page/list-test.js
@@ -31,39 +31,37 @@ module('Integration | Component | messages/page/list', function (hooks) {
this.store.pushPayload('config-ui/message', {
modelName: 'config-ui/message',
- id: '01234567-89ab-cdef-0123-456789abcdef',
+ id: '0',
active: true,
type: 'banner',
authenticated: true,
title: 'Message title 1',
message: 'Some long long long message',
link: { title: 'here', href: 'www.example.com' },
- startTime: '2021-08-01T00:00:00Z',
- endTime: '',
+ start_time: '2021-08-01T00:00:00Z',
+ end_time: '',
});
this.store.pushPayload('config-ui/message', {
modelName: 'config-ui/message',
- id: '01234567-89ab-dddd-0123-456789abcdef',
+ id: '1',
active: false,
type: 'modal',
authenticated: true,
title: 'Message title 2',
message: 'Some long long long message blah blah blah',
link: { title: 'here', href: 'www.example2.com' },
- startTime: '2023-08-01T00:00:00Z',
- endTime: '2023-08-01T00:00:00Z',
+ start_time: '2023-07-01T00:00:00Z',
+ end_time: '2023-08-01T00:00:00Z',
});
this.store.pushPayload('config-ui/message', {
modelName: 'config-ui/message',
- id: '01234567-89ab-vvvv-0123-456789abcdef',
- active: true,
+ id: '2',
+ active: false,
type: 'banner',
authenticated: false,
title: 'Message title 3',
message: 'Some long long long message',
link: { title: 'here', href: 'www.example.com' },
- startTime: '2021-08-01T00:00:00Z',
- endTime: '2090-08-01T00:00:00Z',
});
});
@@ -100,14 +98,14 @@ module('Integration | Component | messages/page/list', function (hooks) {
for (let i = 0; i < 97; i++) {
this.store.pushPayload('config-ui/message', {
modelName: 'config-ui/message',
- id: i,
+ id: `${i}-a`,
active: true,
type: 'banner',
authenticated: false,
title: `Message title ${i}`,
message: 'Some long long long message',
link: { title: 'here', href: 'www.example.com' },
- startTime: '2021-08-01T00:00:00Z',
+ start_time: '2021-08-01T00:00:00Z',
});
}
@@ -120,7 +118,6 @@ module('Integration | Component | messages/page/list', function (hooks) {
total: this.messages.length,
pageSize: 100,
};
-
await render(hbs``, {
owner: this.engine,
});
@@ -133,4 +130,15 @@ module('Integration | Component | messages/page/list', function (hooks) {
);
await click(PAGE.modalButton('maximum-message-modal'));
});
+
+ test('it should show the correct badge colors based on badge status', async function (assert) {
+ this.messages = this.store.peekAll('config-ui/message', {});
+ this.messages.meta = META;
+ await render(hbs``, {
+ owner: this.engine,
+ });
+ assert.dom(PAGE.badge('0')).hasClass('hds-badge--color-success');
+ assert.dom(PAGE.badge('1')).hasClass('hds-badge--color-neutral');
+ assert.dom(PAGE.badge('2')).hasClass('hds-badge--color-highlight');
+ });
});