- désactivation des liens de visualisation et d'édition en mode non connecté
- en mode non connnecté une popup affichera le détail d'un événement
- utilisation des groupes du core
This commit is contained in:
Fred Tempez 2024-08-29 21:41:00 +02:00
parent 8b17c73757
commit fcb5deb2fa
5 changed files with 50 additions and 52 deletions

View File

@ -59,13 +59,6 @@ class agenda extends common
'white' => 'blanc' 'white' => 'blanc'
]; ];
public static $groupe = [
'0' => 'Visiteur',
'1' => 'Membre',
'2' => 'Editeur',
'3' => 'Administrateur'
];
//Evenement //Evenement
public static $evenement = [ public static $evenement = [
'id' => 0, 'id' => 0,

View File

@ -89,7 +89,7 @@
</div> </div>
<div class="row"> <div class="row">
<div class="col4"> <div class="col4">
<?php echo template::select('creation_groupe_lire', $module::$groupe,[ <?php echo template::select('creation_groupe_lire', self::$groupPublics,[
'help' => 'Choix du groupe minimal qui pourra voir et lire cet évènement', 'help' => 'Choix du groupe minimal qui pourra voir et lire cet évènement',
'label' => 'Accès en lecture', 'label' => 'Accès en lecture',
'selected' => '0' 'selected' => '0'
@ -100,7 +100,7 @@
$groupe_mini = $this->getUser('group'); $groupe_mini = $this->getUser('group');
if ($groupe_mini == 3){ $groupe_mini = 2;} if ($groupe_mini == 3){ $groupe_mini = 2;}
?> ?>
<?php echo template::select('creation_groupe_mod', $module::$groupe,[ <?php echo template::select('creation_groupe_mod', self::$groupNews,[
'help' => 'Choix du groupe minimal qui pourra modifier ou supprimer cet évènement', 'help' => 'Choix du groupe minimal qui pourra modifier ou supprimer cet évènement',
'label' => 'Accès en modification', 'label' => 'Accès en modification',
'selected' => $groupe_mini 'selected' => $groupe_mini

View File

@ -80,14 +80,14 @@
</div> </div>
<div class="row"> <div class="row">
<div class="col4"> <div class="col4">
<?php echo template::select('edition_groupe_lire', $module::$groupe, [ <?php echo template::select('edition_groupe_lire', self::$groupPublics, [
'help' => 'Choix du groupe minimal qui pourra voir et lire cet évènement', 'help' => 'Choix du groupe minimal qui pourra voir et lire cet évènement',
'label' => 'Accès en lecture', 'label' => 'Accès en lecture',
'selected' => $module::$evenement['groupe_lire'] 'selected' => $module::$evenement['groupe_lire']
]); ?> ]); ?>
</div> </div>
<div class="col4"> <div class="col4">
<?php echo template::select('edition_groupe_mod', $module::$groupe, [ <?php echo template::select('edition_groupe_mod', self::$groupNews, [
'help' => 'Choix du groupe minimal qui pourra modifier ou supprimer cet évènement', 'help' => 'Choix du groupe minimal qui pourra modifier ou supprimer cet évènement',
'label' => 'Accès en modification', 'label' => 'Accès en modification',
'selected' => $module::$evenement['groupe_mod'] 'selected' => $module::$evenement['groupe_mod']

View File

@ -15,60 +15,65 @@
* Docs & License: https://fullcalendar.io/ * Docs & License: https://fullcalendar.io/
* (c) 2019 Adam Shaw * (c) 2019 Adam Shaw
**/ **/
$(document).ready(function() { $(document).ready(function () {
/* Pour liaison entre constiables php et javascript dans index.js.php */ /* Pour liaison entre constiables php et javascript dans index.js.php */
const connected = '<?php echo $this->getUser("password") === $this->getInput("ZWII_USER_PASSWORD"); ?>';
// Integer: largeur MAXI du diaporama, en pixels. Par exemple : 800, 920, 500 // Integer: largeur MAXI du diaporama, en pixels. Par exemple : 800, 920, 500
var maxwidth='<?php echo $this->getData(["module", $this->getUrl(0),"config","maxiWidth"]); ?>'; var maxwidth = '<?php echo $this->getData(["module", $this->getUrl(0),"config","maxiWidth"]); ?>';
//Fullcalendar : instanciation, initialisations //Fullcalendar : instanciation, initialisations
var calendarEl = document.getElementById('calendar'); var calendarEl = document.getElementById('calendar');
var calendar = new FullCalendar.Calendar(calendarEl, { var calendar = new FullCalendar.Calendar(calendarEl, {
header: { header: {
left: 'dayGridMonth,dayGridWeek', left: 'dayGridMonth,dayGridWeek',
center: 'title', center: 'title',
right: 'today,prev,next' right: 'today,prev,next'
}, },
titleFormat: { titleFormat: {
month: 'long', month: 'long',
year: 'numeric' year: 'numeric'
}, },
columnHeaderFormat: { columnHeaderFormat: {
weekday: 'long' weekday: 'long'
}, },
plugins: [ 'dayGrid', 'interaction' ], plugins: ['dayGrid', 'interaction'],
locale : 'fr', locale: 'fr',
defaultView: '<?php echo $this->getData(["module", $this->getUrl(0), "vue", "vueagenda"]) ;?>', defaultView: '<?php echo $this->getData(["module", $this->getUrl(0), "vue", "vueagenda"]) ;?>',
defaultDate: '<?php echo $this->getData(["module", $this->getUrl(0), "vue", "debagenda"]) ;?>', defaultDate: '<?php echo $this->getData(["module", $this->getUrl(0), "vue", "debagenda"]) ;?>',
selectable: true, selectable: true,
editable: true, editable: true,
//afficher les évènements à partir d'un fichier JSON //afficher les évènements à partir d'un fichier JSON
events : '<?php echo $module::DATAMODULE."data/".$this->getUrl(0); ?>'+'_visible/events.json', events: '<?php echo $module::DATAMODULE."data/".$this->getUrl(0); ?>' + '_visible/events.json',
//créer un évènement //créer un évènement
dateClick: function(info) { dateClick: function (info) {
window.open('<?php echo helper::baseUrl() . $this->getUrl(0); ?>'+ '/da:'+ info.dateStr + 'vue:' + info.view.type + 'deb:' + calendar.formatIso(info.view.currentStart),'_self'); if (connected) {
window.open('<?php echo helper::baseUrl() . $this->getUrl(0); ?>' + '/da:' + info.dateStr + 'vue:' + info.view.type + 'deb:' + calendar.formatIso(info.view.currentStart), '_self');
}
}, },
//Lire, modifier, supprimer un évènement //Lire, modifier, supprimer un évènement
eventClick: function(info) { eventClick: function (info) {
window.open('<?php echo helper::baseUrl() . $this->getUrl(0); ?>'+'/id:'+ info.event.id + 'vue:' + info.view.type + 'deb:' + calendar.formatIso(info.view.currentStart),'_self'); if (connected) {
window.open('<?php echo helper::baseUrl() . $this->getUrl(0); ?>' + '/id:' + info.event.id + 'vue:' + info.view.type + 'deb:' + calendar.formatIso(info.view.currentStart), '_self');
}
} }
}); });
//Déclaration de la fonction wrapper pour déterminer la largeur du div qui contient l'agenda et le bouton gérer : index_wrapper //Déclaration de la fonction wrapper pour déterminer la largeur du div qui contient l'agenda et le bouton gérer : index_wrapper
$.wrapper = function(){ $.wrapper = function () {
// Adaptation de la largeur du wrapper en fonction de la largeur de la page client et de la largeur du site // Adaptation de la largeur du wrapper en fonction de la largeur de la page client et de la largeur du site
// 10000 pour la sélection 100% // 10000 pour la sélection 100%
if(maxwidth != 10000){ if (maxwidth != 10000) {
var wclient = document.body.clientWidth, var wclient = document.body.clientWidth,
largeur_pour_cent, largeur_pour_cent,
largeur, largeur,
largeur_section, largeur_section,
wsection = getComputedStyle(site).width, wsection = getComputedStyle(site).width,
wcalcul; wcalcul;
switch (wsection) switch (wsection) {
{
case '750px': case '750px':
largeur_section = 750; largeur_section = 750;
break; break;
@ -81,30 +86,34 @@
default: default:
largeur_section = wclient; largeur_section = wclient;
} }
// 20 pour les margin du body / html, 40 pour le padding intérieur dans section // 20 pour les margin du body / html, 40 pour le padding intérieur dans section
if(wclient > largeur_section + 20) {wcalcul = largeur_section-40} else {wcalcul = wclient-40}; if (wclient > largeur_section + 20) {
largeur_pour_cent = Math.floor(100*(maxwidth/wcalcul)); wcalcul = largeur_section - 40
if(largeur_pour_cent > 100) { largeur_pour_cent=100;} } else {
largeur=largeur_pour_cent.toString() + "%"; wcalcul = wclient - 40
};
largeur_pour_cent = Math.floor(100 * (maxwidth / wcalcul));
if (largeur_pour_cent > 100) {
largeur_pour_cent = 100;
}
largeur = largeur_pour_cent.toString() + "%";
console.log(largeur); console.log(largeur);
$("#index_wrapper").css('width',largeur); $("#index_wrapper").css('width', largeur);
} } else {
else $("#index_wrapper").css('width', "100%");
{
$("#index_wrapper").css('width',"100%");
} }
//La taille du wrapper étant défini on peut l'afficher //La taille du wrapper étant défini on peut l'afficher
$("#index_wrapper").css('visibility', "visible"); $("#index_wrapper").css('visibility', "visible");
}; };
$.wrapper(); $.wrapper();
calendar.render(); calendar.render();
$(window).resize(function(){ $(window).resize(function () {
$.wrapper(); $.wrapper();
calendar.render(); calendar.render();
}); });
}); });

View File

@ -1,12 +1,8 @@
<!-- Agenda dans une div pour contrôler la taille--> <!-- Agenda dans un wrapper pour contrôler la taille-->
<div id="index_wrapper"> <div id="index_wrapper">
<!--Affiche l'agenda--> <!--Affiche l'agenda-->
<br>
<div id='calendar'> </div> <div id='calendar'> </div>
<br>
<?php echo template::formOpen('index_events'); ?> <?php echo template::formOpen('index_events'); ?>
<?php echo template::formClose();?> <?php echo template::formClose();?>
</div> </div>