77 行
		
	
	
	
		
			2.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			77 行
		
	
	
	
		
			2.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| /**
 | |
|  * Initializes the DataTable and handles the logic for showing/hiding states based on the selected DXCC ID.
 | |
|  */
 | |
| $(document).ready( function () {
 | |
| 
 | |
|     /**
 | |
|      * Initializes the DataTable with state saving enabled and custom language settings.
 | |
|      *
 | |
|      * @type {DataTable}
 | |
|      */
 | |
|     $('#station_locations_table').DataTable({
 | |
|         "stateSave": true,
 | |
|         "language": {
 | |
|             url: getDataTablesLanguageUrl(),
 | |
|         }
 | |
|     });
 | |
| 
 | |
|     /**
 | |
|      * Maps DXCC IDs to their corresponding state IDs.
 | |
|      *
 | |
|      * @type {Object}
 | |
|      */
 | |
|     var stateMap = {
 | |
|         '1': 'canada_state',
 | |
|         '5': 'aland_state',
 | |
|         '15': 'asiatic_russia_state',
 | |
|         '27': 'belarus_state',
 | |
|         '50': 'mexico_state',
 | |
|         '54': 'eu_russia_state',
 | |
|         '100': 'argentina_state',
 | |
|         '108': 'brazil_state',
 | |
|         '112': 'chile_state',
 | |
|         '132': 'paraguay_state',
 | |
|         '137': 'korea_state',
 | |
|         '144': 'uruguay_state',
 | |
|         '291': 'us_state',
 | |
|         '148': 'venezuela_state', 
 | |
|         '150': 'australia_state',
 | |
|         '163': 'png_state',
 | |
|         '170': 'nz_state',
 | |
| 		'209': 'belgium_state',
 | |
| 		'248': 'italy_state',
 | |
|         '263': 'netherlands_state',
 | |
|         '6': 'us_state' // Alaska
 | |
|     };
 | |
| 
 | |
|     // Hide all states initially
 | |
| 	  $("#canada_state, #aland_state, #asiatic_russia_state, #belarus_state, #mexico_state, #eu_russia_state, #argentina_state, #brazil_state, #chile_state, #us_state, #paraguay_state, #korea_state, #uruguay_state, #venezuela_state, #australia_state, #png_state, #nz_state, #belgium_state, #italy_state, #netherlands_state").hide();
 | |
|     /**
 | |
|      * Gets the selected DXCC ID and shows the corresponding state.
 | |
|      */
 | |
|     var selectedDXCCID = $('#dxcc_select').find(":selected").val();
 | |
|     var stateToShow = stateMap[selectedDXCCID];
 | |
| 
 | |
|     if (stateToShow) {
 | |
|         // Show the selected state
 | |
|         $("#" + stateToShow).show();
 | |
|     } else {
 | |
|         // If no state matches the selected value, show 'us_state' by default
 | |
|         $("#us_state").show();
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Handles the change event of the DXCC select element.
 | |
|      * Shows the corresponding state based on the selected DXCC ID.
 | |
|      */
 | |
|     $('#dxcc_select').change(function(){
 | |
|         var selectedValue = $(this).val();
 | |
|         var stateToShow = stateMap[selectedValue] || stateMap['default'];
 | |
|     
 | |
|         // Hide all states
 | |
|     		$("#mexico_state, #belarus_state, #asiatic_russia_state, #aland_state, #canada_state, #us_state, #eu_russia_state, #argentina_state, #brazil_state, #chile_state, #paraguay_state, #korea_state, #uruguay_state, #venezuela_state, #australia_state, #png_state, #nz_state, #belgium_state, #italy_state, #netherlands_state").hide();
 | |
|     
 | |
|         // Show the selected state
 | |
|         $("#" + stateToShow).show();
 | |
|     });
 | |
| } );
 |