From 310736d18f2faf5aec5b57eb4179a056b3afc217 Mon Sep 17 00:00:00 2001 From: phl0 Date: Thu, 26 Oct 2023 23:30:48 +0200 Subject: [PATCH 01/16] Show number of unassigned QSOs in Maintenance --- application/models/Logbook_model.php | 2 +- application/views/maintenance/main.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/application/models/Logbook_model.php b/application/models/Logbook_model.php index 90bdad19..6a48fbcc 100755 --- a/application/models/Logbook_model.php +++ b/application/models/Logbook_model.php @@ -4112,7 +4112,7 @@ function check_if_callsign_worked_in_logbook($callsign, $StationLocationsArray = $this->db->where('station_id =', NULL); $query = $this->db->get($this->config->item('table_name')); if($query->num_rows() >= 1) { - return 1; + return $query->num_rows(); } else { return 0; } diff --git a/application/views/maintenance/main.php b/application/views/maintenance/main.php index fef8627d..1cc03355 100644 --- a/application/views/maintenance/main.php +++ b/application/views/maintenance/main.php @@ -15,7 +15,7 @@ = 1) { ?>

Please reassign those QSOs to an existing station location:

From 14c656e676bcd6e447de37a9c375b69785971dd0 Mon Sep 17 00:00:00 2001 From: phl0 Date: Fri, 27 Oct 2023 08:53:58 +0200 Subject: [PATCH 02/16] Show slashed zero in (e)qsl view --- application/views/eqslcard/index.php | 2 +- application/views/qslcard/index.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/application/views/eqslcard/index.php b/application/views/eqslcard/index.php index aaf7597e..4d258086 100644 --- a/application/views/eqslcard/index.php +++ b/application/views/eqslcard/index.php @@ -34,7 +34,7 @@ foreach ($qslarray->result() as $qsl) { echo ''; - echo '' . $qsl->COL_CALL . ''; + echo '' . str_replace("0","Ø",$qsl->COL_CALL) . ''; echo ''; echo $qsl->COL_SUBMODE==null?$qsl->COL_MODE:$qsl->COL_SUBMODE; echo ''; diff --git a/application/views/qslcard/index.php b/application/views/qslcard/index.php index 3d71c88d..38cb3f05 100644 --- a/application/views/qslcard/index.php +++ b/application/views/qslcard/index.php @@ -36,7 +36,7 @@ foreach ($qslarray->result() as $qsl) { echo ''; - echo '' . $qsl->COL_CALL . ''; + echo '' . str_replace("0","Ø",$qsl->COL_CALL) . ''; echo ''; echo $qsl->COL_SUBMODE==null?$qsl->COL_MODE:$qsl->COL_SUBMODE; echo ''; From e6c605094e9402362d0760b71190ebfd87d695e1 Mon Sep 17 00:00:00 2001 From: phl0 Date: Fri, 27 Oct 2023 09:00:31 +0200 Subject: [PATCH 03/16] Also change box header --- application/views/interface_assets/footer.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/application/views/interface_assets/footer.php b/application/views/interface_assets/footer.php index 51aff59d..baaa8d0a 100644 --- a/application/views/interface_assets/footer.php +++ b/application/views/interface_assets/footer.php @@ -2376,7 +2376,7 @@ function viewEqsl(picture, callsign) { if (callsign == null) { title = 'eQSL Card'; } else { - title = 'eQSL Card for ' + callsign; + title = 'eQSL Card for ' + callsign.replace('0', 'Ø'); } BootstrapDialog.show({ From ec348b1ca97f01b194581ce4459b93cf5edc03b4 Mon Sep 17 00:00:00 2001 From: phl0 Date: Fri, 27 Oct 2023 09:01:25 +0200 Subject: [PATCH 04/16] Also for QSL --- application/views/interface_assets/footer.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/application/views/interface_assets/footer.php b/application/views/interface_assets/footer.php index baaa8d0a..4ad31ff5 100644 --- a/application/views/interface_assets/footer.php +++ b/application/views/interface_assets/footer.php @@ -2314,7 +2314,7 @@ function viewQsl(picture, callsign) { if (callsign == null) { title = 'QSL Card'; } else { - title = 'QSL Card for ' + callsign; + title = 'QSL Card for ' + callsign.replace('0', 'Ø'); } BootstrapDialog.show({ From b284b6f5ece76eaea46fe0acc0eddd0d94823449 Mon Sep 17 00:00:00 2001 From: phl0 Date: Fri, 27 Oct 2023 09:54:48 +0200 Subject: [PATCH 05/16] Only show notes if present --- application/views/view_log/qso.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/application/views/view_log/qso.php b/application/views/view_log/qso.php index 14820e9d..ce6b69dd 100644 --- a/application/views/view_log/qso.php +++ b/application/views/view_log/qso.php @@ -484,7 +484,7 @@

- COL_NOTES); ?> + COL_NOTES)) { echo nl2br($row->COL_NOTES); } ?>
Date: Fri, 27 Oct 2023 13:28:53 +0200 Subject: [PATCH 06/16] Show list of unassigned QSOs --- application/controllers/Maintenance.php | 4 +-- application/models/Logbook_model.php | 4 ++- application/views/maintenance/main.php | 35 +++++++++++++++++++++++-- 3 files changed, 38 insertions(+), 5 deletions(-) diff --git a/application/controllers/Maintenance.php b/application/controllers/Maintenance.php index 0e0deb2f..f6dd25c2 100644 --- a/application/controllers/Maintenance.php +++ b/application/controllers/Maintenance.php @@ -14,8 +14,8 @@ class Maintenance extends CI_Controller { $this->load->model('Stations'); $data['stations']=$this->Stations->all(); $data['page_title'] = "Maintenance"; - $data['is_there_qsos_with_no_station_id'] = $this->Logbook_model->check_for_station_id(); - if ($data['is_there_qsos_with_no_station_id']) { + $data['qsos_with_no_station_id'] = $this->Logbook_model->check_for_station_id(); + if ($data['qsos_with_no_station_id']) { $data['calls_wo_sid']=$this->Logbook_model->calls_without_station_id(); } $this->load->view('interface_assets/header', $data); diff --git a/application/models/Logbook_model.php b/application/models/Logbook_model.php index 6a48fbcc..643d4b97 100755 --- a/application/models/Logbook_model.php +++ b/application/models/Logbook_model.php @@ -4109,10 +4109,12 @@ function check_if_callsign_worked_in_logbook($callsign, $StationLocationsArray = } public function check_for_station_id() { + $this->db->select('COL_TIME_ON, COL_CALL, COL_MODE, COL_BAND'); $this->db->where('station_id =', NULL); $query = $this->db->get($this->config->item('table_name')); + log_message('debug','SQL: '.$this->db->last_query()); if($query->num_rows() >= 1) { - return $query->num_rows(); + return $query->result(); } else { return 0; } diff --git a/application/views/maintenance/main.php b/application/views/maintenance/main.php index 1cc03355..c1c6432e 100644 --- a/application/views/maintenance/main.php +++ b/application/views/maintenance/main.php @@ -13,11 +13,42 @@
QSO-DB Maintenance
- = 1) { ?> +
+
+ + + + + + + + + + session->userdata('user_date_format')) { + $custom_date_format = $this->session->userdata('user_date_format'); + } else { + $custom_date_format = 'd.m.Y'; + } + foreach ($qsos_with_no_station_id as $qso) { + echo ''; + $timestamp = strtotime($qso->COL_TIME_ON); + echo ''; + $timestamp = strtotime($qso->COL_TIME_ON); + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + } ?> + + + +
DateTimeCallModeBand
'.date($custom_date_format, $timestamp).''.date('H:i', $timestamp).''.$qso->COL_CALL.''.$qso->COL_MODE.''.$qso->COL_BAND.'
+

Please reassign those QSOs to an existing station location:

From adb8e8d03caab4434d72d63e6fb5fb05426b642d Mon Sep 17 00:00:00 2001 From: phl0 Date: Sat, 28 Oct 2023 16:06:32 +0200 Subject: [PATCH 07/16] Allow for selection of QSOs to be reassigned --- application/controllers/Maintenance.php | 4 +-- application/models/Logbook_model.php | 39 ++++++++++++++----------- application/views/maintenance/main.php | 4 ++- assets/js/sections/maintenance.js | 27 ++++++++++++++++- 4 files changed, 53 insertions(+), 21 deletions(-) diff --git a/application/controllers/Maintenance.php b/application/controllers/Maintenance.php index f6dd25c2..5ac18615 100644 --- a/application/controllers/Maintenance.php +++ b/application/controllers/Maintenance.php @@ -29,6 +29,7 @@ class Maintenance extends CI_Controller { $this->load->model('Logbook_model'); $this->load->model('Stations'); $call = xss_clean(($this->input->post('call'))); + $qsoids = xss_clean(($this->input->post('qsoids'))); $station_profile_id = xss_clean(($this->input->post('station_id'))); // Check if target-station-id exists @@ -39,8 +40,7 @@ class Maintenance extends CI_Controller { if ($station->station_id == $station_profile_id) { $allowed=true; } } if ($allowed) { - log_message("error",$call." to ".$station_profile_id); - $status=$this->Logbook_model->update_all_station_ids($station_profile_id,$call); + $status=$this->Logbook_model->update_station_ids($station_profile_id,$call,$qsoids); } else { $status=false; } diff --git a/application/models/Logbook_model.php b/application/models/Logbook_model.php index 643d4b97..98cabe72 100755 --- a/application/models/Logbook_model.php +++ b/application/models/Logbook_model.php @@ -4109,7 +4109,7 @@ function check_if_callsign_worked_in_logbook($callsign, $StationLocationsArray = } public function check_for_station_id() { - $this->db->select('COL_TIME_ON, COL_CALL, COL_MODE, COL_BAND'); + $this->db->select('COL_PRIMARY_KEY, COL_TIME_ON, COL_CALL, COL_MODE, COL_BAND'); $this->db->where('station_id =', NULL); $query = $this->db->get($this->config->item('table_name')); log_message('debug','SQL: '.$this->db->last_query()); @@ -4167,24 +4167,29 @@ function check_if_callsign_worked_in_logbook($callsign, $StationLocationsArray = } } - public function update_all_station_ids($station_id,$station_callsign) { + public function update_station_ids($station_id,$station_callsign,$qsoids) { - $data = array( - 'station_id' => $station_id, - ); + if (! empty($qsoids)) { + $data = array( + 'station_id' => $station_id, + ); - $this->db->where(array('station_id' => NULL)); - if ($station_callsign == '') { - $this->db->where(array('col_station_callsign' => NULL)); - } else { - $this->db->where('col_station_callsign', $station_callsign); - } - $this->db->update($this->config->item('table_name'), $data); - if ($this->db->affected_rows() > 0) { - return TRUE; - } else { - return FALSE; - } + $this->db->where_in('COL_PRIMARY_KEY', $qsoids); + $this->db->where(array('station_id' => NULL)); + if ($station_callsign == '') { + $this->db->where(array('col_station_callsign' => NULL)); + } else { + $this->db->where('col_station_callsign', $station_callsign); + } + $this->db->update($this->config->item('table_name'), $data); + if ($this->db->affected_rows() > 0) { + return TRUE; + } else { + return FALSE; + } + } else { + return FALSE; + } } public function parse_frequency($frequency) diff --git a/application/views/maintenance/main.php b/application/views/maintenance/main.php index c1c6432e..4a93da3c 100644 --- a/application/views/maintenance/main.php +++ b/application/views/maintenance/main.php @@ -22,6 +22,7 @@ + @@ -35,6 +36,7 @@ } foreach ($qsos_with_no_station_id as $qso) { echo ''; + echo ''; $timestamp = strtotime($qso->COL_TIME_ON); echo ''; $timestamp = strtotime($qso->COL_TIME_ON); @@ -69,7 +71,7 @@ foreach ($stations->result() as $station) { $options.=''; } - echo $options.''; + echo $options.''; } ?>
Date Time Call
'.date($custom_date_format, $timestamp).'
diff --git a/assets/js/sections/maintenance.js b/assets/js/sections/maintenance.js index 69cb91e3..b8bafad8 100644 --- a/assets/js/sections/maintenance.js +++ b/assets/js/sections/maintenance.js @@ -1,8 +1,15 @@ function reassign(call,target_profile_id) { + let qsoids = []; + let elements = document.getElementsByName("cBox[]"); + elements.forEach((item) => { + if (item.checked) { + qsoids.push(item.value); + } + }); $.ajax({ url: base_url + 'index.php/maintenance/reassign', type: 'post', - data: {'call': call, 'station_id': target_profile_id}, + data: {'call': call, 'station_id': target_profile_id, 'qsoids' : qsoids}, success: function (resu) { if (resu.status) { location.reload(); @@ -10,3 +17,21 @@ function reassign(call,target_profile_id) { } }); } + +function toggleAll(source) { + console.log('test'); + if (source.checked) { + let elements = document.getElementsByName("cBox[]"); + elements.forEach((item) => { + item.checked = true; + }) + source.checked = true; + } + if (!source.checked) { + let elements = document.getElementsByName("cBox[]"); + elements.forEach((item) => { + item.checked = false; + }) + source.checked = false; + } +} From 90a05292031ac97833626fe1c73fa1d22f4a37ce Mon Sep 17 00:00:00 2001 From: phl0 Date: Sun, 29 Oct 2023 02:43:22 +0200 Subject: [PATCH 08/16] Show correct callsign left of dropdown menu --- application/views/maintenance/main.php | 2 +- assets/js/sections/maintenance.js | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/application/views/maintenance/main.php b/application/views/maintenance/main.php index 4a93da3c..115419ba 100644 --- a/application/views/maintenance/main.php +++ b/application/views/maintenance/main.php @@ -66,7 +66,7 @@ '.$call['COL_STATION_CALLSIGN'].''; $options=''; foreach ($stations->result() as $station) { $options.=''; diff --git a/assets/js/sections/maintenance.js b/assets/js/sections/maintenance.js index b8bafad8..9c66af94 100644 --- a/assets/js/sections/maintenance.js +++ b/assets/js/sections/maintenance.js @@ -35,3 +35,9 @@ function toggleAll(source) { source.checked = false; } } + +function updateCallsign(item) { + let text = item.options[item.selectedIndex].text + let call = text.substr(text.lastIndexOf('(')+1,(text.lastIndexOf(')')-text.lastIndexOf('(')-1)); + document.getElementById("station_call").innerHTML = call; +} From 5c40fa21d73a291489e9f21596dc13f26f74399d Mon Sep 17 00:00:00 2001 From: phl0 Date: Sun, 29 Oct 2023 11:33:04 +0100 Subject: [PATCH 09/16] Fix misaligned thead and tbody --- application/views/maintenance/main.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/application/views/maintenance/main.php b/application/views/maintenance/main.php index 115419ba..8c276ced 100644 --- a/application/views/maintenance/main.php +++ b/application/views/maintenance/main.php @@ -29,6 +29,8 @@ Mode Band + + session->userdata('user_date_format')) { $custom_date_format = $this->session->userdata('user_date_format'); } else { @@ -46,8 +48,6 @@ echo ''.$qso->COL_BAND.''; echo ''; } ?> - -
From 70504c50228c73da95b6ba6994380d087ab4a236 Mon Sep 17 00:00:00 2001 From: Andreas <6977712+AndreasK79@users.noreply.github.com> Date: Mon, 30 Oct 2023 12:15:08 +0100 Subject: [PATCH 10/16] [Dashboard] Added some warnings --- application/models/Setup_model.php | 35 +++++++++++++++++++++++++++ application/views/dashboard/index.php | 26 +++++++++++++++++++- 2 files changed, 60 insertions(+), 1 deletion(-) create mode 100644 application/models/Setup_model.php diff --git a/application/models/Setup_model.php b/application/models/Setup_model.php new file mode 100644 index 00000000..79f3319e --- /dev/null +++ b/application/models/Setup_model.php @@ -0,0 +1,35 @@ +db->query($sql); + + $result = $query->result(); + + return count($result); + } + + function getLogbookCount() { + $userid = xss_clean($this->session->userdata('user_id')); + $sql = 'select count(*) from station_logbooks where user_id =' . $userid; + $query = $this->db->query($sql); + + $result = $query->result(); + + return count($result); + } + + function getLocationCount() { + $userid = xss_clean($this->session->userdata('user_id')); + $sql = 'select count(*) from station_profile where user_id =' . $userid; + $query = $this->db->query($sql); + + $result = $query->result(); + + return count($result); + } +} + +?> diff --git a/application/views/dashboard/index.php b/application/views/dashboard/index.php index 38ad16c9..acb196a9 100644 --- a/application/views/dashboard/index.php +++ b/application/views/dashboard/index.php @@ -48,7 +48,31 @@ function echoQrbCalcLink($mygrid, $grid, $vucc) { ?>
config->item('use_auth') && ($this->session->userdata('user_type') >= 2)) || $this->config->item('use_auth') === FALSE) { ?> - + + + + + + + + + + + + + + + + + optionslib->get_option('dashboard_banner') != "false") { ?> = 1) { ?>