add domains flder and functionality

This commit is contained in:
Suvodip
2025-03-25 20:34:34 +05:30
parent e8838d0277
commit 4e939b87fe
7 changed files with 134 additions and 2 deletions

View File

@@ -0,0 +1,27 @@
---
import Layout from "../../layouts/Layout.astro"
---
<Layout title="">
<div>
<pre id="get-response">Adding domain, please wait...</pre>
</div>
<script is:inline>
fetch('/host-api/add-domain/')
.then(response => {
if (!response.ok) throw new Error('Network error');
return response.json();
})
.then(data => {
const resultElement = document.getElementById('get-response');
if (data.status === 'success') {
resultElement.textContent = `✅ ${data.message}\n${data.output || ''}`;
} else {
resultElement.textContent = `❌ ${data.message}`;
}
})
.catch(error => {
document.getElementById('get-response').textContent = `❌ Fetch Error: ${error.message}`;
});
</script>
</Layout>

View File

@@ -0,0 +1,45 @@
---
import Layout from "../../layouts/Layout.astro"
---
<Layout title="">
<div>
<h2>Delete Domain</h2>
<form id="deleteDomainForm">
<input type="text" id="domainName" placeholder="example.com" required>
<button type="submit">Delete Domain</button>
</form>
<pre id="deleteResponse"></pre>
</div>
<script is:inline>
document.getElementById('deleteDomainForm').addEventListener('submit', async (e) => {
e.preventDefault();
const domain = document.getElementById('domainName').value;
const responseElement = document.getElementById('deleteResponse');
responseElement.textContent = "Deleting domain...";
try {
const response = await fetch('/host-api/delete-domain/', {
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
},
body: `domain=${encodeURIComponent(domain)}`
});
const data = await response.json();
if (data.status === 'success') {
responseElement.textContent = `✅ ${data.message}\nDomain: ${data.domain}`;
// Refresh domain list if needed
setTimeout(() => window.location.reload(), 1500);
} else {
responseElement.textContent = `❌ ${data.message}\nError: ${data.error || 'Unknown error'}`;
}
} catch (error) {
responseElement.textContent = `❌ Network Error: ${error.message}`;
}
});
</script>
</Layout>

View File

@@ -0,0 +1,40 @@
---
import Layout from "../../layouts/Layout.astro"
---
<Layout title="">
<div>
<pre id="get-response">Loading domains...</pre>
</div>
<script is:inline>
fetch('/host-api/list-domain/')
.then(response => {
if (!response.ok) throw new Error('Network error');
return response.json();
})
.then(data => {
const pre = document.getElementById('get-response');
if (data.status === 'success') {
// Format domains as a table
let output = 'DOMAINS LIST:\n\n';
output += 'Domain'.padEnd(40) + 'IP'.padEnd(15) + 'SSL'.padEnd(5) + 'Status\n';
output += '-'.repeat(70) + '\n';
if (Object.keys(data.domains).length > 0) {
Object.entries(data.domains).forEach(([domain, info]) => {
output += `${domain.padEnd(40)}${info.IP.padEnd(15)}${info.SSL.padEnd(5)}${info.SUSPENDED === 'no' ? 'Active' : 'Suspended'}\n`;
});
} else {
output += 'No domains found for this user\n';
}
pre.textContent = output;
} else {
pre.textContent = `❌ Error: ${data.message}\nDebug: ${data.debug || ''}\nJSON Error: ${data.json_error || ''}`;
}
})
.catch(error => {
document.getElementById('get-response').textContent = `❌ Fetch Error: ${error.message}`;
});
</script>
</Layout>