-
Notifications
You must be signed in to change notification settings - Fork 12
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Demande d'évolution : ajout de paramètres pour envoi de SMS avec OVH #485
Comments
Bonjour, |
Bonjour David,
Bref c'est un peu plus de boulot, cela étant il nous arrive d'avoir, par exemple, des stages à l'étranger et donc potentiellement des conventions de stage à faire signer à des résidents étrangers. Donc l'évolution serait en effet utile. |
J'ajoute que je suis tombé sur ce projet : https://github.com/jackocnr/intl-tel-input?tab=readme-ov-file#demo-and-examples |
Re, Dans le pom.xml : <dependency>
<groupId>org.webjars</groupId>
<artifactId>intl-tel-input</artifactId>
<version>21.1.0</version>
</dependency> Dans le head.html : ....
<link rel="stylesheet" th:href="@{/webjars/intl-tel-input/css/intlTelInput.css}" />
....
<script th:src="@{/webjars/intl-tel-input/js/intlTelInput.js}"></script> Dans SelectUser.js : appendTempUser(e) {
let name = '#tempUsers-' + this.selectField.attr("id");
let tempUsersDiv = $(name);
if(e.phone == null) {
e.phone = "";
}
let alertPhoneMessage = "<div id=\"output_div_"+e.id+"\" class=\"alert alert-phone\"><span id=\"output_"+e.id+"\" class=\"closebtn\" onclick=\"this.parentElement.style.display='none';\">×Merci de saisir un numéro valide.</span></div>"
if(this.globalProperties.smsRequired) {
tempUsersDiv.append(
"<div class='alert alert-primary' id='recipient_" + e.email + "'>" +
"<b>Destinataire externe : <span>" + e.email + "</span></b>" +
"<input id=\"emails\" class=\"form-control \" type=\"hidden\" name=\"emails\" value=\"" + e.email + "\">" +
"<div class=\"d-flex col-12\"><label for=\"name\" class='col-3'>Nom</label>" +
"<input id=\"names\" class=\"form-control \" type=\"text\" name=\"names\" value=\"" + e.name + "\" required></div>" +
"<div class=\"d-flex col-12\"><label for=\"firstname\" class='col-3'>Prénom</label>" +
"<input id=\"firstnames\" class=\"form-control \" type=\"text\" name=\"firstnames\" value=\"" + e.firstname + "\" required></div>" +
"<div class=\"d-flex col-12\"><label for=\"phones\" class='col-3'>Mobile</label>" +
"<input id=\"phones_"+e.id+"\" class=\"form-control \" type=\"tel\" name=\"phones\" value=\"" + e.phone + "\" required>"+alertPhoneMessage+"</div>" +
"</div>");
} else {
let html ="<div class='alert alert-primary' id='recipient_" + e.email + "'>" +
"<b>Destinataire externe : <span>" + e.email + "</span></b>" +
"<input id=\"emails\" class=\"form-control \" type=\"hidden\" name=\"emails\" value=\"" + e.email + "\">" +
"<div class=\"d-flex col-12\"><label for=\"name\" class='col-3'>Nom</label>" +
"<input id=\"names\" class=\"form-control \" type=\"text\" name=\"names\" value=\"" + e.name + "\" required></div>" +
"<div class=\"d-flex col-12\"><label for=\"firstname\" class='col-3'>Prénom</label>" +
"<input id=\"firstnames\" class=\"form-control \" type=\"text\" name=\"firstnames\" value=\"" + e.firstname + "\" required></div>";
if(this.enableSms) {
html += "<div class=\"d-flex col-12\"><label for=\"phones\" class='col-3'>Mobile</label>" +
"<input id=\"phones_"+e.id+"\" class=\"form-control \" type=\"tel\" name=\"phones\" value=\"" + e.phone + "\">"+alertPhoneMessage+"</div>" +
"<div class=\"d-flex col-12\"><label for=\"forcesms\" class='col-3'>Autentification SMS</label>" +
"<input id=\"forcesmses\" class=\"form-check-input \" type=\"checkbox\" name=\"forcesmses\" value='1'></div>";
}
html += "</div>";
tempUsersDiv.append(html);
}
const inputPhones = document.querySelector("#phones_"+e.id);
const output = document.querySelector("#output_"+e.id);
const outputDiv = document.querySelector("#output_div_"+e.id);
let iti = window.intlTelInput(inputPhones, {
initialCountry: "fr",
initialValue: e.phone,
});
window.intlTelInputGlobals.loadUtils("/webjars/intl-tel-input/21.1.0/js/utils.js?1733756310855");
iti.setNumber(inputPhones.value);
const handleChange = () => {
let text;
if (inputPhones.value) {
if(iti.isValidNumber())
{
text = "Numéro valide! Format international : " + iti.getNumber();
outputDiv.className = 'alert alert-phone-success';
// document.getElementById('phones_inttel_'+e.id).value = iti.getNumber();
} else {
text = "Numéro non valide - merci de vérifier";
outputDiv.className = 'alert alert-phone-danger';
}
} else {
text = "Merci de saisir un numéro de téléphone";
outputDiv.className = 'alert alert-phone';
}
output.innerHTML = "";
const textNode = document.createTextNode(text);
output.appendChild(textNode);
};
inputPhones.addEventListener('change', handleChange);
inputPhones.addEventListener('keyup', handleChange);
} J'ai ajouté ça dans les CSS pour que ça s'affiche plus joliment : .iti__selected-country {
border-right: solid var(--bs-border-color) !important;
}
.alert-phone {
padding: 5px 12px;
color: var(--primary);
}
.alert-phone-danger {
padding: 5px 12px;
color: var(--red);
}
.alert-phone-success {
padding: 5px 12px;
color: var(--green);
} Ne sachant pas si c'était mieux de sauvegarder le format international du n° dans la table OTP ou de carrément ajouter une nouvelle colonne dans cette même table, je ne suis pas aller plus loin, je te laisse jusge. Bonne journée |
Bonjour,
Est-ce possible de rajouter les properties suivantes dans le cas d'envoi de SMS avec OVH :
En pratique dans application.yml avec le service OVH on aurait comme paramétrage :
Dans OVHSmsService.java ça donnerait pour la méthode sendSms:
J'ai testé (en test unitaire) et ça fonctionne bien.
Bonne journée
Clément
Centrale Med.
The text was updated successfully, but these errors were encountered: