ScuttleBot

ui: enable LLM backend rename via edit form The name field was disabled on edit. Now enabled — if the name changes, the UI deletes the old backend and creates a new one (the API treats name as immutable on PUT, so rename requires delete+create).

lmata 2026-04-03 19:08 trunk
Commit 3456dc42b864a492008cc1158d396f74ab17f719d09fc35c0bc49814fc953c06
1 file changed +6 -2
--- internal/api/ui/index.html
+++ internal/api/ui/index.html
@@ -2253,11 +2253,11 @@
22532253
22542254
_editingBackend = name;
22552255
document.getElementById('ai-form-title').textContent = 'edit backend — ' + esc(name);
22562256
document.getElementById('bf-submit-btn').textContent = 'save changes';
22572257
document.getElementById('bf-name').value = name;
2258
- document.getElementById('bf-name').disabled = true; // name is immutable
2258
+ document.getElementById('bf-name').disabled = false; // allow rename
22592259
document.getElementById('bf-backend').value = b.backend || '';
22602260
document.getElementById('bf-apikey').value = ''; // never pre-fill secrets
22612261
document.getElementById('bf-baseurl').value = b.base_url || '';
22622262
const curated = KNOWN_MODELS[b.backend] || [];
22632263
populateModelSelect(curated, b.model || '');
@@ -2430,11 +2430,15 @@
24302430
};
24312431
24322432
const btn = document.getElementById('bf-submit-btn');
24332433
btn.disabled = true;
24342434
try {
2435
- if (_editingBackend) {
2435
+ if (_editingBackend && name !== _editingBackend) {
2436
+ // Rename: delete old, create new.
2437
+ await api('DELETE', `/v1/llm/backends/${encodeURIComponent(_editingBackend)}`);
2438
+ await api('POST', '/v1/llm/backends', payload);
2439
+ } else if (_editingBackend) {
24362440
await api('PUT', `/v1/llm/backends/${encodeURIComponent(_editingBackend)}`, payload);
24372441
} else {
24382442
await api('POST', '/v1/llm/backends', payload);
24392443
}
24402444
closeBackendForm();
24412445
--- internal/api/ui/index.html
+++ internal/api/ui/index.html
@@ -2253,11 +2253,11 @@
2253
2254 _editingBackend = name;
2255 document.getElementById('ai-form-title').textContent = 'edit backend — ' + esc(name);
2256 document.getElementById('bf-submit-btn').textContent = 'save changes';
2257 document.getElementById('bf-name').value = name;
2258 document.getElementById('bf-name').disabled = true; // name is immutable
2259 document.getElementById('bf-backend').value = b.backend || '';
2260 document.getElementById('bf-apikey').value = ''; // never pre-fill secrets
2261 document.getElementById('bf-baseurl').value = b.base_url || '';
2262 const curated = KNOWN_MODELS[b.backend] || [];
2263 populateModelSelect(curated, b.model || '');
@@ -2430,11 +2430,15 @@
2430 };
2431
2432 const btn = document.getElementById('bf-submit-btn');
2433 btn.disabled = true;
2434 try {
2435 if (_editingBackend) {
 
 
 
 
2436 await api('PUT', `/v1/llm/backends/${encodeURIComponent(_editingBackend)}`, payload);
2437 } else {
2438 await api('POST', '/v1/llm/backends', payload);
2439 }
2440 closeBackendForm();
2441
--- internal/api/ui/index.html
+++ internal/api/ui/index.html
@@ -2253,11 +2253,11 @@
2253
2254 _editingBackend = name;
2255 document.getElementById('ai-form-title').textContent = 'edit backend — ' + esc(name);
2256 document.getElementById('bf-submit-btn').textContent = 'save changes';
2257 document.getElementById('bf-name').value = name;
2258 document.getElementById('bf-name').disabled = false; // allow rename
2259 document.getElementById('bf-backend').value = b.backend || '';
2260 document.getElementById('bf-apikey').value = ''; // never pre-fill secrets
2261 document.getElementById('bf-baseurl').value = b.base_url || '';
2262 const curated = KNOWN_MODELS[b.backend] || [];
2263 populateModelSelect(curated, b.model || '');
@@ -2430,11 +2430,15 @@
2430 };
2431
2432 const btn = document.getElementById('bf-submit-btn');
2433 btn.disabled = true;
2434 try {
2435 if (_editingBackend && name !== _editingBackend) {
2436 // Rename: delete old, create new.
2437 await api('DELETE', `/v1/llm/backends/${encodeURIComponent(_editingBackend)}`);
2438 await api('POST', '/v1/llm/backends', payload);
2439 } else if (_editingBackend) {
2440 await api('PUT', `/v1/llm/backends/${encodeURIComponent(_editingBackend)}`, payload);
2441 } else {
2442 await api('POST', '/v1/llm/backends', payload);
2443 }
2444 closeBackendForm();
2445

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button