Mercurial > libervia-web
view browser_side/notification.py @ 335:e8c26e24a6c7
browser side: refactored XMLUI to use the new sat_frontends.tools.xmlui.XMLUI class, first draft
author | Goffi <goffi@goffi.org> |
---|---|
date | Tue, 04 Feb 2014 16:49:20 +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(); }); } """)