perfect lighthouse score
ci/woodpecker/push/woodpecker Pipeline was successful Details

This commit is contained in:
colin 2025-07-04 16:21:37 -04:00
parent 799da3d134
commit c85092e0fe
2 changed files with 15 additions and 10 deletions

View File

@ -88,7 +88,7 @@
<script src="{{ url_for('static', filename='js/bootstrap.bundle.min.js') }}"></script> <script src="{{ url_for('static', filename='js/bootstrap.bundle.min.js') }}"></script>
{% block scripts %}{% endblock %} {% block scripts %}{% endblock %}
<script> <script nonce="{{ csp_nonce() }}">
// Add ARIA attributes to dynamically created elements // Add ARIA attributes to dynamically created elements
document.addEventListener('DOMContentLoaded', function() { document.addEventListener('DOMContentLoaded', function() {
// Make sure all buttons have accessible labels // Make sure all buttons have accessible labels

View File

@ -35,10 +35,10 @@
<td>{{ transaction['source_date'].strftime('%Y-%m-%d') if transaction['source_date'] else 'N/A' }}</td> <td>{{ transaction['source_date'].strftime('%Y-%m-%d') if transaction['source_date'] else 'N/A' }}</td>
<td>{{ transaction['recipient'] }}</td> <td>{{ transaction['recipient'] }}</td>
<td> <td>
<a href="{{ url_for('view_transaction', id=transaction['id']) }}" class="btn btn-sm btn-info"> <a href="{{ url_for('view_transaction', id=transaction['id']) }}" class="btn btn-sm btn-info" aria-label="View transaction {{ transaction['id'] }}">
<i class="bi bi-eye"></i> <i class="bi bi-eye"></i>
</a> </a>
<a href="{{ url_for('update_transaction', id=transaction['id']) }}" class="btn btn-sm btn-warning"> <a href="{{ url_for('update_transaction', id=transaction['id']) }}" class="btn btn-sm btn-warning" aria-label="Edit transaction {{ transaction['id'] }}">
<i class="bi bi-pencil"></i> <i class="bi bi-pencil"></i>
</a> </a>
</td> </td>
@ -53,7 +53,7 @@
{% endblock %} {% endblock %}
{% block scripts %} {% block scripts %}
<script> <script nonce="{{ csp_nonce() }}">
document.addEventListener('DOMContentLoaded', function() { document.addEventListener('DOMContentLoaded', function() {
const searchInput = document.getElementById('searchInput'); const searchInput = document.getElementById('searchInput');
const searchButton = document.getElementById('searchButton'); const searchButton = document.getElementById('searchButton');
@ -72,12 +72,17 @@
}); });
} }
searchButton.addEventListener('click', filterTable); if (searchButton) {
searchInput.addEventListener('keyup', function(e) { searchButton.addEventListener('click', filterTable);
if (e.key === 'Enter') { }
filterTable();
} if (searchInput) {
}); searchInput.addEventListener('keyup', function(e) {
if (e.key === 'Enter') {
filterTable();
}
});
}
}); });
</script> </script>
{% endblock %} {% endblock %}