Alerts Header – SPFx project
This new project is a nice little feature that you can easily add to your SharePoint site to enable site messages or alerts. Having the ability to display site alerts is one of the top 10 most requested features to enhance SharePoint. This customization is built as an SPFx application customizer, with a little bit of UI hacking. This project can be used as-is or as a starting point for you to extend and create your own combinations of notifications, icons and colors.
The Alerts Header solution contains an SPFx application customizer and a list schema for the alerts messages. The list will automatically be created for you when the app is added to your site. Currently the app displays messages from the site it’s in but could be easily modified to pull notifications from another site. Initially this was designed to be deployed the the entire intranet and activated on each site. Each site had the option to display ‘local’ alerts, alerts contained within the site and remote alerts, alerts contained at the root site collection “/”. The remote alert functionality has been commented out for simplicity in the Git Hub repo but could be reenabled with just a little effort.
The solution installs an ‘Alerts’ list in your site. This list contains a number of required fields to properly display the alerts.
Title – The first part of the text that is displayed
Description – The second part of the text that is displayed. The description will fill the reminder of the space and truncate with ‘…’
Alert Type – The icon that is displayed. Warning, Actionable or Info as show below from top to bottom.
Link – The navigation url and the text that will be displayed
Start Date / Time – The date and time that the alert will be displayed
End Date / Time – The date and time that the alert will no longer be displayed
Items will immediately start to show up once they are added to the list and hit the duration between the start and end date.
The Web Part
This view below shows the alerts application customizer with all three types of alerts and active.
Icons – The icons used are from the Font Awesome 5.0 free library. You could easily update the code to change out the icons.
Expand / Collapse – If the alert has a long description it will be truncated once it fills the available screen space. The up / down arrow will allow the user to expand and collapse the alert to read the full description.
Dismiss / Close – The alert has and close icon at the far right to dismiss the alert. The alert will no longer show during that session. A new session will display the alert again. New Tabs are equivalent to new sessions.
SharePoint UI Hack – I hinted earlier that I’ve included a bonus UI Hack for free, haha. Take a peek at the picture below. The normal location of an application customizer is at the very top of the page. I did not want the alerts to show up there so I opted to move them to the bottom of the header. This is a non supported customization according to Microsoft. I’m pointing this out for transparency.
Responsive / Mobile Friendly – The web part was designed with the intention of working across all devices and screen sizes. The functionality is somewhat different on the mobile. Once the item is expanded it can only be closed. I’ve do it this way to intentionally close them out to regain the screen real estate back on the small devices.
The web part comes with a few notification types. You can add more types directly to the list or to the list schema. After you add new Alert Types you would then need to do a few more updates
IAlerts.types.ts – Add your new Alert Types to the enumeration
AltertItem.tsx – Add new conditions for the new Alert Types and the icon you want to use
AlertItem.module.scss – Copy / Paste an existing Alert Type combination and change the colors to meet your needs.
Site Alerts are one of the top 10 features requested from clients and customers to build. I’m happy to be able to post this feature to share even though it’s not 100% Microsoft compliant. The tiny UI hack positions this feature in the location where I felt it belongs. I hope and wish that Microsoft would give us more Zones in which we could target in the application customizers.