Skip to content

Commit b1c0d1b

Browse files
feat : Improve experience mobile
1 parent 1e7e616 commit b1c0d1b

File tree

2 files changed

+190
-156
lines changed

2 files changed

+190
-156
lines changed

inst/app/www/leaflet_.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,10 +60,10 @@ $(document).ready(function () {
6060

6161
for (var i = 0; i < locations.length; i++) {
6262
marker = new L.circleMarker([locations[i][2], locations[i][1]])
63-
.bindPopup(locations[i][0])
63+
.unbindPopup()
6464
.addTo(map)
6565
.on("click", onClick)
66-
.setStyle({ radius: "4" });
66+
.setStyle({ radius: "5" });
6767

6868
marker.id = locations[i][0];
6969

inst/app/www/sweetalert2_.js

Lines changed: 188 additions & 154 deletions
Original file line numberDiff line numberDiff line change
@@ -1,196 +1,230 @@
1-
$( document ).ready(function() {
2-
3-
Shiny.addCustomMessageHandler('modal', function(arg) {
4-
5-
function fillTemplate(template, args) {
1+
$(document).ready(function () {
2+
Shiny.addCustomMessageHandler("modal", function (arg) {
3+
function fillTemplate(template, args) {
64
var filledTemplate = template;
75
for (var prop in args) {
86
if (args.hasOwnProperty(prop)) {
9-
filledTemplate = filledTemplate.replace(new RegExp('{{' + prop + '}}', 'g'), args[prop]);
7+
filledTemplate = filledTemplate.replace(
8+
new RegExp("{{" + prop + "}}", "g"),
9+
args[prop]
10+
);
1011
}
1112
}
1213
return filledTemplate;
13-
};
14+
}
1415

15-
var templateidentitycard;
16-
17-
// Charger le modèle HTML pour la carte d'identité du chêne
18-
$.get('www/template_identity_card.html', function(data) {
19-
templateidentitycard = data;
20-
});
16+
var templateidentitycard;
2117

18+
// Charger le modèle HTML pour la carte d'identité du chêne
19+
$.get("www/template_identity_card.html", function (data) {
20+
templateidentitycard = data;
21+
});
2222

23-
var templatefindtruffle;
23+
var templatefindtruffle;
2424

25-
// Charger le modèle HTML pour la carte d'identité du chêne
26-
$.get('www/template_find_truffle.html', function(data) {
27-
templatefindtruffle = data;
28-
});
25+
// Charger le modèle HTML pour la carte d'identité du chêne
26+
$.get("www/template_find_truffle.html", function (data) {
27+
templatefindtruffle = data;
28+
});
2929

30-
var templateaddreens;
30+
var templateaddreens;
3131

32-
// Charger le modèle HTML pour la carte d'identité du chêne
33-
$.get('www/template_add_reens.html', function(data) {
34-
templateaddreens = data;
35-
});
32+
// Charger le modèle HTML pour la carte d'identité du chêne
33+
$.get("www/template_add_reens.html", function (data) {
34+
templateaddreens = data;
35+
});
3636

37-
Swal.fire({
38-
title: 'Chêne ' + arg.id + ' :',
39-
html: `
37+
function openMainSwal(cheneId) {
38+
Swal.fire({
39+
title: "Chêne " + cheneId + " :",
40+
html: `
4041
<button id="identity" class="swal-btn" style="background:#3A8544;">Carte d'identité</button>
4142
<button id="add_truffle" class="swal-btn" style="background:#28652c;">Ajouter une truffe</button>
4243
<button id="add_reens" class="swal-btn" style="background:#154515;">Ajouter un réensemencement</button>
43-
`, showCancelButton: true,
44-
showConfirmButton: false,
45-
didOpen: () => {
46-
document.getElementById("identity").addEventListener("click", () => {
47-
var filledtemplateidentitycard = fillTemplate(templateidentitycard, arg);
44+
`,
45+
showCancelButton: true,
46+
showConfirmButton: false,
47+
didOpen: () => {
48+
document.getElementById("identity").addEventListener("click", () => {
49+
var filledtemplateidentitycard = fillTemplate(
50+
templateidentitycard,
51+
arg
52+
);
4853

49-
Swal.fire({
50-
title: 'Carte d identité du chêne',
51-
html: filledtemplateidentitycard,
52-
showCancelButton: false,
53-
confirmButtonText: `Fermer`
54-
}).then((result) => {
55-
Shiny.setInputValue("chene_click", null, {priority: "event"});
56-
})
57-
});
58-
document.getElementById("add_truffle").addEventListener("click", () => {
59-
var filledtemplatefindtruffle = fillTemplate(templatefindtruffle, arg);
60-
61-
Swal.fire({
62-
title: 'Détails de la truffe trouvée :',
63-
html: filledtemplatefindtruffle,
64-
focusConfirm: false,
65-
preConfirm: () => {
66-
var inputDateValue = document.getElementById('inputDate').value;
67-
var inputNumValue = document.getElementById('inputNum').value;
68-
var inputEstimValue = document.getElementById('inputEstim').checked;
69-
var inputCommValue = document.getElementById('inputComm').value;
70-
71-
return { date: inputDateValue, num: inputNumValue ,estim: inputEstimValue, comm: inputCommValue};
72-
}
73-
}).then((result) => {
74-
if (result.isConfirmed) {
75-
76-
const { date, num, estim, comm } = result.value;
77-
78-
// Vérifier si des champs sont vides
79-
if (date === "") {
80-
81-
// Afficher un message d'erreur à l'utilisateur TODO
8254
Swal.fire({
83-
icon: 'error',
84-
title: 'Informations incomplètes',
85-
text: 'Veuillez remplir au moins la date.',
55+
title: "Carte d identité du chêne",
56+
html: filledtemplateidentitycard,
57+
showCancelButton: false,
58+
confirmButtonText: `Fermer`,
59+
}).then((result) => {
60+
Shiny.setInputValue("chene_click", null, { priority: "event" });
61+
openMainSwal(cheneId);
8662
});
87-
} else {
88-
// Toutes les informations sont valides
89-
Shiny.setInputValue('new_truffe', [arg.id, date, num, estim, comm]);
90-
Shiny.setInputValue("chene_click", null, {priority: "event"});
91-
}
92-
93-
}
94-
})
95-
});
96-
document.getElementById("add_reens").addEventListener("click", () => {
97-
var filledtemplateaddreens = fillTemplate(templateaddreens, arg);
98-
99-
Swal.fire({
100-
title: 'Réensemencement :',
101-
html: filledtemplateaddreens,
102-
focusConfirm: false,
103-
preConfirm: () => {
104-
var inputDateValue = document.getElementById('inputDate').value;
105-
106-
return { date: inputDateValue};
107-
}
108-
}).then((result) => {
109-
if (result.isConfirmed) {
110-
111-
const { date } = result.value;
112-
113-
// Vérifier si des champs sont vides
114-
if (date === "") {
63+
});
64+
document
65+
.getElementById("add_truffle")
66+
.addEventListener("click", () => {
67+
var filledtemplatefindtruffle = fillTemplate(
68+
templatefindtruffle,
69+
arg
70+
);
71+
72+
Swal.fire({
73+
title: "Détails de la truffe trouvée :",
74+
html: filledtemplatefindtruffle,
75+
focusConfirm: false,
76+
preConfirm: () => {
77+
var inputDateValue =
78+
document.getElementById("inputDate").value;
79+
var inputNumValue = document.getElementById("inputNum").value;
80+
var inputEstimValue =
81+
document.getElementById("inputEstim").checked;
82+
var inputCommValue =
83+
document.getElementById("inputComm").value;
84+
85+
return {
86+
date: inputDateValue,
87+
num: inputNumValue,
88+
estim: inputEstimValue,
89+
comm: inputCommValue,
90+
};
91+
},
92+
}).then((result) => {
93+
if (result.isConfirmed) {
94+
const { date, num, estim, comm } = result.value;
95+
96+
// Vérifier si des champs sont vides
97+
if (date === "") {
98+
// Afficher un message d'erreur à l'utilisateur TODO
99+
Swal.fire({
100+
icon: "error",
101+
title: "Informations incomplètes",
102+
text: "Veuillez remplir au moins la date.",
103+
});
104+
} else {
105+
// Toutes les informations sont valides
106+
Shiny.setInputValue("new_truffe", [
107+
cheneId,
108+
date,
109+
num,
110+
estim,
111+
comm,
112+
]);
113+
Shiny.setInputValue("chene_click", null, {
114+
priority: "event",
115+
});
116+
map.invalidateSize();
117+
}
118+
}
119+
});
120+
});
121+
document.getElementById("add_reens").addEventListener("click", () => {
122+
var filledtemplateaddreens = fillTemplate(templateaddreens, arg);
115123

116-
// Afficher un message d'erreur à l'utilisateur TODO
117124
Swal.fire({
118-
icon: 'error',
119-
title: 'Informations incomplètes',
120-
text: 'Veuillez remplir la date.',
125+
title: "Réensemencement :",
126+
html: filledtemplateaddreens,
127+
focusConfirm: false,
128+
preConfirm: () => {
129+
var inputDateValue = document.getElementById("inputDate").value;
130+
131+
return { date: inputDateValue };
132+
},
133+
}).then((result) => {
134+
if (result.isConfirmed) {
135+
const { date } = result.value;
136+
137+
// Vérifier si des champs sont vides
138+
if (date === "") {
139+
// Afficher un message d'erreur à l'utilisateur TODO
140+
Swal.fire({
141+
icon: "error",
142+
title: "Informations incomplètes",
143+
text: "Veuillez remplir la date.",
144+
});
145+
} else {
146+
// Toutes les informations sont valides
147+
Shiny.setInputValue("new_reens", [cheneId, date]);
148+
Shiny.setInputValue("chene_click", null, {
149+
priority: "event",
150+
});
151+
map.invalidateSize();
152+
}
153+
}
121154
});
122-
} else {
123-
// Toutes les informations sont valides
124-
Shiny.setInputValue('new_reens', [arg.id, date]);
125-
Shiny.setInputValue("chene_click", null, {priority: "event"});
126-
}
127-
128-
}
129-
})
130-
});
131-
}
132-
133-
})
155+
});
156+
},
157+
});
158+
}
134159

160+
openMainSwal(arg.Id);
135161
});
136162

137-
138-
Shiny.addCustomMessageHandler('modal_info_missing', function(arg) {
139-
163+
Shiny.addCustomMessageHandler("modal_info_missing", function (arg) {
140164
Swal.fire({
141-
title: 'Compléter les infos de la dernière truffe:',
165+
title: "Compléter les infos de la dernière truffe:",
142166
html:
143-
'<label for="date">Date :</label>' +
144-
'<input type="date" id="date" class="swal2-input" placeholder="Date" value="' + (arg.date_t ? arg.date_t : '') + '"><hr>' +
167+
'<label for="date">Date :</label>' +
168+
'<input type="date" id="date" class="swal2-input" placeholder="Date" value="' +
169+
(arg.date_t ? arg.date_t : "") +
170+
'"><hr>' +
145171
'<div style="display: inline-block">' +
146-
'<label for="weight">Poids (en g):</label>' +
147-
'<input type="number" id="weight" class="swal2-input" placeholder="Poids (kg)" value="' + (arg.weight ? arg.weight : '') + '">' +
148-
'</div>' +
172+
'<label for="weight">Poids (en g):</label>' +
173+
'<input type="number" id="weight" class="swal2-input" placeholder="Poids (kg)" value="' +
174+
(arg.weight ? arg.weight : "") +
175+
'">' +
176+
"</div>" +
149177
'<div style="display: inline-block;"> ' +
150-
'<div style="text-align: center;"> ' +
151-
'<label for="estim">Estimation</label><br> ' +
152-
'<div class="toggle-switch"> ' +
153-
'<input type="checkbox" id="estim" class="swal2-input" placeholder="Estimation"' + (arg.estim ? arg.estim : '') + '">' +
154-
'<label for="estim"></label> ' +
155-
'</div>' +
156-
'</div>' +
157-
'</div><hr>' +
178+
'<div style="text-align: center;"> ' +
179+
'<label for="estim">Estimation</label><br> ' +
180+
'<div class="toggle-switch"> ' +
181+
'<input type="checkbox" id="estim" class="swal2-input" placeholder="Estimation"' +
182+
(arg.estim ? arg.estim : "") +
183+
'">' +
184+
'<label for="estim"></label> ' +
185+
"</div>" +
186+
"</div>" +
187+
"</div><hr>" +
158188
'<label for="comment">Commentaire :</label>' +
159-
'<input type="text" id="comment" class="swal2-input" placeholder="Commentaire"value="' + (arg.comments ? arg.comments : '') + '">' ,
189+
'<input type="text" id="comment" class="swal2-input" placeholder="Commentaire"value="' +
190+
(arg.comments ? arg.comments : "") +
191+
'">',
160192
focusConfirm: false,
161193
preConfirm: () => {
162194
return {
163-
date: document.getElementById('date').value,
164-
weight: document.getElementById('weight').value,
165-
estim: document.getElementById('estim').checked,
166-
comment: document.getElementById('comment').value
167-
}
168-
}
195+
date: document.getElementById("date").value,
196+
weight: document.getElementById("weight").value,
197+
estim: document.getElementById("estim").checked,
198+
comment: document.getElementById("comment").value,
199+
};
200+
},
169201
}).then((result) => {
170202
if (result.isConfirmed) {
171-
172203
const { date, weight, estim, comment } = result.value;
173204

174-
175-
// Vérifier si des champs sont vides
176-
if (date === "") {
177-
178-
// Afficher un message d'erreur à l'utilisateur TODO
179-
Swal.fire({
180-
icon: 'error',
181-
title: 'Informations incomplètes',
182-
text: 'Veuillez remplir au moins la date.',
183-
});
184-
} else {
185-
// Toutes les informations sont valides
186-
Shiny.setInputValue('complete_truffe', [arg.id, arg.idtruffle, date, weight, estim, comment]);
187-
}
188-
205+
// Vérifier si des champs sont vides
206+
if (date === "") {
207+
// Afficher un message d'erreur à l'utilisateur TODO
208+
Swal.fire({
209+
icon: "error",
210+
title: "Informations incomplètes",
211+
text: "Veuillez remplir au moins la date.",
212+
});
213+
} else {
214+
// Toutes les informations sont valides
215+
Shiny.setInputValue("complete_truffe", [
216+
arg.id,
217+
arg.idtruffle,
218+
date,
219+
weight,
220+
estim,
221+
comment,
222+
]);
223+
}
189224
} else if (result.isDismissed) {
190225
console.log("Dismissed chene_click");
191-
Shiny.setInputValue("chene_click", null, {priority: "event"});
226+
Shiny.setInputValue("chene_click", null, { priority: "event" });
192227
}
193228
});
194-
})
229+
});
195230
});
196-

0 commit comments

Comments
 (0)