Skip to content

Commit 2571683

Browse files
authored
Merge pull request #174 from ctc-uci/admin-forms-fix
Admin forms fix
2 parents 96abd8e + f188fff commit 2571683

28 files changed

+384
-144
lines changed

client/src/App.tsx

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -98,8 +98,7 @@ const App = () => {
9898
/>
9999
<Route
100100
path="/success-story"
101-
//element={<ProtectedRoute element = {<SuccessStory />} allowedRoles={['client']}/>}
102-
element={<SuccessStory />}
101+
element={<ProtectedRoute element = {<SuccessStory />} allowedRoles={['client']}/>}
103102
/>
104103
<Route
105104
path="/authentification/:userType?"
@@ -162,20 +161,16 @@ const App = () => {
162161
/>
163162
<Route
164163
path = "/admin-client-forms"
165-
element = {<ProtectedRoute element={<AdminFormsHub/>} allowedRoles={["admin"]}/>}
164+
element ={<ProtectedRoute element={<AdminFormsHub/>}allowedRoles={["admin"]}/>}
166165
/>
167166
<Route
168167
path="/ViewClient/:id"
169168
element={<ProtectedRoute element={<ViewPage />} allowedRoles={['admin', 'user']} />}
170169
/>
171-
{/* <Route
172-
path="/casemanager"
173-
element={<ProtectedRoute element={<CaseManager />} allowedRoles={['admin', 'user']} />}
174-
/> */}
175170
<Route
176171
path="/casemanager"
177-
element={<CaseManager/>}
178-
/>
172+
element={<ProtectedRoute element={<CaseManager />} allowedRoles={['admin', 'user']} />}
173+
179174
<Route
180175
path="/random-client-survey"
181176
element={<ProtectedRoute element={<RandomClientSurvey />} allowedRoles={["client"]}/>}
@@ -190,8 +185,7 @@ const App = () => {
190185
/>
191186
<Route
192187
path ="/personal"
193-
// element ={<ProtectedRoute element={<PersonalInformation hidden={false}/>}/>}
194-
element = {<PersonalInformation hidden={false}/>}
188+
element ={<ProtectedRoute element={<PersonalInformation hidden={false}/>}/>}
195189
/>
196190
<Route
197191
path ="/financial"

client/src/components/adminClientForms/FormTables/CSVButton.tsx

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -49,18 +49,13 @@ const CSVButton = ( { data } ) => {
4949
const convertToCSV = () => {
5050
const csvRows = [];
5151
csvRows.push(headers.join(","));
52-
console.log(csvRows);
5352
data.forEach(row => {
54-
console.log(row);
5553
const values = headers.map(header => {
56-
console.log(row[header]);
5754
//const escaped = ('' + row[header]).replace(/"/g, '\\"'); // Escape double quotes
5855
return `${row[header]}`; // Encapsulate in quotes to handle commas in data
5956
});
60-
console.log(values);
6157
csvRows.push(values.join(','));
6258
});
63-
console.log(csvRows);
6459
const csvString = csvRows.join('\n');
6560
const blob = new Blob([csvString], { type: 'text/csv' });
6661

client/src/components/adminClientForms/FormTables/ExitSurveyTable.tsx

Lines changed: 33 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import {
1818
Thead,
1919
Tr,
2020
VStack,
21+
useDisclosure
2122
} from "@chakra-ui/react";
2223

2324
import {
@@ -40,12 +41,13 @@ import { DeleteRowModal } from "../../deleteRow/deleteRowModal.tsx";
4041
import { HoverCheckbox } from "../../hoverCheckbox/hoverCheckbox.tsx";
4142
import { LoadingWheel } from "../../loading/loading.tsx";
4243
import { FilterTemplate } from "./FilterTemplate.tsx";
44+
import FormPreview from "../../formsHub/FormPreview.tsx";
45+
import { useNavigate } from "react-router-dom";
4346

44-
export const ExitSurveyTable = () => {
47+
export const ExitSurveyTable = ({ onRowClick }: {onRowClick: (form: ExitSurvey) => void}) => {
4548
// still gotta do this -- but I'll do it later
4649
const headers = ["cchCouldBeImproved","cchLikeMost","cchRating","cmChangeAbout","cmFirstName","cmLastName","cmMostBeneficial","cmRating","experienceAccomplished","experienceExtraNotes","experienceTakeaway","id","lifeSkillsHelpfulTopics","lifeSkillsOfferTopicsInTheFuture","lifeSkillsRating","location","programDateCompletion"
4750
];
48-
4951
const [exitData, setExitData] = useState<
5052
(ExitSurvey & { isChecked: boolean; isHovered: boolean })[]
5153
>([]);
@@ -57,6 +59,10 @@ export const ExitSurveyTable = () => {
5759
const [filterQuery, setFilterQuery] = useState<string[]>([]);
5860
const [sorting, setSorting] = useState<SortingState>([]);
5961
const [loading, setLoading] = useState(true);
62+
const [clickedFormItem, setClickedFormItem] = useState<Form | null>(null);
63+
const { isOpen, onOpen, onClose } = useDisclosure();
64+
const [refreshTable, setRefreshTable] = useState(false);
65+
const navigate = useNavigate();
6066

6167
const columns = useMemo<ColumnDef<ExitSurvey>[]>(
6268
() => [
@@ -266,6 +272,12 @@ export const ExitSurveyTable = () => {
266272
fetchData();
267273
}, [backend, searchKey, filterQuery]);
268274

275+
useEffect(() => {
276+
if (clickedFormItem) {
277+
onOpen();
278+
}
279+
}, [clickedFormItem, onOpen]);
280+
269281
return (
270282
<VStack
271283
align="start"
@@ -305,7 +317,7 @@ export const ExitSurveyTable = () => {
305317
>
306318
delete
307319
</Button>
308-
<Button fontSize="12px">add</Button>
320+
<Button fontSize="12px" onClick={() => {navigate('/exit-survey')}}>add</Button>
309321
<IconButton
310322
aria-label="Download CSV"
311323
onClick={() => onPressCSVButton()}
@@ -342,6 +354,7 @@ export const ExitSurveyTable = () => {
342354
header.column.getCanSort() ? "pointer" : "default"
343355
}
344356
onClick={header.column.getToggleSortingHandler()}
357+
345358
>
346359
{flexRender(
347360
header.column.columnDef.header,
@@ -376,6 +389,11 @@ export const ExitSurveyTable = () => {
376389
fontSize="14px"
377390
fontWeight="500px"
378391
onClick={(e) => {
392+
console.log(`cliocked ${cell.id}`);
393+
(row.original as { [key: string]: any }).title = "Exit Surveys";
394+
setClickedFormItem(row.original);
395+
console.log(row.original)
396+
onOpen();
379397
if (cell.column.id === "rowNumber") {
380398
e.stopPropagation();
381399
}
@@ -404,6 +422,18 @@ export const ExitSurveyTable = () => {
404422
</Table>
405423
</TableContainer>
406424
)}
425+
{clickedFormItem && (
426+
<FormPreview
427+
clickedFormItem={clickedFormItem}
428+
isOpen={isOpen}
429+
onClose={() => {
430+
onClose();
431+
setClickedFormItem(null);
432+
}}
433+
refreshTable={refreshTable}
434+
setRefreshTable={setRefreshTable}
435+
/>
436+
)}
407437
</Box>
408438
<DeleteRowModal
409439
isOpen={isDeleteModalOpen}

client/src/components/adminClientForms/FormTables/FilterTemplate.tsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -546,7 +546,6 @@ export const FilterTemplate = ({
546546
duration: 3000,
547547
isClosable: true,
548548
});
549-
console.log(filterRows[filterRows.length - 1]);
550549
return;
551550
}
552551
setFilterRows([

client/src/components/adminClientForms/FormTables/InitialScreenerTable.tsx

Lines changed: 32 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import {
1818
Thead,
1919
Tr,
2020
VStack,
21+
useDisclosure
2122
} from "@chakra-ui/react";
2223

2324
import {
@@ -33,13 +34,17 @@ import { FiUpload } from "react-icons/fi";
3334
import { useBackendContext } from "../../../contexts/hooks/useBackendContext.ts";
3435
//have to make the separate types for each table
3536

37+
import { useNavigate } from "react-router-dom";
38+
3639
import type { InitialInterview } from "../../../types/initialScreener.ts";
3740
import { formatDateString } from "../../../utils/dateUtils.ts";
3841
import { downloadCSV } from "../../../utils/downloadCSV.ts";
3942
import { DeleteRowModal } from "../../deleteRow/deleteRowModal.tsx";
4043
import { HoverCheckbox } from "../../hoverCheckbox/hoverCheckbox.tsx";
4144
import { LoadingWheel } from "../../loading/loading.tsx";
4245
import { FilterTemplate } from "./FilterTemplate.tsx";
46+
import FormPreview from "../../formsHub/FormPreview.tsx";
47+
4348

4449
export const InitialScreenerTable = () => {
4550
// still gotta do this -- but I'll do it later
@@ -57,9 +62,11 @@ export const InitialScreenerTable = () => {
5762
const [filterQuery, setFilterQuery] = useState<string[]>([]);
5863
const [sorting, setSorting] = useState<SortingState>([]);
5964
const [loading, setLoading] = useState(true);
60-
65+
const [clickedFormItem, setClickedFormItem] = useState<Form | null>(null);
66+
const { isOpen, onOpen, onClose } = useDisclosure();
67+
const [refreshTable, setRefreshTable] = useState(false);
6168

62-
69+
const navigate = useNavigate();
6370
const columns = useMemo<ColumnDef<InitialInterview>[]>(
6471
() => [
6572
{
@@ -491,6 +498,13 @@ export const InitialScreenerTable = () => {
491498
fetchData();
492499
}, [backend, searchKey, filterQuery]);
493500

501+
useEffect(() => {
502+
if (clickedFormItem) {
503+
onOpen();
504+
}
505+
}, [clickedFormItem, onOpen]);
506+
507+
494508
return (
495509
<VStack
496510
align="start"
@@ -530,7 +544,7 @@ export const InitialScreenerTable = () => {
530544
>
531545
delete
532546
</Button>
533-
<Button fontSize="12px">add</Button>
547+
<Button fontSize="12px" onClick={() => navigate('/personal')}>add</Button>
534548
<IconButton
535549
aria-label="Download CSV"
536550
onClick={() => onPressCSVButton()}
@@ -601,6 +615,9 @@ export const InitialScreenerTable = () => {
601615
fontSize="14px"
602616
fontWeight="500px"
603617
onClick={(e) => {
618+
(row.original as { [key: string]: any }).title = "Initial Screeners";
619+
setClickedFormItem(row.original);
620+
onOpen();
604621
if (cell.column.id === "rowNumber") {
605622
e.stopPropagation();
606623
}
@@ -629,6 +646,18 @@ export const InitialScreenerTable = () => {
629646
</Table>
630647
</TableContainer>
631648
)}
649+
{clickedFormItem && (
650+
<FormPreview
651+
clickedFormItem={clickedFormItem}
652+
isOpen={isOpen}
653+
onClose={() => {
654+
onClose();
655+
setClickedFormItem(null);
656+
}}
657+
refreshTable={refreshTable}
658+
setRefreshTable={setRefreshTable}
659+
/>
660+
)}
632661
</Box>
633662
<DeleteRowModal
634663
isOpen={isDeleteModalOpen}

0 commit comments

Comments
 (0)