diff --git a/AKScheduling/templates/admin/AKScheduling/constraint_violations.html b/AKScheduling/templates/admin/AKScheduling/constraint_violations.html index 6a71f9b4e1564bd1bed93370a8a8d47c348a9e5c..e84542479e6946cccc6feacea686077a7895932f 100644 --- a/AKScheduling/templates/admin/AKScheduling/constraint_violations.html +++ b/AKScheduling/templates/admin/AKScheduling/constraint_violations.html @@ -23,26 +23,31 @@ const callback_success = function(response) { let table_html = ''; + let unresolved_constraint_violations = 0; + if(response.length > 0) { - // Update violation count badge - $('#violationCountBadge').html(response.length).removeClass('bg-success').addClass('bg-warning'); // Update violations table for(let i=0;i<response.length;i++) { - if(response[i].manually_resolved) + if(response[i].manually_resolved) { table_html += '<tr class="text-muted"><td class="nowrap">{% fa6_icon "check" "fas" %}</td>'; - else + } + else { table_html += '<tr><td></td>'; + unresolved_constraint_violations++; + } table_html += "<td>" + response[i].level_display + "</td><td>" + response[i].type_display + "</td><td>" + response[i].details + "</td><td class='nowrap'>" + response[i].timestamp_display + "</td><td><a href='" + response[i].edit_url + "'><i class='btn btn-primary fa fa-pen'></i></a></td></tr>"; } } else { - // Update violation count badge - $('#violationCountBadge').html(0).removeClass('bg-warning').addClass('bg-success'); - // Update violations table table_html ='<tr class="text-muted"><td colspan="5" class="text-center">{% trans "No violations" %}</td></tr>' } + // Update violation count badge + if(unresolved_constraint_violations > 0) + $('#violationCountBadge').html(unresolved_constraint_violations).removeClass('bg-success').addClass('bg-warning'); + else + $('#violationCountBadge').html(0).removeClass('bg-warning').addClass('bg-success'); // Show violation list (potentially empty) in violations table $('#violationsTableBody').html(table_html); diff --git a/AKScheduling/templates/admin/AKScheduling/scheduling.html b/AKScheduling/templates/admin/AKScheduling/scheduling.html index 1be3071cbf057326a35f728c63a6b5d6f4ba0bc2..8d592aecba3cab360c8fb944715ffe0ec36fecf8 100644 --- a/AKScheduling/templates/admin/AKScheduling/scheduling.html +++ b/AKScheduling/templates/admin/AKScheduling/scheduling.html @@ -215,20 +215,24 @@ if(response.length > 0) { // Update violations table for(let i=0;i<response.length;i++) { - if(response[i].manually_resolved) - table_html += '<tr class="text-muted"><td class="nowrap">{% fa6_icon "check" "fas" %} '; + let icon_html = ''; + let muted_html = ''; + if(response[i].manually_resolved) { + icon_html = '{% fa6_icon "check" "fas" %} '; + muted_html = 'text-muted'; + } else { - table_html += '<tr><td>'; unresolved_violations_count++; } if(response[i].level_display==='{% trans "Violation" %}') - table_html += '{% fa6_icon "exclamation-triangle" "fas" %}'; + icon_html += '{% fa6_icon "exclamation-triangle" "fas" %}'; else - table_html += '{% fa6_icon "info-circle" "fas" %}'; + icon_html += '{% fa6_icon "info-circle" "fas" %}'; + table_html += '<tr class="'+ muted_html+ '"><td class="nowrap">' + icon_html; table_html += "</td><td class='small'>" + response[i].type_display + "</td></tr>"; - table_html += "<tr><td colspan='2' class='small'>" + response[i].details + "</td></tr>" + table_html += "<tr class='" + muted_html + "'><td colspan='2' class='small'>" + response[i].details + "</td></tr>" } } else { @@ -238,7 +242,7 @@ // Update violation count badge if(unresolved_violations_count > 0) - $('#violationCountBadge').html(response.length).removeClass('bg-success').addClass('bg-warning'); + $('#violationCountBadge').html(unresolved_violations_count).removeClass('bg-success').addClass('bg-warning'); else $('#violationCountBadge').html(0).removeClass('bg-warning').addClass('bg-success'); @@ -358,7 +362,7 @@ {% endfor %} </div> <div class="tab-pane fade" id="violations"> - <table class="table table-striped mt-4 mb-4"> + <table class="table mt-4 mb-4"> <thead> <tr> <th>{% trans "Level" %}</th>