Skip to content

Commit 18a3966

Browse files
authored
Merge pull request #74 from unity-sds/develop
Merging `develop` to `main`
2 parents 746373c + be9c32c commit 18a3966

31 files changed

+423
-469
lines changed

CHANGELOG.md

+19-11
Original file line numberDiff line numberDiff line change
@@ -5,21 +5,29 @@ All notable changes to this project will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8-
## [0.9.0] (Unreleased)
8+
## [0.9.0] 2025-04-23
9+
- Changed project and venue information location. This information is now available in the navbar instead of on the homepage of the application [#59](https://github.com/unity-sds/unity-portal/issues/59)
910
- Changed Docker image build workflow is triggered when a tag is created and no longer triggered when code is merged to `main` or `features/*` branches [#51](https://github.com/unity-sds/unity-ui/issues/51)
1011
- Changed Docker image build workflow so that it uses the image name `unity-portal-application` instead of `unity-ui-application`
12+
- Rebranded the application's project references so that they state "MDPS" instead of "Unity" [#55](https://github.com/unity-sds/unity-portal/issues/55)
13+
- Rebranded the application and repo so that the "ui" is now known as the "portal" [#61](https://github.com/unity-sds/unity-portal/issues/61), [#64](https://github.com/unity-sds/unity-portal/issues/64)
14+
- Removed hard-coded links for all project's venues [#58](https://github.com/unity-sds/unity-portal/issues/58)
15+
- Fixed issue with basepath not set correctly after proxy label was updated from `ui` to `portal` [#68](https://github.com/unity-sds/unity-portal/issues/68)
16+
- Changed consumption of Health API endpoint so that it now captures information for three new fields, `componentCategory`, `componentType`, and `description` [#71](https://github.com/unity-sds/unity-portal/issues/71)
17+
- Updated home page view so that it only lists items that have a `componentType` of `ui` [#71](https://github.com/unity-sds/unity-portal/issues/71)
18+
- Fixed inconsistent routes being displayed when comparing the home page cards with what was shown in the main navigations application's menu [#75](https://github.com/unity-sds/unity-portal/issues/75)
1119

1220
## [0.8.0] 2025-01-14
1321
- Added support to report on when health API endpoint is not available in navbar and on health dashboard
1422
- Fixed clickable area of navbar menu items
1523
- Added support to hard code links for projects/venues
16-
- Added health check URL to health dashboard [#40](https://github.com/unity-sds/unity-ui/issues/40)
24+
- Added health check URL to health dashboard [#40](https://github.com/unity-sds/unity-portal/issues/40)
1725
- Fixed health dashboard column resizer element z-index
18-
- Added cards to homepage [#38](https://github.com/unity-sds/unity-ui/issues/38)
19-
- Updated router configuration to improve URL readability. URLs no longer contain router information using a hash (#39). [#39](https://github.com/unity-sds/unity-ui/issues/39
20-
- Updated home page route to be located at `/home` and the route `/` redirects to it. [#39](https://github.com/unity-sds/unity-ui/issues/39)
21-
- Updated application basename configuration to use the proxy name `ui` instead of `dashboard` [#45](https://github.com/unity-sds/unity-ui/issues/45)
22-
- Added hard-coded links for STAC Browser for the unity/dev and unity/test venues [#47](https://github.com/unity-sds/unity-ui/issues/47)
26+
- Added cards to homepage [#38](https://github.com/unity-sds/unity-portal/issues/38)
27+
- Updated router configuration to improve URL readability. URLs no longer contain router information using a hash (#39). [#39](https://github.com/unity-sds/unity-portal/issues/39
28+
- Updated home page route to be located at `/home` and the route `/` redirects to it. [#39](https://github.com/unity-sds/unity-portal/issues/39)
29+
- Updated application basename configuration to use the proxy name `ui` instead of `dashboard` [#45](https://github.com/unity-sds/unity-portal/issues/45)
30+
- Added hard-coded links for STAC Browser for the unity/dev and unity/test venues [#47](https://github.com/unity-sds/unity-portal/issues/47)
2331

2432
## [0.7.0] 2024-09-27
2533
- Updated node version lts/iron
@@ -32,12 +40,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
3240
- Various code cleanup and optimization activities
3341

3442
## [0.6.0] (unreleased)
35-
- Added Health Dashboard using static JSON file containing example health information. [#29](https://github.com/unity-sds/unity-ui/issues/29)
36-
- Updated navbar menu so that it is (partially) dynamic. External UI information is loaded via the Health JSON file. [#20](https://github.com/unity-sds/unity-ui/issues/20)
43+
- Added Health Dashboard using static JSON file containing example health information. [#29](https://github.com/unity-sds/unity-portal/issues/29)
44+
- Updated navbar menu so that it is (partially) dynamic. External UI information is loaded via the Health JSON file. [#20](https://github.com/unity-sds/unity-portal/issues/20)
3745

3846
## [0.5.0] 2024-04-15
39-
- Updated Navbar CSS styling to match Figma designs [#5](https://github.com/unity-sds/unity-ui/issues/5)
40-
- Added CI/CD workflow to build application as a docker image. [#21](https://github.com/unity-sds/unity-ui/issues/21)
47+
- Updated Navbar CSS styling to match Figma designs [#5](https://github.com/unity-sds/unity-portal/issues/5)
48+
- Added CI/CD workflow to build application as a docker image. [#21](https://github.com/unity-sds/unity-portal/issues/21)
4149
- Updated application build configuration. Stateful information has been removed from project configuration. Instead we now allow environment variables to be supplied to the container at startup which in turn get injected into the Unity UI Codebase. This is in support of moving to dynamic configuration of the application via Unity Marketplace. Related to [#3](https://github.com/unity-sds/unity-sds-portal/issues/3)
4250

4351
## [0.4.0] - 2023-12-13

index.html

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22
<html lang="en">
33
<head>
44
<meta charset="UTF-8" />
5-
<link rel="icon" type="image/svg+xml" href="/unity.svg" />
5+
<link rel="icon" type="image/svg+xml" href="/images/mdps-logo.svg" />
66
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
7-
<title>Unity</title>
7+
<title>Multi-Mission Data Processing System (MDPS)</title>
88
<script>window.global = window;</script>
99
<script type="module">
1010
import process from 'process';

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "unity-ui",
33
"private": true,
4-
"version": "0.8.0",
4+
"version": "0.9.0",
55
"type": "module",
66
"scripts": {
77
"dev": "vite",
File renamed without changes.

src/Config.tsx

+72-12
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,85 @@
1-
const Config = {
1+
import { Service } from "./state/slices/healthSlice";
2+
3+
type Config = {
4+
general: {
5+
appTitle:string,
6+
version:string,
7+
adminEmail:string,
8+
wwwDomain:string,
9+
basePath:string,
10+
project:string,
11+
venue:string,
12+
defaultRoutes:Service[]
13+
},
14+
auth: {
15+
oauthRedirectUri:string,
16+
oauthLogoutEndpoint:string,
17+
oauthProviderUrl:string,
18+
appAdminGroupName:string,
19+
appViewerGroupName:string,
20+
},
21+
cs: {
22+
healthEndpointUrl:string
23+
},
24+
ads: {
25+
url:string
26+
},
27+
sps: {
28+
endpoint:string
29+
}
30+
}
31+
32+
const Config:Config = {
233

334
['general']: {
35+
appTitle: "MDPS",
436
version: import.meta.env.VITE_UNITY_UI_VERSION,
5-
unity_admin_email: import.meta.env.VITE_ADMIN_EMAIL,
6-
www_domain: import.meta.env.VITE_WWW_DOMAIN,
7-
base_path: import.meta.env.VITE_BASE_PATH,
37+
adminEmail: import.meta.env.VITE_ADMIN_EMAIL,
38+
wwwDomain: import.meta.env.VITE_WWW_DOMAIN,
39+
basePath: import.meta.env.VITE_BASE_PATH,
840
project: import.meta.env.VITE_PROJECT,
9-
venue: import.meta.env.VITE_VENUE
41+
venue: import.meta.env.VITE_VENUE,
42+
defaultRoutes: [
43+
{
44+
componentName: "Health Dashboard",
45+
componentCategory: "",
46+
componentType: "ui",
47+
description: "Check the health status of services running in this venue.",
48+
healthChecks: [],
49+
healthCheckUrl: "",
50+
landingPageUrl: "/health-dashboard",
51+
nativeRoute: true,
52+
reportHealthStatus: false,
53+
route: "/health-dashboard",
54+
ssmKey: ""
55+
},
56+
{
57+
componentName: "Documentation (Gitbook)",
58+
componentCategory: "",
59+
componentType: "ui",
60+
description: "Documentation to help become familiar with the Unity platform.",
61+
healthChecks: [],
62+
healthCheckUrl: "",
63+
landingPageUrl: "https://unity-sds.gitbook.io/docs",
64+
nativeRoute: true,
65+
reportHealthStatus: false,
66+
route: "https://unity-sds.gitbook.io/docs",
67+
ssmKey: ""
68+
}
69+
]
1070
},
1171

1272
['auth']: {
13-
//oauth_client_id: import.meta.env.VITE_AUTH_OAUTH_CLIENT_ID,
14-
oauth_redirect_uri: import.meta.env.VITE_AUTH_OAUTH_REDIRECT_URI,
15-
oauth_logout_endpoint: import.meta.env.VITE_AUTH_OAUTH_LOGOUT_ENDPOINT,
16-
oauth_provider_url: import.meta.env.VITE_AUTH_OAUTH_PROVIDER_URL,
17-
app_admin_group_name: import.meta.env.VITE_AUTH_APP_ADMIN_GROUP_NAME,
18-
app_viewer_group_name: import.meta.env.VITE_AUTH_APP_APP_VIEWER_GROUP_NAME,
73+
//oauthClientId: import.meta.env.VITE_AUTH_OAUTH_CLIENT_ID,
74+
oauthRedirectUri: import.meta.env.VITE_AUTH_OAUTH_REDIRECT_URI,
75+
oauthLogoutEndpoint: import.meta.env.VITE_AUTH_OAUTH_LOGOUT_ENDPOINT,
76+
oauthProviderUrl: import.meta.env.VITE_AUTH_OAUTH_PROVIDER_URL,
77+
appAdminGroupName: import.meta.env.VITE_AUTH_APP_ADMIN_GROUP_NAME,
78+
appViewerGroupName: import.meta.env.VITE_AUTH_APP_APP_VIEWER_GROUP_NAME,
1979
},
2080

2181
['cs']: {
22-
health_endpoint: import.meta.env.VITE_HEALTH_API_ENDPOINT
82+
healthEndpointUrl: import.meta.env.VITE_HEALTH_API_ENDPOINT
2383
},
2484

2585
['ads']: {

src/Root.tsx

+6-6
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ import NotFound from "./routes/errors/not-found";
1414
import { useAppDispatch, useAppSelector } from "./state/hooks";
1515
import { useEffect, useState } from "react";
1616
import { getHealthData } from "./state/slices/healthSlice";
17-
import { formatRoute } from "./utils/strings";
1817
import { Progress } from "@nasa-jpl/react-stellar";
1918

2019
function Root() {
@@ -51,12 +50,12 @@ function Root() {
5150
}, [healthState, dispatch]);
5251

5352
return (
54-
<div className="unity-view-wrapper">
53+
<div className="mdps-view-wrapper">
5554
{
5655
loading && <>
57-
<div className="unity-view unity-view-with-status">
56+
<div className="mdps-view mdps-view-with-status">
5857
<div className="progressStatus">
59-
<h2>Setting up Unity UI Application</h2>
58+
<h2>Setting up Multi-Mission Data Processing System Portal Application</h2>
6059
<Progress />
6160
</div>
6261
</div>
@@ -65,11 +64,12 @@ function Root() {
6564
{
6665
!loading && <>
6766
<Navbar />
68-
<div className="unity-view unity-view-with-navbar">
67+
<div className="mdps-view mdps-view-with-navbar">
6968
<Routes>
7069
{
7170
healthState.items.map( (item, index) => {
72-
return <Route key={index} path={"/applications/" + formatRoute(item.componentName)} element={<WebView url={item.landingPageUrl} />} />
71+
if( !item.nativeRoute )
72+
return <Route key={index} path={item.route} element={<WebView url={item.landingPageUrl} />} />
7373
})
7474
}
7575
<Route path="/" element={<Navigate to="/home" replace={true} />} />
File renamed without changes.

src/components/Card/index.tsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -26,14 +26,14 @@ export const Card = ({
2626

2727
return (
2828
<Link to={route}>
29-
<span className="unity-card">
29+
<span className="mdps-card">
3030
<span className="header">
3131
<span className="title">{title}</span>
3232
<span className="icons">
3333
<Link to={url} target={"_blank"} onClick={ (e) => {onClickExternalHandler(e)}}><IconExternalLink /></Link>
3434
</span>
3535
</span>
36-
<div className="description">{description}</div>
36+
{ description && <div className="description">{description}</div> }
3737
<div className="footer">
3838
<Pill label={type}/>
3939
</div>

src/components/DocumentMeta/DocumentMeta.tsx

+3-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { Helmet } from 'react-helmet-async';
2+
import Config from '../../Config';
23

34
export type DocumentMetaProps = {
45
title: string;
@@ -8,10 +9,11 @@ export type DocumentMetaProps = {
89
export const DocumentMeta = (props:DocumentMetaProps) => {
910

1011
const {title, description} = props;
12+
const appTitle = Config["general"]["appTitle"];
1113

1214
return (
1315
<Helmet>
14-
<title>Unity | {title}</title>
16+
<title>{appTitle} | {title}</title>
1517
<meta name="description" content={description} />
1618
</Helmet>
1719
);

0 commit comments

Comments
 (0)