var Notifications = {}; $(document).ready(function () { if (!window.webkitNotifications) { return; } var notificationsEnabled = (window.webkitNotifications.checkPermission() === 0), toggle = $('#toggle_notifications > a'); toggle.show(); updateMenuTitle(); $(transmission).bind('downloadComplete seedingComplete', function (event, torrent) { if (notificationsEnabled) { var title = (event.type == 'downloadComplete' ? 'Download' : 'Seeding') + ' complete', content = torrent.getName(), notification; notification = window.webkitNotifications.createNotification('style/transmission/images/logo.png', title, content); notification.show(); setTimeout(function () { notification.cancel(); }, 5000); }; }); function updateMenuTitle() { toggle.html((notificationsEnabled ? 'Disable' : 'Enable') + ' Notifications'); } Notifications.toggle = function () { if (window.webkitNotifications.checkPermission() !== 0) { window.webkitNotifications.requestPermission(function () { notificationsEnabled = (window.webkitNotifications.checkPermission() === 0); updateMenuTitle(); }); } else { notificationsEnabled = !notificationsEnabled; updateMenuTitle(); } }; });