feat: add new notification methods (telegram, webhooks, gotify) (#295)
This commit is contained in:
@@ -0,0 +1,212 @@
|
||||
function openNotificationsSettings(type) {
|
||||
// Get all .account-notification-section-settings elements
|
||||
var sections = document.querySelectorAll('.account-notification-section-settings');
|
||||
var targetSection = document.querySelector(`.account-notification-section-settings[data-type="${type}"]`);
|
||||
|
||||
// Remove the is-open class from all elements
|
||||
sections.forEach(function(section) {
|
||||
if (section !== targetSection) {
|
||||
section.classList.remove('is-open');
|
||||
}
|
||||
});
|
||||
|
||||
// Add the is-open class to the element with data-type=type
|
||||
|
||||
if (targetSection && !targetSection.classList.contains('is-open')) {
|
||||
targetSection.classList.add('is-open');
|
||||
} else {
|
||||
targetSection.classList.remove('is-open');
|
||||
}
|
||||
}
|
||||
|
||||
function makeFetchCall(url, data, button) {
|
||||
return fetch(url, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
},
|
||||
body: JSON.stringify(data),
|
||||
})
|
||||
.then(response => response.json())
|
||||
.then(data => {
|
||||
if (data.success) {
|
||||
showSuccessMessage(data.message);
|
||||
} else {
|
||||
showErrorMessage(data.message);
|
||||
}
|
||||
button.disabled = false;
|
||||
})
|
||||
.catch((error) => {
|
||||
showErrorMessage(error);
|
||||
button.disabled = false;
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
function saveNotifications() {
|
||||
const button = document.getElementById("saveNotifications");
|
||||
button.disabled = true;
|
||||
const days = document.querySelector('#days').value;
|
||||
|
||||
const url = 'endpoints/notifications/savenotificationsettings.php';
|
||||
const data = { days: days };
|
||||
|
||||
makeFetchCall(url, data, button);
|
||||
}
|
||||
|
||||
function saveNotificationsEmailButton() {
|
||||
const button = document.getElementById("saveNotificationsEmail");
|
||||
button.disabled = true;
|
||||
|
||||
const enabled = document.getElementById("emailenabled").checked ? 1 : 0;
|
||||
const smtpAddress = document.getElementById("smtpaddress").value;
|
||||
const smtpPort = document.getElementById("smtpport").value;
|
||||
const encryption = document.querySelector('input[name="encryption"]:checked').value;
|
||||
const smtpUsername = document.getElementById("smtpusername").value;
|
||||
const smtpPassword = document.getElementById("smtppassword").value;
|
||||
const fromEmail = document.getElementById("fromemail").value;
|
||||
|
||||
const data = {
|
||||
enabled: enabled,
|
||||
smtpaddress: smtpAddress,
|
||||
smtpport: smtpPort,
|
||||
encryption: encryption,
|
||||
smtpusername: smtpUsername,
|
||||
smtppassword: smtpPassword,
|
||||
fromemail: fromEmail
|
||||
};
|
||||
|
||||
makeFetchCall('endpoints/notifications/saveemailnotifications.php', data, button);
|
||||
}
|
||||
|
||||
function testNotificationEmailButton() {
|
||||
const button = document.getElementById("testNotificationsEmail");
|
||||
button.disabled = true;
|
||||
|
||||
const smtpAddress = document.getElementById("smtpaddress").value;
|
||||
const smtpPort = document.getElementById("smtpport").value;
|
||||
const encryption = document.querySelector('input[name="encryption"]:checked').value;
|
||||
const smtpUsername = document.getElementById("smtpusername").value;
|
||||
const smtpPassword = document.getElementById("smtppassword").value;
|
||||
const fromEmail = document.getElementById("fromemail").value;
|
||||
|
||||
const data = {
|
||||
smtpaddress: smtpAddress,
|
||||
smtpport: smtpPort,
|
||||
encryption: encryption,
|
||||
smtpusername: smtpUsername,
|
||||
smtppassword: smtpPassword,
|
||||
fromemail: fromEmail
|
||||
};
|
||||
|
||||
makeFetchCall('endpoints/notifications/testemailnotifications.php', data, button);
|
||||
}
|
||||
|
||||
function saveNotificationsWebhookButton() {
|
||||
const button = document.getElementById("saveNotificationsWebhook");
|
||||
button.disabled = true;
|
||||
|
||||
const enabled = document.getElementById("webhookenabled").checked ? 1 : 0;
|
||||
const webhook_url = document.getElementById("webhookurl").value;
|
||||
const headers = document.getElementById("webhookcustomheaders").value;
|
||||
const payload = document.getElementById("webhookpayload").value;
|
||||
|
||||
const data = {
|
||||
enabled: enabled,
|
||||
webhook_url: webhook_url,
|
||||
headers: headers,
|
||||
payload: payload
|
||||
};
|
||||
|
||||
makeFetchCall('endpoints/notifications/savewebhooknotifications.php', data, button);
|
||||
}
|
||||
|
||||
function testNotificationsWebhookButton() {
|
||||
const button = document.getElementById("testNotificationsWebhook");
|
||||
button.disabled = true;
|
||||
|
||||
const enabled = document.getElementById("webhookenabled").checked ? 1 : 0;
|
||||
const requestmethod = document.getElementById("webhookrequestmethod").value;
|
||||
const url = document.getElementById("webhookurl").value;
|
||||
const customheaders = document.getElementById("webhookcustomheaders").value;
|
||||
const payload = document.getElementById("webhookpayload").value;
|
||||
|
||||
const data = {
|
||||
enabled: enabled,
|
||||
requestmethod: requestmethod,
|
||||
url: url,
|
||||
customheaders: customheaders,
|
||||
payload: payload
|
||||
};
|
||||
|
||||
makeFetchCall('endpoints/notifications/testwebhooknotifications.php', data, button);
|
||||
}
|
||||
|
||||
function saveNotificationsTelegramButton() {
|
||||
const button = document.getElementById("saveNotificationsTelegram");
|
||||
button.disabled = true;
|
||||
|
||||
const enabled = document.getElementById("telegramenabled").checked ? 1 : 0;
|
||||
const chat_id = document.getElementById("telegramchatid").value;
|
||||
const bot_token = document.getElementById("telegrambottoken").value;
|
||||
|
||||
const data = {
|
||||
enabled: enabled,
|
||||
chat_id: chat_id,
|
||||
bot_token: bot_token
|
||||
};
|
||||
|
||||
makeFetchCall('endpoints/notifications/savetelegramnotifications.php', data, button);
|
||||
}
|
||||
|
||||
function testNotificationsTelegramButton() {
|
||||
const button = document.getElementById("testNotificationsTelegram");
|
||||
button.disabled = true;
|
||||
|
||||
const enabled = document.getElementById("telegramenabled").checked ? 1 : 0;
|
||||
const bottoken = document.getElementById("telegrambottoken").value;
|
||||
const chatid = document.getElementById("telegramchatid").value;
|
||||
|
||||
const data = {
|
||||
enabled: enabled,
|
||||
bottoken: bottoken,
|
||||
chatid: chatid
|
||||
};
|
||||
|
||||
makeFetchCall('endpoints/notifications/testtelegramnotifications.php', data, button);
|
||||
}
|
||||
|
||||
function saveNotificationsGotifyButton() {
|
||||
const button = document.getElementById("saveNotificationsGotify");
|
||||
button.disabled = true;
|
||||
|
||||
const enabled = document.getElementById("gotifyenabled").checked ? 1 : 0;
|
||||
const gotify_url = document.getElementById("gotifyurl").value;
|
||||
const token = document.getElementById("gotifytoken").value;
|
||||
|
||||
const data = {
|
||||
enabled: enabled,
|
||||
gotify_url: gotify_url,
|
||||
token: token
|
||||
};
|
||||
|
||||
makeFetchCall('endpoints/notifications/savegotifynotifications.php', data, button);
|
||||
}
|
||||
|
||||
function testNotificationsGotifyButton() {
|
||||
const button = document.getElementById("testNotificationsGotify");
|
||||
button.disabled = true;
|
||||
|
||||
const enabled = document.getElementById("gotifyenabled").checked ? 1 : 0;
|
||||
const gotify_url = document.getElementById("gotifyurl").value;
|
||||
const token = document.getElementById("gotifytoken").value;
|
||||
|
||||
const data = {
|
||||
enabled: enabled,
|
||||
gotify_url: gotify_url,
|
||||
token: token
|
||||
};
|
||||
|
||||
makeFetchCall('endpoints/notifications/testgotifynotifications.php', data, button);
|
||||
}
|
||||
|
||||
@@ -842,94 +842,6 @@ function addFixerKeyButton() {
|
||||
});
|
||||
}
|
||||
|
||||
function saveNotificationsButton() {
|
||||
const button = document.getElementById("saveNotifications");
|
||||
button.disabled = true;
|
||||
|
||||
const enabled = document.getElementById("notifications").checked ? 1 : 0;
|
||||
const days = document.getElementById("days").value;
|
||||
const smtpAddress = document.getElementById("smtpaddress").value;
|
||||
const smtpPort = document.getElementById("smtpport").value;
|
||||
const encryption = document.querySelector('input[name="encryption"]:checked').value;
|
||||
const smtpUsername = document.getElementById("smtpusername").value;
|
||||
const smtpPassword = document.getElementById("smtppassword").value;
|
||||
const fromEmail = document.getElementById("fromemail").value;
|
||||
|
||||
const data = {
|
||||
enabled: enabled,
|
||||
days: days,
|
||||
smtpaddress: smtpAddress,
|
||||
smtpport: smtpPort,
|
||||
encryption: encryption,
|
||||
smtpusername: smtpUsername,
|
||||
smtppassword: smtpPassword,
|
||||
fromemail: fromEmail
|
||||
};
|
||||
|
||||
fetch('endpoints/notifications/save.php', {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
},
|
||||
body: JSON.stringify(data)
|
||||
})
|
||||
.then(response => response.json())
|
||||
.then(data => {
|
||||
if (data.success) {
|
||||
showSuccessMessage(data.message);
|
||||
} else {
|
||||
showErrorMessage(data.errorMessage);
|
||||
}
|
||||
button.disabled = false;
|
||||
})
|
||||
.catch(error => {
|
||||
showErrorMessage(translate('error_saving_notification_data'));
|
||||
button.disabled = false;
|
||||
});
|
||||
}
|
||||
|
||||
function testNotificationButton() {
|
||||
const button = document.getElementById("testNotifications");
|
||||
button.disabled = true;
|
||||
|
||||
const smtpAddress = document.getElementById("smtpaddress").value;
|
||||
const smtpPort = document.getElementById("smtpport").value;
|
||||
const encryption = document.querySelector('input[name="encryption"]:checked').value;
|
||||
const smtpUsername = document.getElementById("smtpusername").value;
|
||||
const smtpPassword = document.getElementById("smtppassword").value;
|
||||
const fromEmail = document.getElementById("fromemail").value;
|
||||
|
||||
const data = {
|
||||
smtpaddress: smtpAddress,
|
||||
smtpport: smtpPort,
|
||||
encryption: encryption,
|
||||
smtpusername: smtpUsername,
|
||||
smtppassword: smtpPassword,
|
||||
fromemail: fromEmail
|
||||
};
|
||||
|
||||
fetch('endpoints/notifications/sendtestmail.php', {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
},
|
||||
body: JSON.stringify(data)
|
||||
})
|
||||
.then(response => response.json())
|
||||
.then(data => {
|
||||
if (data.success) {
|
||||
showSuccessMessage(data.message);
|
||||
} else {
|
||||
showErrorMessage(data.errorMessage);
|
||||
}
|
||||
button.disabled = false;
|
||||
})
|
||||
.catch(error => {
|
||||
showErrorMessage(translate('error_sending_notification'));
|
||||
button.disabled = false;
|
||||
});
|
||||
}
|
||||
|
||||
function switchTheme() {
|
||||
const darkThemeCss = document.querySelector("#dark-theme");
|
||||
darkThemeCss.disabled = !darkThemeCss.disabled;
|
||||
|
||||
Reference in New Issue
Block a user