calendar 1.2

renommage de variable "agenda" en "calendar"
ajout d'un bouton vers la page d'édition de la feuille de style de la page
This commit is contained in:
Fred Tempez 2024-08-29 07:05:54 +02:00
parent cc48756760
commit d38397d89d
8 changed files with 77 additions and 70 deletions

View File

@ -17,7 +17,7 @@
class calendar extends common
{
const VERSION = '1.1';
const VERSION = '1.2';
const REALNAME = 'Calendrier';
const DATA_DIRECTORY = self::DATA_DIR . 'calendar/';
@ -26,7 +26,7 @@ class calendar extends common
const SORT_HAND = 'SORT_HAND';
public static $agendas = [];
public static $calendars = [];
public static $classes = ['' => ''];
@ -61,23 +61,23 @@ class calendar extends common
if (
$this->getUser('permission', __CLASS__, __FUNCTION__) === true
) {
$agendas = $this->getData(['module', $this->getUrl(0), 'content']);
if (is_null($agendas)) {
$calendars = $this->getData(['module', $this->getUrl(0), 'content']);
if (is_null($calendars)) {
$this->setData(['module', $this->getUrl(0), 'content', []]);
} elseif (!empty($agendas)) {
foreach ($agendas as $agendaId => $agendaData) {
self::$agendas[] = [
$agendaData['eventName'],
helper::dateUTF8('%d %m %Y', $agendaData['date'], self::$i18nUI),
empty($agendaData['time']) ? '' : helper::dateUTF8('%H:%M', $agendaData['time'], self::$i18nUI),
template::button('agendaConfigEdit' . $agendaId, [
'href' => helper::baseUrl() . $this->getUrl(0) . '/edit/' . $agendaId,
} elseif (!empty($calendars)) {
foreach ($calendars as $calendarId => $calendarData) {
self::$calendars[] = [
$calendarData['eventName'],
helper::dateUTF8('%d %m %Y', $calendarData['date'], self::$i18nUI),
empty($calendarData['time']) ? '' : helper::dateUTF8('%H:%M', $calendarData['time'], self::$i18nUI),
template::button('calendarConfigEdit' . $calendarId, [
'href' => helper::baseUrl() . $this->getUrl(0) . '/edit/' . $calendarId,
'value' => template::ico('pencil'),
'help' => 'Configuration'
]),
template::button('galleryConfigDelete' . $agendaId, [
template::button('galleryConfigDelete' . $calendarId, [
'class' => 'galleryConfigDelete buttonRed',
'href' => helper::baseUrl() . $this->getUrl(0) . '/delete/' . $agendaId,
'href' => helper::baseUrl() . $this->getUrl(0) . '/delete/' . $calendarId,
'value' => template::ico('trash'),
'help' => 'Supprimer'
])
@ -112,11 +112,11 @@ class calendar extends common
'content',
uniqid(),
[
'eventName' => $this->getInput('agendaAddEventName', null, true),
'date' => $this->getInput('agendaAddDate', helper::FILTER_DATETIME, true),
'time' => $this->getInput('agendaAddAllDay', helper::FILTER_BOOLEAN) === false ? $this->getInput('agendaAddTime', helper::FILTER_DATETIME) : '',
'className' => $this->getInput('agendaAddDateClassName', null),
'dateColor' => $this->getInput('agendaAddDateColor', null),
'eventName' => $this->getInput('calendarAddEventName', null, true),
'date' => $this->getInput('calendarAddDate', helper::FILTER_DATETIME, true),
'time' => $this->getInput('calendarAddAllDay', helper::FILTER_BOOLEAN) === false ? $this->getInput('calendarAddTime', helper::FILTER_DATETIME) : '',
'className' => $this->getInput('calendarAddDateClassName', null),
'dateColor' => $this->getInput('calendarAddDateColor', null),
]
]);
@ -167,11 +167,11 @@ class calendar extends common
'content',
$this->getUrl(2),
[
'eventName' => $this->getInput('agendaEditEventName', null, true),
'date' => $this->getInput('agendaEditDate', helper::FILTER_DATETIME, true),
'time' => $this->getInput('agendaEditAllDay', helper::FILTER_BOOLEAN) === false ? $this->getInput('agendaEditTime', helper::FILTER_DATETIME) : '',
'className' => $this->getInput('agendaEditDateClassName', null),
'dateColor' => $this->getInput('agendaEditDateColor', null),
'eventName' => $this->getInput('calendarEditEventName', null, true),
'date' => $this->getInput('calendarEditDate', helper::FILTER_DATETIME, true),
'time' => $this->getInput('calendarEditAllDay', helper::FILTER_BOOLEAN) === false ? $this->getInput('calendarEditTime', helper::FILTER_DATETIME) : '',
'className' => $this->getInput('calendarEditDateClassName', null),
'dateColor' => $this->getInput('calendarEditDateColor', null),
]
]);
@ -240,7 +240,7 @@ class calendar extends common
// Mise à jour des données de module
$this->update();
$agendas = $this->getData(['module', $this->getUrl(0), 'content']);
$calendars = $this->getData(['module', $this->getUrl(0), 'content']);
// Initialise la feuille de style
if (empty($this->getData(['page', $this->getUrl(0), 'css']))) {
@ -248,11 +248,11 @@ class calendar extends common
}
// Affichage du template si les données sont disponibles
if (is_null($agendas)) {
if (is_null($calendars)) {
$this->setData(['module', $this->getUrl(0), 'content', []]);
} elseif (!empty($agendas)) {
} elseif (!empty($calendars)) {
// Lecture des données
foreach ($agendas as $agendasId => $data) {
foreach ($calendars as $calendarsId => $data) {
// Convertion du timestamp en ISO
$data['date'] = helper::dateUTF8('%Y-%m-%d', $data['date']);
// Ajouter l'horaire
@ -261,7 +261,7 @@ class calendar extends common
$data['date'] = $data['date'] . 'T' . $data['time'];
}
self::$agendas[] = $data;
self::$calendars[] = $data;
}
}
// Valeurs en sortie

View File

@ -1,4 +1,6 @@
# Version 1.2
- Ajout d'un bouton vers la page d'édition de la feuille de style de la page.
- Renomme des variables internes.
# Version 1.1
- Limite à 80% la largeur de la popup pour les petits écrans.
- Contraste de couleurs des textes qui écrasent la couleur définie dans la feuille de style perso.

View File

@ -1,11 +1,11 @@
$(document).ready(function() {
// Ajoute un événement sur le changement de l'état de la checkbox agendaAddAllDay
$('#agendaAddAllDay').on('change', function() {
// Ajoute un événement sur le changement de l'état de la checkbox calendarAddAllDay
$('#calendarAddAllDay').on('change', function() {
if ($(this).is(':checked')) {
$('#agendaAddTime').val('');
$('#agendaAddTimeWrapper').slideUp(); // Masque avec un effet de slide
$('#calendarAddTime').val('');
$('#calendarAddTimeWrapper').slideUp(); // Masque avec un effet de slide
} else {
$('#agendaAddTimeWrapper').slideDown(); // Affiche avec un effet de slide
$('#calendarAddTimeWrapper').slideDown(); // Affiche avec un effet de slide
}
});
});

View File

@ -1,14 +1,14 @@
<?php echo template::formOpen('agendaAddForm'); ?>
<?php echo template::formOpen('calendarAddForm'); ?>
<div class="row">
<div class="col1">
<?php echo template::button('agendaAddBack', [
<?php echo template::button('calendarAddBack', [
'class' => 'buttonGrey',
'href' => helper::baseUrl() . $this->getUrl(0) . '/config',
'value' => template::ico('left')
]); ?>
</div>
<div class="col2 offset9">
<?php echo template::submit('agendaAddSubmit'); ?>
<?php echo template::submit('calendarAddSubmit'); ?>
</div>
</div>
<div class="row">
@ -17,18 +17,18 @@
<h4><?php echo helper::translate('Paramètres'); ?></h4>
<div class="row">
<div class="col4">
<?php echo template::text('agendaAddEventName', [
<?php echo template::text('calendarAddEventName', [
'label' => 'Titre',
]); ?>
</div>
<div class="col4">
<?php echo template::date('agendaAddDate', [
<?php echo template::date('calendarAddDate', [
'label' => 'Date',
'type' => 'date',
]); ?>
</div>
<div class="col4">
<?php echo template::text('agendaAddDateColor', [
<?php echo template::text('calendarAddDateColor', [
'class' => 'colorPicker',
'help' => 'A ne paramétrer que sur un seul événement du jour. Le curseur horizontal règle le niveau de transparence.',
'label' => 'Couleur de la date du jour',
@ -37,19 +37,19 @@
</div>
<div class="row">
<div class="col4">
<?php echo template::checkbox('agendaAddAllDay', true, 'Toute la journée', [
<?php echo template::checkbox('calendarAddAllDay', true, 'Toute la journée', [
'checked' => false
]); ?>
</div>
<div class="col4">
<?php echo template::date('agendaAddTime', [
<?php echo template::date('calendarAddTime', [
'label' => 'Horaire',
'type' => 'time',
'help' => 'Ne pas indiquer d\'horaire quand l\'événement est sur la journée entière.',
]); ?>
</div>
<div class="col4">
<?php echo template::select('agendaAddDateClassName', $module::$classes, [
<?php echo template::select('calendarAddDateClassName', $module::$classes, [
'label' => 'Classe CSS',
'help' => 'La feuille de style de la page contient ces classes.',
]); ?>

View File

@ -1,15 +1,20 @@
<?php echo template::formOpen('agendaConfigForm'); ?>
<?php echo template::formOpen('calendarConfigForm'); ?>
<div class="row">
<div class="col1">
<?php echo template::button('agendaConfigBack', [
<?php echo template::button('calendarConfigBack', [
'class' => 'buttonGrey',
'href' => helper::baseUrl() . 'page/edit/' . $this->getUrl(0),
'value' => template::ico('left')
]); ?>
</div>
-->
<div class="col1 offset10">
<?php echo template::button('agendaAdd', [
<div class="col1 offset9">
<?php echo template::button('calendarTheme', [
'href' => helper::baseUrl() . 'page/cssEditor/' . $this->getUrl(0),
'value' => template::ico('brush')
]); ?>
</div>
<div class="col1">
<?php echo template::button('calendarAdd', [
'href' => helper::baseUrl() . $this->getUrl(0) . '/add/',
'value' => template::ico('plus'),
'class' => 'buttonGreen'
@ -19,8 +24,8 @@
<?php echo template::formClose(); ?>
<div class="row">
<div class="col12">
<?php if ($module::$agendas): ?>
<?php echo template::table([6, 3, 3, 1, 1], $module::$agendas, ['Titre', 'Date', 'Horaire', '', '']); ?>
<?php if ($module::$calendars): ?>
<?php echo template::table([6, 3, 3, 1, 1], $module::$calendars, ['Titre', 'Date', 'Horaire', '', '']); ?>
<?php else: ?>
<?php echo template::speech('Aucun événement'); ?>
<?php endif; ?>

View File

@ -18,20 +18,20 @@ $(document).ready(function() {
// Initialisation de l'affichage au chargement de la page
if (time === '') {
$('#agendaEditAllDay').prop('checked', true);
$('#agendaEditTimeWrapper').slideUp(); // Masque immédiatement sans animation
$('#calendarEditAllDay').prop('checked', true);
$('#calendarEditTimeWrapper').slideUp(); // Masque immédiatement sans animation
} else {
$('#agendaEditAllDay').prop('checked', false);
$('#agendaEditTimeWrapper').slideDown(); // Affiche immédiatement sans animation
$('#calendarEditAllDay').prop('checked', false);
$('#calendarEditTimeWrapper').slideDown(); // Affiche immédiatement sans animation
}
// Ajoute un événement sur le changement de l'état de la checkbox agendaEditAllDay
$('#agendaEditAllDay').on('change', function() {
// Ajoute un événement sur le changement de l'état de la checkbox calendarEditAllDay
$('#calendarEditAllDay').on('change', function() {
if ($(this).is(':checked')) {
$('#agendaEditTime').val('');
$('#agendaEditTimeWrapper').slideUp(); // Masque avec un effet de slide
$('#calendarEditTime').val('');
$('#calendarEditTimeWrapper').slideUp(); // Masque avec un effet de slide
} else {
$('#agendaEditTimeWrapper').slideDown(); // Affiche avec un effet de slide
$('#calendarEditTimeWrapper').slideDown(); // Affiche avec un effet de slide
}
});
});

View File

@ -1,14 +1,14 @@
<?php echo template::formOpen('agendaEditForm'); ?>
<?php echo template::formOpen('calendarEditForm'); ?>
<div class="row">
<div class="col1">
<?php echo template::button('agendaEditBack', [
<?php echo template::button('calendarEditBack', [
'class' => 'buttonGrey',
'href' => helper::baseUrl() . $this->getUrl(0) . '/config',
'value' => template::ico('left')
]); ?>
</div>
<div class="col2 offset9">
<?php echo template::submit('agendaEditSubmit'); ?>
<?php echo template::submit('calendarEditSubmit'); ?>
</div>
</div>
<div class="row">
@ -17,20 +17,20 @@
<h4><?php echo helper::translate('Paramètres'); ?></h4>
<div class="row">
<div class="col4">
<?php echo template::text('agendaEditEventName', [
<?php echo template::text('calendarEditEventName', [
'label' => 'Titre',
'value' => $this->getData(['module', $this->getUrl(0), 'content', $this->getUrl(2), 'eventName'])
]); ?>
</div>
<div class="col4">
<?php echo template::date('agendaEditDate', [
<?php echo template::date('calendarEditDate', [
'label' => 'Date',
'type' => 'date',
'value' => $this->getData(['module', $this->getUrl(0), 'content', $this->getUrl(2), 'date'])
]); ?>
</div>
<div class="col4">
<?php echo template::text('agendaEditDateColor', [
<?php echo template::text('calendarEditDateColor', [
'class' => 'colorPicker',
'help' => 'A ne paramétrer que sur un seul événement du jour. Le curseur horizontal règle le niveau de transparence.',
'label' => 'Couleur de la date du jour',
@ -40,12 +40,12 @@
</div>
<div class="row">
<div class="col4">
<?php echo template::checkbox('agendaEditAllDay', true, 'Toute la journée', [
<?php echo template::checkbox('calendarEditAllDay', true, 'Toute la journée', [
'checked' => false
]); ?>
</div>
<div class="col4">
<?php echo template::date('agendaEditTime', [
<?php echo template::date('calendarEditTime', [
'label' => 'Horaire',
'type' => 'time',
'help' => 'Ne pas indiquer d\'horaire quand l\'événement est sur la journée entière.',
@ -53,7 +53,7 @@
]); ?>
</div>
<div class="col4">
<?php echo template::select('agendaEditDateClassName', $module::$classes, [
<?php echo template::select('calendarEditDateClassName', $module::$classes, [
'label' => 'Classe CSS',
'help' => 'La feuille de style de la page contient ces classes.',
'selected' => $this->getData(['module', $this->getUrl(0), 'content', $this->getUrl(2), 'className'])

View File

@ -14,7 +14,7 @@
const jsonOptions = '<?php echo json_encode($module::$agendas); ?>';
const jsonOptions = '<?php echo json_encode($module::$calendars); ?>';
const objOptions = JSON.parse(jsonOptions);
const events = generateEvents(objOptions);