mirror of
https://github.com/wavelog/wavelog.git
synced 2026-03-22 10:24:14 +00:00
Merge pull request #2310 from AndreasK79/fix_qsolist_qsl_queue
[QSL Queue] Fix the "Add QSO" feature
This commit is contained in:
@@ -70,7 +70,7 @@ class Qslprint_model extends CI_Model {
|
||||
function get_qsos_for_print($station_id = 'All') {
|
||||
$binding=[];
|
||||
$binding[]=$this->session->userdata('user_id');
|
||||
$sql="SELECT count(distinct oldlog.col_primary_key) as previous_qsl, log.COL_QSL_SENT, log.COL_PRIMARY_KEY, log.COL_DXCC, log.COL_CALL, log.COL_SAT_NAME, log.COL_SAT_MODE, log.COL_BAND_RX, COALESCE(log.COL_FREQ_RX, log.COL_FREQ) as frequency, log.COL_TIME_ON, log.COL_MODE, log.COL_RST_SENT, log.COL_RST_RCVD, log.COL_QSL_VIA, log.COL_QSL_SENT_VIA, log.COL_SUBMODE, log.COL_BAND, sp.station_id, sp.station_callsign, sp.station_profile_name, o.qsoid
|
||||
$sql="SELECT count(distinct oldlog.col_primary_key) as previous_qsl, log.COL_QSL_SENT, log.COL_PRIMARY_KEY, log.COL_DXCC, log.COL_CALL, log.COL_SAT_NAME, log.COL_SAT_MODE, log.COL_BAND_RX, log.COL_FREQ as frequency, log.COL_FREQ_RX as frequency_rx, log.COL_TIME_ON, log.COL_MODE, log.COL_RST_SENT, log.COL_RST_RCVD, log.COL_QSL_VIA, log.COL_QSL_SENT_VIA, log.COL_SUBMODE, log.COL_BAND, sp.station_id, sp.station_callsign, sp.station_profile_name, o.qsoid
|
||||
FROM ".$this->config->item('table_name')." log
|
||||
INNER JOIN station_profile sp ON sp.`station_id` = log.`station_id`
|
||||
LEFT OUTER JOIN oqrs o ON o.`qsoid` = log.`COL_PRIMARY_KEY`
|
||||
|
||||
@@ -54,8 +54,8 @@ if ($qsos->result() != NULL) {
|
||||
echo '<td style=\'text-align: center\'>'; $timestamp = strtotime($qsl->COL_TIME_ON); echo date($custom_date_format, $timestamp); echo '</td>';
|
||||
echo '<td style=\'text-align: center\'>'; $timestamp = strtotime($qsl->COL_TIME_ON); echo date('H:i', $timestamp); echo '</td>';
|
||||
echo '<td style=\'text-align: center\'>'; echo $qsl->COL_SUBMODE==null?$qsl->COL_MODE:$qsl->COL_SUBMODE; echo '</td>';
|
||||
echo '<td class=\'col-band\' style=\'text-align: center\'>'; if($qsl->COL_SAT_NAME != null) { echo $qsl->COL_SAT_NAME; } else { echo strtolower($qsl->COL_BAND); }; echo '</td>';
|
||||
echo '<td class=\'col-freq\' style=\'text-align: center;display:none;\'>'; if($qsl->COL_SAT_NAME != null) { echo $qsl->COL_SAT_NAME; } else { echo $ci->frequency->qrg_conversion($qsl->frequency); }; echo '</td>';
|
||||
echo '<td class=\'col-band\' style=\'text-align: center\'>'; if($qsl->COL_SAT_NAME != null) { echo __("SAT") . ' ' . $qsl->COL_SAT_NAME . ' '. strtolower($qsl->COL_BAND) . '/' . strtolower($qsl->COL_BAND_RX); } else { echo strtolower($qsl->COL_BAND); }; echo '</td>';
|
||||
echo '<td class=\'col-freq\' style=\'text-align: center;display:none;\'>'; if($qsl->COL_SAT_NAME != null) { echo __("SAT") . ' ' . $qsl->COL_SAT_NAME . ' ' . $ci->frequency->qrg_conversion($qsl->frequency) . '/' . $ci->frequency->qrg_conversion($qsl->frequency_rx); } else { echo $ci->frequency->qrg_conversion($qsl->frequency); }; echo '</td>';
|
||||
echo '<td style=\'text-align: center\'>' . $qsl->COL_RST_SENT . '</td>';
|
||||
echo '<td style=\'text-align: center\'>' . $qsl->COL_RST_RCVD . '</td>';
|
||||
echo '<td style=\'text-align: center\'>' . $qsl->COL_QSL_VIA . '</td>';
|
||||
|
||||
@@ -8,6 +8,7 @@ if ($qsos->result() != NULL) {
|
||||
<th style=\'text-align: center\'>'. __("Time") .'</th>
|
||||
<th style=\'text-align: center\'>' . __("Mode") . '</th>
|
||||
<th style=\'text-align: center\'>' . __("Band") . '</th>
|
||||
<th style=\'text-align: center\'>' . __("Frequency") . '</th>
|
||||
<th style=\'text-align: center\'>' . __("RST (S)") . '</th>
|
||||
<th style=\'text-align: center\'>' . __("RST (R)") . '</th>
|
||||
<th style=\'text-align: center\'>' . __("Station") . '</th>
|
||||
@@ -40,7 +41,8 @@ if ($qsos->result() != NULL) {
|
||||
echo '<td style=\'text-align: center\'>'; $timestamp = strtotime($qsl->COL_TIME_ON); echo date($custom_date_format, $timestamp); echo '</td>';
|
||||
echo '<td style=\'text-align: center\'>'; $timestamp = strtotime($qsl->COL_TIME_ON); echo date('H:i', $timestamp); echo '</td>';
|
||||
echo '<td style=\'text-align: center\'>'; echo $qsl->COL_SUBMODE==null?$qsl->COL_MODE:$qsl->COL_SUBMODE; echo '</td>';
|
||||
echo '<td style=\'text-align: center\'>'; if($qsl->COL_SAT_NAME != null) { echo $qsl->COL_SAT_NAME; } else { echo strtolower($qsl->COL_BAND ?? ""); }; echo '</td>';
|
||||
echo '<td style=\'text-align: center\'>'; if($qsl->COL_SAT_NAME != null) { echo __("SAT") . ' ' . $qsl->COL_SAT_NAME . ' '. strtolower($qsl->COL_BAND) . '/' . strtolower($qsl->COL_BAND_RX); } else { echo strtolower($qsl->COL_BAND); }; echo '</td>';
|
||||
echo '<td style=\'text-align: center\'>'; if($qsl->COL_SAT_NAME != null) { echo __("SAT") . ' ' . $qsl->COL_SAT_NAME . ' ' . $this->frequency->qrg_conversion($qsl->COL_FREQ) . '/' . $this->frequency->qrg_conversion($qsl->COL_FREQ_RX); } else { echo $this->frequency->qrg_conversion($qsl->COL_FREQ); }; echo '</td>';
|
||||
echo '<td style=\'text-align: center\'>' . $qsl->COL_RST_SENT . '</td>';
|
||||
echo '<td style=\'text-align: center\'>' . $qsl->COL_RST_RCVD . '</td>';
|
||||
echo '<td style=\'text-align: center\'><span class="badge text-bg-light">' . $qsl->station_callsign . '</span></td>';
|
||||
|
||||
@@ -70,9 +70,11 @@ function addQsoToPrintQueue(id) {
|
||||
if (qsoDialogInstance) {
|
||||
qsoDialogInstance.close();
|
||||
}
|
||||
var callSign = $("#qsolist_"+id).find("td:eq(0)").text();
|
||||
var formattedCallSign = callSign.replace(/0/g, "Ø").toUpperCase();
|
||||
var line = '<tr id="qslprint_'+id+'">';
|
||||
let callSign = $("#qsolist_"+id).find("td:eq(0)").text();
|
||||
let formattedCallSign = callSign.replace(/0/g, "Ø").toUpperCase();
|
||||
let line = '<tr id="qslprint_'+id+'">';
|
||||
let freq_or_band = $('#frequency_or_band').val();
|
||||
|
||||
line += '<td style=\'text-align: center\'><div class="form-check"><input class="form-check-input" type="checkbox" /></div></td>';
|
||||
line += '<td style="text-align: center">';
|
||||
line += '<span class="qso_call">';
|
||||
@@ -94,13 +96,23 @@ function addQsoToPrintQueue(id) {
|
||||
line += '<td style=\'text-align: center\'>'+$("#qsolist_"+id).find("td:eq(1)").text()+'</td>';
|
||||
line += '<td style=\'text-align: center\'>'+$("#qsolist_"+id).find("td:eq(2)").text()+'</td>';
|
||||
line += '<td style=\'text-align: center\'>'+$("#qsolist_"+id).find("td:eq(3)").text()+'</td>';
|
||||
line += '<td style=\'text-align: center\'>'+$("#qsolist_"+id).find("td:eq(4)").text()+'</td>';
|
||||
line += '<td style=\'text-align: center\'>'+$("#qsolist_"+id).find("td:eq(5)").text()+'</td>';
|
||||
if (freq_or_band === 'band') {
|
||||
line += '<td class=\'col-band\' style=\'text-align: center\'>'+$("#qsolist_"+id).find("td:eq(4)").text()+'</td>';
|
||||
line += '<td class=\'col-freq\' style=\'text-align: center; display:none;\'>'+$("#qsolist_"+id).find("td:eq(5)").text()+'</td>';
|
||||
|
||||
} else if (freq_or_band === 'frequency') {
|
||||
line += '<td class=\'col-band\' style=\'text-align: center; display:none;\'>'+$("#qsolist_"+id).find("td:eq(4)").text()+'</td>';
|
||||
line += '<td class=\'col-freq\' style=\'text-align: center\'>'+$("#qsolist_"+id).find("td:eq(5)").text()+'</td>';
|
||||
} else {
|
||||
line += '<td class=\'col-band\' style=\'text-align: center\'>'+$("#qsolist_"+id).find("td:eq(4)").text()+'</td>';
|
||||
line += '<td class=\'col-freq\' style=\'text-align: center\'>'+$("#qsolist_"+id).find("td:eq(5)").text()+'</td>';
|
||||
}
|
||||
line += '<td style=\'text-align: center\'>'+$("#qsolist_"+id).find("td:eq(6)").text()+'</td>';
|
||||
line += '<td style=\'text-align: center\'>'+$("#qsolist_"+id).find("td:eq(9)").text()+'</td>';
|
||||
line += '<td style=\'text-align: center\'><span class="badge text-bg-light">'+$("#qsolist_"+id).find("td:eq(7)").text()+'</span></td>';
|
||||
line += '<td style=\'text-align: center\'>'+$("#qsolist_"+id).find("td:eq(8)").text()+'</td>';
|
||||
line += '<td style=\'text-align: center\'>'+$("#qsolist_"+id).find("td:eq(7)").text()+'</td>';
|
||||
line += '<td style=\'text-align: center\'>'+$("#qsolist_"+id).find("td:eq(10)").text()+'</td>';
|
||||
line += '<td style=\'text-align: center\'><span class="badge text-bg-light">'+$("#qsolist_"+id).find("td:eq(8)").text()+'</span></td>';
|
||||
line += '<td style=\'text-align: center\'>'+$("#qsolist_"+id).find("td:eq(9)").text()+'</td>';
|
||||
line += '<td style=\'text-align: center\'>'+$("#qsolist_"+id).find("td:eq(11)").text()+'</td>';
|
||||
line += '<td style="text-align: center">'+prev_qsl_html+'</td>';
|
||||
line += '<td style=\'text-align: center\'><button onclick="mark_qsl_sent('+id+', \'B\')" class="btn btn-sm btn-success"><i class="fa fa-check"></i></button></td>';
|
||||
line += '<td style=\'text-align: center\'><button onclick="deleteFromQslQueue('+id+')" class="btn btn-sm btn-danger"><i class="fas fa-trash-alt"></i></button></td></td>';
|
||||
@@ -334,12 +346,12 @@ function exportSelectedQsos() {
|
||||
}
|
||||
|
||||
function markMethod(){
|
||||
|
||||
|
||||
//grab the dropdown
|
||||
const select = document.getElementById('markqslmethod');
|
||||
|
||||
//grab the selected method
|
||||
const methodkey = select.value;
|
||||
const methodkey = select.value;
|
||||
const method = select.options[select.selectedIndex].text;
|
||||
|
||||
//perform function
|
||||
@@ -350,22 +362,22 @@ function markMethodQSOs(method) {
|
||||
|
||||
//unmark any QSO that is already marked for cleanup purposes
|
||||
unmarkallQSOs();
|
||||
|
||||
|
||||
//grab the table
|
||||
const table = document.getElementById('qslprint_table');
|
||||
|
||||
//loop through each row except the header
|
||||
Array.from(table.tBodies[0].rows).forEach(row => {
|
||||
|
||||
|
||||
//get the send-method column
|
||||
const sendMethodCell = row.querySelector('td.send-method');
|
||||
|
||||
//check if it contains the right method (or skip check if method is empty)
|
||||
if (sendMethodCell && (method === "" || sendMethodCell.textContent.trim() === method)) {
|
||||
|
||||
|
||||
//find the checkbox in the first cell
|
||||
const checkbox = row.querySelector('td:first-child input[type="checkbox"]');
|
||||
|
||||
|
||||
//check that box
|
||||
if (checkbox) {
|
||||
checkbox.checked = true;
|
||||
@@ -375,16 +387,16 @@ function markMethodQSOs(method) {
|
||||
}
|
||||
|
||||
function unmarkallQSOs(){
|
||||
|
||||
|
||||
//grab the table
|
||||
const table = document.getElementById('qslprint_table');
|
||||
|
||||
//loop through each row except the header
|
||||
Array.from(table.tBodies[0].rows).forEach(row => {
|
||||
|
||||
|
||||
//find the checkbox in the first cell
|
||||
const checkbox = row.querySelector('td:first-child input[type="checkbox"]');
|
||||
|
||||
|
||||
//check that box
|
||||
if (checkbox) {
|
||||
checkbox.checked = false;
|
||||
@@ -393,7 +405,7 @@ function unmarkallQSOs(){
|
||||
}
|
||||
|
||||
function switchbandandfrequencydisplay(mode){
|
||||
|
||||
|
||||
//switch state according to selected value. Default case = band
|
||||
switch(mode) {
|
||||
case 'band':
|
||||
@@ -426,4 +438,4 @@ function switchbandandfrequencydisplay(mode){
|
||||
document.getElementById('frequency_or_band').addEventListener('change', function (event) {
|
||||
//switch display options
|
||||
switchbandandfrequencydisplay(event.target.value);
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user