144 行
		
	
	
	
		
			5.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			144 行
		
	
	
	
		
			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/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 += "<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); | ||
|  | }) |