mirror of
https://github.com/dgtlmoon/changedetection.io.git
synced 2026-05-29 21:11:50 +00:00
4216ffeca9
Publish Python 🐍distribution 📦 to PyPI and TestPyPI / Build distribution 📦 (push) Has been cancelled
ChangeDetection.io App Test / lint-code (push) Has been cancelled
Publish Python 🐍distribution 📦 to PyPI and TestPyPI / Test the built 📦 package works basically. (push) Has been cancelled
Publish Python 🐍distribution 📦 to PyPI and TestPyPI / Publish Python 🐍 distribution 📦 to PyPI (push) Has been cancelled
ChangeDetection.io App Test / test-application-3-10 (push) Has been cancelled
ChangeDetection.io App Test / test-application-3-11 (push) Has been cancelled
ChangeDetection.io App Test / test-application-3-12 (push) Has been cancelled
ChangeDetection.io App Test / test-application-3-13 (push) Has been cancelled
136 lines
4.9 KiB
JavaScript
136 lines
4.9 KiB
JavaScript
$(document).ready(function () {
|
|
|
|
// Could be from 'watch' or system settings or other
|
|
function getNotificationData() {
|
|
data = {
|
|
notification_body: $('textarea.notification-body').val(),
|
|
notification_format: $('select.notification-format').val(),
|
|
notification_title: $('input.notification-title').val(),
|
|
notification_urls: $('textarea.notification-urls').val(),
|
|
tags: $('#tags').val(),
|
|
window_url: window.location.href,
|
|
}
|
|
return data
|
|
}
|
|
|
|
$('#add-email-helper').click(function (e) {
|
|
e.preventDefault();
|
|
email = prompt("Destination email");
|
|
if (email) {
|
|
var n = $(".notification-urls");
|
|
var p = email_notification_prefix;
|
|
$(n).val($.trim($(n).val()) + "\n" + email_notification_prefix + email);
|
|
}
|
|
});
|
|
|
|
$('#notifications-minitabs').miniTabs({
|
|
"Customise": "#notification-setup",
|
|
"Preview": "#notification-preview",
|
|
});
|
|
|
|
$(document).on('click', '[data-target="#notification-preview"]', function (e) {
|
|
var data = getNotificationData();
|
|
$('#notification-iframe-html-preview').contents().find('body').html('Loading...');
|
|
$.ajax({
|
|
type: "POST",
|
|
url: notification_test_render_preview_url,
|
|
data: data,
|
|
statusCode: {
|
|
400: function (data) {
|
|
$('#notification-test-log').show().toggleClass('error', true);
|
|
$("#notification-test-log>span").text(data.responseText);
|
|
},
|
|
}
|
|
}).done(function (data) {
|
|
$('#notification-test-log').toggleClass('error', false);
|
|
setPreview(data['result']);
|
|
})
|
|
|
|
});
|
|
|
|
function setPreview(data) {
|
|
const iframe = document.getElementById("notification-iframe-html-preview");
|
|
const isDark = document.documentElement.getAttribute('data-darkmode') === 'true';
|
|
|
|
// this should come back in the data objk
|
|
const isTextFormat = $('select.notification-format').val() === 'Text';
|
|
|
|
$('#notification-preview-title-text').text(data['title']);
|
|
$('#notification-div-text-preview').text(data['body']);
|
|
return;
|
|
iframe.srcdoc = `
|
|
<html data-darkmode="${isDark}">
|
|
<head>
|
|
<style>
|
|
:root {
|
|
--color-white: #fff;
|
|
--color-grey-200: #333;
|
|
--color-grey-800: #e0e0e0;
|
|
--color-black: #000;
|
|
--color-dark-red: #a00;
|
|
--color-light-red: #dd0000;
|
|
--color-background: var(--color-grey-800);
|
|
--color-text: var(--color-grey-200);
|
|
}
|
|
|
|
html[data-darkmode="true"] {
|
|
--color-background: var(--color-grey-200);
|
|
--color-text: var(--color-white);
|
|
}
|
|
body { /* no darkmode */
|
|
background-color: var(--color-background);
|
|
color: var(--color-text);
|
|
padding: 5px;
|
|
}
|
|
body.text-format {
|
|
font-family: monospace;
|
|
white-space: pre;
|
|
overflow-wrap: normal;
|
|
overflow-x: auto;
|
|
}
|
|
</style>
|
|
</head>
|
|
<body class="${isTextFormat ? 'text-format' : ''}">${data['body']}</body>
|
|
</html>`;
|
|
}
|
|
|
|
|
|
$('#send-test-notification').click(function (e) {
|
|
e.preventDefault();
|
|
|
|
var data = getNotificationData();
|
|
|
|
$('.notifications-wrapper .spinner').fadeIn();
|
|
$('#notification-test-log').show();
|
|
$.ajax({
|
|
type: "POST",
|
|
url: notification_base_url,
|
|
data: data,
|
|
statusCode: {
|
|
400: function (data) {
|
|
$("#notification-test-log").toggleClass('error', true);
|
|
$("#notification-test-log>span").text(data.responseText);
|
|
},
|
|
}
|
|
}).done(function (data) {
|
|
$("#notification-test-log").toggleClass('error', false);
|
|
$("#notification-test-log>span").text(data['status']);
|
|
|
|
}).fail(function (jqXHR, textStatus, errorThrown) {
|
|
// Handle connection refused or other errors
|
|
if (textStatus === "error" && errorThrown === "") {
|
|
console.error("Connection refused or server unreachable");
|
|
$("#notification-test-log>span").text("Error: Connection refused or server is unreachable.");
|
|
} else {
|
|
console.error("Error:", textStatus, errorThrown);
|
|
$("#notification-test-log>span").text("An error occurred: " + errorThrown);
|
|
}
|
|
}).always(function () {
|
|
$('.notifications-wrapper .spinner').hide();
|
|
})
|
|
});
|
|
|
|
|
|
});
|
|
|