mirror of
https://github.com/crocofied/CoreControl.git
synced 2025-12-29 16:14:43 +00:00
UI Fixes & reload
This commit is contained in:
@@ -24,8 +24,6 @@ export default function SitesPage({ username, name }: SitesPageProps) {
|
|||||||
setItemPerPage,
|
setItemPerPage,
|
||||||
loadSites
|
loadSites
|
||||||
} = useSites();
|
} = useSites();
|
||||||
console.log(sites);
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Sidebar
|
<Sidebar
|
||||||
username={username}
|
username={username}
|
||||||
|
|||||||
@@ -119,8 +119,8 @@ export default function SitesPage({ username, name, siteId }: SitesPageProps) {
|
|||||||
<Trash className="h-3 w-3" />
|
<Trash className="h-3 w-3" />
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
<EditNetwork siteId={site.id} network={network} />
|
<EditNetwork siteId={site.id} network={network} onNetworkEdited={loadSite}/>
|
||||||
<DeleteNetwork networkId={network.id} />
|
<DeleteNetwork networkId={network.id} onNetworkDeleted={loadSite}/>
|
||||||
</td>
|
</td>
|
||||||
)}
|
)}
|
||||||
</tr>
|
</tr>
|
||||||
@@ -149,8 +149,8 @@ export default function SitesPage({ username, name, siteId }: SitesPageProps) {
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<AddNetwork siteId={site.id} />
|
<AddNetwork siteId={site.id} onNetworkAdded={loadSite}/>
|
||||||
<EditSite site={site} />
|
<EditSite site={site} onSiteEdited={loadSite} />
|
||||||
<DeleteSite siteId={site.id} />
|
<DeleteSite siteId={site.id} />
|
||||||
</div>
|
</div>
|
||||||
</main>
|
</main>
|
||||||
|
|||||||
@@ -30,9 +30,11 @@ export default function AddNetwork({ onNetworkAdded, siteId }: AddNetworkProps)
|
|||||||
gateway
|
gateway
|
||||||
});
|
});
|
||||||
|
|
||||||
if (onNetworkAdded) {
|
setTimeout(() => {
|
||||||
onNetworkAdded();
|
if (onNetworkAdded) {
|
||||||
}
|
onNetworkAdded();
|
||||||
|
}
|
||||||
|
}, 500);
|
||||||
};
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
|||||||
@@ -4,13 +4,19 @@ import { Trash2, AlertTriangle } from "lucide-react";
|
|||||||
|
|
||||||
interface DeleteNetworkProps {
|
interface DeleteNetworkProps {
|
||||||
networkId: string;
|
networkId: string;
|
||||||
|
onNetworkDeleted?: () => void;
|
||||||
}
|
}
|
||||||
|
|
||||||
export default function DeleteNetwork({ networkId }: DeleteNetworkProps) {
|
export default function DeleteNetwork({ networkId, onNetworkDeleted }: DeleteNetworkProps) {
|
||||||
const { deleteNetwork } = useNetworks();
|
const { deleteNetwork } = useNetworks();
|
||||||
|
|
||||||
const handleDelete = () => {
|
const handleDelete = () => {
|
||||||
deleteNetwork(networkId);
|
deleteNetwork(networkId);
|
||||||
|
setTimeout(() => {
|
||||||
|
if (onNetworkDeleted) {
|
||||||
|
onNetworkDeleted();
|
||||||
|
}
|
||||||
|
}, 500);
|
||||||
};
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
|||||||
@@ -11,6 +11,11 @@ interface DeleteSiteProps {
|
|||||||
export default function DeleteSite({ siteId }: DeleteSiteProps) {
|
export default function DeleteSite({ siteId }: DeleteSiteProps) {
|
||||||
const router = useRouter()
|
const router = useRouter()
|
||||||
const { deleteSite } = useSite()
|
const { deleteSite } = useSite()
|
||||||
|
|
||||||
|
const handleDeleteSite = () => {
|
||||||
|
deleteSite(siteId)
|
||||||
|
router.push("/dashboard/sites")
|
||||||
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div>
|
<div>
|
||||||
@@ -41,7 +46,7 @@ export default function DeleteSite({ siteId }: DeleteSiteProps) {
|
|||||||
<button className="btn btn-outline">Cancel</button>
|
<button className="btn btn-outline">Cancel</button>
|
||||||
<button
|
<button
|
||||||
className="btn btn-error text-error-content"
|
className="btn btn-error text-error-content"
|
||||||
onClick={() => deleteSite(siteId)}
|
onClick={handleDeleteSite}
|
||||||
>
|
>
|
||||||
Delete Site
|
Delete Site
|
||||||
</button>
|
</button>
|
||||||
|
|||||||
@@ -8,12 +8,12 @@ import { Network } from "@/app/types";
|
|||||||
import { PencilLine, Network as NetworkIcon, Globe, Wifi } from "lucide-react";
|
import { PencilLine, Network as NetworkIcon, Globe, Wifi } from "lucide-react";
|
||||||
|
|
||||||
interface EditNetworkProps {
|
interface EditNetworkProps {
|
||||||
onNetworkAdded?: () => void;
|
onNetworkEdited?: () => void;
|
||||||
siteId: string;
|
siteId: string;
|
||||||
network: Network;
|
network: Network;
|
||||||
}
|
}
|
||||||
|
|
||||||
export default function EditNetwork({ onNetworkAdded, siteId, network }: EditNetworkProps) {
|
export default function EditNetwork({ onNetworkEdited, siteId, network }: EditNetworkProps) {
|
||||||
const [editName, setEditName] = useState(network.name);
|
const [editName, setEditName] = useState(network.name);
|
||||||
const [editIpv4Subnet, setEditIpv4Subnet] = useState(network.ipv4Subnet);
|
const [editIpv4Subnet, setEditIpv4Subnet] = useState(network.ipv4Subnet);
|
||||||
const [editIpv6Subnet, setEditIpv6Subnet] = useState(network.ipv6Subnet);
|
const [editIpv6Subnet, setEditIpv6Subnet] = useState(network.ipv6Subnet);
|
||||||
@@ -31,6 +31,11 @@ export default function EditNetwork({ onNetworkAdded, siteId, network }: EditNet
|
|||||||
ipv6Subnet: editIpv6Subnet,
|
ipv6Subnet: editIpv6Subnet,
|
||||||
gateway: editGateway
|
gateway: editGateway
|
||||||
});
|
});
|
||||||
|
setTimeout(() => {
|
||||||
|
if (onNetworkEdited) {
|
||||||
|
onNetworkEdited();
|
||||||
|
}
|
||||||
|
}, 500);
|
||||||
};
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
|||||||
@@ -9,9 +9,10 @@ import useSite from "@/hooks/useSite"
|
|||||||
|
|
||||||
interface EditSiteProps {
|
interface EditSiteProps {
|
||||||
site: Site
|
site: Site
|
||||||
|
onSiteEdited?: () => void
|
||||||
}
|
}
|
||||||
|
|
||||||
export default function EditSite({ site }: EditSiteProps) {
|
export default function EditSite({ site, onSiteEdited }: EditSiteProps) {
|
||||||
const [name, setName] = useState(site.name)
|
const [name, setName] = useState(site.name)
|
||||||
const [description, setDescription] = useState(site.description || "")
|
const [description, setDescription] = useState(site.description || "")
|
||||||
const [error, setError] = useState("")
|
const [error, setError] = useState("")
|
||||||
@@ -23,6 +24,17 @@ export default function EditSite({ site }: EditSiteProps) {
|
|||||||
setDescription(site.description || "")
|
setDescription(site.description || "")
|
||||||
}, [site])
|
}, [site])
|
||||||
|
|
||||||
|
const handleEditSite = () => {
|
||||||
|
editSite({ id: site.id, name, description, networks: site.networks })
|
||||||
|
|
||||||
|
setTimeout(() => {
|
||||||
|
if (onSiteEdited) {
|
||||||
|
console.log("onSiteEdited")
|
||||||
|
onSiteEdited()
|
||||||
|
}
|
||||||
|
}, 500)
|
||||||
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div>
|
<div>
|
||||||
<dialog id="edit_site" className="modal">
|
<dialog id="edit_site" className="modal">
|
||||||
@@ -75,7 +87,7 @@ export default function EditSite({ site }: EditSiteProps) {
|
|||||||
<button className="btn btn-outline">Cancel</button>
|
<button className="btn btn-outline">Cancel</button>
|
||||||
<button
|
<button
|
||||||
className="btn btn-primary"
|
className="btn btn-primary"
|
||||||
onClick={() => editSite({ id: site.id, name, description, networks: site.networks })}
|
onClick={handleEditSite}
|
||||||
disabled={!name}
|
disabled={!name}
|
||||||
>
|
>
|
||||||
Save Changes
|
Save Changes
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ const useSite = () => {
|
|||||||
const editSite = (site: Site) => {
|
const editSite = (site: Site) => {
|
||||||
axios.post('/api/sites/edit', site)
|
axios.post('/api/sites/edit', site)
|
||||||
.then(() => {
|
.then(() => {
|
||||||
setSite(site);
|
console.log("Site edited successfully");
|
||||||
})
|
})
|
||||||
.catch(err => {
|
.catch(err => {
|
||||||
console.error(err);
|
console.error(err);
|
||||||
|
|||||||
Reference in New Issue
Block a user