Skip to content

Commit

Permalink
Feature/rel1.7 (#338)
Browse files Browse the repository at this point in the history
* #309: added node type P4 Switch in Slice Builder

* #279: added slice parser support for FPGA

* #327: added expiration date to the reminder message

* #327: updated pagination component to support larger dataset

* #327: updated pagination component for all tablles

* #317: added prototype UI for Blurb and Dynamic metricx"

* #317: completed prototype for homepage blurb and dynamic metric

* #327: fixed pagination issue

* #328: added project funding fields to the new project form

* #328: added an independent component for adding fundings"

* #328: updated new project page with multiple fundings feature

* #328: lifted fundings state up to the new project form

* #375: connected Core API and Orchestrator API to display dynamic data

* #328: updated funding info params passing between components

* #328: updated API param names for adding funding info

* #328: added communities fields to project profile page

* 328: updated new project form/ project profile page style

* #328: fixed params passing issues

* #328: updated project profile page layout

* #328: added public project list page for anonymous users

* #328: added public project profile page for anonymous users

* #328: added link to community tag on public project profile

* #328: updated project list table and project proile

* #332: support start time for creating a new slice

* #332: added independent calendar component for picking lease start time

* #322: added slice state of AllocatedOK and AllocatedError

* #332: added model availabilties to site detail page

* #328: completed project description Wysiwyg feature

* #332: added host level resource information to site detail page

* #332: updated site detail page

* #328: added multiselect filter of community tags on public project page

* #328: updated public project list with dropdown search toolbar

* #332: refactored code for site detail page

* #332: added accordion style to site detail page for resources per worker

* #332: added number of hosts and sorted hosts by name

* #333: added latency monitor tool and the badge for tab header

* #333: updated the url to include hash and reflect which tab

* #328: merged three project membership tabs into one

* #332: added PTP cabability to site detail page

* #332: added start time and end time filter for site detail page

* #328: added conditional rendering for funding information

* #328: updated community filter to include all sub-domains

* #335: added jupyterhub access check to the navbar item

* #327: updated Paul's photo on the leadership page

* #332: added refresh/reset feature on site detail page

* #328: updated project profile page to include funding/ community info

* #328: added Artifact Manager to Experiments page

* #335: updated jupyterhub no access UI display logic

* #337: updated funding opportunities

* #328: updated private project list with updated filter toolbar

* #332: fixed site detail page issue

* #328: fixed project filter toolbar issue

* #332: updated calendar component props

* 333: added description for Latency Monitor tool

* #332: updated maint worker color style

* #332: removed mock data

* #328: fixed project search issue on navbar

* #335: updated jupyerhub access logic
  • Loading branch information
yaxue1123 authored Jul 18, 2024
1 parent 9f41956 commit 7de61e9
Show file tree
Hide file tree
Showing 80 changed files with 3,499 additions and 898 deletions.
285 changes: 284 additions & 1 deletion package-lock.json

Large diffs are not rendered by default.

6 changes: 6 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
"@fortawesome/free-regular-svg-icons": "^5.15.3",
"@fortawesome/free-solid-svg-icons": "^5.15.1",
"@fortawesome/react-fontawesome": "^0.1.12",
"@radix-ui/react-accordion": "^1.1.2",
"@testing-library/jest-dom": "^5.16.2",
"@testing-library/react": "^12.1.3",
"@testing-library/user-event": "^7.2.1",
Expand All @@ -28,13 +29,17 @@
"jquery": "^3.5.1",
"lodash": "^4.17.21",
"moment": "^2.29.4",
"moment-range": "^4.0.2",
"multiselect-react-dropdown": "^2.0.25",
"popper.js": "^1.16.1",
"prop-types": "^15.7.2",
"react": "^16.14.0",
"react-animated-number": "^0.4.4",
"react-bootstrap": "^1.5.0",
"react-cookie-consent": "^6.2.1",
"react-copy-to-clipboard": "^5.0.4",
"react-cytoscapejs": "^1.2.1",
"react-daterange-picker": "^2.0.1",
"react-datetime-picker": "^3.5.0",
"react-dom": "^16.14.0",
"react-dropzone": "^14.2.3",
Expand All @@ -45,6 +50,7 @@
"react-scripts": "^5.0.0",
"react-select": "^5.7.4",
"react-simple-maps": "^2.3.0",
"react-simple-wysiwyg": "^3.0.2",
"react-toastify": "^6.2.0",
"reactstrap": "^8.6.0",
"sass": "^1.32.13",
Expand Down
2 changes: 1 addition & 1 deletion public/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
content="FABRIC Portal"
/>
<link rel="manifest" href="%PUBLIC_URL%/manifest.json" />
<title>Fabric Portal</title>
<title>FABRIC Portal</title>
</head>
<body>
<noscript>You need to enable JavaScript to run this app.</noscript>
Expand Down
21 changes: 18 additions & 3 deletions src/App.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import { BrowserRouter as Router, Routes, Route } from "react-router-dom";
import { getWhoAmI } from "./services/peopleService.js";
import { getCurrentUser } from "./services/peopleService.js";
import { getActiveMaintenanceNotice } from "./services/announcementService.js";
import checkGlobalRoles from "./utils/checkGlobalRoles";
import { default as portalData } from "./services/portalData.json";
import Home from "./pages/Home";
import Resources from "./pages/Resources";
Expand All @@ -12,6 +13,8 @@ import AUP from "./pages/static/AUP";
import CookiePolicy from "./pages/static/CookiePolicy";
import PrivacyPolicy from "./pages/static/PrivacyPolicy";
import Experiments from "./pages/Experiments";
import PublicProjectsList from "./components/Project/Public/PublicProjectsList.jsx";
import PublicProjectProfile from "./components/Project/Public/PublicProjectProfile.jsx";
import SliceViewer from "./pages/SliceViewer";
import SliceEditor from "./pages/SliceEditor";
import NewSliceForm from "./pages/NewSliceForm";
Expand All @@ -20,6 +23,7 @@ import User from "./pages/User";
import PublicUserProfile from "./components/UserProfile/PublicUserProfile.jsx";
import SiteDetailPage from "./components/Resource/SiteDetailPage.jsx";
import NotFound from "./pages/static/NotFound";
import JupyterHubAccess from "./pages/static/JupyterHubAccess";
import LoginRequired from "./pages/static/LoginRequired";
import Help from "./pages/static/Help";
import AboutFABRIC from "./pages/static/AboutFABRIC.jsx";
Expand Down Expand Up @@ -48,7 +52,13 @@ class App extends React.Component {
activeNotices: [],
showSessionTimeoutModal1: false,
showSessionTimeoutModal2: false,
searchQuery: ""
searchQuery: "",
globalRoles: {
isProjectLead: false,
isFacilityOperator: false,
isActiveUser: false,
isJupterhubUser: true
},
};

checkNotExpired = (start, end) => {
Expand Down Expand Up @@ -82,6 +92,7 @@ class App extends React.Component {
localStorage.setItem("userEmail", user.email);
try {
const { data: res } = await getCurrentUser();
this.setState({globalRoles: checkGlobalRoles(res.results[0])});
localStorage.setItem("bastionLogin", res.results[0].bastion_login);
// after user logs in for 3hr55min, pop up first session time-out modal
const sessionTimeoutInterval1 = setInterval(() =>
Expand Down Expand Up @@ -130,7 +141,7 @@ class App extends React.Component {
}

render() {
const { userName, userEmail, userStatus, searchQuery,
const { userName, userEmail, userStatus, searchQuery, globalRoles,
showSessionTimeoutModal1, showSessionTimeoutModal2 } = this.state;
return (
<div className="App">
Expand All @@ -139,6 +150,7 @@ class App extends React.Component {
userName={userName}
userEmail={userEmail}
userStatus={userStatus}
globalRoles={globalRoles}
searchQuery={searchQuery}
onQueryChange={this.handleQueryChange}
/>
Expand Down Expand Up @@ -170,6 +182,7 @@ class App extends React.Component {
<Route path="/logout" element={<Home />} />
<Route path="/login-required" element={<LoginRequired />} />
<Route path="/aup" element={<AUP />} />
<Route path="/jupyter-no-access" element={<JupyterHubAccess />} />
<Route path="/sites/:id" element={<SiteDetailPage />} />
<Route path="/cookie-policy" element={<CookiePolicy />} />
<Route path="/privacy-policy" element={<PrivacyPolicy />} />
Expand All @@ -186,11 +199,13 @@ class App extends React.Component {
<Route path="/help" element={<Help />} />
<Route path="/check-cookie" element={<CheckCookie />} />
<Route path="/slice-editor" element={<SliceEditor />} />
<Route path="/experiments/public-projects" element={<PublicProjectsList />} />
<Route path="/experiments/public-projects/:id" element={<PublicProjectProfile />} />
<Route element={<ProtectedRoutes />}>
<Route path="/slices/:slice_id/:project_id" element={<SliceViewer />} />
<Route path="/new-slice/:project_id" element={<NewSliceForm />} />
<Route path="/projects/:id" element={<ProjectForm />} />
<Route path="/experiments" element={<Experiments userStatus={userStatus}/>} />
<Route path="/experiments" element={<Experiments userStatus={userStatus} globalRoles={globalRoles} />} />
<Route path="/users/:id" element={<PublicUserProfile userStatus={userStatus}/>} />
<Route path="/user" element={<User userStatus={userStatus}/>} />
<Route
Expand Down
37 changes: 37 additions & 0 deletions src/components/Experiment/ArtifactManager.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
import React from "react";
import { default as portalData } from "../../services/portalData.json";
import { default as config } from "../../config.json";

class ArtifactManager extends React.Component {
render() {
return (
<div className="col-9">
<div>
<h1 className="mb-4">Artifact Manager</h1>
<div className="alert alert-primary mb-2" role="alert">
Please consult &nbsp;
<a
href={portalData.learnArticles.guideToUseArtifactManager}
target="_blank"
rel="noreferrer"
>
this guide
</a>&nbsp;
for FABRIC Artifact Manager.
</div>
<a
href={config.artifactManagerManagerAppUrl}
className="btn btn-outline-primary my-2"
target="_blank"
rel="noreferrer"
>
<i className="fa fa-sign-in mr-2"></i>
Open Artifact Manager
</a>
</div>
</div>
)
}
}

export default ArtifactManager;
Loading

0 comments on commit 7de61e9

Please sign in to comment.