# frontend/static/js/profile.js // Profile editor modal let editingProfile = null; function showProfileEditor(profile = null) { editingProfile = profile; const modal = document.createElement('div'); modal.className = 'modal active'; modal.innerHTML = `
`; document.body.appendChild(modal); } function closeProfileEditor() { const modal = document.querySelector('.modal'); if (modal) { modal.remove(); } editingProfile = null; } async function saveProfile(event) { event.preventDefault(); const form = event.target; const formData = new FormData(form); const profileData = { id: formData.get('id'), name: formData.get('name'), work_dir: formData.get('work_dir'), llm_settings: { model: formData.get('llm_model'), api_key: formData.get('api_key'), temperature: parseFloat(formData.get('temperature')) } }; try { if (editingProfile) { await apiRequest(`/profiles/${editingProfile.id}`, { method: 'PUT', body: JSON.stringify(profileData) }); } else { await apiRequest('/profiles', { method: 'POST', body: JSON.stringify(profileData) }); } await loadProfiles(); closeProfileEditor(); showSuccess(`Profile ${editingProfile ? 'updated' : 'created'} successfully`); } catch (error) { showError(`Failed to ${editingProfile ? 'update' : 'create'} profile`); } } function editProfile() { if (!currentProfile) { showError('No profile selected'); return; } showProfileEditor(currentProfile); } function newProfile() { showProfileEditor(); }