diff --git a/Dockerfile b/Dockerfile index 9d27635b5..2f13e1b59 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -ARG SERVER_VERSION=v0.19.1 +ARG SERVER_VERSION=v0.21.0 # Builder image to compile the website FROM ubuntu AS builder @@ -19,7 +19,7 @@ RUN apt-get update \ && corepack prepare yarn@stable --activate # bump to update website -ENV WEBSITE_VERSION 0.13.0 +ENV WEBSITE_VERSION 0.14.0 COPY . /workdir RUN /usr/bin/yarn --cwd website \ diff --git a/configuration/application.yml b/configuration/application.yml index a3b4619a2..854a7d23e 100644 --- a/configuration/application.yml +++ b/configuration/application.yml @@ -25,9 +25,6 @@ server: spring: application: name: openvsx-server - autoconfigure: - # don't send traces to Zipkin - exclude: org.springframework.boot.actuate.autoconfigure.tracing.zipkin.ZipkinAutoConfiguration config: import: file:${DEPLOYMENT_CONFIG} cache: @@ -84,7 +81,7 @@ management: exposure: include: - health - # - prometheus + - prometheus tracing: sampling: probability: 0.1 diff --git a/configuration/ehcache.xml b/configuration/ehcache.xml index c0752420c..13030ae2c 100644 --- a/configuration/ehcache.xml +++ b/configuration/ehcache.xml @@ -80,4 +80,40 @@ 8 + + + 1 + + + + org.eclipse.openvsx.cache.ExpiredFileListener + ASYNCHRONOUS + UNORDERED + EXPIRED + EVICTED + REMOVED + + + + 250 + + + + + 1 + + + + org.eclipse.openvsx.cache.ExpiredFileListener + ASYNCHRONOUS + UNORDERED + EXPIRED + EVICTED + REMOVED + + + + 50 + + \ No newline at end of file diff --git a/website/package.json b/website/package.json index f6260118c..6619cf8fd 100644 --- a/website/package.json +++ b/website/package.json @@ -6,7 +6,7 @@ "repository": "https://github.com/eclipse/open-vsx.org", "license": "EPL-2.0", "dependencies": { - "openvsx-webui": "0.13.0" + "openvsx-webui": "0.14.0" }, "peerDependencies": { "@babel/core": "^7.0.0" @@ -17,7 +17,7 @@ "@types/react-dom": "^18.2.6", "@types/react-router-dom": "^5.3.3", "css-loader": "^6.8.1", - "express": "^4.21.1", + "express": "^4.21.2", "source-map-loader": "^4.0.1", "style-loader": "^3.3.3", "typescript": "~5.1.6", diff --git a/website/src/menu-content.tsx b/website/src/menu-content.tsx index e0ea9fc03..d9fadb183 100644 --- a/website/src/menu-content.tsx +++ b/website/src/menu-content.tsx @@ -8,8 +8,8 @@ * SPDX-License-Identifier: EPL-2.0 ********************************************************************************/ -import React, { FunctionComponent, PropsWithChildren, useState, useRef } from 'react'; -import { Theme, Typography, Menu, MenuItem, Link, Button, Accordion, AccordionDetails, AccordionSummary } from '@mui/material'; +import React, { FunctionComponent, useState, useRef, useContext } from 'react'; +import { Theme, Typography, Menu, MenuItem, Link, Button, Accordion, AccordionDetails, AccordionSummary, IconButton } from '@mui/material'; import { styled } from '@mui/material/styles'; import { Link as RouteLink } from 'react-router-dom'; import ExpandMoreIcon from '@mui/icons-material/ExpandMore'; @@ -22,33 +22,41 @@ import PublishIcon from '@mui/icons-material/Publish'; import GroupWorkIcon from '@mui/icons-material/GroupWork'; import PeopleAltIcon from '@mui/icons-material/PeopleAlt'; import HubIcon from '@mui/icons-material/Hub'; +import AccountBoxIcon from '@mui/icons-material/AccountBox'; import { UserSettingsRoutes } from 'openvsx-webui'; +import { MainContext } from 'openvsx-webui/lib/context'; +import { MobileMenuItem, itemIcon, MobileMenuItemText, MobileUserAvatar, headerItem, MenuLink, MenuRouteLink } from 'openvsx-webui/lib/default/menu-content' +import { UserAvatar } from 'openvsx-webui/lib/pages/user/avatar'; //-------------------- Mobile View --------------------// -const MobileMenuItem = styled(MenuItem)({ - cursor: 'auto', - '&>a': { - textDecoration: 'none' - } -}); - -const itemIcon = { - mr: 1, - width: '16px', - height: '16px', -}; - -const MobileMenuItemText: FunctionComponent = ({ children }) => { - return ( - - {children} - - ); -}; - export const MobileMenuContent: FunctionComponent = () => { + const {service, user} = useContext(MainContext) return <> + { + user + ? + : + + + + Log In + + + + } + { + !location.pathname.startsWith(UserSettingsRoutes.ROOT) + ? + + + + Publish Extension + + + + : null + } @@ -119,45 +127,17 @@ export const MobileMenuContent: FunctionComponent = () => { - { - !location.pathname.startsWith(UserSettingsRoutes.ROOT) - ? - - - - Publish Extension - - - - : null - } ; } //-------------------- Default View --------------------// -const headerItem = ({ theme }: { theme: Theme }) => ({ - margin: theme.spacing(2.5), - color: theme.palette.text.primary, - textDecoration: 'none', - fontSize: '1.1rem', - fontFamily: theme.typography.fontFamily, - fontWeight: theme.typography.fontWeightLight, - letterSpacing: 1, - '&:hover': { - color: theme.palette.secondary.main, - textDecoration: 'none' - } -}); - const headerTypography = ({ theme }: { theme: Theme }) => ({ ...headerItem({theme}), cursor: 'pointer' }); -const MenuLink = styled(Link)(headerItem); -const MenuRouteLink = styled(RouteLink)(headerItem); const MenuTypography = styled(Typography)(headerTypography); const subMenuItem = ({ theme }: { theme: Theme }) => ({ @@ -176,6 +156,7 @@ const SubMenuLink = styled(Link)(subMenuLink); export const DefaultMenuContent: FunctionComponent = () => { + const {service, user} = useContext(MainContext) const [workingGroupMenuOpen, setWorkingGroupMenuOpen] = useState(false); const workingGroupMenuEl = useRef(null); const toggleWorkingGroupMenu = () => setWorkingGroupMenuOpen(!workingGroupMenuOpen); @@ -210,5 +191,16 @@ export const DefaultMenuContent: FunctionComponent = () => { + { + user ? + + : + + + + } ; } diff --git a/website/yarn.lock b/website/yarn.lock index 6f936d91f..c5706e52d 100644 --- a/website/yarn.lock +++ b/website/yarn.lock @@ -1703,9 +1703,9 @@ __metadata: languageName: node linkType: hard -"express@npm:^4.21.1": - version: 4.21.1 - resolution: "express@npm:4.21.1" +"express@npm:^4.21.2": + version: 4.21.2 + resolution: "express@npm:4.21.2" dependencies: accepts: "npm:~1.3.8" array-flatten: "npm:1.1.1" @@ -1726,7 +1726,7 @@ __metadata: methods: "npm:~1.1.2" on-finished: "npm:2.4.1" parseurl: "npm:~1.3.3" - path-to-regexp: "npm:0.1.10" + path-to-regexp: "npm:0.1.12" proxy-addr: "npm:~2.0.7" qs: "npm:6.13.0" range-parser: "npm:~1.2.1" @@ -1738,7 +1738,7 @@ __metadata: type-is: "npm:~1.6.18" utils-merge: "npm:1.0.1" vary: "npm:~1.1.2" - checksum: 10/5d4a36dd03c1d1cce93172e9b185b5cd13a978d29ee03adc51cd278be7b4a514ae2b63e2fdaec0c00fdc95c6cfb396d9dd1da147917ffd337d6cd0778e08c9bc + checksum: 10/34571c442fc8c9f2c4b442d2faa10ea1175cf8559237fc6a278f5ce6254a8ffdbeb9a15d99f77c1a9f2926ab183e3b7ba560e3261f1ad4149799e3412ab66bd1 languageName: node linkType: hard @@ -2330,11 +2330,11 @@ __metadata: linkType: hard "nanoid@npm:^3.3.6": - version: 3.3.6 - resolution: "nanoid@npm:3.3.6" + version: 3.3.8 + resolution: "nanoid@npm:3.3.8" bin: nanoid: bin/nanoid.cjs - checksum: 10/67235c39d1bc05851383dadde5cf77ae1c90c2a1d189e845c7f20f646f0488d875ad5f5226bbba072a88cebbb085a3f784a6673117daf785bdf614a852550362 + checksum: 10/2d1766606cf0d6f47b6f0fdab91761bb81609b2e3d367027aff45e6ee7006f660fb7e7781f4a34799fe6734f1268eeed2e37a5fdee809ade0c2d4eb11b0f9c40 languageName: node linkType: hard @@ -2398,8 +2398,8 @@ __metadata: "@types/react-dom": "npm:^18.2.6" "@types/react-router-dom": "npm:^5.3.3" css-loader: "npm:^6.8.1" - express: "npm:^4.21.1" - openvsx-webui: "npm:0.13.0" + express: "npm:^4.21.2" + openvsx-webui: "npm:0.14.0" source-map-loader: "npm:^4.0.1" style-loader: "npm:^3.3.3" typescript: "npm:~5.1.6" @@ -2420,9 +2420,9 @@ __metadata: languageName: node linkType: hard -"openvsx-webui@npm:0.13.0": - version: 0.13.0 - resolution: "openvsx-webui@npm:0.13.0" +"openvsx-webui@npm:0.14.0": + version: 0.14.0 + resolution: "openvsx-webui@npm:0.14.0" dependencies: "@emotion/react": "npm:^11.11.1" "@emotion/styled": "npm:^11.11.0" @@ -2448,7 +2448,7 @@ __metadata: react-router-dom: "npm:^6.14.1" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10/b0245fd107f2b88d86cf7fea5a9ded80ad9084a13fdff16904614f5bdeb9f750b916feb976748eee9da0e230065b0d9fc06f789f74153f21005d16eef57c1f07 + checksum: 10/e2128612aebd8d42d2bb9399d4adce64c3efb812b60f53c57cefc625ce52e60c36bd7fdd9c1cb186f13f774bb6e0e6f7c0530cc428e9a364ad8e1c533e930abe languageName: node linkType: hard @@ -2526,10 +2526,10 @@ __metadata: languageName: node linkType: hard -"path-to-regexp@npm:0.1.10": - version: 0.1.10 - resolution: "path-to-regexp@npm:0.1.10" - checksum: 10/894e31f1b20e592732a87db61fff5b95c892a3fe430f9ab18455ebe69ee88ef86f8eb49912e261f9926fc53da9f93b46521523e33aefd9cb0a7b0d85d7096006 +"path-to-regexp@npm:0.1.12": + version: 0.1.12 + resolution: "path-to-regexp@npm:0.1.12" + checksum: 10/2e30f6a0144679c1f95c98e166b96e6acd1e72be9417830fefc8de7ac1992147eb9a4c7acaa59119fb1b3c34eec393b2129ef27e24b2054a3906fc4fb0d1398e languageName: node linkType: hard