SM2Gen/Targets/Mailstats/mailstats.js

66 lines
2.3 KiB
JavaScript
Raw Normal View History

//
//Generated by: SM2Gen version:0.9(20Jan2025) Chameleon version:4.5.4 On Python:3.12.3 at 2025-04-05 11:17:38
//
$(document).ready(function() {
});
// Initialize multiselect with existing text values
function initMultiselect() {
const multiselect = document.getElementById('CountrySelect_select');
const textInput = document.getElementById('AccumCountryCodes_text');
// Split text input values and select corresponding options
textInput.value.split(',').forEach(value => {
const option = Array.from(multiselect.options).find(opt => opt.value === value.trim());
if (option) option.selected = true;
});
}
// Update text input when multiselect changes
function updateTextInput() {
const multiselect = document.getElementById('CountrySelect_select');
const textInput = document.getElementById('AccumCountryCodes_text');
// Get selected values as comma-separated string
const selectedValues = Array.from(multiselect.selectedOptions)
.map(option => option.value)
.join(',');
textInput.value = selectedValues;
}
// Initialize on page load
document.addEventListener('DOMContentLoaded', () => {
initMultiselect();
// Add change listener to multiselect
document.getElementById('CountrySelect_select')
.addEventListener('click', updateTextInput);
});
// Initialize select with current object content
document.addEventListener('DOMContentLoaded', () => {
const objectElement = document.getElementById('mailstats_object');
const selectElement = document.getElementById('StatsDate_select');
// Extract current date from object's data URL
const currentDate = objectElement.data.match(/mailstats_for_(\d{4}-\d{2}-\d{2})\.html/)?.[1];
if (currentDate) {
selectElement.value = currentDate;
}
});
// Update object content when selection changes
document.getElementById('StatsDate_select').addEventListener('change', function() {
const selectedDate = this.value;
const objectElement = document.getElementById('mailstats_object');
// Update object's data source
objectElement.data = `mailstats_for_${selectedDate}.html`;
// Force refresh using clone method (cross-browser workaround)
const clone = objectElement.cloneNode(true);
objectElement.replaceWith(clone);
});