142 行
		
	
	
	
		
			5.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			142 行
		
	
	
	
		
			5.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
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('<div id="gridsquare_map" style="width: 100%; height: 800px"></div>');
 | 
						|
    }
 | 
						|
 | 
						|
    ajax_url = site_url + '/awards/getGridmasterGridsjs';
 | 
						|
 | 
						|
    $.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);
 | 
						|
            grid_max = 488;
 | 
						|
            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: [38, -91],
 | 
						|
            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 += "<h4>" + gridsquares_gridsquares + "</h4>";
 | 
						|
                html = "<table border=\"0\">";
 | 
						|
                html += '<tr><td><i style="background: #90ee90"></i><span>' + gridsquares_gridsquares_lotw + ':</span></td><td style=\"padding-left: 1em; text-align: right;\"><span>'+grid_four_lotw.length+' / '+grid_max+'</span></td></tr>';
 | 
						|
                html += '<tr><td><i style="background: #00b0f0"></i><span>' + gridsquares_gridsquares_paper + ':</span></td><td style=\"padding-left: 1em; text-align: right;\"><span>'+paper_count+' / '+grid_max+'</span></td></tr>';
 | 
						|
                html += '<tr><td><i style="background: #ffd757"></i><span>' + gridsquares_gridsquares_worked + ' ('+(Math.round((grid_four.length / grid_max) * 10000) / 100)+'%):</span></td><td style=\"padding-left: 1em; text-align: right;\"><span>'+(grid_four.length)+' / '+grid_max+'</span></td></tr>';
 | 
						|
                html += "</table>";
 | 
						|
                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-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: 'Close',
 | 
						|
                    action: function(dialogItself) {
 | 
						|
                        dialogItself.close();
 | 
						|
                    }
 | 
						|
                }]
 | 
						|
            });
 | 
						|
        }
 | 
						|
    });
 | 
						|
}
 | 
						|
 | 
						|
$(document).ready(function(){
 | 
						|
   gridPlot(this.form);
 | 
						|
})
 |