You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
radio-wombat-toolkit/admin/js/add_onchange_listener.js

82 lines
3.4 KiB
JavaScript

// change the date field consistently with day field
function add_change_day_handler(elem, day_input_id, startdate_input_id) {
elem.addEventListener('change', function(e) {
const setted_weekday = document.getElementById(day_input_id).value;
const startdate_input = document.getElementById(startdate_input_id);
if (startdate_input.value.length !== 0 && setted_weekday.length !== 0){
const date = new Date(startdate_input.value);
let weekday = date.getDay();
weekday = (weekday == 0) ? 7 : weekday;
if (weekday != setted_weekday ) {
let weekday_diff = setted_weekday - weekday;
date.setDate(date.getDate() + weekday_diff);
startdate_input.value = date.toISOString().split('T')[0];
}
}
});
}
// change the day field consistently with date field - unused!
function add_change_date_handler(elem, day_input_id, startdate_input_id) {
elem.addEventListener('change', function(e) {
const setted_date = document.getElementById(startdate_input_id).value;
if (setted_date.length !== 0) {
const day_input = document.getElementById(day_input_id);
let setted_weekday = day_input.value;
let date_weekday = new Date(setted_date).getDay();
date_weekday = (date_weekday == 0) ? 7 : date_weekday;
if (date_weekday != setted_weekday) {
day_input.value = date_weekday;
}
}
});
}
function add_required_date_handler(elem, prefix, input_number) {
elem.addEventListener('change', function(e){
set_date_as_required_if_cadence_is_set(prefix, input_number);
});
}
function set_date_as_required_if_cadence_is_set(prefix, input_number) {
const cadence = document.getElementById(prefix + "_cadence_" + input_number);
const startdate = document.getElementById(prefix + "_startdate_" + input_number);
const msg = document.getElementById(prefix +"_message_" + input_number);
if (cadence.value != 1 && startdate.value == "") {
if (!msg){
const textAlert = document.createElement("p");
const text = document.createTextNode("attenzione: se non viene inserita la data di inizio la cadenza sarà interpretata come settimanale");
textAlert.appendChild(text);
textAlert.id = prefix + "_message_" + input_number;
textAlert.style = "color:red;font-size:12px;width:90%;";
startdate.parentNode.appendChild(textAlert);
}
} else {
if (msg) {
startdate.parentNode.removeChild(msg);
}
}
}
for (var i = 0; i < 7 ; i++) {
let onair_day_input = document.getElementById("on_air_day_" + i);
let rerun_day_input = document.getElementById("rerun_day_" + i);
let onair_date_input = document.getElementById("on_air_startdate_" + i);
let rerun_date_input = document.getElementById("rerun_startdate_" + i);
let onair_cadence_input = document.getElementById("on_air_cadence_" + i);
let rerun_cadence_input = document.getElementById("rerun_cadence_" + i);
add_change_day_handler(onair_day_input, "on_air_day_" + i, "on_air_startdate_" + i);
add_change_day_handler(rerun_day_input, "rerun_day_" + i, "rerun_startdate_" + i);
add_change_day_handler(onair_date_input, "on_air_day_" + i, "on_air_startdate_" + i);
add_change_day_handler(rerun_date_input, "rerun_day_" + i, "rerun_startdate_" + i);
set_date_as_required_if_cadence_is_set("on_air", i);
set_date_as_required_if_cadence_is_set("rerun", i);
add_required_date_handler(onair_cadence_input, "on_air", i);
add_required_date_handler(rerun_cadence_input, "rerun", i);
add_required_date_handler(onair_date_input, "on_air", i);
add_required_date_handler(rerun_date_input, "rerun", i);
}