fix(planner): replace alert() error popups with inline error banner
Show API errors and network failures in a red inline div below the export form instead of browser alert() dialogs. Error div is hidden on each new submit attempt so stale messages don't linger. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -71,6 +71,7 @@
|
||||
<button type="submit" class="btn" style="width:100%;margin-top:0.5rem" id="export-buy-btn">
|
||||
{{ t.export_btn }}
|
||||
</button>
|
||||
<div id="export-error" style="display:none;margin-top:0.75rem;padding:0.75rem 1rem;background:#FEE2E2;color:#991B1B;border-radius:8px;font-size:0.875rem"></div>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
@@ -106,9 +107,16 @@
|
||||
|
||||
{% block scripts %}
|
||||
<script>
|
||||
function showExportError(msg) {
|
||||
var el = document.getElementById('export-error');
|
||||
el.textContent = msg;
|
||||
el.style.display = 'block';
|
||||
}
|
||||
|
||||
document.getElementById('export-form').addEventListener('submit', async function(e) {
|
||||
e.preventDefault();
|
||||
const btn = document.getElementById('export-buy-btn');
|
||||
document.getElementById('export-error').style.display = 'none';
|
||||
btn.disabled = true;
|
||||
btn.textContent = '{{ t.export_generating }}';
|
||||
|
||||
@@ -120,7 +128,7 @@ document.getElementById('export-form').addEventListener('submit', async function
|
||||
});
|
||||
const data = await resp.json();
|
||||
if (data.error) {
|
||||
alert(data.error);
|
||||
showExportError(data.error);
|
||||
btn.disabled = false;
|
||||
btn.textContent = '{{ t.export_btn }}';
|
||||
return;
|
||||
@@ -133,7 +141,7 @@ document.getElementById('export-form').addEventListener('submit', async function
|
||||
btn.disabled = false;
|
||||
btn.textContent = '{{ t.export_btn }}';
|
||||
} catch (err) {
|
||||
alert('{{ t.export_failed }}');
|
||||
showExportError('{{ t.export_failed }}');
|
||||
btn.disabled = false;
|
||||
btn.textContent = '{{ t.export_btn }}';
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user