From bfc2d50c95d57a7c33101c74703ee595de0e2732 Mon Sep 17 00:00:00 2001 From: phl0 Date: Tue, 12 Dec 2023 19:15:56 +0100 Subject: [PATCH 1/3] 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 4e26174b93cfb7c4e5bcb53b955fde035567f9ce Mon Sep 17 00:00:00 2001 From: phl0 Date: Tue, 12 Dec 2023 21:58:34 +0100 Subject: [PATCH 3/3] Fix FFMA award --- application/controllers/Awards.php | 6 +++++- application/models/Ffma_model.php | 8 ++++++++ assets/js/sections/ffma.js | 3 ++- 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/application/controllers/Awards.php b/application/controllers/Awards.php index f3ca0e4b..be950799 100644 --- a/application/controllers/Awards.php +++ b/application/controllers/Awards.php @@ -651,12 +651,14 @@ class Awards extends CI_Controller { $data['gridsquares_gridsquares_worked']= lang('gridsquares_gridsquares_worked'); $data['gridsquares_gridsquares_lotw']= lang('gridsquares_gridsquares_lotw'); $data['gridsquares_gridsquares_paper']= lang('gridsquares_gridsquares_paper'); + $data['grid_count'] = $this->ffma_model->get_grid_count(); + $data['grids'] = $this->ffma_model->get_grids(); $footerData = []; $footerData['scripts']= [ 'assets/js/leaflet/geocoding.js', 'assets/js/leaflet/L.MaidenheadColouredGridmasterMap.js', - 'assets/js/sections/ffma.js?' + 'assets/js/sections/ffma.js' ]; $this->load->view('interface_assets/header',$data); @@ -731,6 +733,8 @@ 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->ffma_model->get_grid_count(); + $data['grids'] = $this->ffma_model->get_grids(); header('Content-Type: application/json'); echo json_encode($data); diff --git a/application/models/Ffma_model.php b/application/models/Ffma_model.php index d9ae6cbd..b78f7b9f 100644 --- a/application/models/Ffma_model.php +++ b/application/models/Ffma_model.php @@ -186,4 +186,12 @@ class Ffma_model extends CI_Model { return $vucc_grids; } + function get_grid_count() { + return count($this->us_grids); + } + + function get_grids() { + return $this->us_grids; + } + } diff --git a/assets/js/sections/ffma.js b/assets/js/sections/ffma.js index 2930cd34..5096b834 100644 --- a/assets/js/sections/ffma.js +++ b/assets/js/sections/ffma.js @@ -26,7 +26,8 @@ function gridPlot(form) { $(".ld-ext-right-plot").removeClass('running'); $(".ld-ext-right-plot").prop('disabled', false); $('#plot').prop("disabled", false); - grid_max = 488; + 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;