addNotification(title, children, ...classes) {
		const mc = document.querySelector('#maincontent') ?? document.body;
		const msg = E('div', {
			'class': 'alert-message fade-in',
			'style': 'display:flex',
			'transitionend': function(ev) {
				const node = ev.currentTarget;
				if (node.parentNode && node.classList.contains('fade-out'))
					node.parentNode.removeChild(node);
			}
		}, [
			E('div', { 'style': 'flex:10' }),
			E('div', { 'style': 'flex:1 1 auto; display:flex' }, [
				E('button', {
					'class': 'btn',
					'style': 'margin-left:auto; margin-top:auto',
					'click': function(ev) {
						dom.parent(ev.target, '.alert-message').classList.add('fade-out');
					},

				}, [ _('Dismiss') ])
			])
		]);

		if (title != null)
			dom.append(msg.firstElementChild, E('h4', {}, title));

		dom.append(msg.firstElementChild, children);

		msg.classList.add(...classes);

		mc.insertBefore(msg, mc.firstElementChild);

		return msg;
	}
Add a notification banner at the top of the current view.

A notification banner is an alert message usually displayed at the
top of the current view, spanning the entire available width.
Notification banners will stay in place until dismissed by the user.
Multiple banners may be shown at the same time.

Additional CSS class names may be passed to influence the appearance of
the banner. Valid values for the classes depend on the underlying theme.

@see LuCI.dom.content

@param {string} [title]
The title of the notification banner. If `null`, no title element
will be rendered.

@param {*} children
The contents to add to the notification banner. This should be a DOM
node or a document fragment in most cases. The value is passed as-is
to the `dom.content()` function - refer to its documentation for
applicable values.
	 
@param {...string} [classes]
A number of extra CSS class names which are set on the notification
banner element.

@returns {Node}
Returns a DOM Node representing the notification banner element.