Compare commits
40 commits
974d86c2d9
...
baade40d77
Author | SHA1 | Date | |
---|---|---|---|
![]() |
baade40d77 | ||
![]() |
3bf0c34a5f | ||
![]() |
8690e381c8 | ||
![]() |
41e1c32ee0 | ||
![]() |
46c4a5dc92 | ||
![]() |
03e2be0a46 | ||
![]() |
39edc419df | ||
![]() |
027bce6dfc | ||
![]() |
da730a2d18 | ||
![]() |
dd370d86e3 | ||
![]() |
ca7e4c6189 | ||
![]() |
19e3567c78 | ||
![]() |
6a68ad1c3f | ||
![]() |
3047db28f6 | ||
![]() |
2d5de569ae | ||
![]() |
5a6fe1c472 | ||
![]() |
1b3660eb83 | ||
![]() |
69df212fde | ||
![]() |
434879c26c | ||
![]() |
c5d5c389dd | ||
![]() |
03f350f303 | ||
![]() |
7e319e34c9 | ||
![]() |
60774f6324 | ||
![]() |
db647c6e7c | ||
![]() |
45749afe69 | ||
![]() |
2cce3f3ab4 | ||
![]() |
a67e43e537 | ||
![]() |
ce5d6d2837 | ||
![]() |
f9260976df | ||
![]() |
5c0cf5fc33 | ||
![]() |
8a2724de5e | ||
![]() |
7aa83b1d99 | ||
![]() |
2c9d3baafa | ||
![]() |
a5f15e5c06 | ||
![]() |
c1aa0769bb | ||
![]() |
6be1060cff | ||
![]() |
42498ca1c4 | ||
![]() |
029fdd85b9 | ||
![]() |
8bb4a1c893 | ||
![]() |
7c51f586ce |
30 changed files with 773 additions and 11 deletions
|
@ -15,7 +15,7 @@ function Header({ username }: { username: string }): JSX.Element {
|
|||
>
|
||||
<Link to="/your-projects">
|
||||
<img
|
||||
src="/src/assets/TTIMElogo.png"
|
||||
src="/src/assets/Logo.svg"
|
||||
alt="TTIME Logo"
|
||||
className="w-11 h-14 cursor-pointer"
|
||||
/>
|
||||
|
|
59
frontend/src/Components/TimeReport.tsx
Normal file
59
frontend/src/Components/TimeReport.tsx
Normal file
|
@ -0,0 +1,59 @@
|
|||
function NewTimeReport(): JSX.Element {
|
||||
const activities = [
|
||||
"Development",
|
||||
"Meeting",
|
||||
"Administration",
|
||||
"Own Work",
|
||||
"Studies",
|
||||
"Testing",
|
||||
];
|
||||
|
||||
return (
|
||||
<>
|
||||
<div className="border-4 border-black bg-white flex flex-col justify-start min-h-[65vh] h-fit w-[50vw] rounded-3xl overflow-scroll space-y-[2vh] p-[30px] items-center">
|
||||
<input
|
||||
className="w-fill h-[5vh] font-sans text-[3vh] pl-[1vw] rounded-full text-center pt-[1vh] pb-[1vh] border-2 border-black"
|
||||
type="week"
|
||||
placeholder="Week"
|
||||
onKeyDown={(event) => {
|
||||
event.preventDefault();
|
||||
}}
|
||||
onPaste={(event) => {
|
||||
event.preventDefault();
|
||||
}}
|
||||
/>
|
||||
<table className="w-full text-center divide-y divide-x divide-white text-[30px]">
|
||||
<thead>
|
||||
<tr>
|
||||
<th className="w-1/2 py-2 border-b-2 border-black">Activity</th>
|
||||
<th className="w-1/2 py-2 border-b-2 border-black">
|
||||
Total Time (min)
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody className="divide-y divide-black">
|
||||
{activities.map((activity, index) => (
|
||||
<tr key={index} className="h-[10vh]">
|
||||
<td>{activity}</td>
|
||||
<td>
|
||||
<input
|
||||
type="number"
|
||||
min="0"
|
||||
className="border-2 border-black rounded-md text-center w-1/2"
|
||||
onKeyDown={(event) => {
|
||||
const keyValue = event.key;
|
||||
if (!/\d/.test(keyValue) && keyValue !== "Backspace")
|
||||
event.preventDefault();
|
||||
}}
|
||||
/>
|
||||
</td>
|
||||
</tr>
|
||||
))}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
export default NewTimeReport;
|
26
frontend/src/Pages/AdminPages/AdminAddProject.tsx
Normal file
26
frontend/src/Pages/AdminPages/AdminAddProject.tsx
Normal file
|
@ -0,0 +1,26 @@
|
|||
import BasicWindow from "../../Components/BasicWindow";
|
||||
import Button from "../../Components/Button";
|
||||
|
||||
function AdminAddProject(): JSX.Element {
|
||||
const content = <></>;
|
||||
|
||||
const buttons = (
|
||||
<>
|
||||
<Button
|
||||
text="Finish"
|
||||
onClick={(): void => {
|
||||
return;
|
||||
}}
|
||||
/>
|
||||
<Button
|
||||
text="Back"
|
||||
onClick={(): void => {
|
||||
return;
|
||||
}}
|
||||
/>
|
||||
</>
|
||||
);
|
||||
|
||||
return <BasicWindow username="Admin" content={content} buttons={buttons} />;
|
||||
}
|
||||
export default AdminAddProject;
|
26
frontend/src/Pages/AdminPages/AdminAddUser.tsx
Normal file
26
frontend/src/Pages/AdminPages/AdminAddUser.tsx
Normal file
|
@ -0,0 +1,26 @@
|
|||
import BasicWindow from "../../Components/BasicWindow";
|
||||
import Button from "../../Components/Button";
|
||||
|
||||
function AdminAddUser(): JSX.Element {
|
||||
const content = <></>;
|
||||
|
||||
const buttons = (
|
||||
<>
|
||||
<Button
|
||||
text="Finish"
|
||||
onClick={(): void => {
|
||||
return;
|
||||
}}
|
||||
/>
|
||||
<Button
|
||||
text="Back"
|
||||
onClick={(): void => {
|
||||
return;
|
||||
}}
|
||||
/>
|
||||
</>
|
||||
);
|
||||
|
||||
return <BasicWindow username="Admin" content={content} buttons={buttons} />;
|
||||
}
|
||||
export default AdminAddUser;
|
26
frontend/src/Pages/AdminPages/AdminChangeUsername.tsx
Normal file
26
frontend/src/Pages/AdminPages/AdminChangeUsername.tsx
Normal file
|
@ -0,0 +1,26 @@
|
|||
import BasicWindow from "../../Components/BasicWindow";
|
||||
import Button from "../../Components/Button";
|
||||
|
||||
function AdminChangeUsername(): JSX.Element {
|
||||
const content = <></>;
|
||||
|
||||
const buttons = (
|
||||
<>
|
||||
<Button
|
||||
text="Finish"
|
||||
onClick={(): void => {
|
||||
return;
|
||||
}}
|
||||
/>
|
||||
<Button
|
||||
text="Back"
|
||||
onClick={(): void => {
|
||||
return;
|
||||
}}
|
||||
/>
|
||||
</>
|
||||
);
|
||||
|
||||
return <BasicWindow username="Admin" content={content} buttons={buttons} />;
|
||||
}
|
||||
export default AdminChangeUsername;
|
26
frontend/src/Pages/AdminPages/AdminManageProjects.tsx
Normal file
26
frontend/src/Pages/AdminPages/AdminManageProjects.tsx
Normal file
|
@ -0,0 +1,26 @@
|
|||
import BasicWindow from "../../Components/BasicWindow";
|
||||
import Button from "../../Components/Button";
|
||||
|
||||
function AdminManageProjects(): JSX.Element {
|
||||
const content = <></>;
|
||||
|
||||
const buttons = (
|
||||
<>
|
||||
<Button
|
||||
text="Add Project"
|
||||
onClick={(): void => {
|
||||
return;
|
||||
}}
|
||||
/>
|
||||
<Button
|
||||
text="Back"
|
||||
onClick={(): void => {
|
||||
return;
|
||||
}}
|
||||
/>
|
||||
</>
|
||||
);
|
||||
|
||||
return <BasicWindow username="Admin" content={content} buttons={buttons} />;
|
||||
}
|
||||
export default AdminManageProjects;
|
26
frontend/src/Pages/AdminPages/AdminManageUsers.tsx
Normal file
26
frontend/src/Pages/AdminPages/AdminManageUsers.tsx
Normal file
|
@ -0,0 +1,26 @@
|
|||
import BasicWindow from "../../Components/BasicWindow";
|
||||
import Button from "../../Components/Button";
|
||||
|
||||
function AdminManageUsers(): JSX.Element {
|
||||
const content = <></>;
|
||||
|
||||
const buttons = (
|
||||
<>
|
||||
<Button
|
||||
text="Add User"
|
||||
onClick={(): void => {
|
||||
return;
|
||||
}}
|
||||
/>
|
||||
<Button
|
||||
text="Back"
|
||||
onClick={(): void => {
|
||||
return;
|
||||
}}
|
||||
/>
|
||||
</>
|
||||
);
|
||||
|
||||
return <BasicWindow username="Admin" content={content} buttons={buttons} />;
|
||||
}
|
||||
export default AdminManageUsers;
|
26
frontend/src/Pages/AdminPages/AdminProjectAddMember.tsx
Normal file
26
frontend/src/Pages/AdminPages/AdminProjectAddMember.tsx
Normal file
|
@ -0,0 +1,26 @@
|
|||
import BasicWindow from "../../Components/BasicWindow";
|
||||
import Button from "../../Components/Button";
|
||||
|
||||
function AdminProjectAddMember(): JSX.Element {
|
||||
const content = <></>;
|
||||
|
||||
const buttons = (
|
||||
<>
|
||||
<Button
|
||||
text="Add"
|
||||
onClick={(): void => {
|
||||
return;
|
||||
}}
|
||||
/>
|
||||
<Button
|
||||
text="Back"
|
||||
onClick={(): void => {
|
||||
return;
|
||||
}}
|
||||
/>
|
||||
</>
|
||||
);
|
||||
|
||||
return <BasicWindow username="Admin" content={content} buttons={buttons} />;
|
||||
}
|
||||
export default AdminProjectAddMember;
|
26
frontend/src/Pages/AdminPages/AdminProjectChangeUserRole.tsx
Normal file
26
frontend/src/Pages/AdminPages/AdminProjectChangeUserRole.tsx
Normal file
|
@ -0,0 +1,26 @@
|
|||
import BasicWindow from "../../Components/BasicWindow";
|
||||
import Button from "../../Components/Button";
|
||||
|
||||
function AdminProjectChangeUserRole(): JSX.Element {
|
||||
const content = <></>;
|
||||
|
||||
const buttons = (
|
||||
<>
|
||||
<Button
|
||||
text="Change"
|
||||
onClick={(): void => {
|
||||
return;
|
||||
}}
|
||||
/>
|
||||
<Button
|
||||
text="Back"
|
||||
onClick={(): void => {
|
||||
return;
|
||||
}}
|
||||
/>
|
||||
</>
|
||||
);
|
||||
|
||||
return <BasicWindow username="Admin" content={content} buttons={buttons} />;
|
||||
}
|
||||
export default AdminProjectChangeUserRole;
|
26
frontend/src/Pages/AdminPages/AdminProjectManageMembers.tsx
Normal file
26
frontend/src/Pages/AdminPages/AdminProjectManageMembers.tsx
Normal file
|
@ -0,0 +1,26 @@
|
|||
import BasicWindow from "../../Components/BasicWindow";
|
||||
import Button from "../../Components/Button";
|
||||
|
||||
function AdminProjectManageMembers(): JSX.Element {
|
||||
const content = <></>;
|
||||
|
||||
const buttons = (
|
||||
<>
|
||||
<Button
|
||||
text="Add Member"
|
||||
onClick={(): void => {
|
||||
return;
|
||||
}}
|
||||
/>
|
||||
<Button
|
||||
text="Back"
|
||||
onClick={(): void => {
|
||||
return;
|
||||
}}
|
||||
/>
|
||||
</>
|
||||
);
|
||||
|
||||
return <BasicWindow username="Admin" content={content} buttons={buttons} />;
|
||||
}
|
||||
export default AdminProjectManageMembers;
|
26
frontend/src/Pages/AdminPages/AdminProjectPage.tsx
Normal file
26
frontend/src/Pages/AdminPages/AdminProjectPage.tsx
Normal file
|
@ -0,0 +1,26 @@
|
|||
import BasicWindow from "../../Components/BasicWindow";
|
||||
import Button from "../../Components/Button";
|
||||
|
||||
function AdminProjectPage(): JSX.Element {
|
||||
const content = <></>;
|
||||
|
||||
const buttons = (
|
||||
<>
|
||||
<Button
|
||||
text="Delete"
|
||||
onClick={(): void => {
|
||||
return;
|
||||
}}
|
||||
/>
|
||||
<Button
|
||||
text="Back"
|
||||
onClick={(): void => {
|
||||
return;
|
||||
}}
|
||||
/>
|
||||
</>
|
||||
);
|
||||
|
||||
return <BasicWindow username="Admin" content={content} buttons={buttons} />;
|
||||
}
|
||||
export default AdminProjectPage;
|
20
frontend/src/Pages/AdminPages/AdminProjectStatistics.tsx
Normal file
20
frontend/src/Pages/AdminPages/AdminProjectStatistics.tsx
Normal file
|
@ -0,0 +1,20 @@
|
|||
import BasicWindow from "../../Components/BasicWindow";
|
||||
import Button from "../../Components/Button";
|
||||
|
||||
function AdminProjectStatistics(): JSX.Element {
|
||||
const content = <></>;
|
||||
|
||||
const buttons = (
|
||||
<>
|
||||
<Button
|
||||
text="Back"
|
||||
onClick={(): void => {
|
||||
return;
|
||||
}}
|
||||
/>
|
||||
</>
|
||||
);
|
||||
|
||||
return <BasicWindow username="Admin" content={content} buttons={buttons} />;
|
||||
}
|
||||
export default AdminProjectStatistics;
|
26
frontend/src/Pages/AdminPages/AdminProjectViewMemberInfo.tsx
Normal file
26
frontend/src/Pages/AdminPages/AdminProjectViewMemberInfo.tsx
Normal file
|
@ -0,0 +1,26 @@
|
|||
import BasicWindow from "../../Components/BasicWindow";
|
||||
import Button from "../../Components/Button";
|
||||
|
||||
function AdminProjectViewMemberInfo(): JSX.Element {
|
||||
const content = <></>;
|
||||
|
||||
const buttons = (
|
||||
<>
|
||||
<Button
|
||||
text="Remove"
|
||||
onClick={(): void => {
|
||||
return;
|
||||
}}
|
||||
/>
|
||||
<Button
|
||||
text="Back"
|
||||
onClick={(): void => {
|
||||
return;
|
||||
}}
|
||||
/>
|
||||
</>
|
||||
);
|
||||
|
||||
return <BasicWindow username="Admin" content={content} buttons={buttons} />;
|
||||
}
|
||||
export default AdminProjectViewMemberInfo;
|
26
frontend/src/Pages/AdminPages/AdminViewUserInfo.tsx
Normal file
26
frontend/src/Pages/AdminPages/AdminViewUserInfo.tsx
Normal file
|
@ -0,0 +1,26 @@
|
|||
import BasicWindow from "../../Components/BasicWindow";
|
||||
import Button from "../../Components/Button";
|
||||
|
||||
function AdminViewUserInfo(): JSX.Element {
|
||||
const content = <></>;
|
||||
|
||||
const buttons = (
|
||||
<>
|
||||
<Button
|
||||
text="Delete"
|
||||
onClick={(): void => {
|
||||
return;
|
||||
}}
|
||||
/>
|
||||
<Button
|
||||
text="Back"
|
||||
onClick={(): void => {
|
||||
return;
|
||||
}}
|
||||
/>
|
||||
</>
|
||||
);
|
||||
|
||||
return <BasicWindow username="Admin" content={content} buttons={buttons} />;
|
||||
}
|
||||
export default AdminViewUserInfo;
|
|
@ -1,5 +1,5 @@
|
|||
import Button from "../Components/Button";
|
||||
import Logo from "/src/assets/TTIMElogo.png";
|
||||
import Logo from "/src/assets/Logo.svg";
|
||||
import "./LoginPage.css";
|
||||
import { useEffect } from "react";
|
||||
import { Link } from "react-router-dom";
|
||||
|
|
26
frontend/src/Pages/ProjectManagerPages/PMChangeRole.tsx
Normal file
26
frontend/src/Pages/ProjectManagerPages/PMChangeRole.tsx
Normal file
|
@ -0,0 +1,26 @@
|
|||
import BasicWindow from "../../Components/BasicWindow";
|
||||
import Button from "../../Components/Button";
|
||||
|
||||
function ChangeRole(): JSX.Element {
|
||||
const content = <></>;
|
||||
|
||||
const buttons = (
|
||||
<>
|
||||
<Button
|
||||
text="Save"
|
||||
onClick={(): void => {
|
||||
return;
|
||||
}}
|
||||
/>
|
||||
<Button
|
||||
text="Back"
|
||||
onClick={(): void => {
|
||||
return;
|
||||
}}
|
||||
/>
|
||||
</>
|
||||
);
|
||||
|
||||
return <BasicWindow username="Admin" content={content} buttons={buttons} />;
|
||||
}
|
||||
export default ChangeRole;
|
20
frontend/src/Pages/ProjectManagerPages/PMOtherUsersTR.tsx
Normal file
20
frontend/src/Pages/ProjectManagerPages/PMOtherUsersTR.tsx
Normal file
|
@ -0,0 +1,20 @@
|
|||
import BasicWindow from "../../Components/BasicWindow";
|
||||
import Button from "../../Components/Button";
|
||||
|
||||
function PMOtherUsersTR(): JSX.Element {
|
||||
const content = <></>;
|
||||
|
||||
const buttons = (
|
||||
<>
|
||||
<Button
|
||||
text="Back"
|
||||
onClick={(): void => {
|
||||
return;
|
||||
}}
|
||||
/>
|
||||
</>
|
||||
);
|
||||
|
||||
return <BasicWindow username="Admin" content={content} buttons={buttons} />;
|
||||
}
|
||||
export default PMOtherUsersTR;
|
32
frontend/src/Pages/ProjectManagerPages/PMProjectMembers.tsx
Normal file
32
frontend/src/Pages/ProjectManagerPages/PMProjectMembers.tsx
Normal file
|
@ -0,0 +1,32 @@
|
|||
import BasicWindow from "../../Components/BasicWindow";
|
||||
import Button from "../../Components/Button";
|
||||
|
||||
function PMProjectMembers(): JSX.Element {
|
||||
const content = <></>;
|
||||
|
||||
const buttons = (
|
||||
<>
|
||||
<Button
|
||||
text="Time / Activity"
|
||||
onClick={(): void => {
|
||||
return;
|
||||
}}
|
||||
/>
|
||||
<Button
|
||||
text="Time / Role"
|
||||
onClick={(): void => {
|
||||
return;
|
||||
}}
|
||||
/>
|
||||
<Button
|
||||
text="Back"
|
||||
onClick={(): void => {
|
||||
return;
|
||||
}}
|
||||
/>
|
||||
</>
|
||||
);
|
||||
|
||||
return <BasicWindow username="Admin" content={content} buttons={buttons} />;
|
||||
}
|
||||
export default PMProjectMembers;
|
|
@ -0,0 +1,28 @@
|
|||
import BasicWindow from "../../Components/BasicWindow";
|
||||
import Button from "../../Components/Button";
|
||||
import TimeReport from "../../Components/TimeReport";
|
||||
|
||||
function PMTotalTimeActivity(): JSX.Element {
|
||||
const content = (
|
||||
<>
|
||||
<h1 className="font-bold text-[30px] mb-[20px]">
|
||||
Total Time Per Activity
|
||||
</h1>
|
||||
<TimeReport />
|
||||
</>
|
||||
);
|
||||
|
||||
const buttons = (
|
||||
<>
|
||||
<Button
|
||||
text="Back"
|
||||
onClick={(): void => {
|
||||
return;
|
||||
}}
|
||||
/>
|
||||
</>
|
||||
);
|
||||
|
||||
return <BasicWindow username="Admin" content={content} buttons={buttons} />;
|
||||
}
|
||||
export default PMTotalTimeActivity;
|
20
frontend/src/Pages/ProjectManagerPages/PMTotalTimeRole.tsx
Normal file
20
frontend/src/Pages/ProjectManagerPages/PMTotalTimeRole.tsx
Normal file
|
@ -0,0 +1,20 @@
|
|||
import BasicWindow from "../../Components/BasicWindow";
|
||||
import Button from "../../Components/Button";
|
||||
|
||||
function PMTotalTimeRole(): JSX.Element {
|
||||
const content = <></>;
|
||||
|
||||
const buttons = (
|
||||
<>
|
||||
<Button
|
||||
text="Back"
|
||||
onClick={(): void => {
|
||||
return;
|
||||
}}
|
||||
/>
|
||||
</>
|
||||
);
|
||||
|
||||
return <BasicWindow username="Admin" content={content} buttons={buttons} />;
|
||||
}
|
||||
export default PMTotalTimeRole;
|
20
frontend/src/Pages/ProjectManagerPages/PMUnsignedReports.tsx
Normal file
20
frontend/src/Pages/ProjectManagerPages/PMUnsignedReports.tsx
Normal file
|
@ -0,0 +1,20 @@
|
|||
import BasicWindow from "../../Components/BasicWindow";
|
||||
import Button from "../../Components/Button";
|
||||
|
||||
function PMUnsignedReports(): JSX.Element {
|
||||
const content = <></>;
|
||||
|
||||
const buttons = (
|
||||
<>
|
||||
<Button
|
||||
text="Back"
|
||||
onClick={(): void => {
|
||||
return;
|
||||
}}
|
||||
/>
|
||||
</>
|
||||
);
|
||||
|
||||
return <BasicWindow username="Admin" content={content} buttons={buttons} />;
|
||||
}
|
||||
export default PMUnsignedReports;
|
|
@ -0,0 +1,40 @@
|
|||
import BasicWindow from "../../Components/BasicWindow";
|
||||
import Button from "../../Components/Button";
|
||||
import TimeReport from "../../Components/TimeReport";
|
||||
|
||||
function PMViewUnsignedReport(): JSX.Element {
|
||||
const content = (
|
||||
<>
|
||||
<h1 className="font-bold text-[30px] mb-[20px]">
|
||||
Username's Time Report
|
||||
</h1>
|
||||
<TimeReport />
|
||||
</>
|
||||
);
|
||||
|
||||
const buttons = (
|
||||
<>
|
||||
<Button
|
||||
text="Sign"
|
||||
onClick={(): void => {
|
||||
return;
|
||||
}}
|
||||
/>
|
||||
<Button
|
||||
text="Save"
|
||||
onClick={(): void => {
|
||||
return;
|
||||
}}
|
||||
/>
|
||||
<Button
|
||||
text="Back"
|
||||
onClick={(): void => {
|
||||
return;
|
||||
}}
|
||||
/>
|
||||
</>
|
||||
);
|
||||
|
||||
return <BasicWindow username="Admin" content={content} buttons={buttons} />;
|
||||
}
|
||||
export default PMViewUnsignedReport;
|
32
frontend/src/Pages/UserPages/UserEditTimeReportPage.tsx
Normal file
32
frontend/src/Pages/UserPages/UserEditTimeReportPage.tsx
Normal file
|
@ -0,0 +1,32 @@
|
|||
import BasicWindow from "../../Components/BasicWindow";
|
||||
import Button from "../../Components/Button";
|
||||
import NewTimeReport from "../../Components/TimeReport";
|
||||
|
||||
function UserEditTimeReportPage(): JSX.Element {
|
||||
const content = (
|
||||
<>
|
||||
<h1 className="font-bold text-[30px] mb-[20px]">Edit Time Report</h1>
|
||||
<NewTimeReport />
|
||||
</>
|
||||
);
|
||||
|
||||
const buttons = (
|
||||
<>
|
||||
<Button
|
||||
text="Save"
|
||||
onClick={(): void => {
|
||||
return;
|
||||
}}
|
||||
/>
|
||||
<Button
|
||||
text="Back"
|
||||
onClick={(): void => {
|
||||
return;
|
||||
}}
|
||||
/>
|
||||
</>
|
||||
);
|
||||
|
||||
return <BasicWindow username="Admin" content={content} buttons={buttons} />;
|
||||
}
|
||||
export default UserEditTimeReportPage;
|
35
frontend/src/Pages/UserPages/UserNewTimeReportPage.tsx
Normal file
35
frontend/src/Pages/UserPages/UserNewTimeReportPage.tsx
Normal file
|
@ -0,0 +1,35 @@
|
|||
import BasicWindow from "../../Components/BasicWindow";
|
||||
import Button from "../../Components/Button";
|
||||
import NewTimeReport from "../../Components/TimeReport";
|
||||
import { Link } from "react-router-dom";
|
||||
|
||||
function UserNewTimeReportPage(): JSX.Element {
|
||||
const content = (
|
||||
<>
|
||||
<h1 className="font-bold text-[30px] mb-[20px]">New Time Report</h1>
|
||||
<NewTimeReport />
|
||||
</>
|
||||
);
|
||||
|
||||
const buttons = (
|
||||
<>
|
||||
<Button
|
||||
text="Submit"
|
||||
onClick={(): void => {
|
||||
return;
|
||||
}}
|
||||
/>
|
||||
<Link to="/project">
|
||||
<Button
|
||||
text="Back"
|
||||
onClick={(): void => {
|
||||
return;
|
||||
}}
|
||||
/>
|
||||
</Link>
|
||||
</>
|
||||
);
|
||||
|
||||
return <BasicWindow username="Admin" content={content} buttons={buttons} />;
|
||||
}
|
||||
export default UserNewTimeReportPage;
|
|
@ -5,16 +5,16 @@ import Button from "../../Components/Button";
|
|||
function UserProjectPage(): JSX.Element {
|
||||
const content = (
|
||||
<>
|
||||
<Link to="/settingsPage">
|
||||
<h1 className="font-bold text-[30px] mb-[20px]">ProjectNameExample</h1>
|
||||
</Link>
|
||||
<h1 className="font-bold text-[30px] mb-[20px]">ProjectNameExample</h1>
|
||||
<div className="border-4 border-black bg-white flex flex-col items-center justify-center min-h-[65vh] h-fit w-[50vw] rounded-3xl content-center overflow-scroll space-y-[10vh] p-[30px]">
|
||||
<h1 className="font-bold underline text-[30px] cursor-pointer">
|
||||
Your Time Reports
|
||||
</h1>
|
||||
<h1 className="font-bold underline text-[30px] cursor-pointer">
|
||||
New Time Report
|
||||
</h1>
|
||||
<Link to="/new-time-report">
|
||||
<h1 className="font-bold underline text-[30px] cursor-pointer">
|
||||
New Time Report
|
||||
</h1>
|
||||
</Link>
|
||||
</div>
|
||||
</>
|
||||
);
|
||||
|
|
20
frontend/src/Pages/UserPages/UserViewTimeReportsPage.tsx
Normal file
20
frontend/src/Pages/UserPages/UserViewTimeReportsPage.tsx
Normal file
|
@ -0,0 +1,20 @@
|
|||
import BasicWindow from "../../Components/BasicWindow";
|
||||
import Button from "../../Components/Button";
|
||||
|
||||
function UserViewTimeReportsPage(): JSX.Element {
|
||||
const content = <></>;
|
||||
|
||||
const buttons = (
|
||||
<>
|
||||
<Button
|
||||
text="Back"
|
||||
onClick={(): void => {
|
||||
return;
|
||||
}}
|
||||
/>
|
||||
</>
|
||||
);
|
||||
|
||||
return <BasicWindow username="Admin" content={content} buttons={buttons} />;
|
||||
}
|
||||
export default UserViewTimeReportsPage;
|
|
@ -12,13 +12,13 @@ function YourProjectsPage(): JSX.Element {
|
|||
</h1>
|
||||
</Link>
|
||||
<h1 className="underline text-[24px] cursor-pointer font-bold">
|
||||
ProjectNameExample
|
||||
ProjectNameExample2
|
||||
</h1>
|
||||
<h1 className="underline text-[24px] cursor-pointer font-bold">
|
||||
ProjectNameExample
|
||||
ProjectNameExample3
|
||||
</h1>
|
||||
<h1 className="underline text-[24px] cursor-pointer font-bold">
|
||||
ProjectNameExample
|
||||
ProjectNameExample4
|
||||
</h1>
|
||||
</div>
|
||||
</>
|
||||
|
|
9
frontend/src/assets/Logo.svg
Normal file
9
frontend/src/assets/Logo.svg
Normal file
File diff suppressed because one or more lines are too long
After Width: | Height: | Size: 348 KiB |
Binary file not shown.
Before Width: | Height: | Size: 261 KiB |
|
@ -6,6 +6,29 @@ import LoginPage from "./Pages/LoginPage.tsx";
|
|||
import YourProjectsPage from "./Pages/YourProjectsPage.tsx";
|
||||
import UserProjectPage from "./Pages/UserPages/UserProjectPage.tsx";
|
||||
import AdminMenuPage from "./Pages/AdminPages/AdminMenuPage.tsx";
|
||||
import UserEditTimeReportPage from "./Pages/UserPages/UserEditTimeReportPage.tsx";
|
||||
import UserNewTimeReportPage from "./Pages/UserPages/UserNewTimeReportPage.tsx";
|
||||
import UserViewTimeReportsPage from "./Pages/UserPages/UserViewTimeReportsPage.tsx";
|
||||
import PMChangeRole from "./Pages/ProjectManagerPages/PMChangeRole.tsx";
|
||||
import PMOtherUsersTR from "./Pages/ProjectManagerPages/PMOtherUsersTR.tsx";
|
||||
import PMProjectMembers from "./Pages/ProjectManagerPages/PMProjectMembers.tsx";
|
||||
import PMProjectPage from "./Pages/ProjectManagerPages/PMProjectPage.tsx";
|
||||
import PMTotalTimeActivity from "./Pages/ProjectManagerPages/PMTotalTimeActivity.tsx";
|
||||
import PMTotalTimeRole from "./Pages/ProjectManagerPages/PMTotalTimeRole.tsx";
|
||||
import PMUnsignedReports from "./Pages/ProjectManagerPages/PMUnsignedReports.tsx";
|
||||
import PMViewUnsignedReport from "./Pages/ProjectManagerPages/PMViewUnsignedReport.tsx";
|
||||
import AdminManageUsers from "./Pages/AdminPages/AdminManageUsers.tsx";
|
||||
import AdminViewUserInfo from "./Pages/AdminPages/AdminViewUserInfo.tsx";
|
||||
import AdminManageProjects from "./Pages/AdminPages/AdminManageProjects.tsx";
|
||||
import AdminAddProject from "./Pages/AdminPages/AdminAddProject.tsx";
|
||||
import AdminAddUser from "./Pages/AdminPages/AdminAddUser.tsx";
|
||||
import AdminChangeUsername from "./Pages/AdminPages/AdminChangeUsername.tsx";
|
||||
import AdminProjectAddMember from "./Pages/AdminPages/AdminProjectAddMember.tsx";
|
||||
import AdminProjectChangeUserRole from "./Pages/AdminPages/AdminProjectChangeUserRole.tsx";
|
||||
import AdminProjectManageMembers from "./Pages/AdminPages/AdminProjectManageMembers.tsx";
|
||||
import AdminProjectStatistics from "./Pages/AdminPages/AdminProjectStatistics.tsx";
|
||||
import AdminProjectViewMemberInfo from "./Pages/AdminPages/AdminProjectViewMemberInfo.tsx";
|
||||
import AdminProjectPage from "./Pages/AdminPages/AdminProjectPage.tsx";
|
||||
|
||||
// This is where the routes are mounted
|
||||
const router = createBrowserRouter([
|
||||
|
@ -17,14 +40,106 @@ const router = createBrowserRouter([
|
|||
path: "/your-projects",
|
||||
element: <YourProjectsPage />,
|
||||
},
|
||||
{
|
||||
path: "/edit-time-report",
|
||||
element: <UserEditTimeReportPage />,
|
||||
},
|
||||
{
|
||||
path: "/new-time-report",
|
||||
element: <UserNewTimeReportPage />,
|
||||
},
|
||||
{
|
||||
path: "/project",
|
||||
element: <UserProjectPage />,
|
||||
},
|
||||
{
|
||||
path: "/project-page",
|
||||
element: <UserViewTimeReportsPage />,
|
||||
},
|
||||
{
|
||||
path: "/change-role",
|
||||
element: <PMChangeRole />,
|
||||
},
|
||||
{
|
||||
path: "/other-users-time-reports",
|
||||
element: <PMOtherUsersTR />,
|
||||
},
|
||||
{
|
||||
path: "/project-members",
|
||||
element: <PMProjectMembers />,
|
||||
},
|
||||
{
|
||||
path: "/PM-project-page",
|
||||
element: <PMProjectPage />,
|
||||
},
|
||||
{
|
||||
path: "/PM-time-activity",
|
||||
element: <PMTotalTimeActivity />,
|
||||
},
|
||||
{
|
||||
path: "/PM-time-role",
|
||||
element: <PMTotalTimeRole />,
|
||||
},
|
||||
{
|
||||
path: "/PM-unsigned-reports",
|
||||
element: <PMUnsignedReports />,
|
||||
},
|
||||
{
|
||||
path: "/PM-view-unsigned-report",
|
||||
element: <PMViewUnsignedReport />,
|
||||
},
|
||||
{
|
||||
path: "/admin-add-project",
|
||||
element: <AdminAddProject />,
|
||||
},
|
||||
{
|
||||
path: "/admin-add-user",
|
||||
element: <AdminAddUser />,
|
||||
},
|
||||
{
|
||||
path: "/admin-change-username",
|
||||
element: <AdminChangeUsername />,
|
||||
},
|
||||
{
|
||||
path: "/admin-manage-projects",
|
||||
element: <AdminManageProjects />,
|
||||
},
|
||||
{
|
||||
path: "/admin-manage-users",
|
||||
element: <AdminManageUsers />,
|
||||
},
|
||||
{
|
||||
path: "/admin-menu",
|
||||
element: <AdminMenuPage />,
|
||||
},
|
||||
{
|
||||
path: "/admin-project-add-member",
|
||||
element: <AdminProjectAddMember />,
|
||||
},
|
||||
{
|
||||
path: "/admin-project-change-user-role",
|
||||
element: <AdminProjectChangeUserRole />,
|
||||
},
|
||||
{
|
||||
path: "/admin-project-manage-members",
|
||||
element: <AdminProjectManageMembers />,
|
||||
},
|
||||
{
|
||||
path: "/admin-project-page",
|
||||
element: <AdminProjectPage />,
|
||||
},
|
||||
{
|
||||
path: "/admin-project-statistics",
|
||||
element: <AdminProjectStatistics />,
|
||||
},
|
||||
{
|
||||
path: "/admin-project-view-members",
|
||||
element: <AdminProjectViewMemberInfo />,
|
||||
},
|
||||
{
|
||||
path: "/admin-view-user",
|
||||
element: <AdminViewUserInfo />,
|
||||
},
|
||||
]);
|
||||
|
||||
// Semi-hacky way to get the root element
|
||||
|
|
Loading…
Reference in a new issue