- {item.id} {item.isactive}
+ {item.id} {item.isActive}
|
{item.publisher.lastName}, {item.publisher.firstName}
@@ -133,14 +133,14 @@ export const getServerSideProps = async (context) => {
const role = session?.user.role;
console.log("server role: " + role);
- var queryUrl = process.env.NEXTAUTH_URL + "/api/data/availabilities?select=id,name,isactive,dayofweek,dayOfMonth,startTime,endTime,publisher.firstName,publisher.lastName,publisher.id";
+ var queryUrl = process.env.NEXTAUTH_URL + "/api/data/availabilities?select=id,name,isActive,dayofweek,dayOfMonth,startTime,endTime,publisher.firstName,publisher.lastName,publisher.id";
if (role === UserRole.USER || context.query.my) {
queryUrl += `&where={"publisherId":"${session?.user.id}"}`;
} else if (role == UserRole.ADMIN) {
if (context.query.id) {
queryUrl += `&where={"publisherId":"${context.query.id}"}`;
} else {
- queryUrl += `&where={"isactive":true}`;
+ queryUrl += `&where={"isActive":true}`;
}
}
var resp = await axios.get(
diff --git a/pages/cart/calendar/index.tsx b/pages/cart/calendar/index.tsx
index a3f5746..7a77aec 100644
--- a/pages/cart/calendar/index.tsx
+++ b/pages/cart/calendar/index.tsx
@@ -57,6 +57,7 @@ export default function CalendarPage({ initialEvents, initialShifts }) {
const [allShifts, setAllShifts] = useState(initialShifts);
+ const [isPublished, setIsPublished] = useState(() => initialShifts.some(shift => shift.isPublished));
const [value, onChange] = useState(new Date());
const [shifts, setShifts] = React.useState([]);
const [error, setError] = React.useState(null);
@@ -100,7 +101,7 @@ export default function CalendarPage({ initialEvents, initialShifts }) {
console.log("Setting date to '" + date.toLocaleDateString() + "' from '" + selectedDate.toLocaleDateString() + "'. ISO: " + date.toISOString(), "locale ISO:", common.getISODateOnly(date));
if (isCheckboxChecked) {
console.log(`getting unassigned publishers for ${common.getMonthName(date.getMonth())} ${date.getFullYear()}`);
- const { data: availablePubsForDate } = await axiosInstance.get(`/api/?action=getUnassignedPublishers&date=${dateStr}&select=id,firstName,lastName,isactive,desiredShiftsPerMonth`);
+ const { data: availablePubsForDate } = await axiosInstance.get(`/api/?action=getUnassignedPublishers&date=${dateStr}&select=id,firstName,lastName,isActive,desiredShiftsPerMonth`);
setAvailablePubs(availablePubsForDate);
}
else {
@@ -108,7 +109,8 @@ export default function CalendarPage({ initialEvents, initialShifts }) {
try {
const { data: shiftsForDate } = await axiosInstance.get(`/api/?action=getShiftsForDay&date=${dateStr}`);
setShifts(shiftsForDate);
- let { data: availablePubsForDate } = await axiosInstance.get(`/api/?action=filterPublishers&assignments=true&availabilities=true&date=${dateStr}&select=id,firstName,lastName,isactive,desiredShiftsPerMonth`);
+ setIsPublished(shiftsForDate.some(shift => shift.isPublished));
+ let { data: availablePubsForDate } = await axiosInstance.get(`/api/?action=filterPublishers&assignments=true&availabilities=true&date=${dateStr}&select=id,firstName,lastName,isActive,desiredShiftsPerMonth`);
availablePubsForDate.forEach(pub => {
pub.canTransport = pub.availabilities.some(av =>
@@ -172,8 +174,8 @@ export default function CalendarPage({ initialEvents, initialShifts }) {
// currentMonthAssignments and previousMonthAssignments properties
// Sort publishers based on availability and then by assignment counts.
const sortedPubs = updatedPubs.sort((a, b) => {
- if (a.isactive !== b.isactive) {
- return a.isactive ? -1 : 1;
+ if (a.isActive !== b.isActive) {
+ return a.isActive ? -1 : 1;
}
// First, sort by isselected.
if (a.isSelected !== b.isSelected) {
@@ -355,7 +357,7 @@ export default function CalendarPage({ initialEvents, initialShifts }) {
const newAssignment = {
publisher: { connect: { id: publisher.id } },
shift: { connect: { id: shiftId } },
- isactive: true,
+ isActive: true,
isConfirmed: true
};
const { data } = await axiosInstance.post("/api/data/assignments", newAssignment);
@@ -511,10 +513,26 @@ export default function CalendarPage({ initialEvents, initialShifts }) {
}
}
+ const togglePublished = async () => {
+ try {
+ const publishState = !isPublished; // Toggle the state
+ const isPublishedParam = publishState ? 'true' : 'fasle';
+ await axiosInstance.get(`/api/?action=updateShifts&isPublished=${isPublishedParam}&date=${common.getISODateOnly(value)}`);
+ setIsPublished(publishState); // Update state based on the action
+
+ } catch (error) {
+ console.log(error);
+ }
+ }
+
const [isMenuOpen, setIsMenuOpen] = useState(false);
const [isConfirmModalOpen, setConfirmModalOpen] = useState(false);
+ async function copyOldAvailabilities(event: MouseEvent): Promise {
+ await axiosInstance.get(`/api/?action=copyOldAvailabilities&date=${common.getISODateOnly(value)}`);
+ }
+
return (
<>
@@ -550,6 +568,12 @@ export default function CalendarPage({ initialEvents, initialShifts }) {
}}
message="Това ще изпрати имейли до всички участници за смените им през избрания месец. Сигурни ли сте?"
/>
+
+
)}
@@ -669,7 +694,7 @@ export default function CalendarPage({ initialEvents, initialShifts }) {
// Determine border class if selected
const selectedBorderClass = pub.isSelected ? 'border-blue-400 border-b-4' : '';
// Determine opacity class
- const activeOpacityClass = pub.isactive ? '' : 'opacity-25';
+ const activeOpacityClass = pub.isActive ? '' : 'opacity-25';
return (
@@ -878,20 +903,20 @@ export const getServerSideProps = async (context) => {
const url = `/api/data/shifts?where={"startTime":{"$and":[{"$gte":"${common.getISODateOnly(firstDayOfMonth)}","$lt":"${common.getISODateOnly(lastDayOfMonth)}"}]}}`;
const prismaClient = common.getPrismaClient();
- // let events = await prismaClient.cartEvent.findMany({ where: { isactive: true } });
+ // let events = await prismaClient.cartEvent.findMany({ where: { isActive: true } });
// events = events.map(event => ({
// ...event,
// // Convert Date objects to ISO strings
// startTime: event.startTime.toISOString(),
// endTime: event.endTime.toISOString(),
// }));
- const { data: events } = await axios.get(`/api/data/cartevents?where={"isactive":true}`);
+ const { data: events } = await axios.get(`/api/data/cartevents?where={"isActive":true}`);
//const { data: shifts } = await axios.get(url);
// get all shifts for the month, including assigments
let shifts = await prismaClient.shift.findMany({
where: {
- isactive: true,
+ isActive: true,
startTime: {
gte: firstDayOfMonth,
//lt: lastDayOfMonth
diff --git a/pages/cart/cartevents/index.tsx b/pages/cart/cartevents/index.tsx
index c5006c1..0396d9f 100644
--- a/pages/cart/cartevents/index.tsx
+++ b/pages/cart/cartevents/index.tsx
@@ -69,7 +69,7 @@ export default function CartEventPage({ items, locations }: ICartEventPageProps)
{item.shiftDuration}
|
- {item.isactive ? "Yes" : "No"}
+ {item.isActive ? "Yes" : "No"}
|
|