join: migrate registration form to Forgejo backend
This commit is contained in:
parent
aec1460de9
commit
78a1b6627f
7 changed files with 103 additions and 21 deletions
77
join/join-en.html
Normal file
77
join/join-en.html
Normal file
|
@ -0,0 +1,77 @@
|
|||
<script>
|
||||
async function checkDuplicate() {
|
||||
var url='https://forge.ilot.io/api/v1/repos/ilot/registration/issues';
|
||||
var email = document.getElementById("email").value;
|
||||
|
||||
const response = await fetch(url, {
|
||||
headers: {
|
||||
'authorization': 'token b8d8617bb6049c0e47b7bba5cd0931799f54609c',
|
||||
'Content-Type': 'application/json',
|
||||
},
|
||||
})
|
||||
const result = await response.json();
|
||||
let index = result
|
||||
.findIndex(item => item.title === email);
|
||||
|
||||
if (index !== -1) {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
async function createIssue() {
|
||||
var url = 'https://forge.ilot.io/api/v1/repos/ilot/registration/issues';
|
||||
var mathspamtrap = document.getElementById("math-spam-trap").value;
|
||||
var agreetoterms = document.getElementById("agree-to-terms").checked;
|
||||
var email = document.getElementById("email").value;
|
||||
|
||||
if(!agreetoterms) {
|
||||
alert("Registration requires agreement of Code of Conduct.");
|
||||
return false;
|
||||
}
|
||||
|
||||
if(!email) {
|
||||
alert("Email cannot be empty.");
|
||||
return false;
|
||||
}
|
||||
|
||||
if(mathspamtrap != "9") {
|
||||
alert("Wrong math answer.");
|
||||
return false;
|
||||
}
|
||||
|
||||
if(await checkDuplicate(email) === true) {
|
||||
alert("This email address has already requested an account.");
|
||||
return false;
|
||||
}
|
||||
|
||||
var name = document.getElementById("name").value;
|
||||
var name = name.replace (/^/,'Name: ');
|
||||
var aboutme = document.getElementById("about-me").value;
|
||||
var aboutme = aboutme.replace (/^/,'About me: ');
|
||||
var howfound = document.getElementById("how-found").value;
|
||||
var howfound = howfound.replace (/^/,'How I found ilot: ');
|
||||
var ocuser = document.getElementById("oc-user").value;
|
||||
var ocuser = ocuser.replace (/^/,'OpenCollective Profile: ');
|
||||
var description = name + "\n\n" + aboutme + "\n\n" + howfound + "\n\n" + ocuser;
|
||||
console.log('Description:', description);
|
||||
|
||||
fetch(url, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'authorization': 'token b8d8617bb6049c0e47b7bba5cd0931799f54609c',
|
||||
'Content-Type': 'application/json',
|
||||
},
|
||||
body: JSON.stringify({ title: email, body: description }),
|
||||
})
|
||||
.then(response => response.json())
|
||||
.then(result => {
|
||||
console.log('Success:', result);
|
||||
alert("Request submitted. A working group member will process your registration shortly. If you receive no contact within seven days of registration, please send an email to support@ilot.io.");
|
||||
})
|
||||
.catch(error => {
|
||||
console.error('Error:', error)
|
||||
});
|
||||
}
|
||||
</script>
|
77
join/join-fr.html
Normal file
77
join/join-fr.html
Normal file
|
@ -0,0 +1,77 @@
|
|||
<script>
|
||||
async function checkDuplicate() {
|
||||
var url='https://forge.ilot.io/api/v1/repos/ilot/registration/issues';
|
||||
var email = document.getElementById("email").value;
|
||||
|
||||
const response = await fetch(url, {
|
||||
headers: {
|
||||
'authorization': 'token b8d8617bb6049c0e47b7bba5cd0931799f54609c',
|
||||
'Content-Type': 'application/json',
|
||||
},
|
||||
})
|
||||
const result = await response.json();
|
||||
let index = result
|
||||
.findIndex(item => item.title === email);
|
||||
|
||||
if (index !== -1) {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
async function createIssue() {
|
||||
var url = 'https://forge.ilot.io/api/v1/repos/ilot/registration/issues';
|
||||
var mathspamtrap = document.getElementById("math-spam-trap").value;
|
||||
var agreetoterms = document.getElementById("agree-to-terms").checked;
|
||||
var email = document.getElementById("email").value;
|
||||
|
||||
if(!agreetoterms) {
|
||||
alert("Vous devez être en accord avec notre code de conduite.");
|
||||
return false;
|
||||
}
|
||||
|
||||
if(!email) {
|
||||
alert("Le courriel ne peut pas être vide.");
|
||||
return false;
|
||||
}
|
||||
|
||||
if(mathspamtrap != "9") {
|
||||
alert("Ceci n'est pas la bonne réponse à l'exercise mathématique.");
|
||||
return false;
|
||||
}
|
||||
|
||||
if(await checkDuplicate(email) === true) {
|
||||
alert("Ce courriel a déjà fait l'objet d'une demande de compte.");
|
||||
return false;
|
||||
}
|
||||
|
||||
var name = document.getElementById("name").value;
|
||||
var name = name.replace (/^/,'Name: ');
|
||||
var aboutme = document.getElementById("about-me").value;
|
||||
var aboutme = aboutme.replace (/^/,'About me: ');
|
||||
var howfound = document.getElementById("how-found").value;
|
||||
var howfound = howfound.replace (/^/,'How I found ilot: ');
|
||||
var ocuser = document.getElementById("oc-user").value;
|
||||
var ocuser = ocuser.replace (/^/,'OpenCollective Profile: ');
|
||||
var description = name + "\n\n" + aboutme + "\n\n" + howfound + "\n\n" + ocuser;
|
||||
console.log('Description:', description);
|
||||
|
||||
fetch(url, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'authorization': 'token b8d8617bb6049c0e47b7bba5cd0931799f54609c',
|
||||
'Content-Type': 'application/json',
|
||||
},
|
||||
body: JSON.stringify({ title: email, body: description }),
|
||||
})
|
||||
.then(response => response.json())
|
||||
.then(result => {
|
||||
console.log('Success:', result);
|
||||
alert("Votre demande a été soumise. Un membre d'un groupe de travail va traiter votre demande sous peu. Si vous ne recevez pas de nouvelle d'ici sept jours, contactez-vous via support@ilot.io.");
|
||||
})
|
||||
.catch(error => {
|
||||
console.error('Error:', error)
|
||||
});
|
||||
}
|
||||
</script>
|
Loading…
Add table
Add a link
Reference in a new issue