fix showing unpublished and old assignments to publishers
This commit is contained in:
@ -9,6 +9,7 @@ const common = require('src/helpers/common');
|
|||||||
import AvailabilityForm from "../availability/AvailabilityForm";
|
import AvailabilityForm from "../availability/AvailabilityForm";
|
||||||
|
|
||||||
import { TrashIcon, PencilSquareIcon } from "@heroicons/react/24/outline";
|
import { TrashIcon, PencilSquareIcon } from "@heroicons/react/24/outline";
|
||||||
|
import { Availability, AvailabilityType } from "@prisma/client";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -58,7 +59,10 @@ export default function AvailabilityList({ publisher, showNew }) {
|
|||||||
{items?.sort((a, b) => new Date(a.startTime) - new Date(b.startTime)).map(item => (
|
{items?.sort((a, b) => new Date(a.startTime) - new Date(b.startTime)).map(item => (
|
||||||
<tr key={item.id} availability={item} disabled={!item.isActive} className={`${item.isFromPreviousMonth ? 'bg-yellow-200' : ''} ${!item.isActive ? 'opacity-50' : ''}`}>
|
<tr key={item.id} availability={item} disabled={!item.isActive} className={`${item.isFromPreviousMonth ? 'bg-yellow-200' : ''} ${!item.isActive ? 'opacity-50' : ''}`}>
|
||||||
<td className="px-6 py-4 whitespace-nowrap">
|
<td className="px-6 py-4 whitespace-nowrap">
|
||||||
{item.dayOfMonth ? `${common.getDateFormated(new Date(item.startTime))}` : `Всеки(Всяка) ${common.getDayOfWeekName(new Date(item.startTime))}`}
|
{item.type == AvailabilityType.OneTime ? `${common.getDateFormated(new Date(item.startTime))}` :
|
||||||
|
item.type == AvailabilityType.Weekly ? `Всеки(Всяка) ${common.getDayOfWeekName(new Date(item.startTime))}` : "месечно"
|
||||||
|
|
||||||
|
}
|
||||||
{/* {common.getDateFormated(new Date(item.startTime))} */}
|
{/* {common.getDateFormated(new Date(item.startTime))} */}
|
||||||
</td>
|
</td>
|
||||||
<td className="px-6 py-4 whitespace-nowrap">
|
<td className="px-6 py-4 whitespace-nowrap">
|
||||||
@ -118,14 +122,14 @@ export default function AvailabilityList({ publisher, showNew }) {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export const getServerSideProps = async () => {
|
// export const getServerSideProps = async () => {
|
||||||
const { data: items } = await axiosInstance.get(
|
// const { data: items } = await axiosInstance.get(
|
||||||
common.getBaseUrl("/api/data/availabilities")
|
// common.getBaseUrl("/api/data/availabilities")
|
||||||
);
|
// );
|
||||||
|
|
||||||
return {
|
// return {
|
||||||
props: {
|
// props: {
|
||||||
items,
|
// items,
|
||||||
},
|
// },
|
||||||
};
|
// };
|
||||||
};
|
// };
|
@ -2,7 +2,7 @@ import axiosServer from '../../../../src/axiosServer';
|
|||||||
import NewPubPage from "../new";
|
import NewPubPage from "../new";
|
||||||
export default NewPubPage;
|
export default NewPubPage;
|
||||||
|
|
||||||
import { Assignment, Shift, UserRole } from "prisma/prisma-client";
|
import { Assignment, Shift, UserRole, AvailabilityType } from "prisma/prisma-client";
|
||||||
// import { monthNamesBG } from "~/src/helpers/const"
|
// import { monthNamesBG } from "~/src/helpers/const"
|
||||||
import { monthNamesBG } from "src/helpers/const";
|
import { monthNamesBG } from "src/helpers/const";
|
||||||
|
|
||||||
@ -55,6 +55,7 @@ export const getServerSideProps = async (context) => {
|
|||||||
// item.availabilities = item.availabilities
|
// item.availabilities = item.availabilities
|
||||||
// .sort((a, b) => b.startTime - a.startTime);
|
// .sort((a, b) => b.startTime - a.startTime);
|
||||||
|
|
||||||
|
item.availabilities = item.availabilities.filter((a) => new Date(a.startTime) >= new Date() || a.type == AvailabilityType.Weekly);
|
||||||
item.assignments = item.assignments
|
item.assignments = item.assignments
|
||||||
.sort((a, b) => b.startTime - a.startTime)
|
.sort((a, b) => b.startTime - a.startTime)
|
||||||
.reduce((acc, assignment: Assignment) => {
|
.reduce((acc, assignment: Assignment) => {
|
||||||
|
@ -87,6 +87,8 @@ export default function MySchedulePage({ assignments }) {
|
|||||||
)}
|
)}
|
||||||
</dd>
|
</dd>
|
||||||
</div>
|
</div>
|
||||||
|
{!assignment.isOld &&
|
||||||
|
|
||||||
<div className="bg-gray-50 px-4 py-5 grid grid-cols-1 sm:grid-cols-3 gap-4 xs:gap-1 px-6 xs:py-1">
|
<div className="bg-gray-50 px-4 py-5 grid grid-cols-1 sm:grid-cols-3 gap-4 xs:gap-1 px-6 xs:py-1">
|
||||||
<dt className="text-sm font-medium text-gray-500">Действия</dt>
|
<dt className="text-sm font-medium text-gray-500">Действия</dt>
|
||||||
<dd className="mt-1 text-sm text-gray-900 sm:mt-0 sm:col-span-2">
|
<dd className="mt-1 text-sm text-gray-900 sm:mt-0 sm:col-span-2">
|
||||||
@ -111,6 +113,7 @@ export default function MySchedulePage({ assignments }) {
|
|||||||
<SearchReplacement shiftId={assignment.shift.id} assignmentId={assignment.id} />
|
<SearchReplacement shiftId={assignment.shift.id} assignmentId={assignment.id} />
|
||||||
</dd>
|
</dd>
|
||||||
</div>
|
</div>
|
||||||
|
}
|
||||||
</dl>
|
</dl>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -205,12 +208,15 @@ export const getServerSideProps = async (context) => {
|
|||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
const assignments = publisher?.assignments.filter(assignment => assignment.shift.startTime >= lastSunday) || [];
|
const assignments = publisher?.assignments.filter(a => a.shift.startTime >= lastSunday && a.shift.isPublished) || [];
|
||||||
|
|
||||||
const transformedAssignments = assignments?.map(assignment => {
|
|
||||||
|
const transformedAssignments = assignments?.sort((a, b) => a.shift.startTime - b.shift.startTime)
|
||||||
|
.map(assignment => {
|
||||||
if (assignment.shift && assignment.shift.startTime) {
|
if (assignment.shift && assignment.shift.startTime) {
|
||||||
return {
|
return {
|
||||||
...assignment,
|
...assignment,
|
||||||
|
isOld: assignment.shift.startTime < new Date(),
|
||||||
dateStr: assignment.shift.startTime.toLocaleDateString("bg-BG", { day: "numeric", month: "long" }),
|
dateStr: assignment.shift.startTime.toLocaleDateString("bg-BG", { day: "numeric", month: "long" }),
|
||||||
shift: {
|
shift: {
|
||||||
...assignment.shift,
|
...assignment.shift,
|
||||||
|
@ -38,22 +38,24 @@ export default function NewPubPage(item: Publisher) {
|
|||||||
|
|
||||||
//------------------pages\cart\publishers\edit\[id].tsx------------------
|
//------------------pages\cart\publishers\edit\[id].tsx------------------
|
||||||
|
|
||||||
export const getServerSideProps = async (context) => {
|
// export const getServerSideProps = async (context) => {
|
||||||
const axios = await axiosServer(context);
|
// const axios = await axiosServer(context);
|
||||||
|
|
||||||
context.res.setHeader("Cache-Control", "s-maxage=1, stale-while-revalidate");
|
// context.res.setHeader("Cache-Control", "s-maxage=1, stale-while-revalidate");
|
||||||
if (!context.query || !context.query.id) {
|
// if (!context.query || !context.query.id) {
|
||||||
return {
|
// return {
|
||||||
props: {}
|
// props: {}
|
||||||
};
|
// };
|
||||||
}
|
// }
|
||||||
var url = process.env.NEXT_PUBLIC_PUBLIC_URL + "/api/data/publishers/" + context.query.id + "?include=availabilities,shifts";
|
// var url = process.env.NEXT_PUBLIC_PUBLIC_URL + "/api/data/publishers/" + context.query.id + "?include=availabilities,shifts";
|
||||||
console.log("GET PUBLISHER FROM:" + url)
|
// console.log("GET PUBLISHER FROM:" + url)
|
||||||
const { data } = await axios.get(url);
|
// const { data } = await axios.get(url);
|
||||||
|
|
||||||
return {
|
// //filter old availabilities
|
||||||
props: {
|
// data.availabilities = data.availabilities.filter((a) => new Date(a.startTime) >= new Date());
|
||||||
data
|
// return {
|
||||||
},
|
// props: {
|
||||||
};
|
// data
|
||||||
};
|
// },
|
||||||
|
// };
|
||||||
|
// };
|
||||||
|
Reference in New Issue
Block a user