Only check browser notifications if enabled

This commit is contained in:
JonnyWong16 2016-05-07 11:20:46 -07:00
parent a3a62b1d94
commit 600bca7e8b
4 changed files with 56 additions and 41 deletions

View file

@ -296,6 +296,9 @@ ${next.headerIncludes()}
<script src="${http_root}js/bootstrap-hover-dropdown.min.js"></script>
<script src="${http_root}js/pnotify.custom.min.js"></script>
<script src="${http_root}js/script.js"></script>
% if plexpy.CONFIG.BROWSER_ENABLED:
<script src="${http_root}js/ajaxNotifications.js"></script>
% endif
<script>
$('#updateDismiss').click(function() {
$('#updatebar').slideUp('slow');

View file

@ -0,0 +1,42 @@
// Taken from https://github.com/SickRage/SickRage
PNotify.prototype.options.addclass = "stack-bottomright";
PNotify.prototype.options.buttons.closer_hover = false;
PNotify.prototype.options.desktop = { desktop: true, icon: 'images/favicon.png' }
PNotify.prototype.options.history = false;
PNotify.prototype.options.shadow = false;
PNotify.prototype.options.stack = { dir1: 'up', dir2: 'left', firstpos1: 25, firstpos2: 25 };
PNotify.prototype.options.styling = 'fontawesome';
PNotify.prototype.options.type = 'notice';
PNotify.prototype.options.width = '340px';
function displayPNotify(title, message) {
var notification = new PNotify({
title: title,
text: message
});
}
function check_notifications() {
$.getJSON('get_browser_notifications', function (data) {
if (data) {
$.each(data, function (i, notification) {
if (notification.delay == 0) {
PNotify.prototype.options.hide = false;
} else {
PNotify.prototype.options.hide = true;
PNotify.prototype.options.delay = notification.delay * 1000;
}
displayPNotify(notification.subject_text, notification.body_text);
});
}
});
setTimeout(function () {
"use strict";
check_notifications();
}, 3000);
}
$(document).ready(function () {
check_notifications();
});

View file

@ -408,42 +408,3 @@ window.onerror = function (message, file, line) {
$.post("log_js_errors", e, function (data) {
});
};
PNotify.prototype.options.addclass = "stack-bottomright";
PNotify.prototype.options.buttons.closer_hover = false;
PNotify.prototype.options.desktop = { desktop: true, icon: 'images/favicon.png' }
PNotify.prototype.options.history = false;
PNotify.prototype.options.shadow = false;
PNotify.prototype.options.stack = { dir1: 'up', dir2: 'left', firstpos1: 25, firstpos2: 25 };
PNotify.prototype.options.styling = 'fontawesome';
PNotify.prototype.options.type = 'notice';
PNotify.prototype.options.width = '340px';
function displayPNotify(title, message) {
var notification = new PNotify({
title: title,
text: message
});
}
function check_notifications() {
$.getJSON('get_browser_notifications', function (data) {
$.each(data, function (i, notification) {
if (notification.delay == 0) {
PNotify.prototype.options.hide = false;
} else {
PNotify.prototype.options.hide = true;
PNotify.prototype.options.delay = notification.delay * 1000;
}
displayPNotify(notification.subject_text, notification.body_text);
});
});
setTimeout(function () {
"use strict";
check_notifications();
}, 3000);
}
$(document).ready(function () {
check_notifications();
});

View file

@ -2438,6 +2438,9 @@ class Browser(object):
return True
def get_notifications(self):
if not self.enabled:
return
monitor_db = database.MonitorDatabase()
result = monitor_db.select('SELECT subject_text, body_text FROM notify_log '
'WHERE agent_id = 17 AND timestamp >= ? ',
@ -2457,7 +2460,13 @@ class Browser(object):
self.notify('PlexPy', 'Test Notification')
def return_config_options(self):
config_option = [{'label': 'Allow Notifications',
config_option = [{'label': 'Enable Browser Notifications',
'value': self.enabled,
'name': 'browser_enabled',
'description': 'Enable to display desktop notifications from your browser.',
'input_type': 'checkbox'
},
{'label': 'Allow Notifications',
'value': 'Allow Notifications',
'name': 'allow_browser',
'description': 'Click to allow browser notifications. You must click this button for each browser.',