Use min(COL_TIME_ON) for ordering in multiple Timeline_model queries (replacing ORDER BY date DESC) and remove unnecessary date() wrappers in SELECTs so groups are sorted by the earliest contact time. In the timeline view, only render the DXCC End Date column when at least one entry has an end date and adjust row output to avoid displaying an empty column.
Update language and timeline view: correct gridsquares label from "Show QSO's" to "Show QSOs" for grammatical accuracy. In timeline/index.php, add an else branch to display a green "Active" badge when a DXCC entry has no end date (keeping the existing deleted badge for ended entries) and wrap the conditional in braces for clarity. These changes improve UI clarity and code readability.
Replace the old timeline dialog with a Bootstrap 5 modal (with HTMX support and jQuery fallback) and move AJAX content into the modal body. Add initTimelineDetailsTable to initialize/destroy DataTables for detail views and guard DataTable initialization when tables are absent. Revamp the timeline index: convert filters into a Bootstrap card with improved form layout, add Reset button, show a summary badge/count and a DXCC info alert for DXCC award, and embed the details modal markup. Convert timeline tables to responsive containers, use semantic <th> headers, and replace text links with accessible buttons that call displayTimelineContacts. Minor UI tweaks: change empty-result alert to warning and add a CSS class (menuOnResultTab) to the dropdown-menu in log_ajax for result-row actions.
Blue Solid = Add something, activate something, or perform any other primary action.
Blue Outline = Edit, change or update something.
Red = Delete something or make an irreversable change.
Grey = Deactivate something.
Yellow = Reset something or clear a field.
Green = Retained for search.
Added icons where it made sense to do so.