From e4231de2027917031efb4f18f5b598e49d83dfd7 Mon Sep 17 00:00:00 2001 From: charleswrayjr Date: Sat, 13 Sep 2025 22:23:19 -0500 Subject: [PATCH] Cleaning up Docker.jsx and Git.jsx main views. --- src/app/views/Docker/Docker.jsx | 74 ++++++----- src/app/views/Git/Git.jsx | 218 ++++++++++++++++++-------------- 2 files changed, 163 insertions(+), 129 deletions(-) diff --git a/src/app/views/Docker/Docker.jsx b/src/app/views/Docker/Docker.jsx index d1f9caf..9fa72dd 100644 --- a/src/app/views/Docker/Docker.jsx +++ b/src/app/views/Docker/Docker.jsx @@ -1,5 +1,5 @@ import React, { useEffect, useState } from 'react'; -import { Button, Container, TextField, Typography } from '@mui/material'; +import { Button, Container, Tab, Tabs, TextField, Typography } from '@mui/material'; import { MaterialReactTable, useMaterialReactTable } from 'material-react-table'; import { DockerService } from '../../services'; @@ -8,6 +8,12 @@ const Docker = () => { const [images, setImages] = useState( [] ); const [composeFile, setComposeFile] = useState( '' ); const [message, setMessage] = useState( '' ); + const [activeTab, setActiveTab] = useState( 0 ); + + useEffect( () => { + fetchImages().catch(); + fetchContainers().catch(); + }, [] ); const fetchContainers = async () => { try { @@ -17,7 +23,6 @@ const Docker = () => { setMessage( error ); } }; - const fetchImages = async () => { try { const imagesData = await DockerService.fetchImages(); // Assuming you have a service to fetch images @@ -26,22 +31,14 @@ const Docker = () => { setMessage( error ); } }; - - useEffect( () => { - fetchImages().catch(); - fetchContainers().catch(); - }, [] ); - const handleContainerAction = async ( action, containerId ) => { await DockerService.containerAction( action, containerId ); await fetchContainers(); }; - const handleComposeSubmit = async ( event ) => { event.preventDefault(); setMessage( await DockerService.composeDown( composeFile ) ); }; - const containerTable = useMaterialReactTable( { columns:[ { accessorKey:'id', header:'ID' }, @@ -68,41 +65,48 @@ const Docker = () => { ), }, ], - data:containers + data:containers, + renderTopToolbarCustomActions:() => (Docker Containers) } ); - const imageTable = useMaterialReactTable( { columns:[ { accessorKey:'id', header:'ID' }, { accessorKey:'tags', header:'Tags', Cell:( { cell } ) => cell.getValue().join( ', ' ) }, { accessorKey:'created', header:'Created' }, ], - data:images + data:images, + renderTopToolbarCustomActions:() => (Docker Images) } ); return ( - - Docker Containers - - - Docker Images - - - Stop Docker Compose Services -
- setComposeFile( e.target.value ) } - fullWidth/> - - - + + + setActiveTab( 0 ) }/> + setActiveTab( 1 ) }/> + setActiveTab( 2 ) }/> + + { activeTab === 0 && } + { activeTab === 1 && } + { activeTab === 2 && + <> + Stop Docker Compose Services +
+ setComposeFile( e.target.value ) } + fullWidth/> + + + } { message && { message } }
); diff --git a/src/app/views/Git/Git.jsx b/src/app/views/Git/Git.jsx index 165d9ec..cc11f0f 100755 --- a/src/app/views/Git/Git.jsx +++ b/src/app/views/Git/Git.jsx @@ -1,121 +1,151 @@ -import React, { useState, useEffect } from 'react'; - -import { Container, Typography, TextField, Button, Select, MenuItem } from '@mui/material'; -import { MaterialReactTable } from 'material-react-table'; +import React, { useEffect, useState } from 'react'; +import { + Button, + Card, + CardActions, + CardContent, + CardHeader, + Container, + Grid, + MenuItem, + Select, + TextField, + Typography +} from '@mui/material'; +import { MaterialReactTable, useMaterialReactTable } from 'material-react-table'; import { GitService } from '../../services'; const Git = () => { - const [repoName, setRepoName] = useState(''); - const [repoType, setRepoType] = useState('global'); - const [repoUser, setRepoUser] = useState(''); - const [message, setMessage] = useState(''); + const [repoName, setRepoName] = useState( '' ); + const [repoType, setRepoType] = useState( 'global' ); + const [repoUser, setRepoUser] = useState( '' ); + const [message, setMessage] = useState( '' ); const [repos, setRepos] = useState( [] ); - const [deployRepoName, setDeployRepoName] = useState(''); - const [deployPath, setDeployPath] = useState(''); - const [deployUser, setDeployUser] = useState(''); + const [deployRepoName, setDeployRepoName] = useState( '' ); + const [deployPath, setDeployPath] = useState( '' ); + const [deployUser, setDeployUser] = useState( '' ); const fetchRepos = async () => { await GitService.fetchRepos().then( res => setRepos( res ) ).catch( err => setMessage( err ) ); }; - useEffect(() => { + useEffect( () => { fetchRepos().catch( e => setMessage( e ) ); }, [] ); - const handleRepoSubmit = async (e) => { + const handleRepoSubmit = async ( e ) => { e.preventDefault(); - setMessage( await GitService.createRepo({repoName, repoType, repoUser}, fetchRepos ) ); + setMessage( await GitService.createRepo( { repoName, repoType, repoUser }, fetchRepos ) ); }; - const handleDeleteRepo = async (name) => { - setMessage( await GitService.deleteRepo( name, fetchRepos ) ); + const handleDeleteRepo = async ( name ) => { + setMessage( await GitService.deleteRepo( name, fetchRepos ) ); }; - const handleCloneSubmit = async (e) => { + const handleCloneSubmit = async ( e ) => { e.preventDefault(); setMessage( await GitService.cloneRepo( { deployRepoName, deployPath, deployUser } ) ); }; - return( - - Create Git Repository -
- setRepoName(e.target.value)} - fullWidth - /> - - setRepoUser(e.target.value)} - fullWidth - /> - - + const gitTable = useMaterialReactTable( { + columns:[ + { accessorKey:'name', header:'Name' }, + { accessorKey:'cloneUrl', header:'Clone URL' }, + { + header:'Actions', + Cell:( { row } ) => ( + + ), + }, + ], + data:repos, + enableRowActions:true, + renderRowActions:( { row } ) => ( + + ), + renderTopToolbarCustomActions:() => (Repositories) + } ); - Clone Repository Locally -
- setDeployRepoName(e.target.value)} - fullWidth - /> - setDeployPath(e.target.value)} - fullWidth - /> - setDeployUser(e.target.value)} - fullWidth - /> - - + return ( + + + + + +
+ + setRepoName( e.target.value ) } + fullWidth/> + + setRepoUser( e.target.value ) } + fullWidth/> + + + + +
+
+
+ + + +
+ + setDeployRepoName( e.target.value ) } + fullWidth/> + setDeployPath( e.target.value ) } + fullWidth/> + setDeployUser( e.target.value ) } + fullWidth/> + + + + +
+
+
+
+
- Repositories - ( - - ), - }, - ]} - data={repos} - enableRowActions - renderRowActions={({ row }) => ( - - )} - /> + - {message && {message}} + { message && { message } }
); }; -- 2.43.0