aboutsummaryrefslogtreecommitdiff
path: root/public
diff options
context:
space:
mode:
Diffstat (limited to 'public')
-rw-r--r--public/assets/favicon48x48.pngbin3067 -> 0 bytes
-rw-r--r--public/assets/fond-piscine.jpgbin24757 -> 0 bytes
-rw-r--r--public/assets/logo-120x75.jpgbin12240 -> 0 bytes
-rw-r--r--public/assets/logo-150x94.jpgbin13506 -> 0 bytes
-rw-r--r--public/assets/logo-nb-et-ffn.pngbin61236 -> 0 bytes
-rw-r--r--public/assets/logo2.jpgbin36899 -> 0 bytes
-rw-r--r--public/css/body.css5
-rw-r--r--public/css/foot.css20
-rw-r--r--public/css/head.css17
-rw-r--r--public/js/InputFile.js62
-rw-r--r--public/js/InputText.js15
11 files changed, 92 insertions, 27 deletions
diff --git a/public/assets/favicon48x48.png b/public/assets/favicon48x48.png
deleted file mode 100644
index 9825db1..0000000
--- a/public/assets/favicon48x48.png
+++ /dev/null
Binary files differ
diff --git a/public/assets/fond-piscine.jpg b/public/assets/fond-piscine.jpg
deleted file mode 100644
index 239d95d..0000000
--- a/public/assets/fond-piscine.jpg
+++ /dev/null
Binary files differ
diff --git a/public/assets/logo-120x75.jpg b/public/assets/logo-120x75.jpg
deleted file mode 100644
index b58a7a6..0000000
--- a/public/assets/logo-120x75.jpg
+++ /dev/null
Binary files differ
diff --git a/public/assets/logo-150x94.jpg b/public/assets/logo-150x94.jpg
deleted file mode 100644
index 67ec6cc..0000000
--- a/public/assets/logo-150x94.jpg
+++ /dev/null
Binary files differ
diff --git a/public/assets/logo-nb-et-ffn.png b/public/assets/logo-nb-et-ffn.png
deleted file mode 100644
index f51ac9c..0000000
--- a/public/assets/logo-nb-et-ffn.png
+++ /dev/null
Binary files differ
diff --git a/public/assets/logo2.jpg b/public/assets/logo2.jpg
deleted file mode 100644
index 39c03bd..0000000
--- a/public/assets/logo2.jpg
+++ /dev/null
Binary files differ
diff --git a/public/css/body.css b/public/css/body.css
index 8ad3a52..cadf955 100644
--- a/public/css/body.css
+++ b/public/css/body.css
@@ -43,7 +43,7 @@ main
43 margin: auto; 43 margin: auto;
44 /*max-width: 1200px;*/ 44 /*max-width: 1200px;*/
45 background-color: #E3F3FF; 45 background-color: #E3F3FF;
46 padding: 15px 0; 46 padding: 15px;
47} 47}
48.hidden 48.hidden
49{ 49{
@@ -51,8 +51,7 @@ main
51} 51}
52section 52section
53{ 53{
54 margin: 10px 0; 54 margin-top: 20px;
55 padding: 15px;
56} 55}
57section > h3 56section > h3
58{ 57{
diff --git a/public/css/foot.css b/public/css/foot.css
index 8d0a94d..38284e3 100644
--- a/public/css/foot.css
+++ b/public/css/foot.css
@@ -9,16 +9,22 @@ footer
9 /*padding: 0 20px;*/ 9 /*padding: 0 20px;*/
10 10
11} 11}
12footer a
13{
14 color: unset; /* ne plus hériter */
15 text-decoration: none;
16}
12footer > div 17footer > div
13{ 18{
14 max-width: 1200px; 19 max-width: 1200px;
15 display: flex; 20 display: flex;
16 justify-content: space-around; 21 justify-content: space-around;
22 flex-wrap: wrap;
17} 23}
18 24
19.contact 25footer .data > div
20{ 26{
21 margin: 16px 0; /* alignement avec la <p> autour du logo */ 27 margin: 20px 10px;
22} 28}
23.contact a 29.contact a
24{ 30{
@@ -73,7 +79,7 @@ footer > div
73 margin: 0 3px; 79 margin: 0 3px;
74}*/ 80}*/
75 81
76.footer_logo img 82#footer_logo_img
77{ 83{
78 max-width: 288px; 84 max-width: 288px;
79 min-width: 150px; 85 min-width: 150px;
@@ -85,14 +91,6 @@ footer > div
85 width: 70px; 91 width: 70px;
86 } 92 }
87} 93}
88@media screen and (max-width: 800px)
89{
90 footer > div
91 {
92 flex-direction: column;
93 align-items: center;
94 }
95}
96 94
97.breadcrumb a 95.breadcrumb a
98{ 96{
diff --git a/public/css/head.css b/public/css/head.css
index b173077..4206044 100644
--- a/public/css/head.css
+++ b/public/css/head.css
@@ -17,7 +17,12 @@ header
17 display: none; 17 display: none;
18} 18}
19 19
20.header-content 20.background_button
21{
22 max-height: 24px;
23}
24
25.header_content
21{ 26{
22 padding: 20px 0; 27 padding: 20px 0;
23 display: grid; 28 display: grid;
@@ -27,12 +32,12 @@ header
27/*.header_left_col 32/*.header_left_col
28{}*/ 33{}*/
29@media screen and (max-width: 1000px){ 34@media screen and (max-width: 1000px){
30 .header-content{ 35 .header_content{
31 padding: 18px 0; 36 padding: 18px 0;
32 } 37 }
33} 38}
34@media screen and (max-width: 450px){ 39@media screen and (max-width: 450px){
35 .header-content 40 .header_content
36 { 41 {
37 /*grid-template-columns: 1fr 2fr 1fr;*/ 42 /*grid-template-columns: 1fr 2fr 1fr;*/
38 display: block; 43 display: block;
@@ -69,16 +74,16 @@ header img
69{ 74{
70 vertical-align: bottom; /* supprime espace sous l'image */ 75 vertical-align: bottom; /* supprime espace sous l'image */
71 max-width: 150px; 76 max-width: 150px;
72 max-height: 75px; 77 max-height: 100px;
73} 78}
74header a 79header a
75{ 80{
76 color: unset; /* ne plus hériter */ 81 color: unset; /* ne plus hériter */
77 text-decoration: none; 82 text-decoration: none;
78} 83}
79#edit_favicon_zone 84.editing_zone > div
80{ 85{
81 margin-bottom: 10px; 86 /*display: inline;*/ /* à l'ancienne */
82} 87}
83/*.header_right_col 88/*.header_right_col
84{}*/ 89{}*/
diff --git a/public/js/InputFile.js b/public/js/InputFile.js
new file mode 100644
index 0000000..e676037
--- /dev/null
+++ b/public/js/InputFile.js
@@ -0,0 +1,62 @@
1// étendre une classe parente avec InputFile?
2class InputFile{
3 constructor(name){
4 this.name = name;
5 this.parent = document.getElementById(name);
6 }
7 open(){
8 this.parent.querySelector('#' + this.name + '_img').classList.add('hidden');
9 this.parent.querySelector('#' + this.name + '_input').classList.remove('hidden');
10 this.parent.querySelector('#' + this.name + '_open').classList.add('hidden');
11 this.parent.querySelector('#' + this.name + '_submit').classList.remove('hidden');
12 this.parent.querySelector('#' + this.name + '_cancel').classList.remove('hidden');
13 }
14 close(){
15 this.parent.querySelector('#' + this.name + '_img').classList.remove('hidden');
16 this.parent.querySelector('#' + this.name + '_input').classList.add('hidden');
17 this.parent.querySelector('#' + this.name + '_open').classList.remove('hidden');
18 this.parent.querySelector('#' + this.name + '_submit').classList.add('hidden');
19 this.parent.querySelector('#' + this.name + '_cancel').classList.add('hidden');
20 }
21 submit(){
22 const file = this.parent.querySelector('#' + this.name + '_input').files[0];
23 if(!file){
24 console.error("Erreur: aucun fichier sélectionné.");
25 return;
26 }
27 const form_data = new FormData();
28 form_data.append('file', file);
29
30 fetch('index.php?head_foot_image=' + this.name, {
31 method: 'POST', // apparemment il faudrait utiliser PUT
32 body: form_data
33 })
34 .then(response => response.json())
35 .then(data => {
36 if(data.success){
37 this.parent.querySelector('#' + this.name + '_img').src = data.location;
38
39 // cas particulier
40 if(this.name === 'head_favicon'){
41 const link = document.querySelector('link[rel="icon"]');
42 link.type = data.mime_type;
43 link.href = data.location;
44 }
45 else if(this.name === 'header_background'){
46 document.querySelector('header').style.backgroundImage = "url('" + data.location + "')";
47 }
48
49 this.close();
50 }
51 else{
52 console.error("Erreur: le serveur n'a pas enregistré l'image'.");
53 }
54 })
55 .catch(error => {
56 console.error('Erreur:', error);
57 });
58 }
59 cancel(){
60 this.close();
61 }
62} \ No newline at end of file
diff --git a/public/js/InputText.js b/public/js/InputText.js
index ba7e8e4..79f0398 100644
--- a/public/js/InputText.js
+++ b/public/js/InputText.js
@@ -1,27 +1,28 @@
1// s'en servir dans menu et chemin 1// s'en servir dans menu et chemin
2// étendre un classe parente avec InputText?
2class InputText{ 3class InputText{
3 constructor(name){ 4 constructor(name){
4 this.name = name; 5 this.name = name;
5 this.parent = document.getElementById(name); 6 this.parent = document.getElementById(name);
6 } 7 }
7 openTextInput(){ 8 open(){
8 this.parent.querySelector('#' + this.name + '_span').classList.add('hidden'); 9 this.parent.querySelector('#' + this.name + '_span').classList.add('hidden');
9 this.parent.querySelector('#' + this.name + '_input').classList.remove('hidden'); 10 this.parent.querySelector('#' + this.name + '_input').classList.remove('hidden');
10 this.parent.querySelector('#' + this.name + '_open').classList.add('hidden'); 11 this.parent.querySelector('#' + this.name + '_open').classList.add('hidden');
11 this.parent.querySelector('#' + this.name + '_submit').classList.remove('hidden'); 12 this.parent.querySelector('#' + this.name + '_submit').classList.remove('hidden');
12 this.parent.querySelector('#' + this.name + '_cancel').classList.remove('hidden'); 13 this.parent.querySelector('#' + this.name + '_cancel').classList.remove('hidden');
13 } 14 }
14 closeTextInput(){ 15 close(){
15 this.parent.querySelector('#' + this.name + '_span').classList.remove('hidden'); 16 this.parent.querySelector('#' + this.name + '_span').classList.remove('hidden');
16 this.parent.querySelector('#' + this.name + '_input').classList.add('hidden'); 17 this.parent.querySelector('#' + this.name + '_input').classList.add('hidden');
17 this.parent.querySelector('#' + this.name + '_open').classList.remove('hidden'); 18 this.parent.querySelector('#' + this.name + '_open').classList.remove('hidden');
18 this.parent.querySelector('#' + this.name + '_submit').classList.add('hidden'); 19 this.parent.querySelector('#' + this.name + '_submit').classList.add('hidden');
19 this.parent.querySelector('#' + this.name + '_cancel').classList.add('hidden'); 20 this.parent.querySelector('#' + this.name + '_cancel').classList.add('hidden');
20 } 21 }
21 submitTextInput(){ 22 submit(){
22 const new_text = this.parent.querySelector('#' + this.name + '_input').value; 23 const new_text = this.parent.querySelector('#' + this.name + '_input').value;
23 24
24 fetch('index.php?entire_site_edit=' + this.name, { 25 fetch('index.php?head_foot_text=' + this.name, {
25 method: 'POST', 26 method: 'POST',
26 headers: { 'Content-Type': 'application/json' }, 27 headers: { 'Content-Type': 'application/json' },
27 body: JSON.stringify({new_text: new_text}) 28 body: JSON.stringify({new_text: new_text})
@@ -30,7 +31,7 @@ class InputText{
30 .then(data => { 31 .then(data => {
31 if(data.success){ 32 if(data.success){
32 this.parent.querySelector('#' + this.name + '_span').innerHTML = new_text; 33 this.parent.querySelector('#' + this.name + '_span').innerHTML = new_text;
33 this.closeTextInput(this.name); 34 this.close();
34 } 35 }
35 else{ 36 else{
36 console.error("Erreur: le serveur n'a pas enregistré le nouveau texte."); 37 console.error("Erreur: le serveur n'a pas enregistré le nouveau texte.");
@@ -40,8 +41,8 @@ class InputText{
40 console.error('Erreur:', error); 41 console.error('Erreur:', error);
41 }); 42 });
42 } 43 }
43 cancelTextInput(){ 44 cancel(){
44 this.parent.querySelector('#' + this.name + '_input').value = this.parent.querySelector('#' + this.name + '_span').innerHTML; 45 this.parent.querySelector('#' + this.name + '_input').value = this.parent.querySelector('#' + this.name + '_span').innerHTML;
45 this.closeTextInput(this.name); 46 this.close();
46 } 47 }
47} \ No newline at end of file 48} \ No newline at end of file