Cloudlog/assets/js/sections/station_locations.js

76 行
2.6 KiB
JavaScript

2024-05-30 21:28:01 +08:00
/**
* Initializes the DataTable and handles the logic for showing/hiding states based on the selected DXCC ID.
*/
$(document).ready( function () {
2024-05-30 21:28:01 +08:00
/**
* Initializes the DataTable with state saving enabled and custom language settings.
*
* @type {DataTable}
*/
2022-11-16 00:07:58 +08:00
$('#station_locations_table').DataTable({
2024-01-04 11:03:11 +08:00
"stateSave": true,
"language": {
2024-01-04 11:18:20 +08:00
url: getDataTablesLanguageUrl(),
2024-01-04 11:03:11 +08:00
}
2022-11-16 00:07:58 +08:00
});
2024-05-30 21:28:01 +08:00
/**
* 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',
2024-05-29 22:56:46 +08:00
'291': 'us_state',
'148': 'venezuela_state',
'150': 'australia_state',
'163': 'png_state',
'170': 'nz_state',
'209': 'belgium_state',
2024-05-29 22:56:46 +08:00
'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").hide();
2024-05-30 21:28:01 +08:00
/**
* 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();
}
2024-05-30 21:28:01 +08:00
/**
* 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").hide();
// Show the selected state
$("#" + stateToShow).show();
});
2022-11-16 00:07:58 +08:00
} );