ux(adjustments): drop the per-row Delete button — Edit modal handles it
Konrad's feedback: the red × Delete button on each unpaid row was redundant — the Edit Adjustment modal already has a Delete action inside it, so users never need a second entry point. Removed: the .adj-delete-btn button from _adjustment_row.html and its now-dead DOMContentLoaded handler in payroll_dashboard.html (~15 lines of JS). Unpaid rows now show Preview + Edit only. Bulk-delete is unaffected: the floating action bar + per-row checkboxes remain as the fast path for deleting many rows at once. Single-row delete flows through the Edit modal's existing delete button. 65/65 tests still pass.
This commit is contained in:
parent
3fe3e5aa01
commit
672c32cfb6
@ -103,8 +103,9 @@ Row actions differ by paid status:
|
|||||||
<i class="fas fa-eye"></i>
|
<i class="fas fa-eye"></i>
|
||||||
</button>
|
</button>
|
||||||
{% else %}
|
{% else %}
|
||||||
{# UNPAID row: Preview (reuses .preview-payslip-btn handler), #}
|
{# UNPAID row: Preview + Edit only. Single-row delete happens #}
|
||||||
{# Edit (reuses .adjustment-badge handler), Delete (opens #deleteConfirmModal). #}
|
{# inside the Edit Adjustment modal; bulk delete uses the row #}
|
||||||
|
{# checkboxes + floating action bar (shared entry point). #}
|
||||||
<button type="button"
|
<button type="button"
|
||||||
class="btn btn-sm btn-outline-info preview-payslip-btn"
|
class="btn btn-sm btn-outline-info preview-payslip-btn"
|
||||||
data-worker-id="{{ adj.worker.id }}"
|
data-worker-id="{{ adj.worker.id }}"
|
||||||
@ -124,14 +125,6 @@ Row actions differ by paid status:
|
|||||||
title="Edit" data-bs-toggle="tooltip">
|
title="Edit" data-bs-toggle="tooltip">
|
||||||
<i class="fas fa-pen"></i>
|
<i class="fas fa-pen"></i>
|
||||||
</button>
|
</button>
|
||||||
<button type="button"
|
|
||||||
class="btn btn-sm btn-outline-danger adj-delete-btn"
|
|
||||||
data-adj-id="{{ adj.id }}"
|
|
||||||
data-adj-type="{{ adj.type }}"
|
|
||||||
data-adj-worker="{{ adj.worker.name }}"
|
|
||||||
title="Delete" data-bs-toggle="tooltip">
|
|
||||||
<i class="fas fa-times"></i>
|
|
||||||
</button>
|
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|||||||
@ -3832,25 +3832,6 @@ document.addEventListener('DOMContentLoaded', function() {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
// --- Direct delete buttons on each unpaid row ---
|
|
||||||
// Short-circuits the edit modal's usual 2-step delete flow by opening
|
|
||||||
// #deleteConfirmModal directly with the correct form action + labels.
|
|
||||||
document.querySelectorAll('.adj-delete-btn').forEach(function(btn) {
|
|
||||||
btn.addEventListener('click', function() {
|
|
||||||
var adjId = this.dataset.adjId;
|
|
||||||
var adjType = this.dataset.adjType;
|
|
||||||
var adjWorker = this.dataset.adjWorker;
|
|
||||||
var deleteForm = document.getElementById('deleteAdjForm');
|
|
||||||
if (!deleteForm) return; // Safety: modal not loaded
|
|
||||||
deleteForm.action = '/payroll/adjustment/' + adjId + '/delete/';
|
|
||||||
document.getElementById('deleteAdjType').textContent = adjType;
|
|
||||||
document.getElementById('deleteAdjWorker').textContent = adjWorker;
|
|
||||||
bootstrap.Modal.getOrCreateInstance(
|
|
||||||
document.getElementById('deleteConfirmModal')
|
|
||||||
).show();
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
// === ADJUSTMENTS TAB — bulk select + delete ===
|
// === ADJUSTMENTS TAB — bulk select + delete ===
|
||||||
// The per-row checkboxes come from _adjustment_row.html (class
|
// The per-row checkboxes come from _adjustment_row.html (class
|
||||||
// .adj-bulk-checkbox on unpaid rows only; disabled dummy checkbox on
|
// .adj-bulk-checkbox on unpaid rows only; disabled dummy checkbox on
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user