Skip to content

Commit 5dec1f4

Browse files
authored
First-Round Changes: Applying hotfixes found from Pilot Demo (#201)
* post-review tinkering * beginning hotfix application based on user feedback from pilot demonstration. Further changes will be made here and sequentially applied to dev and then prod site * next round of hotfixes. see github issue updates for more info * adding information about form headers to the upload system and multiline input system * form explanation system implemented. standardized via central component to simplify application where needed. Standardization applied to grid columns to reduce footprint, and reorganized component structure to increase readability. * removing species autocorrection. required headers have been added to the system. * completing refit to standardize units information in plots and remove customizations from each table using units. Updated table structures and procedures to correctly work with this new system. * baseline review changes column added. additional enhancements pending, but grid is rendering correctly and shows history.{ * adding paginationModel dependency to the validation status column render to force re-render when pagination model is updated (user moves to new page)
1 parent 3fae4d8 commit 5dec1f4

File tree

63 files changed

+1660
-1928
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

63 files changed

+1660
-1928
lines changed

frontend/app/(hub)/layout.tsx

+13-4
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { title } from '@/config/primitives';
44
import { useSession } from 'next-auth/react';
55
import { redirect, usePathname } from 'next/navigation';
66
import dynamic from 'next/dynamic';
7-
import { Box, IconButton, Stack, Typography } from '@mui/joy';
7+
import { Box, IconButton, Stack, Typography, useTheme } from '@mui/joy';
88
import Divider from '@mui/joy/Divider';
99
import { useLoading } from '@/app/contexts/loadingprovider';
1010
import { useOrgCensusContext, usePlotContext, useSiteContext } from '@/app/contexts/userselectionprovider';
@@ -287,6 +287,8 @@ export default function HubLayout({ children }: { children: React.ReactNode }) {
287287
}
288288
}, [session]);
289289

290+
const theme = useTheme();
291+
290292
return (
291293
<>
292294
<Box
@@ -396,10 +398,17 @@ export default function HubLayout({ children }: { children: React.ReactNode }) {
396398
bottom: 20,
397399
right: 20,
398400
zIndex: 2000,
399-
bgcolor: 'primary.main',
400-
color: 'white',
401+
backgroundColor: 'transparent', // Remove background color
402+
boxShadow: 'none', // Remove shadow if present
403+
color: theme.vars.palette.primary.solidColor, // Text/icon color
404+
opacity: 0.5, // Initial opacity
405+
transition: 'opacity 0.3s ease',
401406
'&:hover': {
402-
bgcolor: 'primary.dark'
407+
opacity: 1,
408+
backgroundColor: 'transparent' // Ensure no hover background
409+
},
410+
'&:focus-visible': {
411+
outline: `2px solid ${theme.vars.palette.primary.solidColor}` // Add focus ring for accessibility if needed
403412
}
404413
}}
405414
>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
'use client';
2+
3+
import IsolatedUnifiedChangelogDataGrid from '@/components/datagrids/applications/isolated/isolatedunifiedchangelogdatagrid';
4+
5+
export default function RecentChangesPage() {
6+
return <IsolatedUnifiedChangelogDataGrid />;
7+
}

frontend/app/api/cmprevalidation/[dataType]/[[...slugs]]/route.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ export async function GET(_request: NextRequest, { params }: { params: { dataTyp
4343
const query = `SELECT 1 FROM ${schema}.quadrats q
4444
JOIN ${schema}.censusquadrat cq ON cq.QuadratID = q.QuadratID
4545
JOIN ${schema}.census c ON cq.CensusID = c.CensusID
46-
WHERE q.PlotID = ${plotID} AND c.PlotCensusNumber = ${plotCensusNumber} LIMIT 1`;
46+
WHERE q.PlotID = ${plotID} AND c.CensusID IN (SELECT CensusID from ${schema}.census WHERE PlotID = ${plotID} AND PlotCensusNumber = ${plotCensusNumber}) LIMIT 1`;
4747
const results = await connection.executeQuery(query);
4848
if (results.length === 0)
4949
return new NextResponse(null, {
@@ -54,7 +54,7 @@ export async function GET(_request: NextRequest, { params }: { params: { dataTyp
5454
const pvQuery = `SELECT 1 FROM ${schema}.coremeasurements cm
5555
JOIN ${schema}.census c ON C.CensusID = cm.CensusID
5656
JOIN ${schema}.plots p ON p.PlotID = c.PlotID
57-
WHERE p.PlotID = ${plotID} AND c.PlotCensusNumber = ${plotCensusNumber} LIMIT 1`;
57+
WHERE p.PlotID = ${plotID} AND c.CensusID IN (SELECT CensusID from ${schema}.census WHERE PlotID = ${plotID} AND PlotCensusNumber = ${plotCensusNumber}) LIMIT 1`;
5858
const pvResults = await connection.executeQuery(pvQuery);
5959
if (pvResults.length === 0)
6060
return new NextResponse(null, {
@@ -69,7 +69,7 @@ export async function GET(_request: NextRequest, { params }: { params: { dataTyp
6969
JOIN ${schema}.census c on cq.CensusID = c.CensusID
7070
JOIN ${schema}.personnel p ON p.CensusID = c.CensusID
7171
WHERE q.PlotID = ${plotID}
72-
AND c.PlotCensusNumber = ${plotCensusNumber} LIMIT 1`;
72+
AND c.CensusID IN (SELECT CensusID from ${schema}.census WHERE PlotID = ${plotID} AND PlotCensusNumber = ${plotCensusNumber}) LIMIT 1`;
7373
const quadratsResults = await connection.executeQuery(quadratsQuery);
7474
if (quadratsResults.length === 0)
7575
return new NextResponse(null, {

frontend/app/api/fixeddata/[dataType]/[[...slugs]]/route.ts

+9
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,15 @@ export async function GET(
4242
paginatedQuery = `SELECT SQL_CALC_FOUND_ROWS * FROM ${schema}.${params.dataType} pdt WHERE pdt.SpeciesID = ? LIMIT ?, ?`;
4343
queryParams.push(speciesID, page * pageSize, pageSize);
4444
break;
45+
case 'unifiedchangelog':
46+
paginatedQuery = `
47+
SELECT SQL_CALC_FOUND_ROWS * FROM ${schema}.${params.dataType} uc
48+
JOIN ${schema}.plots p ON uc.PlotID = p.PlotID
49+
JOIN ${schema}.census c ON uc.CensusID = c.CensusID
50+
WHERE p.PlotID = ?
51+
AND c.PlotCensusNumber = ? LIMIT ?, ?;`;
52+
queryParams.push(plotID, plotCensusNumber, page * pageSize, pageSize);
53+
break;
4554
case 'attributes':
4655
case 'species':
4756
case 'stems':

frontend/app/api/fixeddatafilter/[dataType]/[[...slugs]]/route.ts

+13
Original file line numberDiff line numberDiff line change
@@ -186,6 +186,19 @@ export async function POST(
186186
${searchStub || filterStub ? ` AND (${[searchStub, filterStub].filter(Boolean).join(' OR ')})` : ''}`;
187187
queryParams.push(plotID, plotCensusNumber, page * pageSize, pageSize);
188188
break;
189+
case 'unifiedchangelog':
190+
if (filterModel.quickFilterValues) searchStub = buildSearchStub(columns, filterModel.quickFilterValues);
191+
if (filterModel.items) filterStub = buildFilterModelStub(filterModel);
192+
193+
paginatedQuery = `
194+
SELECT SQL_CALC_FOUND_ROWS * FROM ${schema}.${params.dataType} uc
195+
JOIN ${schema}.plots p ON uc.PlotID = p.PlotID
196+
JOIN ${schema}.census c ON uc.CensusID = c.CensusID
197+
WHERE p.PlotID = ?
198+
AND c.PlotCensusNumber = ?
199+
${searchStub || filterStub ? ` AND (${[searchStub, filterStub].filter(Boolean).join(' OR ')})` : ''}`;
200+
queryParams.push(plotID, plotCensusNumber, page * pageSize, pageSize);
201+
break;
189202
case 'quadrats':
190203
if (filterModel.quickFilterValues) searchStub = buildSearchStub(columns, filterModel.quickFilterValues, 'q');
191204
if (filterModel.items) filterStub = buildFilterModelStub(filterModel, 'q');

frontend/app/api/formdownload/[dataType]/[[...slugs]]/route.ts

+3-9
Original file line numberDiff line numberDiff line change
@@ -77,22 +77,19 @@ export async function GET(_request: NextRequest, { params }: { params: { dataTyp
7777
quadrat: row.QuadratName,
7878
startx: row.StartX,
7979
starty: row.StartY,
80-
coordinateunit: row.CoordinateUnits,
8180
dimx: row.DimensionX,
8281
dimy: row.DimensionY,
83-
dimensionunit: row.DimensionUnits,
8482
area: row.Area,
85-
areaunit: row.AreaUnits,
8683
quadratshape: row.QuadratShape
8784
}));
8885
return new NextResponse(JSON.stringify(formMappedResults), { status: HTTPResponses.OK });
8986
case 'measurements':
9087
query = `SELECT st.StemTag AS StemTag, t.TreeTag AS TreeTag, s.SpeciesCode AS SpeciesCode, q.QuadratName AS QuadratName,
91-
q.StartX AS StartX, q.StartY AS StartY, q.CoordinateUnits AS CoordinateUnits, cm.MeasuredDBH AS MeasuredDBH, cm.DBHUnit AS DBHUnit,
92-
cm.MeasuredHOM AS MeasuredHOM, cm.HOMUnit AS HOMUnit, cm.MeasurementDate AS MeasurementDate,
88+
st.StemLocalX AS StartX, st.StemLocalY AS StartY, cm.MeasuredDBH AS MeasuredDBH, cm.MeasuredHOM AS MeasuredHOM,
89+
cm.MeasurementDate AS MeasurementDate,
9390
(SELECT GROUP_CONCAT(ca.Code SEPARATOR '; ')
9491
FROM ${schema}.cmattributes ca
95-
WHERE ca.CoreMeasurementID = cm.CoreMeasurementID) AS Codes
92+
WHERE ca.CoreMeasurementID = cm.CoreMeasurementID) AS Codes
9693
FROM ${schema}.coremeasurements cm
9794
JOIN ${schema}.stems st ON st.StemID = cm.StemID
9895
JOIN ${schema}.trees t ON t.TreeID = st.TreeID
@@ -108,11 +105,8 @@ export async function GET(_request: NextRequest, { params }: { params: { dataTyp
108105
quadrat: row.QuadratName,
109106
lx: row.StartX,
110107
ly: row.StartY,
111-
coordinateunit: row.CoordinateUnits,
112108
dbh: row.MeasuredDBH,
113-
dbhunit: row.DBHUnit,
114109
hom: row.MeasuredHOM,
115-
homunit: row.HOMUnit,
116110
date: row.MeasurementDate,
117111
codes: row.Codes
118112
}));

0 commit comments

Comments
 (0)