Initial Commit

This commit is contained in:
Alphaeus Mote
2025-11-19 08:09:34 -05:00
parent 3da6627c2d
commit be6d358086
78 changed files with 13135 additions and 1 deletions
+1
View File
@@ -0,0 +1 @@
.bug-report-page[data-v-1456d47b]{max-width:1200px;margin:0 auto}.page-header[data-v-1456d47b]{margin-bottom:2rem}.page-header h1[data-v-1456d47b]{margin:0 0 .5rem;font-size:2rem;font-weight:700;color:var(--text-primary)}.subtitle[data-v-1456d47b]{margin:0;font-size:1rem;color:var(--text-secondary)}.card[data-v-1456d47b]{background:#fff;border-radius:.5rem;box-shadow:var(--shadow-md);padding:2rem}.bug-report-form[data-v-1456d47b]{display:flex;flex-direction:column;gap:2rem}.form-section[data-v-1456d47b]{display:flex;flex-direction:column;gap:1.5rem}.form-section h3[data-v-1456d47b]{margin:0;font-size:1.25rem;font-weight:600;color:var(--text-primary);padding-bottom:.75rem;border-bottom:2px solid var(--border-color)}.form-group[data-v-1456d47b]{display:flex;flex-direction:column;gap:.5rem}.form-label[data-v-1456d47b]{font-size:.875rem;font-weight:600;color:var(--text-primary)}.form-label.required[data-v-1456d47b]:after{content:" *";color:#ef4444}.form-control[data-v-1456d47b]{width:100%;padding:.75rem;border:1px solid var(--border-color);border-radius:.375rem;font-size:.875rem;transition:all .2s}.form-control[data-v-1456d47b]:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.code-input[data-v-1456d47b]{font-family:Consolas,Monaco,Courier New,monospace;font-size:.8rem;background-color:#f9fafb}.help-text[data-v-1456d47b]{margin:0;font-size:.75rem;color:var(--text-secondary)}.info-grid[data-v-1456d47b]{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1rem}.info-item[data-v-1456d47b]{display:flex;flex-direction:column;gap:.5rem;padding:1rem;background-color:#f9fafb;border-radius:.375rem;border:1px solid var(--border-color)}.info-label[data-v-1456d47b]{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary)}.info-value[data-v-1456d47b]{font-family:Consolas,Monaco,Courier New,monospace;font-size:.8rem;color:var(--text-primary);word-break:break-all;background-color:#fff;padding:.5rem;border-radius:.25rem;border:1px solid var(--border-color)}.form-actions[data-v-1456d47b]{display:flex;justify-content:flex-end;gap:1rem;padding-top:1rem;border-top:1px solid var(--border-color)}.btn[data-v-1456d47b]{padding:.75rem 1.5rem;border-radius:.375rem;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s;border:none}.btn-secondary[data-v-1456d47b]{background-color:#fff;color:var(--text-primary);border:1px solid var(--border-color)}.btn-secondary[data-v-1456d47b]:hover{background-color:#f9fafb}.btn-primary[data-v-1456d47b]{background-color:#ef4444;color:#fff}.btn-primary[data-v-1456d47b]:hover{background-color:#dc2626}.btn-primary[data-v-1456d47b]:disabled{opacity:.5;cursor:not-allowed}@media (max-width: 768px){.card[data-v-1456d47b]{padding:1.5rem}.form-actions[data-v-1456d47b]{flex-direction:column}.btn[data-v-1456d47b]{width:100%}}
+1
View File
@@ -0,0 +1 @@
import{_ as b,c as f,o as c,a as o,w as m,e as i,v as n,t as u,u as g,x as v,r as d,j as _,k as w,l as y}from"./index-DpP9cWht.js";const D={name:"BugReport",setup(){const l=g(),e=v(),t=d(!1),s=d({subject:"",description:"",error_details:"",page_url:"",browser_info:""}),a=_(()=>navigator.userAgent);return w(()=>{s.value.page_url=document.referrer||window.location.href,s.value.browser_info=a.value}),{formData:s,browserInfo:a,submitting:t,submitReport:async()=>{t.value=!0;try{await y.bugReport.submit({subject:s.value.subject,description:s.value.description,error_details:s.value.error_details||null,page_url:s.value.page_url,browser_info:s.value.browser_info}),e.success("Bug report submitted successfully! Thank you for your feedback."),s.value={subject:"",description:"",error_details:"",page_url:document.referrer||window.location.href,browser_info:a.value},setTimeout(()=>{l.go(-1)},1500)}catch(r){console.error("Failed to submit bug report:",r),e.error("Failed to submit bug report. Please try again later.")}finally{t.value=!1}}}}},x={class:"bug-report-page"},B={class:"card"},R={class:"form-section"},h={class:"form-group"},j={class:"form-group"},k={class:"form-group"},I={class:"form-section"},S={class:"info-grid"},q={class:"info-item"},C={class:"info-value"},P={class:"info-item"},T={class:"info-value"},U={class:"form-actions"},V=["disabled"];function F(l,e,t,s,a,p){return c(),f("div",x,[e[14]||(e[14]=o("div",{class:"page-header"},[o("h1",null,"Report a Bug"),o("p",{class:"subtitle"},"Help us improve Depl0y by reporting issues you encounter")],-1)),o("div",B,[o("form",{onSubmit:e[4]||(e[4]=m((...r)=>s.submitReport&&s.submitReport(...r),["prevent"])),class:"bug-report-form"},[o("div",R,[e[10]||(e[10]=o("h3",null,"Bug Information",-1)),o("div",h,[e[5]||(e[5]=o("label",{class:"form-label required"},"Subject",-1)),i(o("input",{"onUpdate:modelValue":e[0]||(e[0]=r=>s.formData.subject=r),type:"text",required:"",class:"form-control",placeholder:"Brief description of the issue"},null,512),[[n,s.formData.subject]])]),o("div",j,[e[6]||(e[6]=o("label",{class:"form-label required"},"Description",-1)),i(o("textarea",{"onUpdate:modelValue":e[1]||(e[1]=r=>s.formData.description=r),required:"",rows:"8",class:"form-control",placeholder:"Detailed description of what happened, steps to reproduce, expected vs actual behavior..."},null,512),[[n,s.formData.description]]),e[7]||(e[7]=o("p",{class:"help-text"},"Please be as detailed as possible to help us understand and fix the issue",-1))]),o("div",k,[e[8]||(e[8]=o("label",{class:"form-label"},"Error Details (optional)",-1)),i(o("textarea",{"onUpdate:modelValue":e[2]||(e[2]=r=>s.formData.error_details=r),rows:"6",class:"form-control code-input",placeholder:"Paste any error messages, console logs, or stack traces here..."},null,512),[[n,s.formData.error_details]]),e[9]||(e[9]=o("p",{class:"help-text"},"Check your browser console (F12) for any error messages",-1))])]),o("div",I,[e[13]||(e[13]=o("h3",null,"Automatically Captured Information",-1)),o("div",S,[o("div",q,[e[11]||(e[11]=o("label",{class:"info-label"},"Page URL",-1)),o("code",C,u(s.formData.page_url),1)]),o("div",P,[e[12]||(e[12]=o("label",{class:"info-label"},"Browser",-1)),o("code",T,u(s.browserInfo),1)])])]),o("div",U,[o("button",{type:"button",onClick:e[3]||(e[3]=r=>l.$router.go(-1)),class:"btn btn-secondary"}," Cancel "),o("button",{type:"submit",disabled:s.submitting,class:"btn btn-primary"},u(s.submitting?"Submitting...":"Submit Bug Report"),9,V)])],32)])])}const A=b(D,[["render",F],["__scopeId","data-v-1456d47b"]]);export{A as default};
+1
View File
@@ -0,0 +1 @@
.download-progress[data-v-f1a8c3e0]{display:flex;flex-direction:column;gap:.25rem}.progress-bar-container[data-v-f1a8c3e0]{width:100px;height:8px;background-color:var(--background);border-radius:4px;overflow:hidden}.progress-bar-fill[data-v-f1a8c3e0]{height:100%;background-color:var(--primary);transition:width .3s ease}.modal[data-v-f1a8c3e0]{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content[data-v-f1a8c3e0]{background:#1e293b;border:2px solid #475569;border-radius:12px;width:90%;max-width:600px;max-height:90vh;overflow-y:auto;box-shadow:0 25px 50px -12px #000000b3}.modal-header[data-v-f1a8c3e0]{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:2px solid #475569;background:#334155}.modal-header h3[data-v-f1a8c3e0]{margin:0;color:#fff;font-weight:600}.btn-close[data-v-f1a8c3e0]{background:#475569;border:none;font-size:1.5rem;line-height:1;cursor:pointer;color:#cbd5e1;padding:0;width:2rem;height:2rem;border-radius:6px;transition:all .2s}.btn-close[data-v-f1a8c3e0]:hover{background:#ef4444;color:#fff}.modal-body[data-v-f1a8c3e0]{padding:1.5rem;background:#1e293b}.modal-body[data-v-f1a8c3e0] .form-label{color:#e2e8f0;font-weight:500}.modal-body[data-v-f1a8c3e0] .form-control,.modal-body[data-v-f1a8c3e0] input,.modal-body[data-v-f1a8c3e0] select,.modal-body[data-v-f1a8c3e0] textarea{background:#0f172a;border:1px solid #475569;color:#f1f5f9}.modal-body[data-v-f1a8c3e0] .form-control:focus,.modal-body[data-v-f1a8c3e0] input:focus,.modal-body[data-v-f1a8c3e0] select:focus,.modal-body[data-v-f1a8c3e0] textarea:focus{border-color:#3b82f6;outline:none;box-shadow:0 0 0 2px #3b82f633}.modal-body[data-v-f1a8c3e0] .text-muted{color:#94a3b8!important}.modal-footer[data-v-f1a8c3e0]{display:flex;justify-content:flex-end;gap:.5rem;padding:1rem 1.5rem;margin-top:0;border-top:2px solid #475569;background:#334155}.checkbox-list[data-v-f1a8c3e0]{display:flex;flex-direction:column;gap:.5rem;max-height:300px;overflow-y:auto;padding:.75rem;border:2px solid #475569;border-radius:8px;background-color:#0f172a}.checkbox-item[data-v-f1a8c3e0]{display:flex;align-items:center;gap:.75rem;cursor:pointer;padding:.75rem;border-radius:6px;background:#1e293b;border:1px solid #334155;transition:all .2s}.checkbox-item[data-v-f1a8c3e0]:hover{background:#334155;border-color:#3b82f6}.checkbox-item span[data-v-f1a8c3e0]{color:#f1f5f9;font-weight:500}.checkbox-item input[type=checkbox][data-v-f1a8c3e0]{cursor:pointer;width:18px;height:18px;accent-color:#3b82f6}.alert[data-v-f1a8c3e0]{padding:1rem;border-radius:8px;margin-top:1rem;border:2px solid}.alert-info[data-v-f1a8c3e0]{background-color:#3b82f626;border-color:#3b82f6;color:#dbeafe}.alert-info p[data-v-f1a8c3e0]{color:#dbeafe;margin:.25rem 0}.template-status-section[data-v-f1a8c3e0]{padding:1.5rem;background:#ffffff05;border-bottom:2px solid #475569}.template-status-title[data-v-f1a8c3e0]{color:#f1f5f9;margin-bottom:1rem;font-size:1.25rem;font-weight:600}.template-status-grid[data-v-f1a8c3e0]{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem}.node-status-card[data-v-f1a8c3e0]{background:#1e293b;border:2px solid #475569;border-radius:8px;padding:1rem}.node-status-header[data-v-f1a8c3e0]{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem;padding-bottom:.75rem;border-bottom:1px solid #475569}.node-name[data-v-f1a8c3e0]{color:#f1f5f9;font-weight:600;font-size:1.1rem}.template-count[data-v-f1a8c3e0]{color:#94a3b8;font-size:.875rem}.template-list[data-v-f1a8c3e0]{display:flex;flex-direction:column;gap:.5rem}.template-item[data-v-f1a8c3e0]{display:flex;justify-content:space-between;align-items:center;padding:.5rem;background:#0f172a;border-radius:4px}.template-vmid[data-v-f1a8c3e0]{color:#e2e8f0;font-weight:500}.template-badge[data-v-f1a8c3e0]{padding:.25rem .75rem;border-radius:4px;font-size:.875rem;font-weight:500}.template-badge.exists[data-v-f1a8c3e0]{background:#22c55e33;color:#4ade80;border:1px solid #22c55e}.template-badge.missing[data-v-f1a8c3e0]{background:#ef444433;color:#f87171;border:1px solid #ef4444}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+1
View File
@@ -0,0 +1 @@
import{_ as f,g as y,c as v,o as p,a as s,h as l,i as r,t as e,d as k,n as d,r as m,j as c,k as h,l as g}from"./index-DpP9cWht.js";const x={name:"Dashboard",setup(){const n=m({total_vms:0,running_vms:0,stopped_vms:0,paused_vms:0,datacenters:0,total_nodes:0}),t=m(null),i=c(()=>t.value?Math.round(t.value.used_cpu_cores/t.value.total_cpu_cores*100):0),a=c(()=>t.value?Math.round(t.value.used_memory_gb/t.value.total_memory_gb*100):0),u=c(()=>t.value?Math.round(t.value.used_disk_gb/t.value.total_disk_gb*100):0),_=async()=>{try{const[o,b]=await Promise.all([g.dashboard.getStats(),g.dashboard.getResources()]);n.value=o.data,t.value=b.data}catch(o){console.error("Failed to fetch dashboard data:",o)}};return h(()=>{_()}),{stats:n,resources:t,cpuPercentage:i,memoryPercentage:a,diskPercentage:u}}},w={class:"dashboard"},P={class:"stats-row mb-2"},M={class:"stat-info"},B={class:"stat-value"},C={class:"stat-info"},D={class:"stat-value"},S={class:"stat-info"},N={class:"stat-value"},R={class:"stat-info"},V={class:"stat-value"},G={class:"stat-info"},I={class:"stat-value"},U={class:"grid grid-cols-2 gap-2"},A={class:"card"},O={key:0,class:"resources"},j={class:"resource-item"},q={class:"resource-bar"},z={class:"resource-value"},E={class:"resource-item"},F={class:"resource-bar"},H={class:"resource-value"},Q={class:"resource-item"},J={class:"resource-bar"},K={class:"resource-value"},L={class:"card"},T={class:"quick-actions"};function W(n,t,i,a,u,_){const o=y("router-link");return p(),v("div",w,[s("div",P,[l(o,{to:"/vms",class:"stat-card card"},{default:r(()=>[t[1]||(t[1]=s("div",{class:"stat-icon"},"🖥️",-1)),s("div",M,[s("p",B,e(a.stats.total_vms),1),t[0]||(t[0]=s("p",{class:"stat-label"},"VMs",-1))])]),_:1}),l(o,{to:"/vms?status=running",class:"stat-card card"},{default:r(()=>[t[3]||(t[3]=s("div",{class:"stat-icon success"},"▶️",-1)),s("div",C,[s("p",D,e(a.stats.running_vms),1),t[2]||(t[2]=s("p",{class:"stat-label"},"Running",-1))])]),_:1}),l(o,{to:"/vms?status=stopped",class:"stat-card card"},{default:r(()=>[t[5]||(t[5]=s("div",{class:"stat-icon danger"},"⏹️",-1)),s("div",S,[s("p",N,e(a.stats.stopped_vms),1),t[4]||(t[4]=s("p",{class:"stat-label"},"Stopped",-1))])]),_:1}),l(o,{to:"/proxmox",class:"stat-card card"},{default:r(()=>[t[7]||(t[7]=s("div",{class:"stat-icon"},"🏢",-1)),s("div",R,[s("p",V,e(a.stats.datacenters),1),t[6]||(t[6]=s("p",{class:"stat-label"},"Datacenters",-1))])]),_:1}),l(o,{to:"/proxmox",class:"stat-card card"},{default:r(()=>[t[9]||(t[9]=s("div",{class:"stat-icon"},"🖧",-1)),s("div",G,[s("p",I,e(a.stats.total_nodes),1),t[8]||(t[8]=s("p",{class:"stat-label"},"Nodes",-1))])]),_:1})]),s("div",U,[s("div",A,[t[13]||(t[13]=s("div",{class:"card-header"},[s("h3",null,"Resource Usage")],-1)),a.resources?(p(),v("div",O,[s("div",j,[t[10]||(t[10]=s("span",{class:"resource-label"},"CPU Cores",-1)),s("div",q,[s("div",{class:"resource-fill",style:d({width:a.cpuPercentage+"%"})},null,4)]),s("span",z,e(a.resources.used_cpu_cores)+" / "+e(a.resources.total_cpu_cores),1)]),s("div",E,[t[11]||(t[11]=s("span",{class:"resource-label"},"Memory",-1)),s("div",F,[s("div",{class:"resource-fill",style:d({width:a.memoryPercentage+"%"})},null,4)]),s("span",H,e(a.resources.used_memory_gb)+"GB / "+e(a.resources.total_memory_gb)+"GB ",1)]),s("div",Q,[t[12]||(t[12]=s("span",{class:"resource-label"},"Disk",-1)),s("div",J,[s("div",{class:"resource-fill",style:d({width:a.diskPercentage+"%"})},null,4)]),s("span",K,e(a.resources.used_disk_gb)+"GB / "+e(a.resources.total_disk_gb)+"GB ",1)])])):k("",!0)]),s("div",L,[t[17]||(t[17]=s("div",{class:"card-header"},[s("h3",null,"Quick Actions")],-1)),s("div",T,[l(o,{to:"/vms/create",class:"action-button"},{default:r(()=>[...t[14]||(t[14]=[s("span",{class:"action-icon"},"",-1),s("div",null,[s("p",{class:"action-title"},"Deploy New VM"),s("p",{class:"action-desc"},"Create and deploy a new virtual machine")],-1)])]),_:1}),l(o,{to:"/proxmox",class:"action-button"},{default:r(()=>[...t[15]||(t[15]=[s("span",{class:"action-icon"},"🌐",-1),s("div",null,[s("p",{class:"action-title"},"Manage Hosts"),s("p",{class:"action-desc"},"Configure Proxmox hosts")],-1)])]),_:1}),l(o,{to:"/isos",class:"action-button"},{default:r(()=>[...t[16]||(t[16]=[s("span",{class:"action-icon"},"💿",-1),s("div",null,[s("p",{class:"action-title"},"Upload ISO"),s("p",{class:"action-desc"},"Add new ISO images")],-1)])]),_:1})])])])])}const Y=f(x,[["render",W],["__scopeId","data-v-9e9a0d16"]]);export{Y as default};
+1
View File
@@ -0,0 +1 @@
.stats-row[data-v-9e9a0d16]{display:flex;gap:.75rem;justify-content:space-between}.stat-card[data-v-9e9a0d16]{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem!important;flex:1;min-width:0;cursor:pointer;transition:all .2s;text-decoration:none}.stat-card[data-v-9e9a0d16]:hover{transform:translateY(-2px);box-shadow:0 4px 8px #0000001a;border-color:var(--primary-color)}.stat-card[data-v-9e9a0d16]:active{transform:translateY(0)}.stat-icon[data-v-9e9a0d16]{font-size:1.5rem;opacity:.8;flex-shrink:0}.stat-icon.success[data-v-9e9a0d16]{color:var(--secondary-color)}.stat-icon.danger[data-v-9e9a0d16]{color:var(--danger-color)}.stat-info[data-v-9e9a0d16]{flex:1;min-width:0}.stat-value[data-v-9e9a0d16]{font-size:1.25rem;font-weight:700;color:var(--text-primary);margin:0;white-space:nowrap}.stat-label[data-v-9e9a0d16]{font-size:.7rem;color:var(--text-secondary);margin:0;white-space:nowrap}.resources[data-v-9e9a0d16]{display:flex;flex-direction:column;gap:.75rem}.resource-item[data-v-9e9a0d16]{display:flex;flex-direction:column;gap:.25rem}.resource-label[data-v-9e9a0d16]{font-weight:500;color:var(--text-secondary);font-size:.75rem}.resource-bar[data-v-9e9a0d16]{height:.375rem;background-color:var(--background);border-radius:9999px;overflow:hidden}.resource-fill[data-v-9e9a0d16]{height:100%;background:linear-gradient(90deg,var(--primary-color),var(--secondary-color));transition:width .3s ease}.resource-value[data-v-9e9a0d16]{font-size:.7rem;color:var(--text-secondary)}.quick-actions[data-v-9e9a0d16]{display:flex;flex-direction:column;gap:.5rem}.action-button[data-v-9e9a0d16]{display:flex;align-items:center;gap:.5rem;padding:.5rem;border:1px solid var(--border-color);border-radius:.375rem;text-decoration:none;transition:all .2s}.action-button[data-v-9e9a0d16]:hover{background-color:var(--background);border-color:var(--primary-color)}.action-icon[data-v-9e9a0d16]{font-size:1.25rem}.action-title[data-v-9e9a0d16]{font-weight:600;color:var(--text-primary);margin:0;font-size:.85rem}.action-desc[data-v-9e9a0d16]{font-size:.7rem;color:var(--text-secondary);margin:0}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+1
View File
@@ -0,0 +1 @@
.btn-sm[data-v-295eeb95]{padding:.25rem .5rem;font-size:.875rem}.modal[data-v-295eeb95]{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content[data-v-295eeb95]{background:#fff;border-radius:.5rem;max-width:600px;width:90%;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-lg)}.modal-header[data-v-295eeb95]{padding:1.5rem;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;align-items:center}.modal-header h3[data-v-295eeb95]{margin:0}.btn-close[data-v-295eeb95]{background:none;border:none;font-size:2rem;cursor:pointer;color:var(--text-secondary);line-height:1}.modal-body[data-v-295eeb95]{padding:1.5rem}.upload-progress[data-v-295eeb95]{margin-top:1rem;padding:1rem;background-color:var(--background);border-radius:.5rem;border:1px solid var(--border-color)}.upload-stats[data-v-295eeb95]{margin-bottom:1rem}.stat-row[data-v-295eeb95]{display:flex;justify-content:space-between;align-items:center;padding:.5rem 0;border-bottom:1px solid var(--border-color)}.stat-row[data-v-295eeb95]:last-child{border-bottom:none}.stat-label[data-v-295eeb95]{font-size:.875rem;color:var(--text-secondary);font-weight:500}.stat-value[data-v-295eeb95]{font-size:.875rem;color:var(--text-primary);font-weight:600;font-family:monospace}.progress-bar[data-v-295eeb95]{height:1.25rem;background-color:var(--border-color);border-radius:9999px;overflow:hidden;position:relative;box-shadow:inset 0 2px 4px #0000001a}.progress-fill[data-v-295eeb95]{height:100%;background:linear-gradient(90deg,var(--primary-color),var(--secondary-color));transition:width .2s ease;box-shadow:0 0 10px #2563eb80}
File diff suppressed because one or more lines are too long
+1
View File
@@ -0,0 +1 @@
import{_ as f,c,o as u,a as e,b as m,w as g,d as b,e as n,v as a,t as v,u as w,f as y,r as i}from"./index-DpP9cWht.js";const x={name:"Login",setup(){const d=w(),o=y(),r=i({username:"",password:"",totp_code:""}),s=i(!1),l=i(!1);return{credentials:r,loading:s,show2FA:l,handleLogin:async()=>{s.value=!0;try{const t=await o.login(r.value);t.success?d.push("/"):t.error==="2FA code required"&&(l.value=!0)}catch(t){console.error("Login error:",t)}finally{s.value=!1}}}}},L={class:"login-container"},V={class:"login-card"},_={class:"form-group"},h={class:"form-group"},A={key:0,class:"form-group"},D=["disabled"];function S(d,o,r,s,l,p){return u(),c("div",L,[e("div",V,[o[7]||(o[7]=e("div",{class:"login-header"},[e("h1",{class:"login-logo"},[m("Depl"),e("span",{class:"logo-zero"},"0"),m("y")]),e("p",{class:"login-subtitle"},"VM Deployment Panel")],-1)),e("form",{onSubmit:o[3]||(o[3]=g((...t)=>s.handleLogin&&s.handleLogin(...t),["prevent"])),class:"login-form"},[e("div",_,[o[4]||(o[4]=e("label",{for:"username",class:"form-label"},"Username",-1)),n(e("input",{id:"username","onUpdate:modelValue":o[0]||(o[0]=t=>s.credentials.username=t),type:"text",class:"form-control",required:"",autofocus:""},null,512),[[a,s.credentials.username]])]),e("div",h,[o[5]||(o[5]=e("label",{for:"password",class:"form-label"},"Password",-1)),n(e("input",{id:"password","onUpdate:modelValue":o[1]||(o[1]=t=>s.credentials.password=t),type:"password",class:"form-control",required:""},null,512),[[a,s.credentials.password]])]),s.show2FA?(u(),c("div",A,[o[6]||(o[6]=e("label",{for:"totp",class:"form-label"},"2FA Code",-1)),n(e("input",{id:"totp","onUpdate:modelValue":o[2]||(o[2]=t=>s.credentials.totp_code=t),type:"text",class:"form-control",placeholder:"000000",maxlength:"6"},null,512),[[a,s.credentials.totp_code]])])):b("",!0),e("button",{type:"submit",class:"btn btn-primary btn-block",disabled:s.loading},v(s.loading?"Logging in...":"Login"),9,D)],32),o[8]||(o[8]=e("div",{class:"login-footer"},[e("p",{class:"text-muted text-sm text-center"}," Open Source VM Deployment Platform ")],-1))])])}const F=f(x,[["render",S],["__scopeId","data-v-bf325ce1"]]);export{F as default};
+1
View File
@@ -0,0 +1 @@
.login-container[data-v-bf325ce1]{display:flex;align-items:center;justify-content:center;min-height:100vh;background:linear-gradient(135deg,#1e3a8a,#1e40af,#1d4ed8);padding:2rem}.login-card[data-v-bf325ce1]{background:#fff;border-radius:1rem;box-shadow:0 20px 25px -5px #0000001a;width:100%;max-width:400px;padding:2rem}.login-header[data-v-bf325ce1]{text-align:center;margin-bottom:2rem}.login-logo[data-v-bf325ce1]{font-size:3rem;font-weight:700;margin:0;color:var(--text-primary)}.logo-zero[data-v-bf325ce1]{color:#3b82f6}.login-subtitle[data-v-bf325ce1]{color:var(--text-secondary);margin-top:.5rem}.login-form[data-v-bf325ce1]{margin-bottom:1.5rem}.btn-block[data-v-bf325ce1]{width:100%;margin-top:1rem}.login-footer[data-v-bf325ce1]{margin-top:2rem;padding-top:1rem;border-top:1px solid var(--border-color)}
+1
View File
@@ -0,0 +1 @@
import{_ as t,c as s,o as a,a as e}from"./index-DpP9cWht.js";const n={name:"NotFound"},d={class:"notfound-page"};function c(r,o,l,p,u,i){return a(),s("div",d,[...o[0]||(o[0]=[e("div",{class:"card"},[e("div",{class:"card-header"},[e("h3",null,"NotFound")]),e("p",{class:"text-muted"},"NotFound implementation goes here")],-1)])])}const m=t(n,[["render",c]]);export{m as default};
File diff suppressed because one or more lines are too long
+1
View File
@@ -0,0 +1 @@
.page-header[data-v-04139eed]{margin-bottom:1.5rem}.page-header h2[data-v-04139eed]{margin:0 0 .5rem;font-size:1.75rem;font-weight:600;color:var(--text-primary)}.page-header .text-muted[data-v-04139eed]{font-size:.95rem}.btn-sm[data-v-04139eed]{padding:.25rem .5rem;font-size:.875rem}.nodes-section[data-v-04139eed]{padding:0}.datacenter-section[data-v-04139eed]{margin-bottom:2rem;padding-bottom:2rem;border-bottom:1px solid var(--border-color)}.datacenter-section[data-v-04139eed]:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.datacenter-title[data-v-04139eed]{font-size:1.25rem;font-weight:600;margin-bottom:1rem;color:var(--primary-color);padding-left:.5rem;border-left:3px solid var(--primary-color)}.modal[data-v-04139eed]{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content[data-v-04139eed]{background:#fff;border-radius:.5rem;max-width:600px;width:90%;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-lg)}.modal-header[data-v-04139eed]{padding:1.5rem;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;align-items:center}.modal-header h3[data-v-04139eed]{margin:0}.btn-close[data-v-04139eed]{background:none;border:none;font-size:2rem;cursor:pointer;color:var(--text-secondary);line-height:1}.modal-body[data-v-04139eed]{padding:1.5rem}.auth-section[data-v-04139eed]{margin:1rem 0;padding:1rem;background-color:var(--background);border-radius:.5rem;border:1px solid var(--border-color)}.section-subtitle[data-v-04139eed]{font-size:1rem;font-weight:600;margin-bottom:.5rem;color:var(--text-primary)}.warning-box[data-v-04139eed]{margin-top:1rem;padding:1rem;background-color:#fff3cd;border:1px solid #ffc107;border-radius:.375rem;color:#856404}.warning-box strong[data-v-04139eed]{display:block;margin-bottom:.5rem;font-size:.875rem}.warning-box p[data-v-04139eed]{margin:.25rem 0;font-size:.875rem}.nodes-grid[data-v-04139eed]{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem}.node-card[data-v-04139eed]{border:1px solid var(--border-color);border-radius:.5rem;padding:1rem;background:var(--background)}.node-header[data-v-04139eed]{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid var(--border-color)}.node-header h5[data-v-04139eed]{margin:0;font-size:1.125rem;font-weight:600}.node-stats[data-v-04139eed]{display:flex;flex-direction:column;gap:.5rem}.stat[data-v-04139eed]{display:flex;justify-content:space-between;font-size:.875rem}.stat-label[data-v-04139eed]{color:var(--text-secondary);font-weight:500}.stat-value[data-v-04139eed]{color:var(--text-primary);font-family:monospace}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+1
View File
@@ -0,0 +1 @@
.modal-overlay[data-v-ddf646d5]{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content[data-v-ddf646d5]{background-color:var(--card-bg);border-radius:.5rem;width:90%;max-width:500px;max-height:90vh;overflow-y:auto}.modal-header[data-v-ddf646d5]{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:1px solid var(--border-color)}.modal-header h3[data-v-ddf646d5]{margin:0;color:var(--text-primary)}.modal-close[data-v-ddf646d5]{background:none;border:none;font-size:1.5rem;cursor:pointer;color:var(--text-secondary);padding:0;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center}.modal-close[data-v-ddf646d5]:hover{color:var(--text-primary)}.modal-body[data-v-ddf646d5]{padding:1.5rem}.modal-footer[data-v-ddf646d5]{display:flex;justify-content:flex-end;gap:.5rem;margin-top:1.5rem}.form-group[data-v-ddf646d5]{margin-bottom:1rem}.form-label[data-v-ddf646d5]{display:block;margin-bottom:.5rem;font-weight:500;color:var(--text-secondary)}.form-control[data-v-ddf646d5]{width:100%;padding:.5rem;border:1px solid var(--border-color);border-radius:.25rem;background-color:var(--background);color:var(--text-primary)}.form-control[data-v-ddf646d5]:focus{outline:none;border-color:var(--primary-color)}.btn-sm[data-v-ddf646d5]{padding:.25rem .5rem;font-size:.875rem}
+1
View File
@@ -0,0 +1 @@
import{_ as a,c as t,o,a as e}from"./index-DpP9cWht.js";const c={name:"VMDetails"},r={class:"vmdetails-page"};function l(n,s,i,d,p,m){return o(),t("div",r,[...s[0]||(s[0]=[e("div",{class:"card"},[e("div",{class:"card-header"},[e("h3",null,"VMDetails")]),e("p",{class:"text-muted"},"VMDetails implementation goes here")],-1)])])}const f=a(c,[["render",l]]);export{f as default};
File diff suppressed because one or more lines are too long
+1
View File
@@ -0,0 +1 @@
.btn-sm[data-v-872f930a]{padding:.25rem .5rem;font-size:.875rem}.sortable[data-v-872f930a]{cursor:pointer;-webkit-user-select:none;user-select:none}.sortable[data-v-872f930a]:hover{background-color:var(--background)}.sort-indicator[data-v-872f930a]{margin-left:.25rem;font-size:.75rem;opacity:.7}.filter-bar[data-v-872f930a]{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;background-color:var(--background);border-bottom:1px solid var(--border)}.filter-info[data-v-872f930a]{display:flex;align-items:center;gap:.5rem}.filter-label[data-v-872f930a]{font-size:.875rem;color:var(--text-muted)}.filter-count[data-v-872f930a]{font-size:.875rem;color:var(--text-muted);margin-left:.25rem}.modal-overlay[data-v-872f930a]{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content[data-v-872f930a]{background-color:var(--surface);border-radius:.5rem;box-shadow:0 10px 25px #0003;max-width:500px;width:90%;max-height:90vh;overflow-y:auto}.modal-header[data-v-872f930a]{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;border-bottom:1px solid var(--border-color)}.modal-header h3[data-v-872f930a]{margin:0;font-size:1.25rem;color:var(--text-primary)}.btn-close[data-v-872f930a]{background:none;border:none;font-size:2rem;line-height:1;color:var(--text-secondary);cursor:pointer;padding:0;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center}.btn-close[data-v-872f930a]:hover{color:var(--text-primary)}.modal-body[data-v-872f930a]{padding:1.5rem}.modal-footer[data-v-872f930a]{display:flex;justify-content:flex-end;gap:.5rem;padding:1rem 1.5rem;border-top:1px solid var(--border-color)}.text-danger[data-v-872f930a]{color:#991b1b;font-weight:500}.text-muted[data-v-872f930a]{color:#475569}.mb-1[data-v-872f930a]{margin-bottom:.5rem}.mb-2[data-v-872f930a]{margin-bottom:1rem}.form-group[data-v-872f930a]{margin-top:1rem}.form-group label[data-v-872f930a]{display:block;margin-bottom:.5rem;font-weight:500;color:var(--text-primary)}.form-control[data-v-872f930a]{width:100%;padding:.5rem;border:1px solid var(--border-color);border-radius:.375rem;background-color:var(--background);color:var(--text-primary);font-size:1rem}.form-control[data-v-872f930a]:focus{outline:none;border-color:var(--primary-color)}.btn-secondary[data-v-872f930a]{background-color:var(--secondary-color);color:#fff}.btn-secondary[data-v-872f930a]:hover{opacity:.9}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+4
View File
@@ -0,0 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
<rect fill="#3b82f6" width="32" height="32" rx="4"/>
<text x="16" y="24" font-family="Arial,sans-serif" font-size="20" font-weight="bold" fill="#fff" text-anchor="middle">D</text>
</svg>

After

Width:  |  Height:  |  Size: 252 B

+14
View File
@@ -0,0 +1,14 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<link rel="icon" href="/favicon.ico">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Depl0y - VM Deployment Panel</title>
<script type="module" crossorigin src="/assets/index-DpP9cWht.js"></script>
<link rel="stylesheet" crossorigin href="/assets/index-54kXT93y.css">
</head>
<body>
<div id="app"></div>
</body>
</html>