/* =========================
RESOURCE MODAL
========================= */
window.openCreate = function(){
document.getElementById("modalTitle").innerText="Create Resource"
document.getElementById("resource_id").value=""
document.getElementById("name").value=""
document.getElementById("produkt").value=""
document.getElementById("provider").value=""
document.getElementById("art").value=""
document.getElementById("cpu").value=""
document.getElementById("ram").value=""
document.getElementById("disk").value=""
document.getElementById("os").value=""
document.getElementById("kosten_monat").value=""
document.getElementById("kosten_jahr").value=""
document.getElementById("providername").value=""
document.getElementById("ipv6_net").value=""
document.getElementById("bestelldatum").value=""
document.getElementById("kuendbar_ab").value=""
document.getElementById("kuendigungsdatum").value=""
document.getElementById("status").value="aktiv"
document.getElementById("bemerkung").value=""
document.getElementById("resourceModal").style.display="block"
}
window.openEdit = function(resource){
document.getElementById("modalTitle").innerText="Edit Resource"
document.getElementById("resource_id").value=resource.id
Object.keys(resource).forEach(k=>{
const el=document.getElementById(k)
if(el) el.value=resource[k] || ""
})
document.getElementById("resourceModal").style.display="block"
}
window.closeModal = function(){
document.getElementById("resourceModal").style.display="none"
}
window.openServerDetail = async function(resource){
const mappings = await api(API+"/domainmap")
const subs = await api(API+"/subdomains")
let html = `
Name: ${resource.name}
Produkt: ${resource.produkt || ""}
Provider: ${resource.provider || ""}
Provider Name: ${resource.providername || ""}
System
CPU: ${resource.cpu || ""}
RAM: ${resource.ram || ""}
Disk: ${resource.disk || ""}
OS: ${resource.os || ""}
IPs
`
// IPs
if(Array.isArray(resource.ips)){
resource.ips.forEach(ip=>{
html += `
${ip.type || ""} ${ip.ip}
`
})
}
// Domains
html += `
Domains
`
const domains = mappings.filter(m => m.resource_id == resource.id)
domains.forEach(d=>{
html += `🌐 ${d.domain_name}
`
// Subdomains dazu
subs.forEach(s => {
if(s.domain_name === d.domain_name){
html += `
↳ ${s.subdomain}.${s.domain_name}
`
}
})
})
// Zusatzinfos
html += `
Bestelldatum: ${resource.bestelldatum || ""}
Kündbar ab: ${resource.kuendbar_ab || ""}
Bemerkung
${resource.bemerkung || ""}
`
document.getElementById("serverDetailContent").innerHTML = html
document.getElementById("serverDetailModal").style.display="block"
}
window.closeServerDetail = function(){
document.getElementById("serverDetailModal").style.display="none"
}
/* =========================
DOMAIN MODAL
========================= */
window.openDomainCreate = function(){
document.getElementById("domainModalTitle").innerText="Create Domain"
document.getElementById("domain_id").value=""
document.getElementById("domain_name").value=""
document.getElementById("domain_provider").value=""
document.getElementById("domain_ip").value=""
document.getElementById("domain_cost").value=""
document.getElementById("domain_notes").value=""
document.getElementById("domainModal").style.display="block"
}
window.openDomainEdit = function(d){
document.getElementById("domainModalTitle").innerText="Edit Domain"
document.getElementById("domain_id").value=d.id
document.getElementById("domain_name").value=d.domain_name || ""
document.getElementById("domain_provider").value=d.provider || ""
document.getElementById("domain_ip").value=d.ip_address || ""
document.getElementById("domain_cost").value=d.yearly_cost || ""
document.getElementById("domain_notes").value=d.notes || ""
document.getElementById("domainModal").style.display="block"
}
window.closeDomainModal = function(){
document.getElementById("domainModal").style.display="none"
}
/* =========================
SUBDOMAIN MODAL
========================= */
window.openSubCreate = function(domainId){
document.getElementById("sub_id").value = "" // RESET !!
document.getElementById("sub_domain_id").value = domainId
document.getElementById("sub_name").value = ""
document.getElementById("sub_ip").value = ""
document.querySelector("#subdomainModal h3").innerText = "Subdomain erstellen"
document.getElementById("subdomainModal").style.display="block"
}
window.closeSubModal = function(){
document.getElementById("subdomainModal").style.display="none"
}
window.openSubEdit = function(s){
document.getElementById("sub_id").value = s.id
document.getElementById("sub_domain_id").value = s.domain_id
document.getElementById("sub_name").value = s.subdomain
document.getElementById("sub_ip").value = s.ip_address
document.querySelector("#subdomainModal h3").innerText = "Subdomain bearbeiten"
document.getElementById("subdomainModal").style.display="block"
}
/* =========================
IP MODAL
========================= */
window.openIPManager = function(resourceId){
document.getElementById("ip_resource_id").value = resourceId
document.getElementById("ipModal").style.display="block"
loadIPs(resourceId) // 🔥 wichtig!
}
window.closeIPModal = function(){
document.getElementById("ipModal").style.display="none"
}