calendar 1.4

This commit is contained in:
Fred Tempez 2024-09-09 20:19:48 +02:00
parent be4f5c8457
commit b804eb097c
6 changed files with 29 additions and 48 deletions

View File

@ -15,7 +15,7 @@
class calendar extends common class calendar extends common
{ {
const VERSION = '1.4alpha'; const VERSION = '1.4';
const REALNAME = 'Calendrier'; const REALNAME = 'Calendrier';
const DATA_DIRECTORY = self::DATA_DIR . 'calendar/'; const DATA_DIRECTORY = self::DATA_DIR . 'calendar/';
@ -137,8 +137,6 @@ class calendar extends common
// Utiliser une expression pour capturer la clé complète (div .gc-event.textRed) et la dernière classe (textRed) // Utiliser une expression pour capturer la clé complète (div .gc-event.textRed) et la dernière classe (textRed)
preg_match_all('/(div\s+\.gc-event\.\w+)\s*\{/', $classes, $matches); preg_match_all('/(div\s+\.gc-event\.\w+)\s*\{/', $classes, $matches);
// Créer un tableau associatif où la clé est la classe complète et la valeur est la dernière partie de la classe
$associativeClasses = [];
foreach ($matches[1] as $fullClass) { foreach ($matches[1] as $fullClass) {
// Extraire la dernière classe après le dernier point // Extraire la dernière classe après le dernier point
@ -193,23 +191,18 @@ class calendar extends common
]); ]);
} }
// Liste des classes disponibles // Liste des classes disponibles
$classes = $this->getData(['page', $this->getUrl(0), 'css']); $classes = $this->getData(['page', $this->getUrl(0), 'css']);
preg_match_all('/\.(\w+)/', $classes, $matches);
if (isset($matches[1])) {
// Créer un tableau associatif avec les clés égales aux valeurs
$associativeClasses = array_combine($matches[1], $matches[1]);
// Utiliser une expression pour capturer la clé complète (div .gc-event.textRed) et la dernière classe (textRed) // Fusionner ce tableau avec le tableau self::$classes
preg_match_all('/(div\s+\.gc-event\.\w+)\s*\{/', $classes, $matches); self::$classes = array_merge(self::$classes, $associativeClasses);
// Créer un tableau associatif où la clé est la classe complète et la valeur est la dernière partie de la classe
$associativeClasses = [];
foreach ($matches[1] as $fullClass) {
// Extraire la dernière classe après le dernier point
preg_match('/\.(\w+)$/', $fullClass, $lastClassMatch);
$lastClass = $lastClassMatch[1];
// Assigner la clé complète à la dernière classe
self::$classes[$fullClass] = $lastClass;
} }
// Valeurs en sortie // Valeurs en sortie
$this->addOutput([ $this->addOutput([
'title' => helper::translate('Edition'), 'title' => helper::translate('Edition'),
@ -297,24 +290,27 @@ class calendar extends common
{ {
// Feuille de styles // Feuille de styles
$cssContent = $cssContent =
'div .gc-event.textRed { '.textRed {
padding: 2px; padding: 2px;
border-radius: 5px; border-radius: 5px;
color: red; color: red;
background-color: lightgrey;
font-size: 18px; font-size: 18px;
width: 90% ; width: 90% ;
} }
div .gc-event.textGreen { .textGreen {
border-radius: 5px; border-radius: 5px;
padding: 2px; padding: 2px;
color: lightgreen; color: lightgreen;
background-color: darkgrey;
font-size: 18px; font-size: 18px;
width: 90% ; width: 90% ;
} }
div .gc-event.textOrange { .textOrange {
padding: 2px; padding: 2px;
border-radius: 5px; border-radius: 5px;
color: orange; color: orange;
background-color: green;
font-size: 18px; font-size: 18px;
width: 90% ; width: 90% ;
}'; }';

View File

@ -1,3 +1,5 @@
# Version 1.4
- Annule les événements sont représentés par des icônes sur les petites largeurs d'écran et corrige les bugs liés à cette fonctionnalité.
# Version 1.3 # Version 1.3
- Corrige le pointeur de la ouris sur le mois. - Corrige le pointeur de la ouris sur le mois.
- Un clic sur le mois affiche le mois courant. - Un clic sur le mois affiche le mois courant.

View File

@ -159,6 +159,7 @@
margin-bottom: 10px margin-bottom: 10px
} }
.slide-in-left { .slide-in-left {
-webkit-animation: slide-in-left .5s cubic-bezier(.25, .46, .45, .94) both; -webkit-animation: slide-in-left .5s cubic-bezier(.25, .46, .45, .94) both;
animation: slide-in-left .5s cubic-bezier(.25, .46, .45, .94) both animation: slide-in-left .5s cubic-bezier(.25, .46, .45, .94) both

View File

@ -14,8 +14,7 @@ var gcObject = {
}], }],
onclickDate: function (e, t) {}, onclickDate: function (e, t) {},
nextIcon: ">", nextIcon: ">",
prevIcon: "<", prevIcon: "<"
eventIcon: "📌"
}, },
el: "", el: "",
eventAnimate: "none", eventAnimate: "none",
@ -82,9 +81,8 @@ var gcObject = {
gcObject.options.events.forEach((function (t) { gcObject.options.events.forEach((function (t) {
if (t.date.getFullYear() == e.datejs.getFullYear() && t.date.getMonth() == e.datejs.getMonth() && t.date.getDate() == e.datejs.getDate()) { if (t.date.getFullYear() == e.datejs.getFullYear() && t.date.getMonth() == e.datejs.getMonth() && t.date.getDate() == e.datejs.getDate()) {
n.addClass("event"); n.addClass("event");
var displayText = $(window).width() <= 600 ? gcObject.options.eventIcon : t.eventName; var a = $(`<div class="gc-event ${t.className}">${t.eventName}</div>`);
var a = $(`<div class="gc-event ${t.className}" style="color:${t.dateColor || 'inherit'}">${displayText}</div>`); s = "color:" + (t.dateColor || "inherit"), a.on("click", (function (e) {
a.on("click", (function (e) {
t.onclick(e, t) t.onclick(e, t)
})), n.append(a) })), n.append(a)
} }
@ -127,7 +125,6 @@ var gcObject = {
return i return i
} }
}; };
jQuery.fn.calendarGC = function (e = { jQuery.fn.calendarGC = function (e = {
dayNames: dayNames, dayNames: dayNames,
dayBegin: dayBegin, dayBegin: dayBegin,
@ -137,23 +134,7 @@ jQuery.fn.calendarGC = function (e = {
events: events, events: events,
onclickDate: onclickDate, onclickDate: onclickDate,
nextIcon: "&gt;", nextIcon: "&gt;",
prevIcon: "&lt;", prevIcon: "&lt;"
eventIcon: "&#128204" // Notez ici, il n'y a pas de point-virgule.
}) { }) {
// Dans la définition des options, vous n'avez pas pris en compte eventIcon return gcObject.options.dayNames = e.dayNames || ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], gcObject.options.dayBegin = void 0 === e.dayBegin || null === e.dayBegin ? 1 : e.dayBegin, gcObject.options.monthNames = e.monthNames || ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], gcObject.options.onPrevMonth = e.onPrevMonth || function (e) {}, gcObject.options.onNextMonth = e.onNextMonth || function (e) {}, gcObject.options.events = e.events || [], gcObject.options.onclickDate = e.onclickDate || function (e, t) {}, gcObject.options.nextIcon = e.nextIcon || "&gt;", gcObject.options.prevIcon = e.prevIcon || "&lt;", gcObject.el = this, gcObject.render(), gcObject
return gcObject.options.dayNames = e.dayNames || ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
gcObject.options.dayBegin = void 0 === e.dayBegin || null === e.dayBegin ? 1 : e.dayBegin,
gcObject.options.monthNames = e.monthNames || ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
gcObject.options.onPrevMonth = e.onPrevMonth || function (e) {},
gcObject.options.onNextMonth = e.onNextMonth || function (e) {},
gcObject.options.events = e.events || [],
gcObject.options.onclickDate = e.onclickDate || function (e, t) {},
gcObject.options.nextIcon = e.nextIcon || "&gt;",
gcObject.options.prevIcon = e.prevIcon || "&lt;",
// Il manque la ligne suivante pour eventIcon
gcObject.options.eventIcon = e.eventIcon || "&#128204;",
gcObject.el = this,
gcObject.render(),
gcObject;
}; };

View File

@ -27,9 +27,10 @@
font-family: 'Inter', sans-serif; /* Assurer la police Inter dans la popup */ font-family: 'Inter', sans-serif; /* Assurer la police Inter dans la popup */
} }
div .gc-event { .gc-event {
color: #38385C; color: #38385C;
text-align: center; text-align: center;
font-size: 18px;
} }
.popup-content { .popup-content {

View File

@ -26,7 +26,7 @@ function initializeCalendar() {
monthNames: ['Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre'], monthNames: ['Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre'],
prevIcon: '&#x3c;', prevIcon: '&#x3c;',
nextIcon: '&#x3e;', nextIcon: '&#x3e;',
eventIcon: '&#x1F4C5;', //eventIcon: '&#x1F4C5;',
onPrevMonth: function (e) { onPrevMonth: function (e) {
// Code pour le changement de mois précédent // Code pour le changement de mois précédent
}, },