/*
* cass_member_course_info - Shortcode for course info
*
* This shortcode is used to display the course info
*/
document.addEventListener('DOMContentLoaded', function () {
var loader = document.getElementById('cass_shortcode_course_info');
if (loader) {
new Vue({
el: "#cass_shortcode_course_info",
data: {
race: []
},
methods: {
async getRaceData() {
const siteUrl = window.siteUrl;
const RaceID = window.RaceID;
const apiURL = `${siteUrl}/wp-json/wp-cass/v1/cass-race-list-element/${RaceID}`;
try {
const response = await axios.get(apiURL);
this.race = response.data[0];
if (response.data.length != 0) {
var materials;
var raceMaterialList = document.getElementById("raceMaterials");
raceMaterialList.innerHTML = 'Matériel requis : ';
if (this.race.materials != null) {
materials = this.race.materials.split(',');
materials.forEach(material => {
raceMaterialList.innerHTML += '' + ReadGlobal(material,false) + ',';
});
raceMaterialList.innerHTML = raceMaterialList.innerHTML.slice(0, -1);
} else {
raceMaterialList.innerHTML = 'Pas de matériel requis pour cette course';
}
if (this.race.descriptionMemberSubscribed == '') {
document.getElementById("raceDescriptionPublic").innerHTML = "Il n'y a aucune description membre pour cette course";
} else {
document.getElementById("raceDescriptionPublic").innerHTML = ReadGlobal(getReturnWithCarriage(this.race.descriptionMemberSubscribed));
}
document.getElementById("raceInfo").removeAttribute("hidden");
document.getElementById('raceInfo').scrollIntoView();
document.getElementById("raceInfo").style.display = "block";
document.getElementById("raceSeason").innerHTML = "La saison de la course est "+this.race.season+"";
document.getElementById("racePlaceLocality").innerHTML = "La course se déroulera à "+ReadGlobal(this.race.placeName,false)+" ("+this.race.placeLocality+")";
document.getElementById("raceName").innerHTML =ReadGlobal(this.race.name,false);
document.getElementById('raceStartEnd').innerHTML = "La course se déroulera du "+getDateFormated(this.race.start,true)+" au "+getDateFormated(this.race.end,true)+"";
document.getElementById("raceState").innerHTML = "Etat de la course : "+ReadGlobal(getTextFromState(this.race.state),false)+"";
let deputyText =".";
if(this.race.nameDeputy !=null && this.race.nameDeputy !="") {
deputyText = " avec comme adjoint "+ReadGlobal(this.race.nameDeputy,false)+".";
}
document.getElementById("raceRLDeputy").innerHTML = "La course est gérée (chef de course) par "+ReadGlobal(this.race.nameRL,false)+" "+ReadGlobal(deputyText,false)+"";
document.getElementById("raceTypeLevel").innerHTML = "Le type est "+ReadGlobal(this.race.type,false)+" d'un niveau "+ReadGlobal(this.race.level,false)+"";
document.getElementById("raceGroup").innerHTML = "Groupe : "+ReadGlobal(this.race.group,false)+"";
//Description public
if (this.race.descriptionPublic == '' || this.race.descriptionPublic == null) {
document.getElementById("raceDescriptionPublic").innerHTML = "Il n'y a aucune description pour cette course";
} else {
document.getElementById("raceDescriptionPublic").innerHTML = ReadGlobal(getReturnWithCarriage(this.race.descriptionPublic),false);
}
//Description membre inscrit
if (document.getElementById("raceDescriptionMemberSubscribed") != null) {
if (this.race.descriptionMemberSubscribed == '' || this.race.descriptionMemberSubscribed == null) {
document.getElementById("raceDescriptionMemberSubscribed").innerHTML = "Il n'y a aucune description pour cette course";
} else {
document.getElementById("raceDescriptionMemberSubscribed").innerHTML = ReadGlobal(getReturnWithCarriage(this.race.descriptionMemberSubscribed),false);
}
}
let raceSubscriptionStartEndMeetingPlaceParticipiant="";
//Check inscription
var date = new Date();
var today = date.toISOString().slice(0, 19).replace("T", " ");
var subscriptionStart = this.race.subscriptionStart.toLocaleString();
var subscriptionEnd = this.race.subscriptionEnd.toLocaleString();
// Contrôle état de la course
if(parseInt(this.race.subscriptionEnable) == 1) {
raceSubscriptionStartEndMeetingPlaceParticipiant = 'Les inscriptions sont ouvertes du ' + getDateFormated(this.race.subscriptionStart) + ' au ' + getDateFormated(this.race.subscriptionEnd) + '.';
} else {
raceSubscriptionStartEndMeetingPlaceParticipiant = 'Les inscriptions sont ouvertes du ' + getDateFormated(this.race.subscriptionStart) + ' au ' + getDateFormated(this.race.subscriptionEnd) + ' (actuellement fermées).';
}
if (this.race.participantMin !== null && this.race.participantMin !== "" && this.race.participantMin !== 0) {
raceSubscriptionStartEndMeetingPlaceParticipiant += "
Le nombre de participant minimum est de " + this.race.participantMin + ".";
}
if (this.race.participantMax !== null && this.race.participantMax !== "" && this.race.participantMax !== 0) {
raceSubscriptionStartEndMeetingPlaceParticipiant += "
Le nombre de participant maximum est de " + this.race.participantMax + ".";
}
if (this.race.meetingPlaceName !== null && this.race.meetingPlaceName !== "") {
raceSubscriptionStartEndMeetingPlaceParticipiant += "
Le lieu de RDV est " + this.race.meetingPlaceName + ".";
}
document.getElementById("raceSubscriptionStartEndMeetingPlaceParticipiant").innerHTML = ReadGlobal(raceSubscriptionStartEndMeetingPlaceParticipiant,false);
document.getElementById("progress-bar-container").setAttribute("hidden", "true");
}
} catch (error) {
console.error('Erreur Axios :', error);
}
},
},
created() {
this.getRaceData();
},
});
}
});