PageSourceSearch

https://asc-fechten.lovable.app/assets/Settings-CxfShE1J.js

js asc-fechten.lovable.app collected 2026-10-03 03:22:54 UTC 12,266 bytes, 2 lines download raw bytes

1import{j as e}from"./ui-core-BOiROUzb.js";import{r as s}from"./vendor-3RvhFBmN.js";import{q as a,s as t,h as i,C as n,f as r,g as l,r as c,i as d,I as o,v as m,B as h,J as u}from"./index-7oMSrkv7.js";import{L as x}from"./label-BJK4rm6B.js";import{S as j}from"./switch-r7-5Z27b.js";import{p as f,y as g,B as p,a5 as N,at as y,as as w,e as b}from"./lucide-W1LoSVjr.js";import"./supabase-D3BpmWu0.js";import"./ui-display-CzHBGL7u.js";import"./ui-form-CsMHcxL1.js";import"./utils-D7Zen_Cu.js";import"./react-router-qmmoPdSR.js";function v(){const{user:v}=a(),[k,S]=s.useState({siteName:"Fire Flow CMS",siteDescription:"Ein modernes Content Management System",adminEmail:"[email protected]",enableRegistration:!0,enableEmailConfirmation:!0,enableNotifications:!0,maintenanceMode:!1,automaticDailyBackups:!0}),[B,E]=s.useState(!1),[C,_]=s.useState(!0),[D,M]=s.useState(!1);s.useEffect(()=>{z()},[]);const z=async()=>{try{const{data:e,error:s}=await t.from("settings").select("key, value");if(s)throw s;if(e){const s=e.reduce((e,s)=>(e[s.key]=s.value,e),{});S(e=>({...e,...s}))}}catch(e){}finally{_(!1)}},[W,A]=s.useState([]),[F,L]=s.useState(!1),O=async()=>{try{const{data:e,error:s}=await t.from("backups").select("*").order("created_at",{ascending:!1});if(s)throw s;A(e||[])}catch(e){}};s.useEffect(()=>{O()},[]);const R={version:"1.0.0",database:"Supabase PostgreSQL",uptime:"2 Tage, 14 Stunden",lastBackup:"2024-01-15 03:00:00"};return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center sm:justify-between gap-3",children:[e.jsxs("div",{children:[e.jsx("h1",{className:"text-2xl md:text-3xl font-bold text-foreground",children:"Einstellungen"}),e.jsx("p",{className:"text-muted-foreground",children:"Systemkonfiguration und Verwaltung"})]}),e.jsxs(i,{variant:"secondary",children:["Version ",R.version]})]}),e.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-3 gap-6",children:[e.jsxs("div",{className:"lg:col-span-2 space-y-6",children:[e.jsxs(n,{children:[e.jsxs(r,{children:[e.jsxs(l,{className:"flex items-center gap-2",children:[e.jsx(f,{className:"h-5 w-5"}),"Allgemeine Einstellungen"]}),e.jsx(c,{children:"Grundlegende Konfiguration der Website"})]}),e.jsxs(d,{className:"space-y-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(x,{htmlFor:"siteName",children:"Website Name"}),e.jsx(o,{id:"siteName",value:k.siteName,onChange:e=>S({...k,siteName:e.target.value})})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(x,{htmlFor:"siteDescription",children:"Website Beschreibung"}),e.jsx(o,{id:"siteDescription",value:k.siteDescription,onChange:e=>S({...k,siteDescription:e.target.value})})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(x,{htmlFor:"adminEmail",children:"Administrator E-Mail"}),e.jsx(o,{id:"adminEmail",type:"email",value:k.adminEmail,onChange:e=>
1S({...k,adminEmail:e.target.value})})]})]})]}),e.jsxs(n,{children:[e.jsxs(r,{children:[e.jsxs(l,{className:"flex items-center gap-2",children:[e.jsx(g,{className:"h-5 w-5"}),"Sicherheitseinstellungen"]}),e.jsx(c,{children:"Authentifizierung und Sicherheitskonfiguration"})]}),e.jsxs(d,{className:"space-y-6",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"space-y-0.5",children:[e.jsx(x,{children:"Registrierung aktiviert"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Erlaubt neuen Benutzern die Registrierung"})]}),e.jsx(j,{checked:k.enableRegistration,onCheckedChange:e=>S({...k,enableRegistration:e})})]}),e.jsx(m,{}),e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"space-y-0.5",children:[e.jsx(x,{children:"E-Mail-Bestätigung erforderlich"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Benutzer müssen ihre E-Mail-Adresse bestätigen"})]}),e.jsx(j,{checked:k.enableEmailConfirmation,onCheckedChange:e=>S({...k,enableEmailConfirmation:e})})]})]})]}),e.jsxs(n,{children:[e.jsxs(r,{children:[e.jsxs(l,{className:"flex items-center gap-2",children:[e.jsx(p,{className:"h-5 w-5"}),"Benachrichtigungen"]}),e.jsx(c,{children:"E-Mail und System-Benachrichtigungen"})]}),e.jsx(d,{className:"space-y-6",children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"space-y-0.5",children:[e.jsx(x,{children:"Benachrichtigungen aktiviert"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"System-Benachrichtigungen per E-Mail senden"})]}),e.jsx(j,{checked:k.enableNotifications,onCheckedChange:e=>S({...k,enableNotifications:e})})]})})]}),e.jsxs(n,{children:[e.jsxs(r,{children:[e.jsxs(l,{className:"flex items-center gap-2",children:[e.jsx(N,{className:"h-5 w-5"}),"Wartung"]}),e.jsx(c,{children:"System-Wartung und Backup-Einstellungen"})]}),e.jsxs(d,{className:"space-y-6",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"space-y-0.5",children:[e.jsx(x,{children:"Wartungsmodus"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Website für Wartungsarbeiten deaktivieren"})]}),e.jsx(j,{checked:k.maintenanceMode,onCheckedChange:e=>S({...k,maintenanceMode:e})})]}),e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"space-y-0.5",children:[e.jsx(x,{children:"Automatische tägliche Backups"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Jeden Tag um 2:00 Uhr wird automatisch ein Backup erstellt (überschreibt das vorherige)"})]}),e.jsx(j,{checked:k.automaticDailyBackups,onCheckedChange:e=>S({...k,automaticDailyBackups:e})})]}),e.jsx(m,{}),e.jsxs("div",{className:"space-y-3",children:[e.jsx(x,{children:"Backup-Verwaltung"}),e.jsx("div",{className:"flex gap-2",children:e.jsxs(h,{variant:"outline",size:"sm",onClick:async()=>{M(!0);try{const s={timestamp:(new Date).toISOString(),version:R.version,data:{}},a=[];try{const{data:e}=await t.from("blog_posts").select("*");s.data.blog_posts=e,a.push("blog_posts")}catch(e){}try{const{data:e}=await t.from("events").select("*");s.data.events=e,a.push("events")}catch(e){}try{const{data:e}=await t.from("gallery_images").select("*");s.data.gallery_images=e,a.push("gallery_images")}catch(e){}try{const{data:e}=await t.from("settings").select("*");s.data.settings=e,a.push("settings")}catch(e){}try{const{data:e}=await t.from("profiles").select("*");s.data.profiles=e,a.push("profiles")}catch(e){}try{const{data:e}=await t.from("user_roles").select("*");s.data.user_roles=e,a.push("user_roles")}catch(e){}try{const{data:e}=await t.from("tournament_registrations").select("*");s.data.tournament_registrations=e,a.push("tournament_registrations")}catch(e){}const i=new Blob([JSON.stringify(s,null,2)],{type:"application/json"}),n=`backup-${(new Date).toISOString().slice(0,10)}-${Date.now()}.json`,{data:r,error:l}=await t.storage.from("gallery-images").upload(`backups/${n}`,i);if(l)throw l;const{data:c}=t.storage.from("gallery-images").getPublicUrl(`backups/${n}`),{error:d}=await t.from("backups").insert({filename:n,size_bytes:i.size,file_url:c.publicUrl,created_by:v.id,description:`Automatisches Backup vom ${(new Date).toLocaleDateString("de-DE")}`,tables_included:a});if(d)throw d;const o=URL.createObjectURL(i),m=document.createElement("a");m.href=o,m.download=n,document.body.appendChild(m),m.click(),document.body.removeChild(m),URL.revokeObjectURL(o),await O(),u.success("Backup erfolgreich erstellt und gespeichert")}catch(s){u.error("Fehler beim Erstellen des Backups")}finally{M(!1)}},disabled:D,children:[D?e.jsx(N,{className:"h-4 w-4 animate-spin mr-1"}):e.jsx(y,{className:"h-4 w-4 mr-1"}),"Backup erstellen"]})}),W.length>0&&e.jsxs("div",{className:"space-y-2",children:[e.jsx(x,{className:"text-sm",children:"Gespeicherte Backups:"}),e.jsx("div",{className:"max-h-40 overflow-y-auto space-y-2",children:W.map(s=>e.jsxs("div",{className:"flex items-center justify-between p-2 border rounded text-sm",children:[e.jsxs("div",{children:[e.jsx("div",{className:"font-medium",children:s.filename}),e.jsxs("div",{className:"text-muted-foreground",children:[new Date(s.created_at).toLocaleDateString("de-DE")," •",(s.size_bytes/1024).toFixed(1)," KB"]}
1)]}),e.jsxs("div",{className:"flex gap-1",children:[e.jsx(h,{variant:"outline",size:"sm",onClick:()=>window.open(s.file_url,"_blank"),children:"Download"}),e.jsx(h,{variant:"outline",size:"sm",onClick:()=>(async e=>{if(confirm("Sind Sie sicher, dass Sie dieses Backup wiederherstellen möchten? Dies wird alle aktuellen Daten überschreiben!")){L(!0);try{const a=await fetch(e.file_url),i=await a.json();for(const[e,n]of Object.entries(i.data))if(Array.isArray(n)&&n.length>0)try{if(!["profiles","user_roles"].includes(e)){const s=e;await t.from(s).delete().neq("id","00000000-0000-0000-0000-000000000000")}const s=e,{error:a}=await t.from(s).insert(n);if(a)throw a}catch(s){}u.success("Backup erfolgreich wiederhergestellt"),window.location.reload()}catch(a){u.error("Fehler beim Wiederherstellen des Backups")}finally{L(!1)}}})(s),disabled:F,children:F?e.jsx(N,{className:"h-3 w-3 animate-spin"}):"Wiederherstellen"})]})]},s.id))})]}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Backups werden automatisch in der Cloud gespeichert"})]})]})]}),e.jsx("div",{className:"flex justify-end",children:e.jsxs(h,{onClick:async()=>{if(v){E(!0);try{const e=Object.entries(k);for(const[s,a]of e){const{error:e}=await t.from("settings").upsert({key:s,value:a,updated_by:v.id},{onConflict:"key"});if(e)throw e}u.success("Einstellungen erfolgreich gespeichert")}catch(e){u.error("Fehler beim Speichern der Einstellungen")}finally{E(!1)}}},disabled:B,className:"gap-2",children:[B?e.jsx(N,{className:"h-4 w-4 animate-spin"}):e.jsx(w,{className:"h-4 w-4"}),B?"Speichere...":"Einstellungen speichern"]})})]}),e.jsxs("div",{className:"space-y-6",children:[e.jsxs(n,{children:[e.jsx(r,{children:e.jsxs(l,{className:"flex items-center gap-2",children:[e.jsx(y,{className:"h-5 w-5"}),"System-Info"]})}),e.jsx(d,{className:"space-y-4",children:e.jsxs("div",{className:"space-y-2",children:[e.jsxs("div",{className:"flex justify-between",children:[e.jsx("span",{className:"text-sm text-muted-foreground",children:"Version:"}),e.jsx(i,{variant:"secondary",children:R.version})]}),e.jsxs("div",{className:"flex justify-between",children:[e.jsx("span",{className:"text-sm text-muted-foreground",children:"Datenbank:"}),e.jsx("span",{className:"text-sm text-foreground",children:R.database})]}),e.jsxs("div",{className:"flex justify-between",children:[e.jsx("span",{className:"text-sm text-muted-foreground",children:"Laufzeit:"}),e.jsx("span",{className:"text-sm text-foreground",children:R.uptime})]})]})})]}),e.jsxs(n,{children:[e.jsx(r,{children:e.jsx(l,{children:"Schnellaktionen"})}),e.jsxs(d,{className:"space-y-3",children:[e.jsxs(h,{variant:"outline",className:"w-full justify-start gap-2",children:[e.jsx(N,{className:"h-4 w-4"}),"Cache leeren"]}),e.jsxs(h,{variant:"outline",className:"w-full justify-start gap-2",children:[e.jsx(y,{className:"h-4 w-4"}),"Datenbank optimieren"]}),e.jsxs(h,{variant:"outline",className:"w-full justify-start gap-2",children:[e.jsx(b,{className:"h-4 w-4"}),"Test-E-Mail senden"]})]})]}),e.jsxs(n,{children:[e.jsx(r,{children:e.jsx(l,{children:"System-Status"})}),e.jsxs(d,{className:"space-y-3",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("div",{className:"h-2 w-2 rounded-full bg-green-500"}),e.jsx("span",{className:"text-sm text-foreground",children:"Datenbank: Online"})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("div",{className:"h-2 w-2 rounded-full bg-green-500"}),e.jsx("span",{className:"text-sm text-foreground",children:"API: Verfügbar"})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("div",{className:"h-2 w-2 rounded-full bg-green-500"}),e.jsx("span",{className:"text-sm text-foreground",children:"Storage: Verfügbar"})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("div",{className:"h-2 w-2 rounded-full bg-yellow-500"}),e.jsx("span",{className:"text-sm text-foreground",children:"E-Mail: Konfiguration erforderlich"})]})]})]})]})]})]})}export{v as default};
2//# sourceMappingURL=Settings-CxfShE1J.js.map

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.