From 854577e04c5c78981f2aca982f97131aa9492809 Mon Sep 17 00:00:00 2001 From: Marcus Kida Date: Wed, 18 Feb 2026 21:47:20 +0100 Subject: [PATCH] Fix contacts and channels export payload --- static/app.js | 48 +++++++++++++++++++++++------------------------- 1 file changed, 23 insertions(+), 25 deletions(-) diff --git a/static/app.js b/static/app.js index 9c5149d..93ce8aa 100644 --- a/static/app.js +++ b/static/app.js @@ -305,43 +305,41 @@ .replace(/'/g, "'"); } - function buildChannel(alias, slot, colorCode, txHz, rxHz) { + function formatFreq(mhz) { + return parseFloat(mhz).toFixed(6); + } + + function buildChannel(alias, slot, colorCode, txFreq, rxFreq) { var slotName = slot === "SLOT1" ? "1" : "2"; - return ' \n' + - ' DGTLCONV6PT25\n' + - ' ' + escapeXml(alias) + '\n' + - ' ' + slot + '\n' + - ' ' + colorCode + '\n' + - ' ' + txHz + '\n' + - ' ' + rxHz + '\n' + - ' MTCHCLRCD\n' + - ' 180\n' + - ' \n'; + return ' \n' + + ' DGTLCONV6PT25\n' + + ' ' + escapeXml(alias) + '\n' + + ' ' + slot + '\n' + + ' ' + colorCode + '\n' + + ' ' + txFreq + '\n' + + ' ' + rxFreq + '\n' + + ' MTCHCLRCD\n' + + ' 180\n' + + ' \n'; } function generateCpsXml(repeaters, talkgroups) { var channels = ""; repeaters.forEach(function (r) { - var txHz = Math.round(r.freq_tx * 1000000); - var rxHz = Math.round(r.freq_rx * 1000000); + var txFreq = formatFreq(r.freq_tx); + var rxFreq = formatFreq(r.freq_rx); var cc = r.color_code; talkgroups.forEach(function (tg) { var slot = tg.slot === "1" ? "SLOT1" : "SLOT2"; var alias = tg.name.substring(0, 16); - channels += buildChannel(alias, slot, cc, txHz, rxHz); + channels += buildChannel(alias, slot, cc, txFreq, rxFreq); }); }); return '\n' + "\n" + - ' \n' + - ' \n' + - ' DMRmap\n' + - ' NORMAL\n' + - ' \n' + + ' \n' + channels + - " \n" + - " \n" + - " \n" + + " \n" + ""; } @@ -539,11 +537,11 @@ var name = ("TG" + tg.id + " " + (tg.name || "")).trim().substring(0, 16); var row = name + ",False,,," + "False,,," + - "False,,,,,," + + "False,,,,,,," + "False,,,,,,,,," + "False," + tg.id + ",Regular,False,No Style,Repetitive,Group Call,False," + - "False,,Regular,False,No Style,Repetitive,Group Call," + - "False,,No Style"; + "False,,,,,,," + + "False,,"; rows.push(row); }); return rows.join("\r\n");