mirror of
https://git.ianrenton.com/ian/spothole.git
synced 2026-09-20 14:27:42 +00:00
Highlight wanted calls. Closes #117
This commit is contained in:
+35
-21
@@ -19,17 +19,19 @@ function loadSpots() {
|
||||
}
|
||||
|
||||
// Make the new query. No credential headers on the first load to keep things quick
|
||||
$.ajax({url: '/api/v2/spots' + buildQueryString(), dataType: 'json', success: function (jsonData) {
|
||||
// Store data
|
||||
spots = jsonData;
|
||||
// Update table
|
||||
updateTable();
|
||||
// Start SSE connection to fetch updates in the background, if we are in "run" mode
|
||||
let run = $('#runButton:checked').val();
|
||||
if (run) {
|
||||
startSSEConnection();
|
||||
$.ajax({
|
||||
url: '/api/v2/spots' + buildQueryString(), dataType: 'json', success: function (jsonData) {
|
||||
// Store data
|
||||
spots = jsonData;
|
||||
// Update table
|
||||
updateTable();
|
||||
// Start SSE connection to fetch updates in the background, if we are in "run" mode
|
||||
let run = $('#runButton:checked').val();
|
||||
if (run) {
|
||||
startSSEConnection();
|
||||
}
|
||||
}
|
||||
}});
|
||||
});
|
||||
}
|
||||
|
||||
// Start an SSE connection (closing an existing one if it exists). This will then be used to add to the table on the
|
||||
@@ -210,23 +212,32 @@ function createNewTableRowsForSpot(s, highlightNew) {
|
||||
// Create row
|
||||
let $tr = $('<tr>');
|
||||
|
||||
// Calculate some values
|
||||
let alreadyWorkedThis = alreadyWorked(s["dx_call"], s["band"], s["mode"]);
|
||||
let wantThis = callWanted(s["dx_call"]);
|
||||
let qrt = s["qrt"]
|
||||
|
||||
// Apply striping to the table. We can't just use Bootstrap's table-striped class because we have all sorts of
|
||||
// extra faff to deal with, like the mobile view having extra rows, and the On Now / Next 24h / Later banners
|
||||
// which cause the table-striped colouring to go awry.
|
||||
if (rowCount % 2 === 1) {
|
||||
// which cause the table-striped colouring to go awry. If the call is wanted, suppress the striping so the highlight
|
||||
// colour looks right.
|
||||
if (rowCount % 2 === 1 && !(wantThis && !qrt && !alreadyWorkedThis)) {
|
||||
$tr.addClass("table-active");
|
||||
}
|
||||
|
||||
// Show faded out if QRT or already worked
|
||||
let alreadyWorkedThis = alreadyWorked(s["dx_call"], s["band"], s["mode"]);
|
||||
if (s["qrt"] === true || alreadyWorkedThis) {
|
||||
if (qrt || alreadyWorkedThis) {
|
||||
$tr.addClass("table-faded");
|
||||
}
|
||||
|
||||
// If we are asked to highlight new rows (i.e. this row is being added "live" via the SSE client and not as a bulk
|
||||
// reload of the whole table)
|
||||
if (highlightNew) {
|
||||
$tr.addClass("new");
|
||||
// reload of the whole table), do so
|
||||
if (highlightNew && !qrt && !alreadyWorkedThis) {
|
||||
$tr.addClass("row-new");
|
||||
}
|
||||
// If this is a wanted call, highlight it
|
||||
if (wantThis && !qrt && !alreadyWorkedThis) {
|
||||
$tr.addClass("row-wanted");
|
||||
}
|
||||
|
||||
// Format a UTC or local time for display
|
||||
@@ -399,14 +410,17 @@ function createNewTableRowsForSpot(s, highlightNew) {
|
||||
const $tr2 = $("<tr class='hidenotonmobile'>");
|
||||
|
||||
// Apply styles as per the first row
|
||||
if (rowCount % 2 === 1) {
|
||||
if (rowCount % 2 === 1 && !(wantThis && !qrt && !alreadyWorkedThis)) {
|
||||
$tr2.addClass("table-active");
|
||||
}
|
||||
if (s["qrt"] === true || alreadyWorkedThis) {
|
||||
if (qrt || alreadyWorkedThis) {
|
||||
$tr2.addClass("table-faded");
|
||||
}
|
||||
if (highlightNew) {
|
||||
$tr2.addClass("new");
|
||||
if (highlightNew && !qrt && !alreadyWorkedThis) {
|
||||
$tr2.addClass("row-new");
|
||||
}
|
||||
if (wantThis && !qrt && !alreadyWorkedThis) {
|
||||
$tr2.addClass("row-wanted");
|
||||
}
|
||||
|
||||
const $td2 = $("<td colspan='100'>");
|
||||
|
||||
Reference in New Issue
Block a user