From a8c67b1f190e38f7d7f6f573c51185bf6e8a7f8d Mon Sep 17 00:00:00 2001 From: Peter Goodhall Date: Tue, 12 Dec 2023 13:34:56 +0000 Subject: [PATCH 01/11] [Awards][Popups] Fix popup menus when using modals on awards --- assets/css/general.css | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/assets/css/general.css b/assets/css/general.css index c71c61a6..fdf1a1f4 100644 --- a/assets/css/general.css +++ b/assets/css/general.css @@ -743,4 +743,16 @@ table.dataTable tfoot td { #partial_view .table-responsive { overflow-x: unset; +} + +.qso-dialog .modal-body { + overflow: unset !important; +} + +.qso-dialog .table-responsive { + overflow: unset !important; +} + +.qso-dialog .dataTables_scrollBody { + overflow: unset !important; } \ No newline at end of file From 43cdd60a1bd100488f0f1bbc665645039a182fa4 Mon Sep 17 00:00:00 2001 From: phl0 Date: Tue, 12 Dec 2023 15:15:49 +0100 Subject: [PATCH 02/11] Check for empty LoTW/eQSL dates and catch the error --- application/views/view_log/qso.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/application/views/view_log/qso.php b/application/views/view_log/qso.php index 3b6f1c9e..1ba11ffd 100644 --- a/application/views/view_log/qso.php +++ b/application/views/view_log/qso.php @@ -359,12 +359,12 @@

: '; ?>lastupload); echo date($custom_date_format, $timestamp); $timestamp = strtotime($row->lastupload); echo " ".date('H:i', $timestamp);?> UTC.

- COL_LOTW_QSL_RCVD == "Y") { ?> + COL_LOTW_QSL_RCVD == "Y" && $row->COL_LOTW_QSLRDATE != null) { ?>

COL_LOTW_QSLRDATE); echo date($custom_date_format, $timestamp); ?>.

- COL_EQSL_QSL_RCVD == "Y") { ?> + COL_EQSL_QSL_RCVD == "Y" && $row->COL_EQSL_QSLRDATE != null) { ?>

eQSL

COL_EQSL_QSLRDATE); echo date($custom_date_format, $timestamp); ?>.

From c2703dcd98d8ccf66ecc3deee4ac77800527b011 Mon Sep 17 00:00:00 2001 From: HB9HIL Date: Tue, 12 Dec 2023 15:41:54 +0100 Subject: [PATCH 03/11] paging on qso data instead scrolling --- application/views/interface_assets/footer.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/application/views/interface_assets/footer.php b/application/views/interface_assets/footer.php index bf931685..5a1cd98e 100644 --- a/application/views/interface_assets/footer.php +++ b/application/views/interface_assets/footer.php @@ -2503,12 +2503,12 @@ function viewEqsl(picture, callsign) { onshown: function(dialog) { $('[data-bs-toggle="tooltip"]').tooltip(); $('.contacttable').DataTable({ - "pageLength": 25, + "pageLength": 7, responsive: false, ordering: false, "scrollY": "550px", "scrollCollapse": true, - "paging": false, + "paging": true, "scrollX": true, dom: 'Bfrtip', buttons: [ From 8f697f5b6e29fccf55263ec12ace5ed29963b3fe Mon Sep 17 00:00:00 2001 From: Peter Goodhall Date: Tue, 12 Dec 2023 16:27:41 +0000 Subject: [PATCH 04/11] [Nav] Shift anything not ADIF into an sub export menu --- application/views/interface_assets/header.php | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/application/views/interface_assets/header.php b/application/views/interface_assets/header.php index 84e2a349..0e1e92d3 100644 --- a/application/views/interface_assets/header.php +++ b/application/views/interface_assets/header.php @@ -320,13 +320,17 @@
- + From bfc2d50c95d57a7c33101c74703ee595de0e2732 Mon Sep 17 00:00:00 2001 From: phl0 Date: Tue, 12 Dec 2023 19:15:56 +0100 Subject: [PATCH 05/11] Generalize gridmaster functions --- application/controllers/Awards.php | 32 ++++++---- application/models/Gridmaster_model.php | 58 +++++++++++++++---- application/views/awards/gridmaster/index.php | 1 + application/views/interface_assets/header.php | 4 +- .../L.MaidenheadColouredGridmasterMap.js | 34 +---------- assets/js/sections/gridmaster.js | 23 +++++--- 6 files changed, 86 insertions(+), 66 deletions(-) diff --git a/application/controllers/Awards.php b/application/controllers/Awards.php index 68f51cf3..fa707115 100644 --- a/application/controllers/Awards.php +++ b/application/controllers/Awards.php @@ -597,8 +597,9 @@ class Awards extends CI_Controller { $this->load->view('awards/details', $data); } - public function gridmaster() { - $data['page_title'] = "Awards - US Gridmaster"; + public function gridmaster($dxcc) { + $dxcc = $this->security->xss_clean($dxcc); + $data['page_title'] = "Awards - ".strtoupper($dxcc)." Gridmaster"; $this->load->model('bands'); $this->load->model('gridmap_model'); @@ -619,15 +620,17 @@ class Awards extends CI_Controller { $data['gridsquares_gridsquares_lotw']= lang('gridsquares_gridsquares_lotw'); $data['gridsquares_gridsquares_paper']= lang('gridsquares_gridsquares_paper'); + $indexData['dxcc'] = $dxcc; + $footerData = []; $footerData['scripts']= [ 'assets/js/leaflet/geocoding.js', 'assets/js/leaflet/L.MaidenheadColouredGridmasterMap.js', - 'assets/js/sections/gridmaster.js?' + 'assets/js/sections/gridmaster.js' ]; $this->load->view('interface_assets/header',$data); - $this->load->view('awards/gridmaster/index'); + $this->load->view('awards/gridmaster/index',$indexData); $this->load->view('interface_assets/footer',$footerData); } @@ -837,9 +840,11 @@ class Awards extends CI_Controller { echo json_encode($data); } - public function getGridmasterGridsjs() { + public function getGridmasterGridsjs($dxcc) { $this->load->model('gridmaster_model'); + $dxcc = $this->security->xss_clean($dxcc); + $array_grid_4char = array(); $array_grid_4char_lotw = array(); $array_grid_4char_paper = array(); @@ -847,7 +852,7 @@ class Awards extends CI_Controller { $grid_4char = ""; $grid_4char_lotw = ""; - $query = $this->gridmaster_model->get_lotw(); + $query = $this->gridmaster_model->get_lotw($dxcc); if ($query && $query->num_rows() > 0) { foreach ($query->result() as $row) { $grid_4char_lotw = strtoupper(substr($row->GRID_SQUARES,0,4)); @@ -857,7 +862,7 @@ class Awards extends CI_Controller { } } - $query = $this->gridmaster_model->get_paper(); + $query = $this->gridmaster_model->get_paper($dxcc); if ($query && $query->num_rows() > 0) { foreach ($query->result() as $row) { $grid_4char_paper = strtoupper(substr($row->GRID_SQUARES,0,4)); @@ -867,7 +872,7 @@ class Awards extends CI_Controller { } } - $query = $this->gridmaster_model->get_worked(); + $query = $this->gridmaster_model->get_worked($dxcc); if ($query && $query->num_rows() > 0) { foreach ($query->result() as $row) { $grid_four = strtoupper(substr($row->GRID_SQUARES,0,4)); @@ -877,7 +882,7 @@ class Awards extends CI_Controller { } } - $vucc_grids = $this->gridmaster_model->get_vucc_lotw(); + $vucc_grids = $this->gridmaster_model->get_vucc_lotw($dxcc); foreach($vucc_grids as $key) { $grid_four_lotw = strtoupper(substr($key,0,4)); if(!in_array($grid_four_lotw, $array_grid_4char_lotw)){ @@ -885,7 +890,7 @@ class Awards extends CI_Controller { } } - $vucc_grids = $this->gridmaster_model->get_vucc_paper(); + $vucc_grids = $this->gridmaster_model->get_vucc_paper($dxcc); foreach($vucc_grids as $key) { $grid_four_paper = strtoupper(substr($key,0,4)); if(!in_array($grid_four_paper, $array_grid_4char_paper)){ @@ -893,7 +898,7 @@ class Awards extends CI_Controller { } } - $vucc_grids = $this->gridmaster_model->get_vucc_worked(); + $vucc_grids = $this->gridmaster_model->get_vucc_worked($dxcc); foreach($vucc_grids as $key) { $grid_four = strtoupper(substr($key,0,4)); if(!in_array($grid_four, $array_grid_4char)){ @@ -904,6 +909,11 @@ class Awards extends CI_Controller { $data['grid_4char_lotw'] = ($array_grid_4char_lotw); $data['grid_4char_paper'] = ($array_grid_4char_paper); $data['grid_4char'] = ($array_grid_4char); + $data['grid_count'] = $this->gridmaster_model->get_grid_count($dxcc); + $data['grids'] = $this->gridmaster_model->get_grids($dxcc); + $data['lat'] = $this->gridmaster_model->get_lat($dxcc); + $data['lon'] = $this->gridmaster_model->get_lon($dxcc); + $data['zoom'] = $this->gridmaster_model->get_zoom($dxcc); header('Content-Type: application/json'); echo json_encode($data); diff --git a/application/models/Gridmaster_model.php b/application/models/Gridmaster_model.php index 868c7b44..216fa1fa 100644 --- a/application/models/Gridmaster_model.php +++ b/application/models/Gridmaster_model.php @@ -34,8 +34,22 @@ class Gridmaster_model extends CI_Model { 'EL39', 'EL49', 'EL59', 'EL79', 'EL89', 'EL99', 'DL88', 'DL98', 'EL08', 'EL18', 'EL28', 'EL58', 'EL88', 'EL98', 'EL07', 'EL17', 'EL87', 'EL97', 'EL06', 'EL16', 'EL86', 'EL96', 'EL15', 'EL95', 'EL84', 'EL94' ]; + private $us_lat = 38; + private $us_lon = -91; + private $us_zoom = 5; - function get_lotw() { + private $ja_grids = ['PL14', 'PL24', 'PL36', 'PL37', 'PL46', 'PL47', 'PL48', 'PL49', 'PL55', 'PL58', 'PM40', 'PM41', 'PM42', 'PM43', + 'PM44', 'PM50', 'PM51', 'PM52', 'PM53', 'PM54', 'PM62', 'PM63', 'PM64', 'PM65', 'PM66', 'PM73', 'PM74', 'PM75', 'PM76', 'PM83', + 'PM84', 'PM85', 'PM86', 'PM87', 'PM92', 'PM93', 'PM94', 'PM95', 'PM96', 'PM97', 'PM98', 'PM99', 'PN90', 'PN91', 'PN92', 'QL16', + 'QL17', 'QM05', 'QM06', 'QM07', 'QM08', 'QM09', 'QM19', 'QN00', 'QN01', 'QN02', 'QN03', 'QN04', 'QN05', 'QN11', 'QN12', 'QN13', + 'QN14', 'QN15', 'QN22', 'QN23', 'QN24', 'PL80', 'PM91', 'QL04', 'QL05', 'QL07', 'QL09', 'QL64', 'QM00', 'QM01', 'PL15', 'PL25', + 'PL54', 'PM57', 'QN33', 'QN34', 'QN35', 'QN45' + ]; + private $ja_lat = 35; + private $ja_lon = 140; + private $ja_zoom = 5; + + function get_lotw($dxcc) { $CI =& get_instance(); $CI->load->model('logbooks_model'); $logbooks_locations_array = $CI->logbooks_model->list_logbook_relationships($this->session->userdata('active_station_logbook')); @@ -50,11 +64,11 @@ class Gridmaster_model extends CI_Model { .' WHERE station_id in ('.$location_list.')' ." and COL_LOTW_QSL_RCVD = 'Y'" ." and COL_PROP_MODE = 'SAT'" - .' AND substring(COL_GRIDSQUARE,1,4) in (\''.implode('\',\'', $this->us_grids).'\')'; + .' AND substring(COL_GRIDSQUARE,1,4) in (\''.implode('\',\'', $this->{$dxcc.'_grids'}).'\')'; return $this->db->query($sql); } - function get_paper() { + function get_paper($dxcc) { $CI =& get_instance(); $CI->load->model('logbooks_model'); $logbooks_locations_array = $CI->logbooks_model->list_logbook_relationships($this->session->userdata('active_station_logbook')); @@ -69,11 +83,11 @@ class Gridmaster_model extends CI_Model { .' WHERE station_id in ('.$location_list.')' ." and COL_QSL_RCVD = 'Y'" ." and COL_PROP_MODE = 'SAT'" - .' AND substring(COL_GRIDSQUARE,1,4) in (\''.implode('\',\'', $this->us_grids).'\')'; + .' AND substring(COL_GRIDSQUARE,1,4) in (\''.implode('\',\'', $this->{$dxcc.'_grids'}).'\')'; return $this->db->query($sql); } - function get_worked() { + function get_worked($dxcc) { $CI =& get_instance(); $CI->load->model('logbooks_model'); $logbooks_locations_array = $CI->logbooks_model->list_logbook_relationships($this->session->userdata('active_station_logbook')); @@ -87,11 +101,11 @@ class Gridmaster_model extends CI_Model { .$this->config->item('table_name') .' WHERE station_id in ('.$location_list.')' ." and COL_PROP_MODE = 'SAT'" - .' AND substring(COL_GRIDSQUARE,1,4) in (\''.implode('\',\'', $this->us_grids).'\')'; + .' AND substring(COL_GRIDSQUARE,1,4) in (\''.implode('\',\'', $this->{$dxcc.'_grids'}).'\')'; return $this->db->query($sql); } - function get_vucc_lotw() { + function get_vucc_lotw($dxcc) { $CI =& get_instance(); $CI->load->model('logbooks_model'); $logbooks_locations_array = $CI->logbooks_model->list_logbook_relationships($this->session->userdata('active_station_logbook')); @@ -113,7 +127,7 @@ class Gridmaster_model extends CI_Model { foreach ($query->result() as $row) { $grids = explode(',', $row->VUCC_GRIDS); foreach ($grids as $grid) { - if (in_array(substr($grid, 0, 4), $this->us_grids)) { + if (in_array(substr($grid, 0, 4), $this->{$dxcc.'_grids'})) { if (!in_array(substr($grid, 0, 4), $vucc_grids)) { $vucc_grids[] = substr($grid, 0, 4); } @@ -123,7 +137,7 @@ class Gridmaster_model extends CI_Model { return $vucc_grids; } - function get_vucc_paper() { + function get_vucc_paper($dxcc) { $CI =& get_instance(); $CI->load->model('logbooks_model'); $logbooks_locations_array = $CI->logbooks_model->list_logbook_relationships($this->session->userdata('active_station_logbook')); @@ -145,7 +159,7 @@ class Gridmaster_model extends CI_Model { foreach ($query->result() as $row) { $grids = explode(',', $row->VUCC_GRIDS); foreach ($grids as $grid) { - if (in_array(substr($grid, 0, 4), $this->us_grids)) { + if (in_array(substr($grid, 0, 4), $this->{$dxcc.'_grids'})) { if (!in_array(substr($grid, 0, 4), $vucc_grids)) { $vucc_grids[] = substr($grid, 0, 4); } @@ -155,7 +169,7 @@ class Gridmaster_model extends CI_Model { return $vucc_grids; } - function get_vucc_worked() { + function get_vucc_worked($dxcc) { $CI =& get_instance(); $CI->load->model('logbooks_model'); $logbooks_locations_array = $CI->logbooks_model->list_logbook_relationships($this->session->userdata('active_station_logbook')); @@ -176,7 +190,7 @@ class Gridmaster_model extends CI_Model { foreach ($query->result() as $row) { $grids = explode(',', $row->VUCC_GRIDS); foreach ($grids as $grid) { - if (in_array(substr($grid, 0, 4), $this->us_grids)) { + if (in_array(substr($grid, 0, 4), $this->{$dxcc.'_grids'})) { if (!in_array(substr($grid, 0, 4), $vucc_grids)) { $vucc_grids[] = substr($grid, 0, 4); } @@ -186,4 +200,24 @@ class Gridmaster_model extends CI_Model { return $vucc_grids; } + function get_grid_count($dxcc) { + return count($this->{$dxcc.'_grids'}); + } + + function get_grids($dxcc) { + return $this->{$dxcc.'_grids'}; + } + + function get_lat($dxcc) { + return $this->{$dxcc.'_lat'}; + } + + function get_lon($dxcc) { + return $this->{$dxcc.'_lon'}; + } + + function get_zoom($dxcc) { + return $this->{$dxcc.'_zoom'}; + } + } diff --git a/application/views/awards/gridmaster/index.php b/application/views/awards/gridmaster/index.php index 2b6d8a1d..690e06a9 100644 --- a/application/views/awards/gridmaster/index.php +++ b/application/views/awards/gridmaster/index.php @@ -81,6 +81,7 @@ -

- - - - - session->flashdata('message')) { ?> - -
-

session->flashdata('message'); ?>

-
- - - -
-
-
-
-
:
-
-
:
-
-
:
-
-
:
-
-
:
-
-
- diff --git a/assets/js/leaflet/L.MaidenheadColouredJaGridmasterMap.js b/assets/js/leaflet/L.MaidenheadColouredJaGridmasterMap.js deleted file mode 100644 index d8e4c7ab..00000000 --- a/assets/js/leaflet/L.MaidenheadColouredJaGridmasterMap.js +++ /dev/null @@ -1,153 +0,0 @@ -/* - * L.Maidenhead displays a Maidenhead Locator of lines on the map. - */ - -L.Maidenhead = L.LayerGroup.extend({ - - - options: { - // Line and label color - color: 'rgba(255, 0, 0, 0.4)', - - // Redraw on move or moveend - redraw: 'move' - }, - - initialize: function (options) { - L.LayerGroup.prototype.initialize.call(this); - L.Util.setOptions(this, options); - }, - - onAdd: function (map) { - this._map = map; - var grid = this.redraw(); - this._map.on('viewreset '+ this.options.redraw, function () { - grid.redraw(); - }); - - this.eachLayer(map.addLayer, map); - }, - - onRemove: function (map) { - // remove layer listeners and elements - map.off('viewreset '+ this.options.redraw, this.map); - this.eachLayer(this.removeLayer, this); - }, - - redraw: function () { - var d3 = new Array(20, 10, 10, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1); - var lat_cor = new Array(0, 8, 8, 8, 2.5, 2.2, 6, 8, 8, 8, 8, 8, 8); // Used for gridsquare text offset - var bounds = map.getBounds(); - var zoom = map.getZoom(); - var unit = d3[zoom]; - var lcor = lat_cor[zoom]; - var w = bounds.getWest(); - var e = bounds.getEast(); - var n = bounds.getNorth(); - var s = bounds.getSouth(); - var c = 0.2; - if (n > 85) n = 85; - if (s < -85) s = -85; - var left = Math.floor(w/(unit*2))*(unit*2); - var right = Math.ceil(e/(unit*2))*(unit*2); - var top = Math.ceil(n/unit)*unit; - var bottom = Math.floor(s/unit)*unit; - this.eachLayer(this.removeLayer, this); - - for (var lon = left; lon < right; lon += (unit*2)) { - if (lon > -180 || lon < 180) { - for (var lat = bottom; lat < top; lat += unit) { - var bounds = [[lat,lon],[lat+unit,lon+(unit*2)]]; - var locator = this._getLocator(lon,lat); - - if(grid_four.includes(locator)) { - - if(grid_four_lotw.includes(locator)) { - var rectConfirmed = L.rectangle(bounds, {className: 'grid-rectangle grid-confirmed', color: 'rgba(144,238,144, 0.6)', weight: 1, fillOpacity: 1, fill:true, interactive: false}); - this.addLayer(rectConfirmed); - } else if (grid_four_paper.includes(locator)) { - var rectPaper = L.rectangle(bounds, {className: 'grid-rectangle grid-confirmed', color: 'rgba(0,176,240, 0.6)', weight: 1, fillOpacity: 1, fill:true, interactive: false}); - this.addLayer(rectPaper); - } else { - var rectWorked = L.rectangle(bounds, {className: 'grid-rectangle grid-worked', color: 'rgba(255,215,87, 0.6)', weight: 1, fillOpacity: 1, fill:true, interactive: false}) - this.addLayer(rectWorked); - } - // Controls text on grid on various zoom levels - this.addLayer(this._getLabel(lon+unit-(unit/lcor),lat+(unit/2)+(unit/lcor*c))); - } else if (grids.includes(locator)) { - var rect = L.rectangle(bounds, {className: 'grid-rectangle grid-unworked', color: 'rgba(0,0,0, 0.3)', weight: 1, fillOpacity: 0.15, fill:true, interactive: false}) - this.addLayer(rect); - this.addLayer(this._getLabel(lon+unit-(unit/lcor),lat+(unit/2)+(unit/lcor*c))); - } - } - } - } - // Added this to print fields and field name, while still showing worked/confirmed gridsquares - unit = 10; - var left = Math.floor(w / (unit * 2)) * (unit * 2); - var right = Math.ceil(e / (unit * 2)) * (unit * 2); - var top = Math.ceil(n / unit) * unit; - var bottom = Math.floor(s / unit) * unit; - for (var lon = left; lon < right; lon += (unit * 2)) { - for (var lat = bottom; lat < top; lat += unit) { - var bounds = [[lat, lon], [lat + unit, lon + (unit * 2)]]; - - this.addLayer(L.rectangle(bounds, { - className: 'grid-rectangle', - color: this.options.color, - weight: 1, - fill: false, - interactive: false - })); - } - } - return this; - }, - - _getLabel: function(lon,lat) { - var title_size = new Array(0, 10, 14, 16, 8.5, 13, 14, 16, 24, 36, 36, 64, 128); // Controls text size on labels - var zoom = map.getZoom(); - var size = title_size[zoom]+'px'; - var title = ''; - var locator = this._getLocator(lon,lat); - title = '' + locator + ''; - var myIcon = L.divIcon({className: 'my-div-icon', html: title}); - var marker = L.marker([lat,lon], {icon: myIcon}, clickable=false); - if (typeof gridsquaremap !== 'undefined' && gridsquaremap == true) { - marker.on('click', function(event) { - spawnGridsquareModal(locator); - }); - } - return marker; - }, - - _getLocator: function(lon,lat) { - var ydiv_arr=new Array(10, 1, 1/24, 1/240, 1/240/24); - var d1 = "ABCDEFGHIJKLMNOPQR".split(""); - var d4 = new Array(0, 1, 1, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5); - var locator = ""; - var x = lon; - var y = lat; - var precision = d4[map.getZoom()]; - while (x < -180) {x += 360;} - while (x > 180) {x -=360;} - x = x + 180; - y = y + 90; - locator = locator + d1[Math.floor(x/20)] + d1[Math.floor(y/10)]; - for (var i=0; i<4; i=i+1) { - if (precision > i+1) { - rlon = x%(ydiv_arr[i]*2); - rlat = y%(ydiv_arr[i]); - if ((i%2)==0) { - locator += Math.floor(rlon/(ydiv_arr[i+1]*2)) +""+ Math.floor(rlat/(ydiv_arr[i+1])); - } - } - } - return locator; - }, - -}); - -L.maidenhead = function (options) { - return new L.Maidenhead(options); -}; diff --git a/assets/js/sections/ja_gridmaster.js b/assets/js/sections/ja_gridmaster.js deleted file mode 100644 index 4835a676..00000000 --- a/assets/js/sections/ja_gridmaster.js +++ /dev/null @@ -1,143 +0,0 @@ -var map; -var grid_four = ''; -var grid_four_lotw = ''; -var grid_four_paper = ''; - -function gridPlot(form) { - $(".ld-ext-right-plot").addClass('running'); - $(".ld-ext-right-plot").prop('disabled', true); - $('#plot').prop("disabled", true); - // If map is already initialized - var container = L.DomUtil.get('gridsquare_map'); - - if(container != null){ - container._leaflet_id = null; - container.remove(); - $("#gridmapcontainer").append('
'); - } - - ajax_url = site_url + '/awards/getJaGridmasterGridsjs'; - - $.ajax({ - url: ajax_url, - type: 'get', - success: function (data) { - $('.cohidden').show(); - $(".ld-ext-right-plot").removeClass('running'); - $(".ld-ext-right-plot").prop('disabled', false); - $('#plot').prop("disabled", false); - grids = data.grids; - grid_max = data.grid_count; - grid_four = data.grid_4char; - grid_four_lotw = data.grid_4char_lotw; - grid_four_paper = data.grid_4char_paper; - paper_count = 0; - grid_four_paper.forEach((element) => { - if (!grid_four_lotw.includes(element)) { - paper_count++; - } - }); - var layer = L.tileLayer(jslayer, { - maxZoom: 12, - attribution: jsattribution, - id: 'mapbox.streets' - }); - - map = L.map('gridsquare_map', { - layers: [layer], - center: [35, 140], - zoom: 5, - minZoom: 4, - maxZoom: 12, - fullscreenControl: true, - fullscreenControlOptions: { - position: 'topleft' - }, - }); - - var printer = L.easyPrint({ - tileLayer: layer, - sizeModes: ['Current'], - filename: 'myMap', - exportOnly: true, - hideControlContainer: true - }).addTo(map); - - /*Legend specific*/ - var legend = L.control({ position: "topright" }); - - legend.onAdd = function(map) { - var div = L.DomUtil.create("div", "legend"); - //div.innerHTML += "

" + gridsquares_gridsquares + "

"; - html = ""; - html += ''; - html += ''; - html += ''; - html += "
' + gridsquares_gridsquares_lotw + ':'+grid_four_lotw.length+' / '+grid_max+'
' + gridsquares_gridsquares_paper + ':'+paper_count+' / '+grid_max+'
' + gridsquares_gridsquares_worked + ' ('+(Math.round((grid_four.length / grid_max) * 10000) / 100)+'%):'+(grid_four.length)+' / '+grid_max+'
"; - div.innerHTML = html; - return div; - }; - - legend.addTo(map); - - var maidenhead = L.maidenhead().addTo(map); - map.on('mousemove', onMapMove); - - }, - error: function (data) { - }, - }); -} - -function spawnGridsquareModal(loc_4char) { - var ajax_data = ({ - 'Searchphrase': loc_4char, - 'Band': 'SAT', - 'Type': 'VUCC' - }) - $.ajax({ - url: base_url + 'index.php/awards/qso_details_ajax', - type: 'post', - data: ajax_data, - success: function (html) { - BootstrapDialog.show({ - title: lang_general_word_qso_data, - cssClass: 'qso-dialog', - size: BootstrapDialog.SIZE_WIDE, - nl2br: false, - message: html, - onshown: function(dialog) { - - $('[data-bs-toggle="tooltip"]').tooltip(); - $('.contacttable').DataTable({ - "pageLength": 25, - responsive: false, - ordering: false, - "scrollY": "550px", - "scrollCollapse": true, - "paging": false, - "scrollX": true, - dom: 'Bfrtip', - buttons: [ - 'csv' - ] - }); - // change color of csv-button if dark mode is chosen - if (isDarkModeTheme()) { - $(".buttons-csv").css("color", "white"); - } - }, - buttons: [{ - label: lang_admin_close, - action: function(dialogItself) { - dialogItself.close(); - } - }] - }); - } - }); -} - -$(document).ready(function(){ - gridPlot(this.form); -}) From 1f6487fd8f43fb803949d2e7fbdbc7da258c9bc3 Mon Sep 17 00:00:00 2001 From: HB9HIL Date: Tue, 12 Dec 2023 20:56:21 +0100 Subject: [PATCH 07/11] adjusted the search/quicklog field mobile --- application/views/interface_assets/header.php | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/application/views/interface_assets/header.php b/application/views/interface_assets/header.php index 84e2a349..5af9867f 100644 --- a/application/views/interface_assets/header.php +++ b/application/views/interface_assets/header.php @@ -270,21 +270,18 @@
- +
- +
From b1aa996a5d599b25482b66c05e49c26dc7ffad56 Mon Sep 17 00:00:00 2001 From: phl0 Date: Tue, 12 Dec 2023 21:22:46 +0100 Subject: [PATCH 08/11] Add DL Gridmaster --- application/language/bulgarian/menu_lang.php | 1 + application/language/chinese_simplified/menu_lang.php | 1 + application/language/czech/menu_lang.php | 1 + application/language/dutch/menu_lang.php | 1 + application/language/english/menu_lang.php | 1 + application/language/finnish/menu_lang.php | 1 + application/language/french/menu_lang.php | 1 + application/language/german/menu_lang.php | 1 + application/language/greek/menu_lang.php | 1 + application/language/italian/menu_lang.php | 1 + application/language/polish/menu_lang.php | 1 + application/language/russian/menu_lang.php | 1 + application/language/spanish/menu_lang.php | 1 + application/language/swedish/menu_lang.php | 1 + application/language/turkish/menu_lang.php | 1 + application/models/Gridmaster_model.php | 8 ++++++++ application/views/interface_assets/header.php | 2 ++ 17 files changed, 25 insertions(+) diff --git a/application/language/bulgarian/menu_lang.php b/application/language/bulgarian/menu_lang.php index 83e76c8b..f71a72cf 100644 --- a/application/language/bulgarian/menu_lang.php +++ b/application/language/bulgarian/menu_lang.php @@ -36,6 +36,7 @@ $lang['menu_continents'] = 'Continents'; $lang['menu_awards'] = 'Awards'; $lang['menu_cq'] = 'CQ'; +$lang['menu_dl_gridmaster'] = 'DL Gridmaster'; $lang['menu_dok'] = 'DOK'; $lang['menu_dxcc'] = 'DXCC'; $lang['menu_iota'] = 'IOTA'; diff --git a/application/language/chinese_simplified/menu_lang.php b/application/language/chinese_simplified/menu_lang.php index 6a3c093f..ecc40fde 100644 --- a/application/language/chinese_simplified/menu_lang.php +++ b/application/language/chinese_simplified/menu_lang.php @@ -36,6 +36,7 @@ $lang['menu_continents'] = '大陆'; $lang['menu_awards'] = '奖项'; $lang['menu_cq'] = 'CQ'; +$lang['menu_dl_gridmaster'] = 'DL Gridmaster'; $lang['menu_dok'] = 'DOK'; $lang['menu_dxcc'] = 'DXCC'; $lang['menu_iota'] = 'IOTA'; diff --git a/application/language/czech/menu_lang.php b/application/language/czech/menu_lang.php index efb0a2f2..3640e5b2 100644 --- a/application/language/czech/menu_lang.php +++ b/application/language/czech/menu_lang.php @@ -36,6 +36,7 @@ $lang['menu_continents'] = 'Kontinenty'; $lang['menu_awards'] = 'Diplomy'; $lang['menu_cq'] = 'CQ'; +$lang['menu_dl_gridmaster'] = 'DL Gridmaster'; $lang['menu_dok'] = 'DOK'; $lang['menu_dxcc'] = 'DXCC'; $lang['menu_iota'] = 'IOTA'; diff --git a/application/language/dutch/menu_lang.php b/application/language/dutch/menu_lang.php index 751f673f..d2d886f5 100644 --- a/application/language/dutch/menu_lang.php +++ b/application/language/dutch/menu_lang.php @@ -36,6 +36,7 @@ $lang['menu_continents'] = 'Continents'; $lang['menu_awards'] = 'Awards'; $lang['menu_cq'] = 'CQ'; +$lang['menu_dl_gridmaster'] = 'DL Gridmaster'; $lang['menu_dok'] = 'DOK'; $lang['menu_dxcc'] = 'DXCC'; $lang['menu_iota'] = 'IOTA'; diff --git a/application/language/english/menu_lang.php b/application/language/english/menu_lang.php index 81efd085..98563067 100644 --- a/application/language/english/menu_lang.php +++ b/application/language/english/menu_lang.php @@ -36,6 +36,7 @@ $lang['menu_continents'] = 'Continents'; $lang['menu_awards'] = 'Awards'; $lang['menu_cq'] = 'CQ'; +$lang['menu_dl_gridmaster'] = 'DL Gridmaster'; $lang['menu_dok'] = 'DOK'; $lang['menu_dxcc'] = 'DXCC'; $lang['menu_ffma'] = 'Fred Fish Memorial Award'; diff --git a/application/language/finnish/menu_lang.php b/application/language/finnish/menu_lang.php index 962dd0f4..6cffea7c 100644 --- a/application/language/finnish/menu_lang.php +++ b/application/language/finnish/menu_lang.php @@ -36,6 +36,7 @@ $lang['menu_continents'] = 'Mantereet'; $lang['menu_awards'] = 'Awardit'; $lang['menu_cq'] = 'CQ'; +$lang['menu_dl_gridmaster'] = 'DL Gridmaster'; $lang['menu_dok'] = 'DOK'; $lang['menu_dxcc'] = 'DXCC'; $lang['menu_iota'] = 'IOTA'; diff --git a/application/language/french/menu_lang.php b/application/language/french/menu_lang.php index 81efd085..98563067 100644 --- a/application/language/french/menu_lang.php +++ b/application/language/french/menu_lang.php @@ -36,6 +36,7 @@ $lang['menu_continents'] = 'Continents'; $lang['menu_awards'] = 'Awards'; $lang['menu_cq'] = 'CQ'; +$lang['menu_dl_gridmaster'] = 'DL Gridmaster'; $lang['menu_dok'] = 'DOK'; $lang['menu_dxcc'] = 'DXCC'; $lang['menu_ffma'] = 'Fred Fish Memorial Award'; diff --git a/application/language/german/menu_lang.php b/application/language/german/menu_lang.php index 12fb5fcc..589e5e64 100644 --- a/application/language/german/menu_lang.php +++ b/application/language/german/menu_lang.php @@ -36,6 +36,7 @@ $lang['menu_continents'] = 'Kontinente'; $lang['menu_awards'] = 'Diplome'; $lang['menu_cq'] = 'CQ'; +$lang['menu_dl_gridmaster'] = 'DL Gridmaster'; $lang['menu_dok'] = 'DOK'; $lang['menu_dxcc'] = 'DXCC'; $lang['menu_iota'] = 'IOTA'; diff --git a/application/language/greek/menu_lang.php b/application/language/greek/menu_lang.php index 0c1304a0..4eaacfdb 100644 --- a/application/language/greek/menu_lang.php +++ b/application/language/greek/menu_lang.php @@ -36,6 +36,7 @@ $lang['menu_continents'] = 'Continents'; $lang['menu_awards'] = 'Awards'; $lang['menu_cq'] = 'CQ'; +$lang['menu_dl_gridmaster'] = 'DL Gridmaster'; $lang['menu_dok'] = 'DOK'; $lang['menu_dxcc'] = 'DXCC'; $lang['menu_iota'] = 'IOTA'; diff --git a/application/language/italian/menu_lang.php b/application/language/italian/menu_lang.php index 0c1304a0..4eaacfdb 100644 --- a/application/language/italian/menu_lang.php +++ b/application/language/italian/menu_lang.php @@ -36,6 +36,7 @@ $lang['menu_continents'] = 'Continents'; $lang['menu_awards'] = 'Awards'; $lang['menu_cq'] = 'CQ'; +$lang['menu_dl_gridmaster'] = 'DL Gridmaster'; $lang['menu_dok'] = 'DOK'; $lang['menu_dxcc'] = 'DXCC'; $lang['menu_iota'] = 'IOTA'; diff --git a/application/language/polish/menu_lang.php b/application/language/polish/menu_lang.php index 0c1304a0..4eaacfdb 100644 --- a/application/language/polish/menu_lang.php +++ b/application/language/polish/menu_lang.php @@ -36,6 +36,7 @@ $lang['menu_continents'] = 'Continents'; $lang['menu_awards'] = 'Awards'; $lang['menu_cq'] = 'CQ'; +$lang['menu_dl_gridmaster'] = 'DL Gridmaster'; $lang['menu_dok'] = 'DOK'; $lang['menu_dxcc'] = 'DXCC'; $lang['menu_iota'] = 'IOTA'; diff --git a/application/language/russian/menu_lang.php b/application/language/russian/menu_lang.php index cb2be6aa..225b1379 100644 --- a/application/language/russian/menu_lang.php +++ b/application/language/russian/menu_lang.php @@ -36,6 +36,7 @@ $lang['menu_continents'] = 'Континенты'; $lang['menu_awards'] = 'Дипломы'; $lang['menu_cq'] = 'CQ'; +$lang['menu_dl_gridmaster'] = 'DL Gridmaster'; $lang['menu_dok'] = 'DOK'; $lang['menu_dxcc'] = 'DXCC'; $lang['menu_iota'] = 'IOTA'; diff --git a/application/language/spanish/menu_lang.php b/application/language/spanish/menu_lang.php index 0c1304a0..4eaacfdb 100644 --- a/application/language/spanish/menu_lang.php +++ b/application/language/spanish/menu_lang.php @@ -36,6 +36,7 @@ $lang['menu_continents'] = 'Continents'; $lang['menu_awards'] = 'Awards'; $lang['menu_cq'] = 'CQ'; +$lang['menu_dl_gridmaster'] = 'DL Gridmaster'; $lang['menu_dok'] = 'DOK'; $lang['menu_dxcc'] = 'DXCC'; $lang['menu_iota'] = 'IOTA'; diff --git a/application/language/swedish/menu_lang.php b/application/language/swedish/menu_lang.php index d351a301..46fc846c 100644 --- a/application/language/swedish/menu_lang.php +++ b/application/language/swedish/menu_lang.php @@ -36,6 +36,7 @@ $lang['menu_continents'] = 'Kontinenter'; $lang['menu_awards'] = 'Awards'; $lang['menu_cq'] = 'CQ'; +$lang['menu_dl_gridmaster'] = 'DL Gridmaster'; $lang['menu_dok'] = 'DOK'; $lang['menu_dxcc'] = 'DXCC'; $lang['menu_iota'] = 'IOTA'; diff --git a/application/language/turkish/menu_lang.php b/application/language/turkish/menu_lang.php index 0c1304a0..4eaacfdb 100644 --- a/application/language/turkish/menu_lang.php +++ b/application/language/turkish/menu_lang.php @@ -36,6 +36,7 @@ $lang['menu_continents'] = 'Continents'; $lang['menu_awards'] = 'Awards'; $lang['menu_cq'] = 'CQ'; +$lang['menu_dl_gridmaster'] = 'DL Gridmaster'; $lang['menu_dok'] = 'DOK'; $lang['menu_dxcc'] = 'DXCC'; $lang['menu_iota'] = 'IOTA'; diff --git a/application/models/Gridmaster_model.php b/application/models/Gridmaster_model.php index 216fa1fa..7042ff27 100644 --- a/application/models/Gridmaster_model.php +++ b/application/models/Gridmaster_model.php @@ -49,6 +49,14 @@ class Gridmaster_model extends CI_Model { private $ja_lon = 140; private $ja_zoom = 5; + private $dl_grids = ['JO45', 'JO34', 'JO44', 'JO54', 'JO64', 'JO74', 'JO33', 'JO43', 'JO53', 'JO63', 'JO73', 'JO32', 'JO42', 'JO52', 'JO62', 'JO72', + 'JO21', 'JO31', 'JO41', 'JO51', 'JO61', 'JO71', 'JO20', 'JO30', 'JO40', 'JO50', 'JO60', 'JO70', 'JN39', 'JN49', 'JN59', 'JN69', + 'JN38', 'JN48', 'JN58', 'JN68', 'JN37', 'JN47', 'JN57', 'JN67' + ]; + private $dl_lat = 52; + private $dl_lon = 11; + private $dl_zoom = 6; + function get_lotw($dxcc) { $CI =& get_instance(); $CI->load->model('logbooks_model'); diff --git a/application/views/interface_assets/header.php b/application/views/interface_assets/header.php index df04a3c9..3d9ade55 100644 --- a/application/views/interface_assets/header.php +++ b/application/views/interface_assets/header.php @@ -149,6 +149,8 @@