diff --git a/client/src/menu-items/pages.jsx b/client/src/menu-items/pages.jsx index 9fc88a3..cdd1949 100644 --- a/client/src/menu-items/pages.jsx +++ b/client/src/menu-items/pages.jsx @@ -16,24 +16,24 @@ const pages = { type: 'group', children: [ { - id: 'proxy', - title: 'Proxy Routes', + id: 'url', + title: 'URLs', type: 'item', - url: '/ui/config/proxy', + url: '/ui/config-url', icon: icons.NodeExpandOutlined, }, { id: 'users', title: 'Manage Users', type: 'item', - url: '/ui/config/users', + url: '/ui/config-users', icon: icons.ProfileOutlined, }, { id: 'config', title: 'Configuration', type: 'item', - url: '/ui/config/general', + url: '/ui/config-general', icon: icons.SettingOutlined, } ] diff --git a/client/src/pages/config/users/containerPicker.jsx b/client/src/pages/config/users/containerPicker.jsx index 813c479..055a38e 100644 --- a/client/src/pages/config/users/containerPicker.jsx +++ b/client/src/pages/config/users/containerPicker.jsx @@ -29,6 +29,8 @@ import RestartModal from './restart'; import Autocomplete from '@mui/material/Autocomplete'; import CircularProgress from '@mui/material/CircularProgress'; +import defaultport from '../../servapps/defaultport.json'; + import * as API from '../../../api'; export function CosmosContainerPicker({formik, lockTarget, TargetContainer, onTargetChange}) { @@ -53,7 +55,7 @@ export function CosmosContainerPicker({formik, lockTarget, TargetContainer, onTa if(preview) { let protocols = preview.split("://") let p1_ = protocols.length > 1 ? protocols[1] : protocols[0] - console.log("p1_", p1_) + targetResult = { container: '/' + p1_.split(":")[0], port: p1_.split(":")[1], @@ -76,6 +78,37 @@ export function CosmosContainerPicker({formik, lockTarget, TargetContainer, onTa }) setPortsOptions(portsTemp) + targetResult.port = '80' + + if(portsTemp.length > 0) { + // pick best default port + // set default to first port + targetResult.port = portsTemp[0] + // first, check if a manual override exists + let override = Object.keys(defaultport.overrides).find((key) => { + let keyMatch = new RegExp(key, "i"); + return newContainer.Image.match(keyMatch) && portsTemp.includes(defaultport.overrides[key]) + }); + + if(override) { + targetResult.port = defaultport.overrides[override] + } else { + // if not, check the default list of common ports + let priorityList = defaultport.priority; + priorityList.find((_portReg) => { + return portsTemp.find((portb) => { + let portReg = new RegExp(_portReg, "i"); + if(portb.toString().match(portReg)) { + targetResult.port = portb + return true; + } + }) + }) + } + } + + formik.setFieldValue(name, getTarget()); + if(newContainer.NetworkSettings.Networks["bridge"]) { setIsOnBridge(true); } @@ -186,26 +219,27 @@ export function CosmosContainerPicker({formik, lockTarget, TargetContainer, onTa {(portsOptions.length > 0) ? (<> Container Port - (option))} placeholder='Select a port' - onChange={(event) => { - targetResult.port = event.target.value + freeSolo + filterOptions={(x) => x} // disable filtering + getOptionLabel={(option) => '' + option} + isOptionEqualToValue={(option, value) => { + return ('' + option) === value + }} + onChange={(event, newValue) => { + targetResult.port = newValue formik.setFieldValue(name, getTarget()) }} - > - {portsOptions.map((option) => ( - - {option} - - ))} - - {targetResult.port == '' && + renderInput={(params) => } + /> + {targetResult.port == '' && targetResult.port == 0 && Please select a port } ) : ''} diff --git a/client/src/pages/config/users/proxyman.jsx b/client/src/pages/config/users/proxyman.jsx index b51c91f..8e403fa 100644 --- a/client/src/pages/config/users/proxyman.jsx +++ b/client/src/pages/config/users/proxyman.jsx @@ -122,8 +122,8 @@ const ProxyManagement = () => { }}>Refresh   + }}>Confirm } @@ -278,13 +278,13 @@ const ServeApps = () => { } - Proxies + URLs {getContainersRoutes(app.Names[0].replace('/', '')).map((route) => { return <> { if(route.UseHost) @@ -293,21 +293,33 @@ const ServeApps = () => { window.open(window.location.origin + route.PathPrefix, '_blank'); }} onDelete={() => { - window.open('/ui/config/proxy#'+route.Name, '_blank'); + window.open('/ui/config-url#'+route.Name, '_blank'); }} deleteIcon={} /> })} - {getContainersRoutes(app.Names[0].replace('/', '')).length == 0 && - } + {/* {getContainersRoutes(app.Names[0].replace('/', '')).length == 0 && */} + } + onClick={() => { + setOpenModal(app); + }} + onDelete={() => { + setOpenModal(app); + }} + /> + {/* } */} - + {/* - + */} }) diff --git a/client/src/routes/MainRoutes.jsx b/client/src/routes/MainRoutes.jsx index aab4463..f6e4188 100644 --- a/client/src/routes/MainRoutes.jsx +++ b/client/src/routes/MainRoutes.jsx @@ -41,15 +41,15 @@ const MainRoutes = { element: }, { - path: '/ui/config/users', + path: '/ui/config-users', element: }, { - path: '/ui/config/general', + path: '/ui/config-general', element: }, { - path: '/ui/config/proxy', + path: '/ui/config-url', element: }, ] diff --git a/client/src/themes/theme/index.jsx b/client/src/themes/theme/index.jsx index 03347aa..89f8540 100644 --- a/client/src/themes/theme/index.jsx +++ b/client/src/themes/theme/index.jsx @@ -1,6 +1,9 @@ // ==============================|| PRESET THEME - THEME SELECTOR ||============================== // +import { purple, pink, deepPurple } from '@mui/material/colors'; + const Theme = (colors) => { + console.log(colors) const { blue, red, gold, cyan, green, grey } = colors; const greyColors = { 0: grey[0], @@ -25,33 +28,10 @@ const Theme = (colors) => { return { primary: { - lighter: '#C8A2C8', - 100: '#B785B7', - 200: '#B785B7', - light: '#A668A6', - 400: '#A668A6', - main: '#8D538D', - dark: '#704270', - 700: '#533153', - darker:'#362036', - 900: '#1A0E1A', - contrastText + main: purple[400], }, secondary: { - lighter: greyColors[100], - 100: greyColors[100], - 200: greyColors[200], - light: greyColors[300], - 400: greyColors[400], - main: greyColors[500], - 600: greyColors[600], - dark: greyColors[700], - 800: greyColors[800], - darker: greyColors[900], - A100: greyColors[0], - A200: greyColors.A400, - A300: greyColors.A700, - contrastText: greyColors[0] + main: deepPurple[100] }, error: { lighter: red[0], diff --git a/package.json b/package.json index dba5103..136c741 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cosmos-server", - "version": "0.1.14", + "version": "0.1.15", "description": "", "main": "test-server.js", "bugs": {