51 lines
1.5 KiB
JavaScript
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));
|
|
}
|