fix showing unpublished and old assignments to publishers

This commit is contained in:
Dobromir Popov
2024-04-27 01:19:49 +03:00
parent 4f9d0c7060
commit 6364ff3442
4 changed files with 80 additions and 67 deletions

View File

@ -87,30 +87,33 @@ export default function MySchedulePage({ assignments }) {
)}
</dd>
</div>
<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>
<dd className="mt-1 text-sm text-gray-900 sm:mt-0 sm:col-span-2">
<button
className="mr-2 mb-2 inline-flex items-center px-3 py-2 border border-transparent text-sm leading-4 font-medium rounded-md shadow-sm text-white bg-green-600 hover:bg-green-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-green-500 disabled"
disabled={true}
// disabled={assignment.isInGoogleCalendar}
onClick={() => SaveEventsInGoogleCalendar(assignment)}
>
Добави в календар
</button>
<button
className="mr-2 mb-2 inline-flex items-center px-3 py-2 border border-transparent text-sm leading-4 font-medium rounded-md shadow-sm text-white bg-green-600 hover:bg-green-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500"
onClick={() => {
setАssignment(assignment);
setIsModalOpen(true)
}}
>
Избери Заместник
</button>
{!assignment.isOld &&
<SearchReplacement shiftId={assignment.shift.id} assignmentId={assignment.id} />
</dd>
</div>
<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>
<dd className="mt-1 text-sm text-gray-900 sm:mt-0 sm:col-span-2">
<button
className="mr-2 mb-2 inline-flex items-center px-3 py-2 border border-transparent text-sm leading-4 font-medium rounded-md shadow-sm text-white bg-green-600 hover:bg-green-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-green-500 disabled"
disabled={true}
// disabled={assignment.isInGoogleCalendar}
onClick={() => SaveEventsInGoogleCalendar(assignment)}
>
Добави в календар
</button>
<button
className="mr-2 mb-2 inline-flex items-center px-3 py-2 border border-transparent text-sm leading-4 font-medium rounded-md shadow-sm text-white bg-green-600 hover:bg-green-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500"
onClick={() => {
setАssignment(assignment);
setIsModalOpen(true)
}}
>
Избери Заместник
</button>
<SearchReplacement shiftId={assignment.shift.id} assignmentId={assignment.id} />
</dd>
</div>
}
</dl>
</div>
</div>
@ -205,22 +208,25 @@ 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 => {
if (assignment.shift && assignment.shift.startTime) {
return {
...assignment,
dateStr: assignment.shift.startTime.toLocaleDateString("bg-BG", { day: "numeric", month: "long" }),
shift: {
...assignment.shift,
startTime: assignment.shift.startTime.toISOString(),
endTime: assignment.shift.endTime.toISOString(),
},
};
}
return assignment;
});
const transformedAssignments = assignments?.sort((a, b) => a.shift.startTime - b.shift.startTime)
.map(assignment => {
if (assignment.shift && assignment.shift.startTime) {
return {
...assignment,
isOld: assignment.shift.startTime < new Date(),
dateStr: assignment.shift.startTime.toLocaleDateString("bg-BG", { day: "numeric", month: "long" }),
shift: {
...assignment.shift,
startTime: assignment.shift.startTime.toISOString(),
endTime: assignment.shift.endTime.toISOString(),
},
};
}
return assignment;
});