Ha Bui
Feb 16, 2023
visibility 2311
star star star star star
(2 votes)

Global Notification

Great day everyone!

If you familiar with Using user notifications, I'm glad to introduce the new global notification UI. Notifications are moved to the navigation bar, so it is no longer only for the CMS UI.

You can get the new release version here: EPiServer.CMS 12.17.0 (optimizely.com)

The new UI has the following:

  • A bell icon, moved to the top navigation bar
  • An indicator for new or unread messages
  • A notification panel

When you click an unread notification, it is marked as read. Click Mark as Read to change all unread messages statuses to read. 

Notes

  • If the notication contains content uri then you can click on the notification to go to the link.
  • The list is lazy load on demand; just scoll to see more.

Global notification also exposes broadcastchannel API (/global/notification/message), Just join it and you can use the pub/sub pattern.

MessageHub.js already has it inside:

this._globalNotificationBroadcaster = new BroadcastChannel(this.statusTopic.globalnotificationmessage);

See also Broadcast Channel API - Web APIs | MDN (mozilla.org).

Last but not least: all changes for UI are on the client side to pub/sub message. Nothing changes for the server side. Isn't that good news?

Thank for reading!

Feb 16, 2023

Comments

Quan Pham
Quan Pham Feb 22, 2023 07:55 AM

Good stuffs!💯

error Please login to comment.
Latest blogs
Composition Over Inheritance: Why Your Content Contract Is Not a Base Class

Inside the structural conformance pattern in SaaS CMS — from server-side inheritance to pipeline governance. A contract in Optimizely SaaS CMS is...

Vipin Banka | Sep 19, 2026

Optimizely Opti ID Integration: Why the API Key Was Missing from the DXP Management Portal

While working on an Optimizely CMS 12 Opti ID integration recently, we ran into an issue that initially appeared to be related to SSO authenticatio...

Madhu | Sep 18, 2026 |

Extending a Contract: What You Can Override

Contracts share fields across content types — but not every field setting can be overridden. Push the same contract onto several components, and CM...

Chirag Khanna | Sep 18, 2026 |

Building a Blazor Server UI Inside the Optimizely CMS 13 Admin Shell

What I learned shipping a Blazor Server UI inside Optimizely CMS 13 — Razor components in a NuGet package, the Blazor hub next to MapContent(),...

Stanisław Szołkowski | Sep 17, 2026 |