wallos/scripts/notifications.js

213 lines
7.2 KiB
JavaScript

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);
}