Working and Calling in Wanted Column

settings-file-dialogs
Sebastian Delmont 2022-01-03 13:07:16 -05:00 zatwierdzone przez Matthew Chambers
rodzic f06ebe55b2
commit 7fc138fdf9
5 zmienionych plików z 74 dodań i 43 usunięć

Wyświetl plik

@ -378,6 +378,12 @@ function processRosterFiltering(callRoster, rosterSettings)
} }
} }
} }
if (callObj.shouldAlert == false && rosterSettings.onlyHits == true && callObj.qrz == false)
{
tx = false
}
entry.tx = tx; entry.tx = tx;
} }
} }

Wyświetl plik

@ -139,6 +139,27 @@ function processRosterHunting(callRoster, rosterSettings)
continue; continue;
} }
// Special Calls
if (callObj.DEcall.match("^[A-Z][0-9][A-Z](/w+)?$"))
{
callObj.style.call = "class='oneByOne'";
}
// Entries currently calling or being called by us
if (callObj.DEcall == window.opener.g_instances[callObj.instance].status.DXcall)
{
if (window.opener.g_instances[callObj.instance].status.TxEnabled == 1)
{
callObj.hunting.call = "calling";
callObj.style.call = "class='dxCalling'";
}
else
{
callObj.hunting.call = "caller";
callObj.style.call = "class='dxCaller'";
}
}
// Hunting for callsigns // Hunting for callsigns
if (huntCallsign.checked == true) if (huntCallsign.checked == true)
{ {
@ -203,6 +224,7 @@ function processRosterHunting(callRoster, rosterSettings)
if (huntQRZ.checked == true && callObj.qrz == true) if (huntQRZ.checked == true && callObj.qrz == true)
{ {
callObj.callFlags.calling = true callObj.callFlags.calling = true
callObj.hunting.qrz = "hunted";
shouldAlert = true; shouldAlert = true;
callObj.reason.push("qrz"); callObj.reason.push("qrz");
} }

Wyświetl plik

@ -116,24 +116,6 @@ function renderRoster(callRoster, rosterSettings)
{ {
let callObj = visibleCallList[x].callObj; let callObj = visibleCallList[x].callObj;
// TODO: This is filtering
if (callObj.shouldAlert == false && rosterSettings.onlyHits == true && callObj.qrz == false)
{ continue; }
if (callObj.DEcall.match("^[A-Z][0-9][A-Z](/w+)?$"))
{ callObj.style.call = "class='oneByOne'"; }
if (callObj.DEcall == window.opener.g_instances[callObj.instance].status.DXcall)
{
if (window.opener.g_instances[callObj.instance].status.TxEnabled == 1)
{
callObj.style.call = "class='dxCalling'";
}
else
{
callObj.style.call = "class='dxCaller'";
}
}
worker += g_rosterSettings.compact ? renderCompactRosterRow(callObj) : renderNormalRosterRow(rosterColumns, callObj) worker += g_rosterSettings.compact ? renderCompactRosterRow(callObj) : renderNormalRosterRow(rosterColumns, callObj)
} }

Wyświetl plik

@ -388,16 +388,16 @@ const ROSTER_COLUMNS = {
}, },
Wanted: { Wanted: {
compare: getterSimpleComparer((elem) => wantedColumnSort(elem.callObj)), compare: (a, b) => wantedColumnComparer(a.callObj, b.callObj),
tableData: (callObj) => ({ tableData: (callObj) => ({
class: "wantedCol", class: "wantedCol",
title: wantedColumnParts(callObj).join("\n"), title: wantedColumnParts(callObj).map(entry => `${entry}`).join("\n"),
html: wantedColumnParts(callObj).join(", ") html: wantedColumnParts(callObj).join(" - ", { html: true })
}) })
} }
} }
WANTED_ORDER = ["cont", "cqz", "ituz", "dxcc", "state", "grid", "cnty", "wpx", "call", "oams"]; WANTED_ORDER = ["call", "qrz", "cont", "dxcc", "cqz", "ituz", "state", "grid", "cnty", "wpx", "oams"];
WANTED_LABELS = { WANTED_LABELS = {
cont: "Continent", cont: "Continent",
cqz: "CQ Zone", cqz: "CQ Zone",
@ -411,43 +411,64 @@ WANTED_LABELS = {
oams: "OAMS" oams: "OAMS"
} }
function wantedColumnParts(callObj) function wantedColumnParts(callObj, options)
{ {
options = options || {};
if (!callObj.hunting) return []; if (!callObj.hunting) return [];
let parts = []; let parts = [];
WANTED_ORDER.forEach(field => WANTED_ORDER.forEach(field =>
{ {
let wanted = callObj.hunting[field]; let wanted = callObj.hunting[field];
if (wanted == "hunted" && field == "oams") { parts.push("OAMS User"); } if (wanted == "calling" || wanted == "caller") { parts.push("Calling"); }
else if (wanted == "hunted") { parts.push(`<b>New ${WANTED_LABELS[field]}</b>`); } else if (wanted == "hunted" && field == "qrz") { parts.push("QRZ"); }
else if (wanted == "hunted" && field == "oams") { parts.push("OAMS User"); }
else if (wanted == "hunted") { parts.push(`${options.html ? "<b>" : ""}New ${WANTED_LABELS[field]}${options.html ? "<b>" : ""}`); }
else if (wanted == "worked") { parts.push(`Worked ${WANTED_LABELS[field]}`); } else if (wanted == "worked") { parts.push(`Worked ${WANTED_LABELS[field]}`); }
else if (wanted == "mixed") { parts.push(`${callObj.band} ${WANTED_LABELS[field]}`); } else if (wanted == "mixed") { parts.push(`${callObj.band} ${WANTED_LABELS[field]}`); }
else if (wanted == "mixed-worked") { parts.push(`${callObj.band} ${WANTED_LABELS[field]}`); parts.push(`Worked ${WANTED_LABELS[field]}`); } else if (wanted == "mixed-worked") { parts.push(`${callObj.band} ${WANTED_LABELS[field]}`); parts.push(`Worked ${WANTED_LABELS[field]}`); }
else if (wanted == "worked-and-mixed") { parts.push(`Worked ${callObj.band} ${WANTED_LABELS[field]}`); } else if (wanted == "worked-and-mixed") { parts.push(`Worked ${callObj.band} ${WANTED_LABELS[field]}`); }
}) })
if (parts[0] == "Calling" && parts[1] == "Calling")
{
parts.shift(); parts.shift();
parts.unshift("Working");
}
return parts; return parts;
} }
function wantedColumnSort(callObj) function wantedColumnWeighter(callObj, field)
{ {
if (!callObj.hunting) return 0; let wanted = callObj.hunting[field];
let weight = 0; // We use negative numbers so that sorting is "reversed" by default, placing most interesting items up top.
WANTED_ORDER.forEach(field => if (wanted == "calling" || wanted == "caller") return -10;
{ else if (wanted == "hunted") return -5;
let wanted = callObj.hunting && callObj.hunting[field]; else if (wanted == "worked") return -4;
else if (wanted == "mixed") return -3;
if (wanted == "hunted") { weight = weight + 5; } else if (wanted == "mixed-worked") return -2;
else if (wanted == "worked") { weight = weight + 4; } else if (wanted == "worked-and-mixed") return -1;
else if (wanted == "mixed") { weight = weight + 3; } else return 0;
else if (wanted == "mixed-worked") { weight = weight + 2; } }
else if (wanted == "worked-and-mixed") { weight = weight + 1; }
function wantedColumnComparer(a, b)
weight = weight * 10; // make room for the next level of wanted order {
}) if (!a.hunting) return 1;
if (!b.hunting) return -1;
return -weight; // return negative values because we want to sort in reverse order by default
for (const index in WANTED_ORDER)
{
const field = WANTED_ORDER[index];
const aWeight = wantedColumnWeighter(a, field);
const bWeight = wantedColumnWeighter(b, field);
if (aWeight < bWeight) return 1;
if (aWeight > bWeight) return -1;
}
return 0;
} }

Wyświetl plik

@ -560,7 +560,7 @@ table.rosterTable thead th:first-child {
} }
.wantedCol { .wantedCol {
max-width: 90px; max-width: 160px;
overflow: hidden; overflow: hidden;
text-overflow: text-overflow:
ellipsis; ellipsis;