From 2c450643916ba02d5519deb0c50ee2adea9c56d3 Mon Sep 17 00:00:00 2001 From: Dobromir Popov Date: Wed, 17 Apr 2024 13:44:34 +0300 Subject: [PATCH] add repotys filter and store type properly --- components/reports/ExperienceForm.js | 3 +- components/reports/FeedbackForm.js | 6 ++-- components/reports/ReportForm.js | 2 ++ pages/api/auth/[...nextauth].ts | 8 +++--- pages/cart/reports/list.tsx | 43 ++++++++++++++++++---------- 5 files changed, 40 insertions(+), 22 deletions(-) diff --git a/components/reports/ExperienceForm.js b/components/reports/ExperienceForm.js index eff676f..a96decc 100644 --- a/components/reports/ExperienceForm.js +++ b/components/reports/ExperienceForm.js @@ -4,7 +4,7 @@ import { toast } from 'react-toastify'; import { useRouter } from "next/router"; import Link from "next/link"; import DayOfWeek from "../DayOfWeek"; -import { Location, UserRole } from "@prisma/client"; +import { ReportType } from "@prisma/client"; const common = require('src/helpers/common'); import { useSession } from "next-auth/react" @@ -97,6 +97,7 @@ export default function ExperienceForm({ publisherId, assgnmentId, existingItem, e.preventDefault(); item.publisher = { connect: { id: pubId } }; item.location = { connect: { id: parseInt(item.locationId) } }; + item.type = ReportType.Experience; delete item.locationId; try { diff --git a/components/reports/FeedbackForm.js b/components/reports/FeedbackForm.js index 3cd0664..a16a40c 100644 --- a/components/reports/FeedbackForm.js +++ b/components/reports/FeedbackForm.js @@ -4,7 +4,7 @@ import { toast } from 'react-toastify'; import { useRouter } from "next/router"; import Link from "next/link"; import DayOfWeek from "../DayOfWeek"; -import { Location, UserRole } from "@prisma/client"; +import { ReportType } from "@prisma/client"; const common = require('src/helpers/common'); import { useSession } from "next-auth/react" @@ -72,7 +72,9 @@ export default function FeedbackForm({ publisherId, onDone }) { const handleSubmit = async (e) => { e.preventDefault(); - item.publisher = { connect: { id: pubId } }; + item. + item.publisher = { connect: { id: pubId } }; + item.type = ReportType.Feedback; delete item.assignmentId; try { diff --git a/components/reports/ReportForm.js b/components/reports/ReportForm.js index b6f22b5..50bc119 100644 --- a/components/reports/ReportForm.js +++ b/components/reports/ReportForm.js @@ -4,6 +4,7 @@ import { toast } from "react-hot-toast"; import { useRouter } from "next/router"; import Link from "next/link"; import { useSession } from "next-auth/react" +import { ReportType } from "@prisma/client"; const common = require('src/helpers/common'); @@ -89,6 +90,7 @@ export default function ReportForm({ shiftId, existingItem, onDone }) { item.publisher = { connect: { id: publisherId } }; item.shift = { connect: { id: parseInt(item.shiftId) } }; item.date = new Date(item.date); + item.type = ReportType.Report; delete item.publisherId; delete item.shiftId; item.placementCount = parseInt(item.placementCount); diff --git a/pages/api/auth/[...nextauth].ts b/pages/api/auth/[...nextauth].ts index 82e5a1f..0760d19 100644 --- a/pages/api/auth/[...nextauth].ts +++ b/pages/api/auth/[...nextauth].ts @@ -42,10 +42,10 @@ export const authOptions: NextAuthOptions = { } } }), - AppleProvider({ - clientId: process.env.APPLE_APP_ID, - clientSecret: process.env.APPLE_SECRET - }), + // AppleProvider({ + // clientId: process.env.APPLE_APP_ID, + // clientSecret: process.env.APPLE_SECRET + // }), // AzureADProvider({ // clientId: process.env.AZURE_AD_CLIENT_ID, // clientSecret: process.env.AZURE_AD_CLIENT_SECRET, diff --git a/pages/cart/reports/list.tsx b/pages/cart/reports/list.tsx index 3675b55..f168e18 100644 --- a/pages/cart/reports/list.tsx +++ b/pages/cart/reports/list.tsx @@ -9,7 +9,7 @@ import { useSession } from "next-auth/react" import common from '../../../src/helpers/common'; import Layout from "../../../components/layout"; import ProtectedRoute from '../../../components/protectedRoute'; -import { Location, UserRole } from "@prisma/client"; +import { Location, UserRole, ReportType } from "@prisma/client"; export default function Reports() { @@ -17,8 +17,18 @@ export default function Reports() { const router = useRouter(); const { data: session } = useSession(); + const [filterType, setFilterType] = useState('ServiceReport'); + const handleFilterChange = (event) => { + setFilterType(event.target.value); + console.log("event filter set to:" + event.target.value); + }; + const [filteredReports, setFilteredReports] = useState([]); + + useEffect(() => { + setFilteredReports(reports.filter(report => report.type === filterType)); + }, [reports, filterType]); const deleteReport = (id) => { axiosInstance @@ -66,7 +76,7 @@ export default function Reports() { -
+

Отчети

@@ -74,18 +84,21 @@ export default function Reports() { Добави нов отчет - - - +
+ + + + +
@@ -98,7 +111,7 @@ export default function Reports() { - {reports.map((report) => ( + {filteredReports.map((report) => (
{report.publisher.firstName + " " + report.publisher.lastName} {common.getDateFormated(new Date(report.date))}