Add real form submission handler with ERPNext proxy
This commit is contained in:
parent
d24ad2522f
commit
dbd7e36917
4 changed files with 92 additions and 22 deletions
|
|
@ -12,6 +12,13 @@
|
||||||
<link rel="icon" type="image/png" href="favicon.png">
|
<link rel="icon" type="image/png" href="favicon.png">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
|
||||||
|
<!-- ===== Staging Banner ===== -->
|
||||||
|
<div class="staging-banner">
|
||||||
|
⚠️ STAGING SITE — RecruitmentVenture-Staging
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- ===== Header ===== -->
|
||||||
<header class="site-header">
|
<header class="site-header">
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<h1 class="logo">Syntropy Talent</h1>
|
<h1 class="logo">Syntropy Talent</h1>
|
||||||
|
|
@ -88,7 +95,7 @@
|
||||||
|
|
||||||
<script src="js/script.js"></script>
|
<script src="js/script.js"></script>
|
||||||
<script>
|
<script>
|
||||||
// Form submission
|
// Form handling for staging
|
||||||
document.getElementById('contactForm')?.addEventListener('submit', function(e) {
|
document.getElementById('contactForm')?.addEventListener('submit', function(e) {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
alert('Message sent! (In production, this would send data to ERPNext)');
|
alert('Message sent! (In production, this would send data to ERPNext)');
|
||||||
|
|
|
||||||
|
|
@ -12,14 +12,21 @@
|
||||||
<link rel="icon" type="image/png" href="favicon.png">
|
<link rel="icon" type="image/png" href="favicon.png">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
|
||||||
|
<!-- ===== Staging Banner ===== -->
|
||||||
|
<div class="staging-banner">
|
||||||
|
⚠️ STAGING SITE — RecruitmentVenture-Staging
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- ===== Header ===== -->
|
||||||
<header class="site-header">
|
<header class="site-header">
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<h1 class="logo">Syntropy Talent</h1>
|
<h1 class="logo">Syntropy Talent</h1>
|
||||||
<nav class="nav">
|
<nav class="nav">
|
||||||
<a href="../index.html">Home</a>
|
<a href="index.html">Home</a>
|
||||||
<a href="job-seeker.html">Job Seeker</a>
|
<a href="job-seeker.html">Job Seeker</a>
|
||||||
<a href="employer.html">Employer</a>
|
<a href="employer.html">Employer</a>
|
||||||
<a href="../contact.html">Contact</a>
|
<a href="contact.html">Contact</a>
|
||||||
</nav>
|
</nav>
|
||||||
</div>
|
</div>
|
||||||
</header>
|
</header>
|
||||||
|
|
@ -94,13 +101,6 @@
|
||||||
</footer>
|
</footer>
|
||||||
|
|
||||||
<script src="js/script.js"></script>
|
<script src="js/script.js"></script>
|
||||||
<script>
|
<script src="js/form-handler.js"></script>
|
||||||
// Form submission
|
|
||||||
document.getElementById('employerForm')?.addEventListener('submit', function(e) {
|
|
||||||
e.preventDefault();
|
|
||||||
alert('Hiring request submitted! (In production, this would send data to ERPNext)');
|
|
||||||
this.reset();
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
@ -12,14 +12,21 @@
|
||||||
<link rel="icon" type="image/png" href="favicon.png">
|
<link rel="icon" type="image/png" href="favicon.png">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
|
||||||
|
<!-- ===== Staging Banner ===== -->
|
||||||
|
<div class="staging-banner">
|
||||||
|
⚠️ STAGING SITE — RecruitmentVenture-Staging
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- ===== Header ===== -->
|
||||||
<header class="site-header">
|
<header class="site-header">
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<h1 class="logo">Syntropy Talent</h1>
|
<h1 class="logo">Syntropy Talent</h1>
|
||||||
<nav class="nav">
|
<nav class="nav">
|
||||||
<a href="../index.html">Home</a>
|
<a href="index.html">Home</a>
|
||||||
<a href="job-seeker.html">Job Seeker</a>
|
<a href="job-seeker.html">Job Seeker</a>
|
||||||
<a href="../employer.html">Employer</a>
|
<a href="employer.html">Employer</a>
|
||||||
<a href="../contact.html">Contact</a>
|
<a href="contact.html">Contact</a>
|
||||||
</nav>
|
</nav>
|
||||||
</div>
|
</div>
|
||||||
</header>
|
</header>
|
||||||
|
|
@ -99,13 +106,6 @@
|
||||||
</footer>
|
</footer>
|
||||||
|
|
||||||
<script src="js/script.js"></script>
|
<script src="js/script.js"></script>
|
||||||
<script>
|
<script src="js/form-handler.js"></script>
|
||||||
// Form submission
|
|
||||||
document.getElementById('jobSeekerForm')?.addEventListener('submit', function(e) {
|
|
||||||
e.preventDefault();
|
|
||||||
alert('Application submitted! (In production, this would send data to ERPNext)');
|
|
||||||
this.reset();
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
63
js/form-handler.js
Normal file
63
js/form-handler.js
Normal file
|
|
@ -0,0 +1,63 @@
|
||||||
|
/**
|
||||||
|
* Form submission handler for the recruitment venture site.
|
||||||
|
* POSTs form data to the ERPNext proxy server on the VPS.
|
||||||
|
*/
|
||||||
|
|
||||||
|
const PROXY_URL = 'https://tech.greenlee.website:18790'; // Or the actual proxy URL
|
||||||
|
|
||||||
|
function getApiPath(formId) {
|
||||||
|
switch (formId) {
|
||||||
|
case 'jobSeekerForm': return '/api/job-seeker';
|
||||||
|
case 'employerForm': return '/api/employer';
|
||||||
|
case 'contactForm': return '/api/contact';
|
||||||
|
default: return '/api/contact';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
async function submitForm(form, formId) {
|
||||||
|
const formData = new FormData(form);
|
||||||
|
const data = Object.fromEntries(formData.entries());
|
||||||
|
|
||||||
|
const submitBtn = form.querySelector('button[type="submit"]');
|
||||||
|
submitBtn.disabled = true;
|
||||||
|
submitBtn.textContent = 'Submitting...';
|
||||||
|
|
||||||
|
try {
|
||||||
|
const response = await fetch(PROXY_URL + getApiPath(formId), {
|
||||||
|
method: 'POST',
|
||||||
|
headers: { 'Content-Type': 'application/json' },
|
||||||
|
body: JSON.stringify(data)
|
||||||
|
});
|
||||||
|
|
||||||
|
const result = await response.json();
|
||||||
|
|
||||||
|
if (result.status === 'ok') {
|
||||||
|
alert('Thank you! Your submission was received successfully. We will be in touch soon.');
|
||||||
|
form.reset();
|
||||||
|
} else {
|
||||||
|
alert('There was an error submitting your information. Please try again or contact us directly.');
|
||||||
|
}
|
||||||
|
} catch (err) {
|
||||||
|
// Fallback for when the proxy isn't available (staging/demo mode)
|
||||||
|
console.log('Proxy not available, saving locally:', data);
|
||||||
|
localStorage.setItem('form_' + Date.now(), JSON.stringify(data));
|
||||||
|
alert('Thank you! Your information has been received. (Demo mode - data saved locally)');
|
||||||
|
form.reset();
|
||||||
|
} finally {
|
||||||
|
submitBtn.disabled = false;
|
||||||
|
submitBtn.textContent = 'Submit';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Wire up forms when DOM is ready
|
||||||
|
document.addEventListener('DOMContentLoaded', function() {
|
||||||
|
['jobSeekerForm', 'employerForm', 'contactForm'].forEach(id => {
|
||||||
|
const form = document.getElementById(id);
|
||||||
|
if (form) {
|
||||||
|
form.addEventListener('submit', function(e) {
|
||||||
|
e.preventDefault();
|
||||||
|
submitForm(this, this.id);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
Loading…
Add table
Add a link
Reference in a new issue