dernieres modif CASS

This commit is contained in:
rafa84porto 2025-01-12 21:10:09 +01:00
parent b3312a3961
commit 35c61dc7f4
10 changed files with 113 additions and 29 deletions

View File

@ -9,7 +9,7 @@ class CASS_Config
public static function execute()
{
//Configuration of plugin
define("PRODUCTION", false);
define("PRODUCTION", true);
define("DB_DROP_IF_UNINSTALL", false);
//Recaptcha v2 key

View File

@ -219,6 +219,11 @@
padding-top: 0.5rem;
}
.ct-footer{
background-color: #333333 !important;
color: #ffffff !important;
}
.progress-bar {
margin: 0 auto;

View File

@ -428,6 +428,15 @@ class CASS_View_Race_Edit
} ?>>
</div>
<br />
<div class="form-element">
<label class="form-element">Choisir date inscriptions</label>
<input type="checkbox" id="inscriptionsDate"/>
</div>
<br />
<div id="inscriptionFields" class="hidden">
<div class="form-element">
<label class="form-element">Début des inscriptions</label>
<input class="cass" type="datetime-local" name="subscriptionStart"
@ -440,6 +449,9 @@ class CASS_View_Race_Edit
<input class="cass" type="datetime-local" name="subscriptionEnd"
value="<?php echo date('Y-m-d\TH:i', strtotime($race->getSubscriptionEnd())) ?>">
</div>
</div>
<br />
<div class="form-element">
<label class="form-element">Début*</label>
@ -620,6 +632,17 @@ class CASS_View_Race_Edit
<script>initializeTinyMCE("#descriptionPublic, #descriptionMemberSubscribed");</script>
<script>
document.getElementById('inscriptionsDate').addEventListener('change', function () {
const inscriptionFields = document.getElementById('inscriptionFields');
if (this.checked) {
inscriptionFields.classList.remove('hidden');
} else {
inscriptionFields.classList.add('hidden');
}
});
</script>
<style>
.form-element {
display: flex; /* Disposition en ligne */

View File

@ -155,6 +155,8 @@ document.addEventListener('DOMContentLoaded', function () {
console.log(isMobile) ;
console.log("test") ;
if (window.viewChangeVisible == "true") {
if(isMobile == true) {
headerToolbarButtons="listMonth";
@ -225,7 +227,7 @@ document.addEventListener('DOMContentLoaded', function () {
});
raceMaterialList.innerHTML = raceMaterialList.innerHTML.slice(0, -1);
} else {
raceMaterialList.innerHTML = 'Pas de matériel requis pour cette course';
raceMaterialList.innerHTML = '';
}
// Description membre
@ -246,15 +248,13 @@ document.addEventListener('DOMContentLoaded', function () {
let deputyText = ".";
if (race.nameDeputy != null && race.nameDeputy != "")
deputyText = " avec comme adjoint <b>" + ReadGlobal(race.nameDeputy, false) + "</b>.";
document.getElementById("raceInfo").removeAttribute("hidden");
document.getElementById('raceInfo').scrollIntoView();
document.getElementById("raceInfo").style.display = "block";
document.getElementById('raceName').innerHTML = ReadGlobal(race.name, false);
document.getElementById("raceSeason").innerHTML = "La saison de la course est <b>"+race.season+"</b>";
document.getElementById("raceStartEnd").innerHTML = "La course se déroulera du <b>" + getDateFormated(race.start, true) + "</b> au <b>" + getDateFormated(race.end, true) + "</b>";
document.getElementById("raceState").innerHTML = "Etat de la course : <b>" + ReadGlobal(getTextFromState(race.state), false) + "</b>";
document.getElementById("raceLeader").innerHTML = "La course est gérée (chef de course) par <b>" + ReadGlobal(race.nameRL, false) + "</b> " + ReadGlobal(deputyText, false) + "";
document.getElementById("raceLeader").innerHTML = "La course est géré (chef de course) par <b>" + ReadGlobal(race.nameRL, false) + "</b> " + ReadGlobal(deputyText, false) + "";
document.getElementById("raceTypeLevel").innerHTML = "Le type est <b>" + ReadGlobal(race.type, false) + "</b> d'un niveau <b>" + ReadGlobal(race.level, false) + "</b>";
document.getElementById("raceGroup").innerHTML = "Groupe : <b>" + ReadGlobal(race.group, false) + "</b>";
@ -299,17 +299,17 @@ document.addEventListener('DOMContentLoaded', function () {
var subscriptionStart = race.subscriptionStart.toLocaleString();
var subscriptionEnd = race.subscriptionEnd.toLocaleString();
// Contrôle état de la course
// Contrôle état de la course
if ((race.state == 2 || race.state == 3) && parseInt(race.subscriptionEnable) == 1) {
// Contrôle ouverture des inscriptions
// Contrôle ouverture des inscriptions
var inscriptionElement = document.getElementById('inscription');
if (inscriptionElement) {
inscriptionElement.removeAttribute("hidden");
}
if (today >= subscriptionStart && today <= subscriptionEnd) {
//Contrôler si c'est un membre connecté ou un visiteur
//Contrôler si c'est un membre connecté ou un visiteur
const userID = window.userID;
if (userID == 0) {
@ -357,6 +357,7 @@ document.addEventListener('DOMContentLoaded', function () {
document.getElementById("progress-bar-container").setAttribute("hidden", "true");
}
}
});

View File

@ -56,7 +56,7 @@ function cass_shortcode_calendar_global($atts){
</script>
<link rel='stylesheet' href='https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/css/bootstrap.min.css'>
<!-- link rel='stylesheet' href='https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/css/bootstrap.min.css' -->
<script src='https://cdn.jsdelivr.net/npm/jquery@3.7.1/dist/jquery.slim.min.js'></script>
<script src='https://cdn.jsdelivr.net/npm/popper.js@1.16.1/dist/umd/popper.min.js'></script>
<script src='https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/js/bootstrap.bundle.min.js'></script>
@ -95,7 +95,6 @@ function cass_shortcode_calendar_global($atts){
<br>
<h5>Informations de la course</h5>
<p id='raceStartEnd'></p>
<p id='raceSeason'></p>
<p id='racePlaceLocality'></p>
<p id='raceMeeting'></p>
<p id='raceState'></p>

View File

@ -37,7 +37,7 @@ document.addEventListener('DOMContentLoaded', function () {
});
raceMaterialList.innerHTML = raceMaterialList.innerHTML.slice(0, -1);
} else {
raceMaterialList.innerHTML = 'Pas de matériel requis pour cette course';
raceMaterialList.innerHTML = '';
}
@ -50,7 +50,6 @@ document.addEventListener('DOMContentLoaded', function () {
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 <b>"+this.race.season+"</b>";
document.getElementById("racePlaceLocality").innerHTML = "La course se déroulera à <b>"+ReadGlobal(this.race.placeName,false)+"</b> (<b>"+this.race.placeLocality+"</b>)";
document.getElementById("raceName").innerHTML =ReadGlobal(this.race.name,false);
document.getElementById('raceStartEnd').innerHTML = "La course se déroulera du <b>"+getDateFormated(this.race.start,true)+"</b> au <b>"+getDateFormated(this.race.end,true)+"</b>";

View File

@ -54,7 +54,6 @@ function cass_shortcode_course_info()
<h3 align='center' id='raceName'></h3>
<h5>Informations de la course</h5>
<p id='raceStartEnd'></p>
<p id='raceSeason'></p>
<p id='racePlaceLocality'></p>
<p id='raceState'></p>
<p id='raceRLDeputy'></p>

View File

@ -38,11 +38,14 @@ document.addEventListener('DOMContentLoaded', function () {
case 4:
return 'Excusée';
}
},
loadInfoCourse(race){
window.location.href = siteUrl+"/infocourse/?id="+race.IDRace+"&returnUrl="+window.location.href;
},
fetchRaceData() {
const adminUrl = window.adminPostUrl;
const siteUrl = window.siteUrl;
@ -50,15 +53,25 @@ document.addEventListener('DOMContentLoaded', function () {
const apiURL = `${siteUrl}/wp-json/wp-cass/v1/cass-shortcode-member-course-list/${userID}`;
let isMobile = window.matchMedia("(pointer:coarse)").matches;
axios.get(apiURL)
.then(response => {
this.races = response.data;
if (this.races.length == 0) {
document.getElementById('shortcodeTitleEmpty').removeAttribute('hidden');
document.getElementById('member-courses-list').setAttribute('hidden', "true");
document.getElementById('member-courses-list-mobile').setAttribute('hidden', "true");
} else {
if (isMobile) {
document.getElementById('member-courses-list-mobile').removeAttribute('hidden');
document.getElementById('shortcodeTitleEmpty').setAttribute('hidden', "true");
document.getElementById('member-courses-list').setAttribute('hidden', "true");
} else {
document.getElementById('member-courses-list').removeAttribute('hidden');
document.getElementById('shortcodeTitleEmpty').setAttribute('hidden', "true");
document.getElementById('member-courses-list-mobile').setAttribute('hidden', "true");
}
}
document.getElementById('progress-bar-container').setAttribute('hidden', "true");

View File

@ -17,12 +17,15 @@ function cass_shortcode_member_courses_list_subscribed()
{
if (is_user_logged_in()) {
return "
<link rel='stylesheet' href='https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/css/bootstrap.min.css'>
<script>
window.adminPostUrl =" . json_encode(esc_attr(admin_url('admin-post.php'))) . ";
window.siteUrl =" . json_encode(get_site_url()) . ";
window.userID = " . json_encode(get_current_user_id()) . ";
</script>
<div class='cass-box-center'>
<div id='cass_member_crouses_list_subscribed'>
<div class='pure-form'>
@ -41,6 +44,29 @@ function cass_shortcode_member_courses_list_subscribed()
<div class='progress-bar-value'></div>
</div>
</div>
<div hidden class='cards-container' id='member-courses-list-mobile'>
<div class='card' v-for='(race, index) in filteredRaces' :key='race.IDRace_user'>
<div class='card-header'>
<span class='card-title'>Course #{{ index + 1 }}</span>
</div>
<div class='card-body'>
<p><strong>Nom :</strong> {{ ReadGlobal(race.name, true) }}</p>
<p><strong>Début :</strong> {{ getDateFormated(race.start, false) }}</p>
<p><strong>Fin :</strong> {{ getDateFormated(race.end, false) }}</p>
<p><strong>Inscription :</strong> {{ getStateText(race.race_user_state) }}</p>
<p><strong>Niveau :</strong> {{ race.level }}</p>
<p><strong>Groupe :</strong> {{ race.groupName }}</p>
<div class='card-actions'>
<button class='pure-button pure-button-primary' @click='loadInfoCourse(race)'>Information</button>
</div>
</div>
</div>
</div>
<div class='table-responsive'>
<table hidden class='cass-table' id='member-courses-list'>
<thead>
<tr>
@ -82,6 +108,7 @@ function cass_shortcode_member_courses_list_subscribed()
<h4>{{ infoCourseName }}</h4>
<!-- Display course information here -->
</div>
</div>
</template>
</div>
</div>

View File

@ -16,12 +16,30 @@ function cass_shortcode_member_register()
{
if (!is_user_logged_in()) {
return "
<script>
window.addEventListener('DOMContentLoaded', function () {
var input = document.querySelector('#phone');
if (input) {
window.intlTelInput(input, {
separateDialCode: true,
preferredCountries: ['ch', 'fr'],
initialCountry:'ch'
});
}
});
</script>
<script>
window.adminPostUrl = " . json_encode(esc_attr(admin_url('admin-post.php'))) . ";
window.siteUrl = " . json_encode(get_site_url()) . ";
</script>
<script src='https://www.google.com/recaptcha/api.js'></script>
<link rel='stylesheet' href='https://cdn.tutorialjinni.com/intl-tel-input/17.0.19/css/intlTelInput.css'/>
<script src='https://cdn.tutorialjinni.com/intl-tel-input/17.0.19/js/intlTelInput.min.js'></script>
<script src='https://cdnjs.cloudflare.com/ajax/libs/intl-tel-input/17.0.19/js/lang/fr.js'></script>
<div class='div-center'>
<div id='cass_member_register'>
<template>
@ -51,7 +69,7 @@ function cass_shortcode_member_register()
</div>
<div class='pure-control-group'>
<label for='inputTelephone'>Téléphone*</label>
<input type='text' class='form-control' id='inputTelephone' v-model='user.inputTelephone' required placeholder='Votre numéro de téléphone'>
<input name='phone' type='text' id='phone'/>
</div>
<div class='pure-control-group'>
<label for='inputAddress'>Adresse*</label>