43 lines
1.1 KiB
JavaScript
43 lines
1.1 KiB
JavaScript
// Load saved settings on page load
|
|
document.addEventListener('DOMContentLoaded', async () => {
|
|
const result = await chrome.storage.local.get('serverUrl');
|
|
if (result.serverUrl) {
|
|
document.getElementById('serverUrl').value = result.serverUrl;
|
|
}
|
|
});
|
|
|
|
// Save settings
|
|
document.getElementById('save').addEventListener('click', async () => {
|
|
const serverUrl = document.getElementById('serverUrl').value.trim();
|
|
const statusEl = document.getElementById('status');
|
|
|
|
// Validate URL
|
|
if (!serverUrl) {
|
|
statusEl.textContent = 'Please enter a server URL';
|
|
statusEl.className = 'status error';
|
|
return;
|
|
}
|
|
|
|
try {
|
|
new URL(serverUrl);
|
|
} catch {
|
|
statusEl.textContent = 'Please enter a valid URL';
|
|
statusEl.className = 'status error';
|
|
return;
|
|
}
|
|
|
|
// Remove trailing slash for consistency
|
|
const normalizedUrl = serverUrl.replace(/\/+$/, '');
|
|
|
|
// Save to storage
|
|
await chrome.storage.local.set({ serverUrl: normalizedUrl });
|
|
|
|
statusEl.textContent = 'Settings saved!';
|
|
statusEl.className = 'status success';
|
|
|
|
// Hide status after 2 seconds
|
|
setTimeout(() => {
|
|
statusEl.className = 'status';
|
|
}, 2000);
|
|
});
|