mirror of
https://github.com/dgtlmoon/changedetection.io.git
synced 2026-09-26 07:16:13 +00:00
Cleaner separation of watch/global notification settings
Re #809 Re #562 Re #865
This commit is contained in:
@@ -355,6 +355,8 @@ class watchForm(commonSettingsForm):
|
||||
filter_failure_notification_send = BooleanField(
|
||||
'Send a notification when the filter can no longer be found on the page', default=False)
|
||||
|
||||
notification_use_default = BooleanField('Use default/system notification settings', default=False)
|
||||
|
||||
def validate(self, **kwargs):
|
||||
if not super().validate():
|
||||
return False
|
||||
|
||||
@@ -35,6 +35,7 @@ class model(dict):
|
||||
'notification_title': default_notification_title,
|
||||
'notification_body': default_notification_body,
|
||||
'notification_format': default_notification_format,
|
||||
'notification_use_default': False,
|
||||
'notification_muted': False,
|
||||
'css_filter': '',
|
||||
'last_error': False,
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
$(document).ready(function() {
|
||||
function toggle() {
|
||||
$(document).ready(function () {
|
||||
function toggle_fetch_backend() {
|
||||
if ($('input[name="fetch_backend"]:checked').val() == 'html_webdriver') {
|
||||
if(playwright_enabled) {
|
||||
if (playwright_enabled) {
|
||||
// playwright supports headers, so hide everything else
|
||||
// See #664
|
||||
$('#requests-override-options #request-method').hide();
|
||||
@@ -13,12 +13,8 @@ $(document).ready(function() {
|
||||
// selenium/webdriver doesnt support anything afaik, hide it all
|
||||
$('#requests-override-options').hide();
|
||||
}
|
||||
|
||||
|
||||
$('#webdriver-override-options').show();
|
||||
|
||||
} else {
|
||||
|
||||
$('#requests-override-options').show();
|
||||
$('#requests-override-options *:hidden').show();
|
||||
$('#webdriver-override-options').hide();
|
||||
@@ -26,8 +22,25 @@ $(document).ready(function() {
|
||||
}
|
||||
|
||||
$('input[name="fetch_backend"]').click(function (e) {
|
||||
toggle();
|
||||
toggle_fetch_backend();
|
||||
});
|
||||
toggle();
|
||||
toggle_fetch_backend();
|
||||
|
||||
function toggle_default_notifications() {
|
||||
var n=$('#notification_urls, #notification_title, #notification_body, #notification_format');
|
||||
if ($('#notification_use_default').is(':checked')) {
|
||||
$(n).each(function (e) {
|
||||
$(this).attr('readonly', true).css('opacity',0.5);
|
||||
});
|
||||
} else {
|
||||
$(n).each(function (e) {
|
||||
$(this).attr('readonly', false).css('opacity',1);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
$('#notification_use_default').click(function (e) {
|
||||
toggle_default_notifications();
|
||||
});
|
||||
toggle_default_notifications();
|
||||
});
|
||||
|
||||
@@ -135,9 +135,11 @@ User-Agent: wonderbra 1.0") }}
|
||||
</div>
|
||||
|
||||
<div class="tab-pane-inner" id="notifications">
|
||||
<strong>Note: <i>These settings override the global settings for this watch.</i></strong>
|
||||
<fieldset>
|
||||
<div class="field-group">
|
||||
<div class="pure-control-group inline-radio">
|
||||
{{ render_checkbox_field(form.notification_use_default) }}
|
||||
</div>
|
||||
{{ render_common_settings_form(form, current_base_url, emailprefix) }}
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
@@ -41,7 +41,7 @@ class update_worker(threading.Thread):
|
||||
)
|
||||
|
||||
# Did it have any notification alerts to hit?
|
||||
if len(watch['notification_urls']):
|
||||
if not watch.get('notification_use_default') and len(watch['notification_urls']):
|
||||
print(">>> Notifications queued for UUID from watch {}".format(watch_uuid))
|
||||
n_object['notification_urls'] = watch['notification_urls']
|
||||
n_object['notification_title'] = watch['notification_title']
|
||||
@@ -49,7 +49,7 @@ class update_worker(threading.Thread):
|
||||
n_object['notification_format'] = watch['notification_format']
|
||||
|
||||
# No? maybe theres a global setting, queue them all
|
||||
elif len(self.datastore.data['settings']['application']['notification_urls']):
|
||||
elif watch.get('notification_use_default') and len(self.datastore.data['settings']['application']['notification_urls']):
|
||||
print(">>> Watch notification URLs were empty, using GLOBAL notifications for UUID: {}".format(watch_uuid))
|
||||
n_object['notification_urls'] = self.datastore.data['settings']['application']['notification_urls']
|
||||
n_object['notification_title'] = self.datastore.data['settings']['application']['notification_title']
|
||||
|
||||
Reference in New Issue
Block a user