zkt25/sk1/frontend/script.js
2025-04-28 23:20:13 +02:00

51 lines
1.5 KiB
JavaScript

const display = document.getElementById('display');
const buttons = document.querySelectorAll('#buttons button');
const historyList = document.getElementById('history-list');
const historyBtn = document.getElementById('history');
let expression = '';
buttons.forEach(button => {
button.addEventListener('click', () => {
if (button.id === 'clear') {
expression = '';
display.value = '';
} else if (button.id === 'equals') {
try {
const result = eval(expression);
display.value = result;
sendToBackend(expression, result);
expression = result.toString();
} catch (e) {
display.value = 'Error';
expression = '';
}
} else {
expression += button.textContent;
display.value = expression;
}
});
});
historyBtn.addEventListener('click', () => {
fetch('http://aliscloudwork.tech/history') // Kubernetes DNS for backend service
.then(res => res.json())
.then(data => {
historyList.innerHTML = '';
data.forEach(item => {
const li = document.createElement('li');
li.textContent = `${item.expression} = ${item.result}`;
historyList.appendChild(li);
});
})
.catch(err => alert('Failed to load history'));
});
function sendToBackend(expr, res) {
fetch('http://aliscloudwork.tech/save', {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({expression: expr, result: res})
}).catch(err => console.log('Failed to save:', err));
}