kopia lustrzana https://gitlab.com/gridtracker.org/gridtracker
Improve chat message callsign list rendering
rodzic
2a1804f7f2
commit
8efd63a02f
|
@ -161,17 +161,28 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
function makeCallsignRow(callObj, show) {
|
function makeCallsignRow(callObj, show) {
|
||||||
let oldRow = document.getElementById(callObj.cid);
|
|
||||||
|
|
||||||
if (!oldRow) {
|
if (callObj.row == null)
|
||||||
let newCall = callObj.call.formatCallsign();
|
|
||||||
let x = 0;
|
|
||||||
for (x = 0; x < allCallTable.rows.length && newCall > allCallTable.rows[x].cells[0].innerHTML; x++)
|
|
||||||
{
|
{
|
||||||
// just count
|
var low = 0;
|
||||||
|
var mid = 0;
|
||||||
|
var high = allCallTable.rows.length;
|
||||||
|
|
||||||
|
while (low < high)
|
||||||
|
{
|
||||||
|
mid = (low + high) >>> 1;
|
||||||
|
if (allCallTable.rows[mid].cells[0].innerHTML < callObj.fCall)
|
||||||
|
{
|
||||||
|
low = mid + 1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
high = mid;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
let row = allCallTable.insertRow(x);
|
var row = allCallTable.insertRow(low);
|
||||||
|
callObj.row = row;
|
||||||
row.id = callObj.cid;
|
row.id = callObj.cid;
|
||||||
|
|
||||||
row.style.cursor = "pointer";
|
row.style.cursor = "pointer";
|
||||||
|
@ -179,15 +190,15 @@
|
||||||
row.onclick = openIdCid;
|
row.onclick = openIdCid;
|
||||||
row.oncontextmenu = openLookupCid;
|
row.oncontextmenu = openLookupCid;
|
||||||
|
|
||||||
let td = row.insertCell();
|
var td = row.insertCell();
|
||||||
|
|
||||||
td.className = callObj.live == false ? "rosterOff" : "rosterOn";
|
td.className = callObj.live == false ? "rosterOff" : "rosterOn";
|
||||||
td.innerHTML = newCall;
|
td.innerHTML = callObj.fCall;
|
||||||
td.onmouseenter = onHoverCid;
|
td.onmouseenter = onHoverCid;
|
||||||
td.onmouseout = onNoHoverCid;
|
td.onmouseout = onNoHoverCid;
|
||||||
|
|
||||||
if (callObj.dxcc > 0 && callObj.dxcc in window.opener.g_dxccInfo) {
|
if (callObj.dxcc > 0 && callObj.dxcc in window.opener.g_dxccInfo) {
|
||||||
let imgClass = callObj.live == false ? "imgGray" : "imgNoFilter";
|
var imgClass = callObj.live == false ? "imgGray" : "imgNoFilter";
|
||||||
td = row.insertCell();
|
td = row.insertCell();
|
||||||
td.innerHTML =
|
td.innerHTML =
|
||||||
"<img class='" +
|
"<img class='" +
|
||||||
|
@ -197,16 +208,16 @@
|
||||||
"'>";
|
"'>";
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
oldRow.style.display = show ? "" : "none";
|
callObj.row.style.display = show ? "" : "none";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function showAllCallsigns() {
|
function showAllCallsigns() {
|
||||||
let count = 0;
|
var count = 0;
|
||||||
for (let x in window.opener.g_gtFlagPins) {
|
for (var x in window.opener.g_gtFlagPins) {
|
||||||
let obj = window.opener.g_gtFlagPins[x];
|
var obj = window.opener.g_gtFlagPins[x];
|
||||||
if (obj.call != "" && obj.call != "NOCALL" && obj.canmsg == true) {
|
if (obj.call != "" && obj.call != "NOCALL" && obj.canmsg == true) {
|
||||||
let show = true;
|
var show = true;
|
||||||
try {
|
try {
|
||||||
if (searchBox.value.length > 0 && !obj.call.match(searchBox.value)) {
|
if (searchBox.value.length > 0 && !obj.call.match(searchBox.value)) {
|
||||||
show = false;
|
show = false;
|
||||||
|
|
|
@ -316,7 +316,7 @@ function gtChatUpdateCall(jsmesg)
|
||||||
{
|
{
|
||||||
g_gtFlagPins[cid] = Object();
|
g_gtFlagPins[cid] = Object();
|
||||||
g_gtFlagPins[cid].pin = null;
|
g_gtFlagPins[cid].pin = null;
|
||||||
|
g_gtFlagPins[cid].row = null;
|
||||||
g_gtFlagPins[cid].ids = Object();
|
g_gtFlagPins[cid].ids = Object();
|
||||||
g_gtFlagPins[cid].ids[id] = true;
|
g_gtFlagPins[cid].ids[id] = true;
|
||||||
}
|
}
|
||||||
|
@ -324,6 +324,7 @@ function gtChatUpdateCall(jsmesg)
|
||||||
|
|
||||||
g_gtFlagPins[cid].cid = jsmesg.cid;
|
g_gtFlagPins[cid].cid = jsmesg.cid;
|
||||||
g_gtFlagPins[cid].call = jsmesg.call;
|
g_gtFlagPins[cid].call = jsmesg.call;
|
||||||
|
g_gtFlagPins[cid].fCall = jsmesg.call.formatCallsign();
|
||||||
g_gtFlagPins[cid].grid = jsmesg.grid;
|
g_gtFlagPins[cid].grid = jsmesg.grid;
|
||||||
g_gtFlagPins[cid].freq = jsmesg.freq;
|
g_gtFlagPins[cid].freq = jsmesg.freq;
|
||||||
g_gtFlagPins[cid].band = jsmesg.band;
|
g_gtFlagPins[cid].band = jsmesg.band;
|
||||||
|
@ -443,10 +444,12 @@ function gtChatNewList(jsmesg)
|
||||||
g_gtFlagPins[cid].ids = Object();
|
g_gtFlagPins[cid].ids = Object();
|
||||||
g_gtFlagPins[cid].ids[id] = true;
|
g_gtFlagPins[cid].ids[id] = true;
|
||||||
g_gtFlagPins[cid].pin = null;
|
g_gtFlagPins[cid].pin = null;
|
||||||
|
g_gtFlagPins[cid].row = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
g_gtIdToCid[id] = cid;
|
g_gtIdToCid[id] = cid;
|
||||||
g_gtFlagPins[cid].call = jsmesg.data.calls[key];
|
g_gtFlagPins[cid].call = jsmesg.data.calls[key];
|
||||||
|
g_gtFlagPins[cid].fCall = g_gtFlagPins[cid].call.formatCallsign();
|
||||||
g_gtFlagPins[cid].grid = jsmesg.data.grid[key];
|
g_gtFlagPins[cid].grid = jsmesg.data.grid[key];
|
||||||
g_gtFlagPins[cid].freq = jsmesg.data.freq[key];
|
g_gtFlagPins[cid].freq = jsmesg.data.freq[key];
|
||||||
g_gtFlagPins[cid].band = jsmesg.data.band[key];
|
g_gtFlagPins[cid].band = jsmesg.data.band[key];
|
||||||
|
|
Ładowanie…
Reference in New Issue