Merge branch 'dev' into feature/dashboardInfo
This commit is contained in:
commit
0834723c99
21 files changed
+1312
-495
No files matched your search
@@ -0,0 +1,27 @@
|
||||
const factButton = document.getElementById("factButton");
|
||||
const factMenu = document.getElementById("factMenu");
|
||||
const factInput = document.getElementById("factInput");
|
||||
const factSubmitButton = document.getElementById("factSubmitButton");
|
||||
|
||||
factButton.addEventListener("click", () => {
|
||||
factMenu.classList.toggle("hidden");
|
||||
});
|
||||
factSubmitButton.addEventListener("click", () => {
|
||||
fetch("/fact", {
|
||||
method: "POST",
|
||||
headers: {
|
||||
"Content-Type": "application/json",
|
||||
},
|
||||
body: JSON.stringify({
|
||||
fact: factInput.value,
|
||||
}),
|
||||
})
|
||||
.then(response => response.json())
|
||||
.then(data => {
|
||||
Swal.fire('Here is a fact!', data.fact, 'success');
|
||||
})
|
||||
.catch(error => {
|
||||
console.error("Error fetching fact:", error);
|
||||
Swal.fire('Error fetching fact', 'Please try again later', 'error');
|
||||
});
|
||||
});
|
||||
@@ -5,38 +5,47 @@ function getLocation() {
|
||||
}
|
||||
|
||||
function update(data) {
|
||||
document.getElementById("loading").style = "display: none";
|
||||
document.getElementById("currencyExchange").style = "display: flex";
|
||||
|
||||
document.getElementById("yourFlag").src = `/static/svgs/flags/${data.data.country}.svg`
|
||||
document.getElementById("yourFlag").alt = data.data.country;
|
||||
document.getElementById("flagTag").innerHTML = `(${data.data.country})`;
|
||||
|
||||
document.getElementById("exchangeFlag").src = `/static/svgs/flags/USD.svg`;
|
||||
document.getElementById("exchangeFlag").alt = "USD";
|
||||
document.getElementById("exFlagTag").innerHTML = "(USD)";
|
||||
if (data.data.message != "error") {
|
||||
document.getElementById("loading").style = "display: none";
|
||||
document.getElementById("currencyExchange").style = "display: flex";
|
||||
|
||||
document.getElementById("dropdown-country-button").value = data.data.toCurrencyRates["USD"];
|
||||
|
||||
updateExchange(document.getElementById("dropdown-country-button").value);
|
||||
|
||||
const dropdown = document.getElementById("dropdown");
|
||||
let countries = Object.keys(data.data.toCurrencyRates);
|
||||
|
||||
countries.forEach(item => {
|
||||
if (dropdown.querySelector(`button[value="${data.data.toCurrencyRates[item]}"]`)) {
|
||||
return;
|
||||
}
|
||||
|
||||
const listItem = document.createElement("li");
|
||||
listItem.innerHTML = `<button onclick="switchButton(this)" type="button" value="${data.data.toCurrencyRates[item]}" class="country Button inline-flex w-full px-4 py-2 text-sm text-gray-700 hover:bg-gray-100 dark:text-gray-200 dark:hover:bg-gray-600 dark:hover:text-white" role="menuitem">
|
||||
<span class="inline-flex items-center">
|
||||
<img src="/static/svgs/flags/${item}.svg" class="h-4 w-4 me-2" alt="${item}"> (${item})
|
||||
</span>
|
||||
</button>`;
|
||||
|
||||
dropdown.appendChild(listItem);
|
||||
});
|
||||
document.getElementById("yourFlag").src = `/static/svgs/flags/${data.data.country}.svg`
|
||||
document.getElementById("yourFlag").alt = data.data.country;
|
||||
document.getElementById("flagTag").innerHTML = `(${data.data.country})`;
|
||||
|
||||
document.getElementById("exchangeFlag").src = `/static/svgs/flags/USD.svg`;
|
||||
document.getElementById("exchangeFlag").alt = "USD";
|
||||
document.getElementById("exFlagTag").innerHTML = "(USD)";
|
||||
|
||||
document.getElementById("dropdown-country-button").value = data.data.toCurrencyRates["USD"];
|
||||
|
||||
updateExchange(document.getElementById("dropdown-country-button").value);
|
||||
|
||||
const dropdown = document.getElementById("dropdown");
|
||||
let countries = Object.keys(data.data.toCurrencyRates);
|
||||
|
||||
countries.forEach(item => {
|
||||
if (dropdown.querySelector(`button[value="${data.data.toCurrencyRates[item]}"]`)) {
|
||||
return;
|
||||
}
|
||||
|
||||
const listItem = document.createElement("li");
|
||||
listItem.innerHTML = `<button onclick="switchButton(this)" type="button" value="${data.data.toCurrencyRates[item]}" class="country Button inline-flex w-full px-4 py-2 text-sm text-gray-700 hover:bg-gray-100 dark:text-gray-200 dark:hover:bg-gray-600 dark:hover:text-white" role="menuitem">
|
||||
<span class="inline-flex items-center">
|
||||
<img src="/static/svgs/flags/${item}.svg" class="h-4 w-4 me-2" alt="${item}"> (${item})
|
||||
</span>
|
||||
</button>`;
|
||||
|
||||
dropdown.appendChild(listItem);
|
||||
});
|
||||
} else {
|
||||
document.getElementById("loading").style = "display: none";
|
||||
document.getElementById("exFrom").style = "display: none";
|
||||
document.getElementById("dropdown-country-button").style = "display: none";
|
||||
document.getElementById("currencyExchange").style = "display: flex";
|
||||
document.getElementById("exchange").innerHTML = "Country not supported";
|
||||
document.getElementById("exchange").className = "block rounded-lg text-center p-2.5 w-50 z-20 text-sm border bg-gray-700 border-gray-600 placeholder-gray-400 text-white focus:border-blue-500";
|
||||
}
|
||||
}
|
||||
|
||||
function switchButton(clickedButton) {
|
||||
@@ -60,10 +69,16 @@ async function getLatestExchange(position) {
|
||||
let lon = position.coords.longitude;
|
||||
const res = await fetch(`/exRates/${lat}/${lon}`);
|
||||
const data = await res.json();
|
||||
|
||||
|
||||
update(data);
|
||||
}
|
||||
|
||||
function error(err) {
|
||||
console.error("Geolocation error: ", err);
|
||||
const data = {
|
||||
data: {
|
||||
message: "error"
|
||||
}
|
||||
}
|
||||
|
||||
update(data);
|
||||
}
|
||||
@@ -11,6 +11,7 @@ function lockAccount() {
|
||||
document.getElementById("password").disabled = true;
|
||||
document.getElementById("repassword").disabled = true;
|
||||
document.getElementById("save-account").classList.add("cursor-not-allowed");
|
||||
document.getElementById("save-account").classList.remove("cursor-pointer");
|
||||
|
||||
document.getElementById("edit-account").innerHTML = "Edit";
|
||||
document.getElementById("edit-account").onclick = unlockAccount;
|
||||
@@ -30,7 +31,12 @@ function lockPersonal() {
|
||||
document.getElementById("ms-married").disabled = true;
|
||||
document.getElementById("ms-divorced").disabled = true;
|
||||
document.getElementById("ms-widowed").disabled = true;
|
||||
document.getElementById("income").disabled = true;
|
||||
document.getElementById("expenses").disabled = true;
|
||||
document.getElementById("assets").disabled = true;
|
||||
document.getElementById("liabilities").disabled = true;
|
||||
document.getElementById("save-personal").classList.add("cursor-not-allowed");
|
||||
document.getElementById("save-personal").classList.remove("cursor-pointer");
|
||||
|
||||
document.getElementById("edit-personal").innerHTML = "Edit";
|
||||
document.getElementById("edit-personal").onclick = unlockPersonal;
|
||||
@@ -42,11 +48,12 @@ function lockPersonal() {
|
||||
*/
|
||||
function unlockAccount() {
|
||||
document.getElementById("save-account").disabled = false;
|
||||
// document.getElementById("email").disabled = false;
|
||||
document.getElementById("email").disabled = false;
|
||||
document.getElementById("name").disabled = false;
|
||||
document.getElementById("password").disabled = false;
|
||||
document.getElementById("repassword").disabled = false;
|
||||
document.getElementById("save-account").classList.remove("cursor-not-allowed");
|
||||
document.getElementById("save-account").classList.add("cursor-pointer");
|
||||
|
||||
document.getElementById("edit-account").innerHTML = "Cancel changes";
|
||||
document.getElementById("edit-account").onclick = lockAccount;
|
||||
@@ -64,7 +71,12 @@ function unlockPersonal() {
|
||||
document.getElementById("ms-married").disabled = false;
|
||||
document.getElementById("ms-divorced").disabled = false;
|
||||
document.getElementById("ms-widowed").disabled = false;
|
||||
document.getElementById("income").disabled = false;
|
||||
document.getElementById("expenses").disabled = false;
|
||||
document.getElementById("assets").disabled = false;
|
||||
document.getElementById("liabilities").disabled = false;
|
||||
document.getElementById("save-personal").classList.remove("cursor-not-allowed");
|
||||
document.getElementById("save-personal").classList.add("cursor-pointer");
|
||||
|
||||
document.getElementById("edit-personal").innerHTML = "Cancel changes";
|
||||
document.getElementById("edit-personal").onclick = lockPersonal;
|
||||
@@ -72,4 +84,4 @@ function unlockPersonal() {
|
||||
|
||||
// On page load, ensure forms are locked and reset
|
||||
lockAccount();
|
||||
// lockPersonal();
|
||||
lockPersonal();
|
||||
Reference in new issue
Block a user