Add translation system (#85)
This commit is contained in:
@@ -15,7 +15,7 @@ function resetForm() {
|
||||
const id = document.querySelector("#id");
|
||||
id.value = "";
|
||||
const formTitle = document.querySelector("#form-title");
|
||||
formTitle.textContent = "Add subscription";
|
||||
formTitle.textContent = translate('add_subscription');
|
||||
const logo = document.querySelector("#form-logo");
|
||||
logo.src = "";
|
||||
logo.style = 'display: none';
|
||||
@@ -35,7 +35,7 @@ function resetForm() {
|
||||
|
||||
function fillEditFormFields(subscription) {
|
||||
const formTitle = document.querySelector("#form-title");
|
||||
formTitle.textContent = "Edit subscription";
|
||||
formTitle.textContent = translate('edit_subscription');
|
||||
const logo = document.querySelector("#form-logo");
|
||||
const defaultLogo = window.theme && window.theme == "light" ? "images/wallos.png" : "images/walloswhite.png";
|
||||
const logoFile = subscription.logo !== null ? "images/uploads/logos/" + subscription.logo : defaultLogo;
|
||||
@@ -91,19 +91,19 @@ function openEditSubscription(event, id) {
|
||||
if (response.ok) {
|
||||
return response.json();
|
||||
} else {
|
||||
showErrorMessage("Failed to load subscription");
|
||||
showErrorMessage(translate('failed_to_load_subscription'));
|
||||
}
|
||||
})
|
||||
.then((data) => {
|
||||
if (data.error || data === "Error") {
|
||||
showErrorMessage("Failed to load subscription");
|
||||
showErrorMessage(translate('failed_to_load_subscription'));
|
||||
} else {
|
||||
const subscription = data;
|
||||
fillEditFormFields(subscription);
|
||||
}
|
||||
})
|
||||
.catch((error) => {
|
||||
showErrorMessage("Failed to load subscription");
|
||||
showErrorMessage(translate('failed_to_load_subscription'));
|
||||
});
|
||||
}
|
||||
|
||||
@@ -145,11 +145,11 @@ function deleteSubscription(id) {
|
||||
})
|
||||
.then(response => {
|
||||
if (response.ok) {
|
||||
showSuccessMessage("Subscription deleted");
|
||||
showSuccessMessage(translate('subscription_deleted'));
|
||||
fetchSubscriptions();
|
||||
closeAddSubscription();
|
||||
} else {
|
||||
alert("Error deleting the subscription");
|
||||
alert(translate('error_deleting_subscription'));
|
||||
}
|
||||
})
|
||||
.catch(error => {
|
||||
@@ -188,7 +188,7 @@ function searchLogo() {
|
||||
}
|
||||
})
|
||||
.catch(error => {
|
||||
console.error("Error fetching image results:", error);
|
||||
console.error(translate('error_fetching_image_results'), error);
|
||||
});
|
||||
} else {
|
||||
nameInput.focus();
|
||||
@@ -243,7 +243,7 @@ function fetchSubscriptions() {
|
||||
}
|
||||
})
|
||||
.catch(error => {
|
||||
console.error("Error reloading subscriptions:", error);
|
||||
console.error(translate('error_reloading_subscription'), error);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
let i18n = {
|
||||
// Dashboard
|
||||
'error_reloading_subscription': 'Error reloading subscription:',
|
||||
'error_fetching_image_results': 'Error fetching image results:',
|
||||
'subscription_deleted': 'Subscription deleted',
|
||||
'error_deleting_subscription': "Error deleting subscription",
|
||||
'failed_to_load_subscription': "Failed to load subscription",
|
||||
'edit_subscription': "Edit subscription",
|
||||
'add_subscription': "Add subscription",
|
||||
// Settings
|
||||
'network_response_error': "Network response was not ok",
|
||||
'failed_add_member': 'Failed to add member',
|
||||
'member': 'Member',
|
||||
'save_member': 'Save member',
|
||||
'delete_member': 'Delete member',
|
||||
'failed_remove_member': 'Failed to remove member',
|
||||
'failed_save_member': 'Failed to sabe member',
|
||||
'failed_add_category': 'Failed to add categpry',
|
||||
'category': 'Category',
|
||||
'save_category': 'Save category',
|
||||
'delete_category': 'Delete category',
|
||||
'failed_remove_category': 'Failed to remove category',
|
||||
'currency': 'Currency',
|
||||
'currency_code': 'Currency code',
|
||||
'save_currency': 'Save currency',
|
||||
'delete_currency': 'Delete currency',
|
||||
'failed_remove_currency': 'Failed to remove currency',
|
||||
'failed_save_currency': 'Failed to save currency',
|
||||
'cant_disable_payment_in_use': 'Can\'t disable payment in use',
|
||||
'failed_save_payment_method': 'Failed to sabe payment method',
|
||||
'unknown_error': 'Unknown error, please try again.',
|
||||
'error_saving_notification_data': 'Error saving notification data',
|
||||
'error_sending_notification': 'Error sending notification',
|
||||
};
|
||||
@@ -0,0 +1,7 @@
|
||||
function translate(key) {
|
||||
if (i18n[key]) {
|
||||
return i18n[key];
|
||||
} else {
|
||||
return "[Translation Missing]";
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
let i18n = {
|
||||
// Dashboard
|
||||
'error_reloading_subscription': 'Erro ao carregar a subscrição:',
|
||||
'error_fetching_image_results': 'Erro ao obter imagens:',
|
||||
'subscription_deleted': 'Subscrição eliminada',
|
||||
'error_deleting_subscription': 'Erro ao eliminar a subscrição',
|
||||
'failed_to_load_subscription': 'Falha ao carregar a subscrição',
|
||||
'edit_subscription': 'Editar subscrição',
|
||||
'add_subscription': 'Adicionar subscrição',
|
||||
// Settings
|
||||
'network_response_error': 'Erro de resposta de rede',
|
||||
'failed_add_member': 'Falha ao adicionar membro',
|
||||
'member': 'Membro',
|
||||
'save_member': 'Guardar membro',
|
||||
'delete_member': 'Remover membro',
|
||||
'failed_remove_member': 'Erro ao remover membro',
|
||||
'failed_save_member': 'Erro ao guardar membro',
|
||||
'failed_add_category': 'Erro ao adicionar categoria',
|
||||
'category': 'Categoria',
|
||||
'save_category': 'Guardar categoria',
|
||||
'delete_category': 'Remover categoria',
|
||||
'failed_remove_category': 'Erro ao remover categoria',
|
||||
'currency': 'Moeda',
|
||||
'currency_code': 'Código de moeda',
|
||||
'save_currency': 'Guardar moeda',
|
||||
'delete_currency': 'Remover moeda',
|
||||
'failed_remove_currency': 'Erro ao remover moeda',
|
||||
'failed_save_currency': 'Erro ao guardar moeda',
|
||||
'cant_disable_payment_in_use': 'Não é possível desativar pagamento em uso',
|
||||
'failed_save_payment_method': 'Erro ao guardar método de pagamento',
|
||||
'unknown_error': 'Erro desconhecido, por favor, tente novamente.',
|
||||
'error_saving_notification_data': 'Erro ao guardar dados de notificação',
|
||||
'error_sending_notification': 'Erro ao enviar notificação',
|
||||
};
|
||||
@@ -0,0 +1,58 @@
|
||||
function setCookie(name, value, days) {
|
||||
var expires = "";
|
||||
if (days) {
|
||||
var date = new Date();
|
||||
date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
|
||||
expires = "; expires=" + date.toUTCString();
|
||||
}
|
||||
document.cookie = name + "=" + value + expires + "; path=/";
|
||||
}
|
||||
|
||||
function storeFormFieldValue(fieldId) {
|
||||
var fieldElement = document.getElementById(fieldId);
|
||||
if (fieldElement) {
|
||||
localStorage.setItem(fieldId, fieldElement.value);
|
||||
}
|
||||
}
|
||||
|
||||
function storeFormFields() {
|
||||
storeFormFieldValue('username');
|
||||
storeFormFieldValue('email');
|
||||
storeFormFieldValue('password');
|
||||
storeFormFieldValue('confirm_password');
|
||||
storeFormFieldValue('currency');
|
||||
}
|
||||
|
||||
function restoreFormFieldValue(fieldId) {
|
||||
var fieldElement = document.getElementById(fieldId);
|
||||
if (fieldElement) {
|
||||
fieldElement.value = localStorage.getItem(fieldId) || '';
|
||||
}
|
||||
}
|
||||
|
||||
function restoreFormFields() {
|
||||
restoreFormFieldValue('username');
|
||||
restoreFormFieldValue('email');
|
||||
restoreFormFieldValue('password');
|
||||
restoreFormFieldValue('confirm_password');
|
||||
restoreFormFieldValue('currency');
|
||||
}
|
||||
|
||||
function removeFromStorage() {
|
||||
localStorage.removeItem('username');
|
||||
localStorage.removeItem('email');
|
||||
localStorage.removeItem('password');
|
||||
localStorage.removeItem('confirm_password');
|
||||
localStorage.removeItem('currency');
|
||||
}
|
||||
|
||||
function changeLanguage(selectedLanguage) {
|
||||
storeFormFields();
|
||||
setCookie("language", selectedLanguage, 365);
|
||||
location.reload();
|
||||
}
|
||||
|
||||
window.onload = function () {
|
||||
restoreFormFields();
|
||||
removeFromStorage();
|
||||
};
|
||||
+56
-56
@@ -24,8 +24,8 @@ function addMemberButton(memberId) {
|
||||
fetch(url)
|
||||
.then(response => {
|
||||
if (!response.ok) {
|
||||
throw new Error('Network response was not ok');
|
||||
showErrorMessage("Failed to add member");
|
||||
throw new Error(translate('network_response_error'));
|
||||
showErrorMessage(translate('failed_add_member'));
|
||||
}
|
||||
return response.json();
|
||||
})
|
||||
@@ -39,9 +39,9 @@ function addMemberButton(memberId) {
|
||||
|
||||
let input = document.createElement("input");
|
||||
input.type = "text";
|
||||
input.placeholder = "Member";
|
||||
input.placeholder = translate('member');
|
||||
input.name = "member";
|
||||
input.value = "Member";
|
||||
input.value = translate('member');
|
||||
|
||||
let editLink = document.createElement("button");
|
||||
editLink.className = "image-button medium"
|
||||
@@ -52,7 +52,7 @@ function addMemberButton(memberId) {
|
||||
|
||||
let editImage = document.createElement("img");
|
||||
editImage.src = "images/siteicons/save.png";
|
||||
editImage.title = "Save Member";
|
||||
editImage.title = translate('save_member');
|
||||
|
||||
editLink.appendChild(editImage);
|
||||
|
||||
@@ -65,7 +65,7 @@ function addMemberButton(memberId) {
|
||||
|
||||
let deleteImage = document.createElement("img");
|
||||
deleteImage.src = "images/siteicons/delete.png";
|
||||
deleteImage.title = "Delete Member";
|
||||
deleteImage.title = translate('delete_member');
|
||||
|
||||
deleteLink.appendChild(deleteImage);
|
||||
|
||||
@@ -80,7 +80,7 @@ function addMemberButton(memberId) {
|
||||
document.getElementById("addMember").disabled = false;
|
||||
})
|
||||
.catch(error => {
|
||||
showErrorMessage("Failed to add member");
|
||||
showErrorMessage(translate('failed_add_member'));
|
||||
document.getElementById("addMember").disabled = false;
|
||||
});
|
||||
|
||||
@@ -91,7 +91,7 @@ function removeMember(memberId) {
|
||||
fetch(url)
|
||||
.then(response => {
|
||||
if (!response.ok) {
|
||||
throw new Error('Network response was not ok');
|
||||
throw new Error(translate('network_response_error'));
|
||||
}
|
||||
return response.json();
|
||||
})
|
||||
@@ -101,13 +101,13 @@ function removeMember(memberId) {
|
||||
if (divToRemove) {
|
||||
divToRemove.parentNode.removeChild(divToRemove);
|
||||
}
|
||||
showSuccessMessage("Member removed");
|
||||
showSuccessMessage(responseData.message);
|
||||
} else {
|
||||
showErrorMessage(responseData.errorMessage || "Failed to remove member");
|
||||
showErrorMessage(responseData.errorMessage || translate('failed_remove_member'));
|
||||
}
|
||||
})
|
||||
.catch(error => {
|
||||
showErrorMessage("Failed to remove member");
|
||||
showErrorMessage(translate('failed_remove_member'));
|
||||
});
|
||||
}
|
||||
|
||||
@@ -124,19 +124,19 @@ function editMember(memberId) {
|
||||
.then(response => {
|
||||
saveButton.classList.remove("disabled");
|
||||
if (!response.ok) {
|
||||
showErrorMessage("Failed to save member");
|
||||
showErrorMessage(translate('failed_save_member'));
|
||||
}
|
||||
return response.json();
|
||||
})
|
||||
.then(responseData => {
|
||||
if (responseData.success) {
|
||||
showSuccessMessage("Member saved");
|
||||
showSuccessMessage(responseData.message);
|
||||
} else {
|
||||
showErrorMessage(responseData.errorMessage || "Failed to save member");
|
||||
showErrorMessage(responseData.errorMessage || translate('failed_save_member'));
|
||||
}
|
||||
})
|
||||
.catch(error => {
|
||||
showErrorMessage("Failed to save member");
|
||||
showErrorMessage(translate('failed_save_member'));
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -147,8 +147,8 @@ function addCategoryButton(categoryId) {
|
||||
fetch(url)
|
||||
.then(response => {
|
||||
if (!response.ok) {
|
||||
throw new Error('Network response was not ok');
|
||||
showErrorMessage("Failed to add category");
|
||||
throw new Error(translate('network_response_error'));
|
||||
showErrorMessage(translate('failed_add_category'));
|
||||
}
|
||||
return response.json();
|
||||
})
|
||||
@@ -162,9 +162,9 @@ function addCategoryButton(categoryId) {
|
||||
|
||||
let input = document.createElement("input");
|
||||
input.type = "text";
|
||||
input.placeholder = "Category";
|
||||
input.placeholder = translate('category');
|
||||
input.name = "category";
|
||||
input.value = "Category";
|
||||
input.value = translate('category');
|
||||
|
||||
let editLink = document.createElement("button");
|
||||
editLink.className = "image-button medium"
|
||||
@@ -175,7 +175,7 @@ function addCategoryButton(categoryId) {
|
||||
|
||||
let editImage = document.createElement("img");
|
||||
editImage.src = "images/siteicons/save.png";
|
||||
editImage.title = "Save Category";
|
||||
editImage.title = translate('save_category');
|
||||
|
||||
editLink.appendChild(editImage);
|
||||
|
||||
@@ -188,7 +188,7 @@ function addCategoryButton(categoryId) {
|
||||
|
||||
let deleteImage = document.createElement("img");
|
||||
deleteImage.src = "images/siteicons/delete.png";
|
||||
deleteImage.title = "Delete Category";
|
||||
deleteImage.title = translate('delete_category');
|
||||
|
||||
deleteLink.appendChild(deleteImage);
|
||||
|
||||
@@ -203,7 +203,7 @@ function addCategoryButton(categoryId) {
|
||||
document.getElementById("addCategory").disabled = false;
|
||||
})
|
||||
.catch(error => {
|
||||
showErrorMessage("Failed to add category");
|
||||
showErrorMessage(translate('failed_add_category'));
|
||||
document.getElementById("addCategory").disabled = false;
|
||||
});
|
||||
|
||||
@@ -214,7 +214,7 @@ function removeCategory(categoryId) {
|
||||
fetch(url)
|
||||
.then(response => {
|
||||
if (!response.ok) {
|
||||
throw new Error('Network response was not ok');
|
||||
throw new Error(translate('network_response_error'));
|
||||
}
|
||||
return response.json();
|
||||
})
|
||||
@@ -224,13 +224,13 @@ function removeCategory(categoryId) {
|
||||
if (divToRemove) {
|
||||
divToRemove.parentNode.removeChild(divToRemove);
|
||||
}
|
||||
showSuccessMessage("Category removed");
|
||||
showSuccessMessage(responseData.message);
|
||||
} else {
|
||||
showErrorMessage(responseData.errorMessage || "Failed to remove category");
|
||||
showErrorMessage(responseData.errorMessage || translate('failed_remove_category'));
|
||||
}
|
||||
})
|
||||
.catch(error => {
|
||||
showErrorMessage("Failed to remove category");
|
||||
showErrorMessage(translate('failed_remove_category'));
|
||||
});
|
||||
}
|
||||
|
||||
@@ -247,19 +247,19 @@ function editCategory(categoryId) {
|
||||
.then(response => {
|
||||
saveButton.classList.remove("disabled");
|
||||
if (!response.ok) {
|
||||
showErrorMessage("Failed to save category");
|
||||
showErrorMessage(translate('failed_save_category'));
|
||||
}
|
||||
return response.json();
|
||||
})
|
||||
.then(responseData => {
|
||||
if (responseData.success) {
|
||||
showSuccessMessage("Category saved");
|
||||
showSuccessMessage(responseData.message);
|
||||
} else {
|
||||
showErrorMessage(responseData.errorMessage || "Failed to save category");
|
||||
showErrorMessage(responseData.errorMessage || translate('failed_save_category'));
|
||||
}
|
||||
})
|
||||
.catch(error => {
|
||||
showErrorMessage("Failed to save category");
|
||||
showErrorMessage(translate('failed_save_category'));
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -270,7 +270,7 @@ function addCurrencyButton(currencyId) {
|
||||
fetch(url)
|
||||
.then(response => {
|
||||
if (!response.ok) {
|
||||
throw new Error('Network response was not ok');
|
||||
throw new Error(translate('network_response_error'));
|
||||
showErrorMessage(response.text());
|
||||
}
|
||||
return response.text();
|
||||
@@ -292,13 +292,13 @@ function addCurrencyButton(currencyId) {
|
||||
|
||||
let inputName = document.createElement("input");
|
||||
inputName.type = "text";
|
||||
inputName.placeholder = "Currency";
|
||||
inputName.placeholder = translate('currency');
|
||||
inputName.name = "currency";
|
||||
inputName.value = "Currency";
|
||||
inputName.value = translate('currency');
|
||||
|
||||
let inputCode = document.createElement("input");
|
||||
inputCode.type = "text";
|
||||
inputCode.placeholder = "Currency Code";
|
||||
inputCode.placeholder = translate('currency_code');
|
||||
inputCode.name = "code";
|
||||
inputCode.value = "CODE";
|
||||
|
||||
@@ -311,7 +311,7 @@ function addCurrencyButton(currencyId) {
|
||||
|
||||
let editImage = document.createElement("img");
|
||||
editImage.src = "images/siteicons/save.png";
|
||||
editImage.title = "Save Currency";
|
||||
editImage.title = translate('save_currency');
|
||||
|
||||
editLink.appendChild(editImage);
|
||||
|
||||
@@ -324,7 +324,7 @@ function addCurrencyButton(currencyId) {
|
||||
|
||||
let deleteImage = document.createElement("img");
|
||||
deleteImage.src = "images/siteicons/delete.png";
|
||||
deleteImage.title = "Delete Currency";
|
||||
deleteImage.title = translate('delete_currency');
|
||||
|
||||
deleteLink.appendChild(deleteImage);
|
||||
|
||||
@@ -352,23 +352,23 @@ function removeCurrency(currencyId) {
|
||||
fetch(url)
|
||||
.then(response => {
|
||||
if (!response.ok) {
|
||||
throw new Error("There was an error removing the currency");
|
||||
throw new Error(translate('network_response_error'));
|
||||
}
|
||||
return response.json();
|
||||
})
|
||||
.then(data => {
|
||||
if (data.success) {
|
||||
showSuccessMessage("Currency removed");
|
||||
showSuccessMessage(data.message);
|
||||
let divToRemove = document.querySelector(`[data-currencyid="${currencyId}"]`);
|
||||
if (divToRemove) {
|
||||
divToRemove.parentNode.removeChild(divToRemove);
|
||||
}
|
||||
} else {
|
||||
showErrorMessage(data.message || "Failed to remove currency");
|
||||
showErrorMessage(data.message || translate('failed_remove_currency'));
|
||||
}
|
||||
})
|
||||
.catch(error => {
|
||||
showErrorMessage(error.message || "There was an error removing the currency");
|
||||
showErrorMessage(error.message || translate('failed_remove_currency'));
|
||||
});
|
||||
}
|
||||
|
||||
@@ -388,7 +388,7 @@ function editCurrency(currencyId) {
|
||||
fetch(url)
|
||||
.then(response => {
|
||||
if (!response.ok) {
|
||||
throw new Error("There was an error saving the currency");
|
||||
throw new Error(translate('network_response_error'));
|
||||
}
|
||||
return response.json();
|
||||
})
|
||||
@@ -396,17 +396,17 @@ function editCurrency(currencyId) {
|
||||
if (data.success) {
|
||||
saveButton.classList.remove("disabled");
|
||||
saveButton.disabled = false;
|
||||
showSuccessMessage(currencyName + " was saved");
|
||||
showSuccessMessage(decodeURI(data.message));
|
||||
} else {
|
||||
saveButton.classList.remove("disabled");
|
||||
saveButton.disabled = false;
|
||||
showErrorMessage(data.message || "Failed to save currency");
|
||||
showErrorMessage(data.message || translate('failed_save_currency'));
|
||||
}
|
||||
})
|
||||
.catch(error => {
|
||||
saveButton.classList.remove("disabled");
|
||||
saveButton.disabled = false;
|
||||
showErrorMessage(error.message || "There was an error saving the currency");
|
||||
showErrorMessage(error.message || translate('failed_save_currency'));
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -415,7 +415,7 @@ function togglePayment(paymentId) {
|
||||
const element = document.querySelector(`div[data-paymentid="${paymentId}"]`);
|
||||
|
||||
if (element.dataset.inUse === 'yes') {
|
||||
return showErrorMessage('Can\'t delete used payment method');
|
||||
return showErrorMessage(translate(cant_disable_payment_in_use));
|
||||
}
|
||||
|
||||
const newEnabledState = element.dataset.enabled === '1' ? '0' : '1';
|
||||
@@ -425,18 +425,18 @@ function togglePayment(paymentId) {
|
||||
|
||||
fetch(url).then(response => {
|
||||
if (!response.ok) {
|
||||
throw new Error("There was an error saving the payments method");
|
||||
throw new Error(translate('network_response_error'));
|
||||
}
|
||||
return response.json();
|
||||
}).then(data => {
|
||||
if (data.success) {
|
||||
element.dataset.enabled = newEnabledState;
|
||||
showSuccessMessage(`${paymentMethodName} was saved`);
|
||||
showSuccessMessage(`${paymentMethodName} ${data.message}`);
|
||||
} else {
|
||||
showErrorMessage(data.message || "Failed to save payments method");
|
||||
showErrorMessage(data.message || translate('failed_save_payment_method'));
|
||||
}
|
||||
}).catch(error => {
|
||||
showErrorMessage(error.message || "There was an error saving the payments method");
|
||||
showErrorMessage(error.message || translate('failed_save_payment_method'));
|
||||
});
|
||||
}
|
||||
|
||||
@@ -457,14 +457,14 @@ document.addEventListener('DOMContentLoaded', function() {
|
||||
document.getElementById("avatar").src = "images/avatars/" + newAvatar + ".svg";
|
||||
var newUsername = document.getElementById("username").value;
|
||||
document.getElementById("user").textContent = newUsername;
|
||||
showSuccessMessage("User details saved");
|
||||
showSuccessMessage(data.message);
|
||||
} else {
|
||||
showErrorMessage(data.errorMessage);
|
||||
}
|
||||
document.getElementById("userSubmit").disabled = false;
|
||||
})
|
||||
.catch(error => {
|
||||
showErrorMessage("Unknown error, please try again");
|
||||
showErrorMessage(translate('unknown_error'));
|
||||
});
|
||||
});
|
||||
|
||||
@@ -484,7 +484,7 @@ function addFixerKeyButton() {
|
||||
.then(response => response.json())
|
||||
.then(data => {
|
||||
if (data.success) {
|
||||
showSuccessMessage("API key saved successfully");
|
||||
showSuccessMessage(data.message);
|
||||
document.getElementById("addFixerKey").disabled = false;
|
||||
} else {
|
||||
showErrorMessage(data.message);
|
||||
@@ -529,14 +529,14 @@ function saveNotificationsButton() {
|
||||
.then(response => response.json())
|
||||
.then(data => {
|
||||
if (data.success) {
|
||||
showSuccessMessage("Notification settings saved successfully.");
|
||||
showSuccessMessage(data.message);
|
||||
} else {
|
||||
showErrorMessage(data.errorMessage);
|
||||
}
|
||||
button.disabled = false;
|
||||
})
|
||||
.catch(error => {
|
||||
showErrorMessage("Error saving notification data");
|
||||
showErrorMessage(translate('error_saving_notification_data'));
|
||||
button.disabled = false;
|
||||
});
|
||||
}
|
||||
@@ -569,14 +569,14 @@ function testNotificationButton() {
|
||||
.then(response => response.json())
|
||||
.then(data => {
|
||||
if (data.success) {
|
||||
showSuccessMessage("Notification sent successfully.");
|
||||
showSuccessMessage(data.message);
|
||||
} else {
|
||||
showErrorMessage(data.errorMessage);
|
||||
}
|
||||
button.disabled = false;
|
||||
})
|
||||
.catch(error => {
|
||||
showErrorMessage("Error sending notification");
|
||||
showErrorMessage(translate('error_sending_notification'));
|
||||
button.disabled = false;
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user