fc3g(ext): options page — FC URL + API key form with test-connection button
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
document.addEventListener('DOMContentLoaded', async () => {
|
||||
const stored = await browser.storage.local.get(['apiUrl', 'apiKey']);
|
||||
document.getElementById('api-url').value = stored.apiUrl || '';
|
||||
document.getElementById('api-key').value = stored.apiKey || '';
|
||||
|
||||
document.getElementById('save-btn').addEventListener('click', save);
|
||||
document.getElementById('test-btn').addEventListener('click', test);
|
||||
});
|
||||
|
||||
async function save() {
|
||||
const apiUrl = document.getElementById('api-url').value.trim().replace(/\/+$/, '');
|
||||
const apiKey = document.getElementById('api-key').value.trim();
|
||||
if (!apiUrl || !apiKey) {
|
||||
showStatus('Both fields are required.', 'err');
|
||||
return;
|
||||
}
|
||||
await browser.storage.local.set({ apiUrl, apiKey });
|
||||
await browser.storage.local.remove(['lastConnectionTest', 'lastConnectionStatus']);
|
||||
showStatus('Saved.', 'ok');
|
||||
}
|
||||
|
||||
async function test() {
|
||||
const apiUrl = document.getElementById('api-url').value.trim().replace(/\/+$/, '');
|
||||
const apiKey = document.getElementById('api-key').value.trim();
|
||||
if (!apiUrl || !apiKey) {
|
||||
showStatus('Fill both fields first.', 'err');
|
||||
return;
|
||||
}
|
||||
try {
|
||||
const r = await fetch(`${apiUrl}/credentials`, {
|
||||
method: 'GET',
|
||||
headers: { 'X-Extension-Key': apiKey },
|
||||
});
|
||||
if (r.ok) showStatus(`Connected — HTTP ${r.status}.`, 'ok');
|
||||
else showStatus(`HTTP ${r.status}: ${r.statusText}`, 'err');
|
||||
} catch (e) {
|
||||
showStatus(`Cannot reach ${apiUrl}: ${e.message}`, 'err');
|
||||
}
|
||||
}
|
||||
|
||||
function showStatus(text, kind) {
|
||||
const el = document.getElementById('status');
|
||||
el.textContent = text;
|
||||
el.className = `status ${kind}`;
|
||||
el.style.display = 'block';
|
||||
}
|
||||
Reference in New Issue
Block a user