- Helping developers to validate their pv science algorithms,
+ Helping developers to validate their PV science algorithms,
and helping analysts select algorithms for use in their pipelines
diff --git a/src/app/modules/footer/footer.tsx b/src/app/modules/footer/footer.tsx
index 6cfa830..519a1a7 100644
--- a/src/app/modules/footer/footer.tsx
+++ b/src/app/modules/footer/footer.tsx
@@ -2,10 +2,9 @@
// *********** START OF IMPORTS ***********
import Link from 'next/link';
-import Image from 'next/image';
import React from 'react';
import styles from '@/app/modules/modulecss/footer.module.css';
-import {Grid, Typography} from '@mui/material';
+import {Grid} from '@mui/material';
import {Box} from '@mui/system';
// *********** MODULE IMPORTS ***********
@@ -39,45 +38,38 @@ export default function Footer() {
href="https://www6.slac.stanford.edu/
news-and-events/connect-with-us"
color="inherit">
- Community
+ SLAC
-
- Company
+ GISMo
-
- PVHub
-
+
+ Valhub
+
-
- Blog
+
+ News
-
- Resources
+
+ SETO
@@ -86,18 +78,11 @@ export default function Footer() {
-
-
-
-
+
+ This work is supported by the U.S. Department of Energy’s
+ Office of Energy Efficiency and Renewable Energy (EERE) under
+ the Solar Energy Technologies Office Award Number 38529.
+
diff --git a/src/app/modules/homepage/demo.json b/src/app/modules/homepage/demo.json
index 3989fcf..935063c 100644
--- a/src/app/modules/homepage/demo.json
+++ b/src/app/modules/homepage/demo.json
@@ -23,7 +23,7 @@
"created_by": "Jane Doe",
"execution_time": 49.543,
"status": "completed",
- "metrics": ["latitude", "longitude"],
+ "metrics": ["time_series", "latitude", "longitude"],
"error": 22.207
},
{
@@ -32,7 +32,7 @@
"created_by": "Bob",
"execution_time": 12.345,
"status": "completed",
- "metrics": ["data_sampling_frequency"],
+ "metrics": ["time_series", "data_sampling_frequency"],
"error": 20.207
},
{
diff --git a/src/app/modules/homepage/demoTable.tsx b/src/app/modules/homepage/demoTable.tsx
index 093a209..ac279bc 100644
--- a/src/app/modules/homepage/demoTable.tsx
+++ b/src/app/modules/homepage/demoTable.tsx
@@ -109,7 +109,7 @@ export default function DemoBoard() {
return (
diff --git a/src/app/modules/profile/actions.tsx b/src/app/modules/profile/actions.tsx
index 9f1e70c..c047411 100644
--- a/src/app/modules/profile/actions.tsx
+++ b/src/app/modules/profile/actions.tsx
@@ -14,3 +14,15 @@ import Elink from '@/app/modules/elink/elink';
// *********** REDUX IMPORTS ***********
// *********** END OF IMPORTS ***********
+
+/**
+ *
+ * @return {JSX.Element}
+ */
+export default function ProfileActions() {
+ return (
+
+ hi
+
+ );
+}
diff --git a/src/app/modules/profile/personal.tsx b/src/app/modules/profile/personal.tsx
index a11ee00..9f7935c 100644
--- a/src/app/modules/profile/personal.tsx
+++ b/src/app/modules/profile/personal.tsx
@@ -1,23 +1,9 @@
'use client';
// *********** START OF IMPORTS ***********
/* eslint-disable no-unused-vars */
-import React, {useEffect, useState} from 'react';
-import {
- Avatar,
- Card,
- CardContent,
- CardMedia,
- CircularProgress,
- Grid, Typography,
- TextField,
- Button,
- CardActions,
-} from '@mui/material';
-import {Box} from '@mui/system';
-import {styled} from '@mui/material/styles';
-import Dialog from '@mui/material/Dialog';
-import DialogContent from '@mui/material/DialogContent';
-import DialogAction from '@mui/material/DialogActions';
+import React, {useState} from 'react';
+import {Avatar} from '@mui/material';
+import {Button} from '@mui/material';
// *********** MODULE IMPORTS ***********
@@ -37,7 +23,10 @@ type UserDetails = {
firstName: string;
lastName: string;
githubLink: string;
- addtlLinks: string[];
+ webLinks: { [key: string]: string };
+ organization: string;
+ title: string;
+ profileImage: string;
}
// *********** END OF TYPES ***********
@@ -46,6 +35,132 @@ type UserDetails = {
*
* @return {JSX.Element}
*/
-export default function PersonalDetails() {
- return 'hi';
+export default function PersonalDetails({
+ userDetails,
+ userToken,
+}: {
+ userDetails: UserDetails,
+ userToken: string
+}) {
+ const [updateDialogOpen, setUpdateDialogOpen] = useState(false);
+ const urlUpdate = (
+ userToken !== null
+ ) && (
+ userToken !== undefined
+ ) ? '/account/update/' : '';
+
+ const handleTextChange = (setState: any) => (
+ event: React.ChangeEvent
+ ) => {
+ setState(event.target.value);
+ };
+
+ if (typeof window !== 'undefined') {
+ const host = window.location;
+ console.log(host);
+ }
+
+ const handleProfileUpdateClick = (userToken: any) => {
+ /*
+ const updatedProfile = {
+ email: emailLink === '' ? userDetails.email : emailLink,
+ githubLink: githubLink === '' ?
+ userDetails.githubLink : githubLink,
+ };
+ // todo: check return value
+ // eslint-disable-next-line no-unused-vars
+ const ret = UserService.updateUserProfile(
+ userToken.token, updatedProfile, urlUpdate
+ );
+ setUpdateDialogOpen(true);
+ */
+ };
+ return (
+
+
+
+
+
+
+ {userDetails.firstName} {userDetails.lastName}
+
+
+ {userDetails.title}
+
+
+
+
+
+
+ Username:
+
+ {userDetails.username}
+
+
+
+ Organization:
+
+ {userDetails.organization}
+
+
+
+ Profile Link:
+
+ {userDetails.organization}
+
+
+
+
+
+
+
+
+
+ Email:
+
+ {userDetails.email}
+
+
+
+
+
+ Github:
+
+
+
+ {Object.keys(userDetails.webLinks).map((link) => (
+
+ ))}
+
+
+
+ );
}
diff --git a/src/app/modules/profile/tasks.tsx b/src/app/modules/profile/tasks.tsx
index 9f1e70c..474f156 100644
--- a/src/app/modules/profile/tasks.tsx
+++ b/src/app/modules/profile/tasks.tsx
@@ -4,6 +4,7 @@
import React, {useEffect, useState} from 'react';
import DialogAction from '@mui/material/DialogActions';
import {useRouter} from 'next/navigation';
+import Link from 'next/link';
// *********** MODULE IMPORTS ***********
@@ -14,3 +15,51 @@ import Elink from '@/app/modules/elink/elink';
// *********** REDUX IMPORTS ***********
// *********** END OF IMPORTS ***********
+
+// *********** START OF TYPES ***********
+
+ type SubmittedTasks = [string, string][];
+
+// *********** END OF TYPES ***********
+
+/**
+ *
+ * @param {SubmittedTasks} submittedTasks array of tuples of task id and task name
+ * @return {JSX.Element}
+ */
+export default function ProfileTasks({
+ submittedTasks,
+}: {
+ submittedTasks: SubmittedTasks
+}) {
+ const generateLinks = (tasks: SubmittedTasks) => {
+ console.log(tasks);
+ if (tasks.length === 0) {
+ return No tasks submitted ;
+ }
+ return tasks.map(([id, name]) => (
+
+ {name}
+
+ ));
+ };
+ return (
+
+ {generateLinks(submittedTasks)}
+
+ );
+}