diff --git a/application/controllers/Awards.php b/application/controllers/Awards.php index fa707115..f3ca0e4b 100644 --- a/application/controllers/Awards.php +++ b/application/controllers/Awards.php @@ -664,110 +664,6 @@ class Awards extends CI_Controller { $this->load->view('interface_assets/footer',$footerData); } - public function ja_gridmaster() { - $data['page_title']= lang('menu_ja_gridmaster'); - - $this->load->model('bands'); - $this->load->model('ja_gridmaster_model'); - $this->load->model('stations'); - - $data['homegrid']= explode(',', $this->stations->find_gridsquare()); - - $data['layer']= $this->optionslib->get_option('option_map_tile_server'); - - $data['attribution']= $this->optionslib->get_option('option_map_tile_server_copyright'); - - $data['gridsquares_gridsquares']= lang('gridsquares_gridsquares'); - $data['gridsquares_gridsquares_worked']= lang('gridsquares_gridsquares_worked'); - $data['gridsquares_gridsquares_lotw']= lang('gridsquares_gridsquares_lotw'); - $data['gridsquares_gridsquares_paper']= lang('gridsquares_gridsquares_paper'); - - $footerData = []; - $footerData['scripts']= [ - 'assets/js/leaflet/geocoding.js', - 'assets/js/leaflet/L.MaidenheadColouredJaGridmasterMap.js', - 'assets/js/sections/ja_gridmaster.js?' - ]; - - $this->load->view('interface_assets/header',$data); - $this->load->view('awards/ja_gridmaster/index'); - $this->load->view('interface_assets/footer',$footerData); - } - - public function getJaGridmasterGridsjs() { - $this->load->model('ja_gridmaster_model'); - - $array_grid_4char = array(); - $array_grid_4char_lotw = array(); - $array_grid_4char_paper = array(); - - $grid_4char = ""; - $grid_4char_lotw = ""; - - $query = $this->ja_gridmaster_model->get_lotw(); - if ($query && $query->num_rows() > 0) { - foreach ($query->result() as $row) { - $grid_4char_lotw = strtoupper(substr($row->GRID_SQUARES,0,4)); - if(!in_array($grid_4char_lotw, $array_grid_4char_lotw)){ - array_push($array_grid_4char_lotw, $grid_4char_lotw); - } - } - } - - $query = $this->ja_gridmaster_model->get_paper(); - if ($query && $query->num_rows() > 0) { - foreach ($query->result() as $row) { - $grid_4char_paper = strtoupper(substr($row->GRID_SQUARES,0,4)); - if(!in_array($grid_4char_paper, $array_grid_4char_paper)){ - array_push($array_grid_4char_paper, $grid_4char_paper); - } - } - } - - $query = $this->ja_gridmaster_model->get_worked(); - if ($query && $query->num_rows() > 0) { - foreach ($query->result() as $row) { - $grid_four = strtoupper(substr($row->GRID_SQUARES,0,4)); - if(!in_array($grid_four, $array_grid_4char)){ - array_push($array_grid_4char, $grid_four); - } - } - } - - $vucc_grids = $this->ja_gridmaster_model->get_vucc_lotw(); - foreach($vucc_grids as $key) { - $grid_four_lotw = strtoupper(substr($key,0,4)); - if(!in_array($grid_four_lotw, $array_grid_4char_lotw)){ - array_push($array_grid_4char_lotw, $grid_four_lotw); - } - } - - $vucc_grids = $this->ja_gridmaster_model->get_vucc_paper(); - foreach($vucc_grids as $key) { - $grid_four_paper = strtoupper(substr($key,0,4)); - if(!in_array($grid_four_paper, $array_grid_4char_paper)){ - array_push($array_grid_4char_paper, $grid_four_paper); - } - } - - $vucc_grids = $this->ja_gridmaster_model->get_vucc_worked(); - foreach($vucc_grids as $key) { - $grid_four = strtoupper(substr($key,0,4)); - if(!in_array($grid_four, $array_grid_4char)){ - array_push($array_grid_4char, $grid_four); - } - } - - $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->ja_gridmaster_model->get_grid_count(); - $data['grids'] = $this->ja_gridmaster_model->get_grids(); - - header('Content-Type: application/json'); - echo json_encode($data); - } - public function getFfmaGridsjs() { $this->load->model('ffma_model'); diff --git a/application/models/Ja_gridmaster_model.php b/application/models/Ja_gridmaster_model.php deleted file mode 100644 index 5f98535e..00000000 --- a/application/models/Ja_gridmaster_model.php +++ /dev/null @@ -1,172 +0,0 @@ -load->model('logbooks_model'); - $logbooks_locations_array = $CI->logbooks_model->list_logbook_relationships($this->session->userdata('active_station_logbook')); - - if (!$logbooks_locations_array) { - return null; - } - $location_list = "'".implode("','",$logbooks_locations_array)."'"; - - $sql = 'SELECT distinct substring(COL_GRIDSQUARE,1,4) as GRID_SQUARES FROM ' - .$this->config->item('table_name') - .' 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->ja_grids).'\')'; - return $this->db->query($sql); - } - - function get_paper() { - $CI =& get_instance(); - $CI->load->model('logbooks_model'); - $logbooks_locations_array = $CI->logbooks_model->list_logbook_relationships($this->session->userdata('active_station_logbook')); - - if (!$logbooks_locations_array) { - return null; - } - $location_list = "'".implode("','",$logbooks_locations_array)."'"; - - $sql = 'SELECT distinct substring(COL_GRIDSQUARE,1,4) as GRID_SQUARES FROM ' - .$this->config->item('table_name') - .' 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->ja_grids).'\')'; - return $this->db->query($sql); - } - - function get_worked() { - $CI =& get_instance(); - $CI->load->model('logbooks_model'); - $logbooks_locations_array = $CI->logbooks_model->list_logbook_relationships($this->session->userdata('active_station_logbook')); - - if (!$logbooks_locations_array) { - return null; - } - $location_list = "'".implode("','",$logbooks_locations_array)."'"; - - $sql = 'SELECT distinct substring(COL_GRIDSQUARE,1,4) as GRID_SQUARES FROM ' - .$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->ja_grids).'\')'; - return $this->db->query($sql); - } - - function get_vucc_lotw() { - $CI =& get_instance(); - $CI->load->model('logbooks_model'); - $logbooks_locations_array = $CI->logbooks_model->list_logbook_relationships($this->session->userdata('active_station_logbook')); - - if (!$logbooks_locations_array) { - return null; - } - $location_list = "'".implode("','",$logbooks_locations_array)."'"; - - $sql = 'SELECT distinct COL_VUCC_GRIDS as VUCC_GRIDS FROM ' - .$this->config->item('table_name') - .' WHERE station_id in ('.$location_list.')' - ." and COL_LOTW_QSL_RCVD = 'Y'" - ." and COL_VUCC_GRIDS != ''" - ." and COL_VUCC_GRIDS IS NOT NULL" - ." and COL_PROP_MODE = 'SAT'"; - $query = $this->db->query($sql); - $vucc_grids = []; - foreach ($query->result() as $row) { - $grids = explode(',', $row->VUCC_GRIDS); - foreach ($grids as $grid) { - if (in_array(substr($grid, 0, 4), $this->ja_grids)) { - if (!in_array(substr($grid, 0, 4), $vucc_grids)) { - $vucc_grids[] = substr($grid, 0, 4); - } - } - } - } - return $vucc_grids; - } - - function get_vucc_paper() { - $CI =& get_instance(); - $CI->load->model('logbooks_model'); - $logbooks_locations_array = $CI->logbooks_model->list_logbook_relationships($this->session->userdata('active_station_logbook')); - - if (!$logbooks_locations_array) { - return null; - } - $location_list = "'".implode("','",$logbooks_locations_array)."'"; - - $sql = 'SELECT distinct COL_VUCC_GRIDS as VUCC_GRIDS FROM ' - .$this->config->item('table_name') - .' WHERE station_id in ('.$location_list.')' - ." and COL_QSL_RCVD = 'Y'" - ." and COL_VUCC_GRIDS != ''" - ." and COL_VUCC_GRIDS IS NOT NULL" - ." and COL_PROP_MODE = 'SAT'"; - $query = $this->db->query($sql); - $vucc_grids = []; - foreach ($query->result() as $row) { - $grids = explode(',', $row->VUCC_GRIDS); - foreach ($grids as $grid) { - if (in_array(substr($grid, 0, 4), $this->ja_grids)) { - if (!in_array(substr($grid, 0, 4), $vucc_grids)) { - $vucc_grids[] = substr($grid, 0, 4); - } - } - } - } - return $vucc_grids; - } - - function get_vucc_worked() { - $CI =& get_instance(); - $CI->load->model('logbooks_model'); - $logbooks_locations_array = $CI->logbooks_model->list_logbook_relationships($this->session->userdata('active_station_logbook')); - - if (!$logbooks_locations_array) { - return null; - } - $location_list = "'".implode("','",$logbooks_locations_array)."'"; - - $sql = 'SELECT distinct COL_VUCC_GRIDS as VUCC_GRIDS FROM ' - .$this->config->item('table_name') - .' WHERE station_id in ('.$location_list.')' - ." and COL_VUCC_GRIDS != ''" - ." and COL_VUCC_GRIDS IS NOT NULL" - ." and COL_PROP_MODE = 'SAT'"; - $query = $this->db->query($sql); - $vucc_grids = []; - foreach ($query->result() as $row) { - $grids = explode(',', $row->VUCC_GRIDS); - foreach ($grids as $grid) { - if (in_array(substr($grid, 0, 4), $this->ja_grids)) { - if (!in_array(substr($grid, 0, 4), $vucc_grids)) { - $vucc_grids[] = substr($grid, 0, 4); - } - } - } - } - return $vucc_grids; - } - - function get_grid_count() { - return count($this->ja_grids); - } - - function get_grids() { - return $this->ja_grids; - } - -} diff --git a/application/views/awards/ja_gridmaster/index.php b/application/views/awards/ja_gridmaster/index.php deleted file mode 100644 index 9568b622..00000000 --- a/application/views/awards/ja_gridmaster/index.php +++ /dev/null @@ -1,97 +0,0 @@ - - - -
- -
- - -
-
- -

- -
- - - 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); -})