Mercurial > libervia-web
view browser_side/notification.py @ 331:06a48d805547
server side: make Libervia a Twisted plugin, and add it the --port argument + add a config file for the port.
==> NOTE from Goffi: it's a fixed version of Link Mauve's patch c144b603fb93
Fixes bug 16.
author | Emmanuel Gil Peyrot <linkmauve@linkmauve.fr> |
---|---|
date | Tue, 04 Feb 2014 17:09:00 +0100 |
parents | 835a8ae799e7 |
children | f9130176bc8d |
line wrap: on
line source
from __pyjamas__ import JS class Notification(object): """ If the browser supports it, the user allowed it to and the tab is in the background, send desktop notifications on messages. Requires both Web Notifications and Page Visibility API. """ def __init__(self): JS(""" this.enabled = false; if (!('hidden' in document)) document.hidden = false; if (!('Notification' in window)) return; if (Notification.permission === 'granted') this.enabled = true; else if (Notification.permission === 'default') { Notification.requestPermission(function(permission){ if (permission !== 'granted') return; this.enabled = true; }); } """) def notify(self, title, body, icon='/media/icons/apps/48/sat.png'): JS(""" if (this.enabled && document.hidden) { notification = Notification(title, {body: body, icon: icon}); // Probably won’t work, but it doesn’t hurt to try. notification.addEventListener('click', function() { window.focus(); }); } """)