06/04 Optimize app
This commit is contained in:
@@ -358,7 +358,13 @@ async function runAnalysis() {
|
||||
|
||||
var btn = document.getElementById('btn-analyze');
|
||||
btn.disabled = true;
|
||||
btn.textContent = '⏳ Analysing…';
|
||||
|
||||
var _elapsed = 0;
|
||||
var _elapsedTimer = setInterval(function() {
|
||||
_elapsed++;
|
||||
btn.textContent = '⏳ Analysing… ' + _elapsed + 's';
|
||||
}, 1000);
|
||||
btn.textContent = '⏳ Analysing… 0s';
|
||||
|
||||
document.getElementById('ai-output').innerHTML =
|
||||
'<div class="ai-placeholder"><p class="text-muted">Running AI analysis… this may take a moment.</p></div>';
|
||||
@@ -384,11 +390,21 @@ async function runAnalysis() {
|
||||
data.model = model || '{{ groq_model }}';
|
||||
data.criteria_count = {{ criteria | selectattr('is_active') | list | length }};
|
||||
showResult(data);
|
||||
if (data.file_errors && data.file_errors.length) {
|
||||
var warn = document.createElement('div');
|
||||
warn.className = 'alert alert-warning';
|
||||
warn.style.cssText = 'margin:.75rem 0 0';
|
||||
warn.innerHTML = '⚠ ' + data.file_errors.length + ' file(s) skipped:<ul style="margin:.25rem 0 0 1.25rem;padding:0">'
|
||||
+ data.file_errors.map(function(e){ return '<li>' + escHtml(e) + '</li>'; }).join('')
|
||||
+ '</ul>';
|
||||
document.getElementById('ai-output').prepend(warn);
|
||||
}
|
||||
}
|
||||
} catch(e) {
|
||||
document.getElementById('ai-output').innerHTML =
|
||||
'<div class="alert alert-danger" style="margin:1rem">Request failed: ' + escHtml(String(e)) + '</div>';
|
||||
} finally {
|
||||
clearInterval(_elapsedTimer);
|
||||
btn.disabled = false;
|
||||
btn.textContent = '🔍 Analyze with AI';
|
||||
}
|
||||
|
||||
@@ -91,7 +91,7 @@
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>Due Date</label>
|
||||
<input type="date" name="due_date">
|
||||
<input type="date" name="due_date" id="add-bid-due-date">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
@@ -481,6 +481,9 @@ function esc(str) {
|
||||
|
||||
/* ── Init ───────────────────────────────────────────────── */
|
||||
loadBids();
|
||||
|
||||
/* Set today as the minimum selectable due date for new bids */
|
||||
document.getElementById('add-bid-due-date').min = new Date().toISOString().slice(0, 10);
|
||||
</script>
|
||||
|
||||
<style>
|
||||
|
||||
Reference in New Issue
Block a user