feat: remove page reloads on scan, use DOM updates for speed
This commit is contained in:
@@ -116,9 +116,9 @@ def execute_pipeline(actions, barcode, context):
|
|||||||
|
|
||||||
placeholders = ', '.join(['?'] * len(cols))
|
placeholders = ', '.join(['?'] * len(cols))
|
||||||
sql = f"INSERT INTO {context['table_name']} ({', '.join(cols)}) VALUES ({placeholders})"
|
sql = f"INSERT INTO {context['table_name']} ({', '.join(cols)}) VALUES ({placeholders})"
|
||||||
execute_db(sql, vals)
|
new_id = execute_db(sql, vals)
|
||||||
|
|
||||||
return {'success': True, 'message': 'Saved Successfully', 'data': field_values}
|
return {'success': True, 'message': 'Saved Successfully', 'detail_id': new_id, 'data': field_values}
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
return {'success': False, 'message': f"Database Error: {str(e)}", 'data': field_values}
|
return {'success': False, 'message': f"Database Error: {str(e)}", 'data': field_values}
|
||||||
else:
|
else:
|
||||||
|
|||||||
@@ -307,8 +307,12 @@ function processSmartScan(barcode, confirm = false) {
|
|||||||
feedbackArea.style.border = '1px solid #28a745';
|
feedbackArea.style.border = '1px solid #28a745';
|
||||||
feedbackText.style.color = '#28a745';
|
feedbackText.style.color = '#28a745';
|
||||||
feedbackText.textContent = data.message;
|
feedbackText.textContent = data.message;
|
||||||
if (data.message.includes('Saved')) setTimeout(() => location.reload(), 800);
|
if (data.detail_id && data.data) {
|
||||||
} else {
|
addScanToList(data.detail_id, data.data, data.data.duplicate_status);
|
||||||
|
}
|
||||||
|
setTimeout(() => feedbackArea.style.display = 'none', 1000);
|
||||||
|
}
|
||||||
|
else {
|
||||||
feedbackArea.style.background = 'rgba(220, 53, 69, 0.2)';
|
feedbackArea.style.background = 'rgba(220, 53, 69, 0.2)';
|
||||||
feedbackArea.style.border = '1px solid #dc3545';
|
feedbackArea.style.border = '1px solid #dc3545';
|
||||||
feedbackText.style.color = '#dc3545';
|
feedbackText.style.color = '#dc3545';
|
||||||
@@ -357,8 +361,12 @@ function saveSmartScanData() {
|
|||||||
.then(data => {
|
.then(data => {
|
||||||
if (data.success) {
|
if (data.success) {
|
||||||
document.getElementById('fieldsModal').style.display = 'none';
|
document.getElementById('fieldsModal').style.display = 'none';
|
||||||
// Optional: Small delay to let the user see it worked
|
if (data.detail_id && data.data) {
|
||||||
setTimeout(() => location.reload(), 300);
|
addScanToList(data.detail_id, data.data, data.data.duplicate_status);
|
||||||
|
}
|
||||||
|
currentDupKeyValue = '';
|
||||||
|
smartInput.value = '';
|
||||||
|
smartInput.focus();
|
||||||
} else if (data.needs_input) {
|
} else if (data.needs_input) {
|
||||||
alert("Error: Please fill in all required fields.");
|
alert("Error: Please fill in all required fields.");
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
Reference in New Issue
Block a user