diff options
author | polo <ordipolo@gmx.fr> | 2025-07-19 13:15:12 +0200 |
---|---|---|
committer | polo <ordipolo@gmx.fr> | 2025-07-19 13:15:12 +0200 |
commit | 976eaa544322be18c9feb1a165b9645533af4538 (patch) | |
tree | 39ce8d68222b1b116390276f5b4751b7913b42e8 /public | |
parent | 8338cbe662018eb7b7ec01cbbd21531aca1d9b31 (diff) | |
download | cms-976eaa544322be18c9feb1a165b9645533af4538.zip |
amélioration calendrier écran tactile, selection sans touché prolongé, versionedFileURL() dispo de partout
Diffstat (limited to 'public')
-rw-r--r-- | public/css/calendar.css | 23 | ||||
-rw-r--r-- | public/js/calendar.js | 18 | ||||
-rw-r--r-- | public/js/calendar_admin.js | 2 |
3 files changed, 34 insertions, 9 deletions
diff --git a/public/css/calendar.css b/public/css/calendar.css index 1cfb0fd..314a5ad 100644 --- a/public/css/calendar.css +++ b/public/css/calendar.css | |||
@@ -1,7 +1,10 @@ | |||
1 | /* !important est nécessaire pour écraser le CSS inséré par le javascript de fullcalendar */ | ||
2 | |||
1 | .event{ | 3 | .event{ |
2 | border: 2px double; | 4 | border: 2px double; |
3 | border-radius: 5px; | 5 | border-radius: 5px; |
4 | width: max-content; | 6 | width: max-content; |
7 | max-width: 250px; | ||
5 | padding: 5px; | 8 | padding: 5px; |
6 | } | 9 | } |
7 | #calendar_zone{ | 10 | #calendar_zone{ |
@@ -13,16 +16,17 @@ | |||
13 | #calendar{ | 16 | #calendar{ |
14 | width: 1165px; /* on enlève le "gap" */ | 17 | width: 1165px; /* on enlève le "gap" */ |
15 | } | 18 | } |
19 | #event_modal{} | ||
16 | .event_title_box{ | 20 | .event_title_box{ |
17 | display: flex; | 21 | display: flex; |
18 | align-items: center; | 22 | align-items: center; |
19 | justify-content: space-between; | 23 | justify-content: space-between; |
20 | } | 24 | } |
21 | .event_close_button{ | 25 | .event_close_button{ |
22 | height: fit-content; | 26 | /*height: fit-content;*/ |
23 | } | 27 | } |
24 | .fc-toolbar-title{ | 28 | .fc-toolbar-title{ |
25 | font-size: x-large !important; | 29 | /*font-size: x-large !important;*/ |
26 | } | 30 | } |
27 | .fc-button{ | 31 | .fc-button{ |
28 | padding: 0.2em 0.4em !important; | 32 | padding: 0.2em 0.4em !important; |
@@ -60,12 +64,21 @@ td .fc-timegrid-axis{ | |||
60 | padding: 0; | 64 | padding: 0; |
61 | } | 65 | } |
62 | .fc-toolbar-title{ | 66 | .fc-toolbar-title{ |
63 | font-size: large !important; | 67 | /*font-size: large !important;*/ |
68 | } | ||
69 | .fc-header-toolbar{ | ||
70 | font-size: smaller; | ||
71 | } | ||
72 | h3, p, .event > button{ | ||
73 | font-size: smaller; | ||
64 | } | 74 | } |
65 | } | 75 | } |
66 | @media screen and (max-width: 650px){ | 76 | @media screen and (max-width: 650px){ |
67 | .fc-toolbar-chunk{ | 77 | .fc-header-toolbar{ |
68 | font-size: smaller; | 78 | font-size: small; |
79 | } | ||
80 | .fc-toolbar-title{ | ||
81 | font-size: 1.5em !important; /* au lieu de 1.75em */ | ||
69 | } | 82 | } |
70 | } | 83 | } |
71 | @media screen and (max-width: 550px){ | 84 | @media screen and (max-width: 550px){ |
diff --git a/public/js/calendar.js b/public/js/calendar.js index 7450a91..2275c10 100644 --- a/public/js/calendar.js +++ b/public/js/calendar.js | |||
@@ -29,6 +29,8 @@ document.addEventListener('DOMContentLoaded', function(){ | |||
29 | stickyHeaderDates: true, // garder les en-tête de colonnes lors du scroll | 29 | stickyHeaderDates: true, // garder les en-tête de colonnes lors du scroll |
30 | fixedWeekCount: false, // avec false, affiche 4, 5 ou 6 semaines selon le mois | 30 | fixedWeekCount: false, // avec false, affiche 4, 5 ou 6 semaines selon le mois |
31 | selectable: true, // sélection de jours multiples | 31 | selectable: true, // sélection de jours multiples |
32 | longPressDelay: 0, /* par défaut sur mobile, select est déclenché avec un appui d'une seconde, | ||
33 | chatgpt déconseille 0 par risque de conflit entre selection et scrolling, mettre plutôt 200 ou 300ms */ | ||
32 | navLinks: true, // numéros de jour et de semaines clicables | 34 | navLinks: true, // numéros de jour et de semaines clicables |
33 | 35 | ||
34 | // vue semaine | 36 | // vue semaine |
@@ -43,6 +45,14 @@ document.addEventListener('DOMContentLoaded', function(){ | |||
43 | selected_start_string = info.startStr; // variable "globale" | 45 | selected_start_string = info.startStr; // variable "globale" |
44 | hideModal(); | 46 | hideModal(); |
45 | }, | 47 | }, |
48 | // méthode alternative à longPressDelay: 0 pour obtenir une sélection d'un simple "tap" sur écran tactile (mettre le if inverse dans select) | ||
49 | /*dateClick: function(info) { | ||
50 | if (window.matchMedia('(pointer: coarse)').matches) { | ||
51 | // utile sur mobile/tablette : déclenche sur un tap | ||
52 | console.log('dateClick', info.dateStr); | ||
53 | calendar.select(info.date, info.date); // hack permettant de sélectionner une journée seule uniquement | ||
54 | } | ||
55 | },*/ | ||
46 | //unselect: function(event, view){}, | 56 | //unselect: function(event, view){}, |
47 | 57 | ||
48 | eventClick: function(info){ | 58 | eventClick: function(info){ |
@@ -72,14 +82,14 @@ document.addEventListener('DOMContentLoaded', function(){ | |||
72 | <h3>` + info.event.title + `</h3> | 82 | <h3>` + info.event.title + `</h3> |
73 | <p><i>` + info.event.extendedProps.description + `</i></p>`; | 83 | <p><i>` + info.event.extendedProps.description + `</i></p>`; |
74 | if(checked && (formated_start === formated_end)){ // affichage simplifié évènement d'un jour | 84 | if(checked && (formated_start === formated_end)){ // affichage simplifié évènement d'un jour |
75 | aside_content = aside_content + `<p>le ` + formated_start + `</p> | 85 | aside_content = aside_content + `<p>le ` + formated_start + `</p>`; |
76 | </div>`; | ||
77 | } | 86 | } |
78 | else{ | 87 | else{ |
79 | aside_content = aside_content + `<p>du ` + formated_start + `</p> | 88 | aside_content = aside_content + `<p>du ` + formated_start + `</p> |
80 | <p>au ` + formated_end + `</p> | 89 | <p>au ` + formated_end + `</p>`; |
81 | </div>`; | ||
82 | } | 90 | } |
91 | aside_content += `<button class="event_close_button">Fermer</button> | ||
92 | </div>`; | ||
83 | 93 | ||
84 | aside.innerHTML = aside_content; | 94 | aside.innerHTML = aside_content; |
85 | calendar.updateSize(); | 95 | calendar.updateSize(); |
diff --git a/public/js/calendar_admin.js b/public/js/calendar_admin.js index 76a1ce9..7f167a4 100644 --- a/public/js/calendar_admin.js +++ b/public/js/calendar_admin.js | |||
@@ -30,6 +30,8 @@ document.addEventListener('DOMContentLoaded', function(){ | |||
30 | stickyHeaderDates: true, // garder les en-tête de colonnes lors du scroll | 30 | stickyHeaderDates: true, // garder les en-tête de colonnes lors du scroll |
31 | fixedWeekCount: false, // avec false, affiche 4, 5 ou 6 semaines selon le mois | 31 | fixedWeekCount: false, // avec false, affiche 4, 5 ou 6 semaines selon le mois |
32 | selectable: true, // sélection de jours multiples | 32 | selectable: true, // sélection de jours multiples |
33 | longPressDelay: 0, /* par défaut sur mobile, select est déclenché avec un appui d'une seconde, | ||
34 | chatgpt déconseille 0 par risque de conflit entre selection et scrolling, mettre plutôt 200 ou 300ms */ | ||
33 | navLinks: true, // numéros de jour et de semaines clicables | 35 | navLinks: true, // numéros de jour et de semaines clicables |
34 | 36 | ||
35 | // vue semaine | 37 | // vue semaine |