aboutsummaryrefslogtreecommitdiff
path: root/public/js/main.js
diff options
context:
space:
mode:
Diffstat (limited to 'public/js/main.js')
-rw-r--r--public/js/main.js57
1 files changed, 51 insertions, 6 deletions
diff --git a/public/js/main.js b/public/js/main.js
index d2f8876..59a9331 100644
--- a/public/js/main.js
+++ b/public/js/main.js
@@ -36,15 +36,10 @@ function toastNotify(message){
36 setTimeout(function(){ toast.className = toast.className.replace('show', ''); }, 5000); 36 setTimeout(function(){ toast.className = toast.className.replace('show', ''); }, 5000);
37} 37}
38 38
39
40// exécuté à la fin du chargement de la page 39// exécuté à la fin du chargement de la page
41document.addEventListener('DOMContentLoaded', () => { 40document.addEventListener('DOMContentLoaded', () => {
42 41
43 // détection des dates et conversion à l'heure locale 42 insertLocalDates();
44 document.querySelectorAll('.local_date').forEach(function(element){
45 const utc_date = element.getAttribute('date-utc'); // forme: 2025-10-10T12:17:00+00:00
46 element.innerText = toFormatedLocalDate(utc_date);
47 });
48 43
49 // ouvrir/fermer les sous-menus avec écran tactile 44 // ouvrir/fermer les sous-menus avec écran tactile
50 document.querySelectorAll('.sub-menu-toggle').forEach(button => { 45 document.querySelectorAll('.sub-menu-toggle').forEach(button => {
@@ -85,6 +80,48 @@ document.addEventListener('DOMContentLoaded', () => {
85}); 80});
86 81
87 82
83function fetchArticles(bloc_id){
84 const parent = document.getElementById(bloc_id);
85
86 const block_type = parent.getAttribute('block-type');
87 let last_article = '';
88 if(block_type === 'post_block'){
89 // pas parfait, suppose que les positions sont correctes
90 last_article = parent.querySelectorAll('article').length - 1;
91 }
92 else if(block_type === 'news_block'){
93 // date_time du dernier article affiché (heure UTC), date vide si bloc vide
94 const news_elements = parent.querySelector('.section_child').querySelectorAll('article');
95 last_article = news_elements.length !== 0 ? news_elements[news_elements.length - 1].querySelector('.local_date').getAttribute('date-utc') : '';
96 }
97 else{
98 console.log("Erreur, le type de bloc n'est pas reconnu");
99 return;
100 }
101
102 fetch('index.php?fetch=next_articles&id=' + bloc_id + '&last_article=' + last_article) // méthode GET par défaut
103 .then(response => response.json())
104 .then(data => {
105 if(data.success){
106 // insérer les articles
107 parent.querySelector('.section_child').innerHTML += data.html;
108 insertLocalDates();
109
110 // cacher le bouton
111 parent.querySelector('.fetch_articles').querySelector('button').className = data.truncated ? '' : 'hidden';
112
113 console.log("Articles insérés dans le bloc");
114 }
115 else{
116 console.log("Erreur côté serveur à la récupération d'articles");
117 }
118 })
119 .catch(error => {
120 console.error('Erreur:', error);
121 });
122}
123
124
88// complète les fonctions dans tinymce.js 125// complète les fonctions dans tinymce.js
89function switchPositions(article_id, direction) 126function switchPositions(article_id, direction)
90{ 127{
@@ -239,6 +276,14 @@ function submitDate(id_date)
239 } 276 }
240} 277}
241 278
279function insertLocalDates(){
280 // détection des dates et conversion à l'heure locale
281 document.querySelectorAll('.local_date').forEach(function(element){
282 const utc_date = element.getAttribute('date-utc'); // forme: 2025-10-10T12:17:00+00:00
283 element.innerText = toFormatedLocalDate(utc_date);
284 });
285}
286
242function toFormatedLocalDate(utc_string_date){ // forme: 2025-07-17T13:54:00.000Z ou 2025-02-04T00:24 287function toFormatedLocalDate(utc_string_date){ // forme: 2025-07-17T13:54:00.000Z ou 2025-02-04T00:24
243 const date = new Date(utc_string_date); 288 const date = new Date(utc_string_date);
244 289