data api and UI style fixes
This commit is contained in:
@ -910,7 +910,7 @@ export default function CalendarPage({ initialEvents, initialShifts }) {
|
|||||||
return (
|
return (
|
||||||
<div
|
<div
|
||||||
key={index}
|
key={index}
|
||||||
className={`text-sm text-white p-2 rounded-md ${isFromPrevMonth ? 'border-l-6 border-black-500' : ''} ${assignmentExists ? 'bg-blue-200' : shift.color} h-24 flex flex-col justify-center`}
|
className={`text-sm text-white p-2 rounded-md ${isFromPrevMonth ? 'border-l-6 border-black-500' : ''} ${shift.color} ${assignmentExists ? 'border-2 border-blue-500' : ""} h-24 flex flex-col justify-center`}
|
||||||
>
|
>
|
||||||
{common.getTimeRange(shift.startTime, shift.endTime)} {shift.id}
|
{common.getTimeRange(shift.startTime, shift.endTime)} {shift.id}
|
||||||
|
|
||||||
|
@ -212,7 +212,7 @@ async function getAvailabilities(userId) {
|
|||||||
* This function heavily relies on the `prisma` client to query and manipulate data related to publishers.
|
* This function heavily relies on the `prisma` client to query and manipulate data related to publishers.
|
||||||
*
|
*
|
||||||
* @param {Array|string} selectFields - Fields to select from the publishers data. Can be an array of field names or a comma-separated string of field names.
|
* @param {Array|string} selectFields - Fields to select from the publishers data. Can be an array of field names or a comma-separated string of field names.
|
||||||
* @param {string|Date} filterDate - The reference date for filtering. Can be a date string or a Date object. Used to determine relevant time frames like current month, previous month, etc.
|
* @param {string|Date|null} filterDate - The reference date for filtering. Can be a date string, a Date object, or null. Used to determine relevant time frames like current month, previous month, etc.
|
||||||
* @param {boolean} [isExactTime=false] - If true, filters publishers who are available at the exact time of `filterDate` plus/minus a specific duration (e.g., 90 minutes).
|
* @param {boolean} [isExactTime=false] - If true, filters publishers who are available at the exact time of `filterDate` plus/minus a specific duration (e.g., 90 minutes).
|
||||||
* @param {boolean} [isForTheMonth=false] - If true, adjusts the filtering to encompass the entire month based on `filterDate`.
|
* @param {boolean} [isForTheMonth=false] - If true, adjusts the filtering to encompass the entire month based on `filterDate`.
|
||||||
* @param {boolean} [noEndDateFilter=false] - If true, removes any filtering based on the end date of publishers' availabilities.
|
* @param {boolean} [noEndDateFilter=false] - If true, removes any filtering based on the end date of publishers' availabilities.
|
||||||
@ -224,9 +224,36 @@ async function getAvailabilities(userId) {
|
|||||||
async function filterPublishersNew(selectFields, filterDate, isExactTime = false, isForTheMonth = false, noEndDateFilter = false, isWithStats = true, includeOldAvailabilities = false, id = null) {
|
async function filterPublishersNew(selectFields, filterDate, isExactTime = false, isForTheMonth = false, noEndDateFilter = false, isWithStats = true, includeOldAvailabilities = false, id = null) {
|
||||||
|
|
||||||
const prisma = common.getPrismaClient();
|
const prisma = common.getPrismaClient();
|
||||||
if (filterDate !== null) {
|
|
||||||
|
let filterTimeFrom, filterTimeTo;
|
||||||
|
if (filterDate === null || filterDate === "" || filterDate === undefined) {
|
||||||
|
noEndDateFilter = true;
|
||||||
|
isForTheMonth = false;
|
||||||
|
isExactTime = false;
|
||||||
|
} else {
|
||||||
filterDate = new Date(filterDate); // Convert to date object if not already
|
filterDate = new Date(filterDate); // Convert to date object if not already
|
||||||
|
//check if filterDate is valid date
|
||||||
|
if (isNaN(filterDate.getTime())) {
|
||||||
|
console.error("Invalid date: " + filterDate);
|
||||||
|
filterTimeFrom = new Date(2024, 1, 1);
|
||||||
|
noEndDateFilter = true;
|
||||||
|
isForTheMonth = false
|
||||||
|
isExactTime = false;
|
||||||
|
} else {
|
||||||
|
filterTimeFrom = new Date(filterDate)
|
||||||
|
filterTimeTo = new Date(filterDate);
|
||||||
|
if (isExactTime) {
|
||||||
|
//add +- 90 minutes to the filterDate ToDo: should be "shift duration"
|
||||||
|
// filterTimeFrom.setMinutes(filterTimeFrom.getMinutes() - 90);
|
||||||
|
filterTimeTo.setMinutes(filterTimeTo.getMinutes() + 90);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
filterTimeFrom.setHours(0, 0, 0, 0);
|
||||||
|
filterTimeTo.setHours(23, 59, 59, 999);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const monthInfo = common.getMonthDatesInfo(filterDate);
|
const monthInfo = common.getMonthDatesInfo(filterDate);
|
||||||
let prevMnt = new Date(filterDate)
|
let prevMnt = new Date(filterDate)
|
||||||
prevMnt.setMonth(prevMnt.getMonth() - 1);
|
prevMnt.setMonth(prevMnt.getMonth() - 1);
|
||||||
@ -240,7 +267,6 @@ async function filterPublishersNew(selectFields, filterDate, isExactTime = false
|
|||||||
return acc;
|
return acc;
|
||||||
}, {});
|
}, {});
|
||||||
|
|
||||||
|
|
||||||
selectBase.assignments = {
|
selectBase.assignments = {
|
||||||
select: {
|
select: {
|
||||||
id: true,
|
id: true,
|
||||||
@ -252,25 +278,15 @@ async function filterPublishersNew(selectFields, filterDate, isExactTime = false
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
where: {
|
// where: {
|
||||||
shift: {
|
// shift: {
|
||||||
startTime: {
|
// startTime: {
|
||||||
gte: prevMnt,
|
// gte: prevMnt,
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
};
|
};
|
||||||
|
|
||||||
let filterTimeFrom = new Date(filterDate)
|
|
||||||
let filterTimeTo = new Date(filterDate);
|
|
||||||
//check if filterDate is valid date
|
|
||||||
if (isNaN(filterDate.getTime())) {
|
|
||||||
console.error("Invalid date: " + filterDate);
|
|
||||||
filterTimeFrom = new Date(2024, 1, 1);
|
|
||||||
noEndDateFilter = true;
|
|
||||||
isForTheMonth = false
|
|
||||||
}
|
|
||||||
|
|
||||||
let isDayFilter = true;
|
let isDayFilter = true;
|
||||||
let whereClause = {};
|
let whereClause = {};
|
||||||
if (id) {
|
if (id) {
|
||||||
@ -284,17 +300,14 @@ async function filterPublishersNew(selectFields, filterDate, isExactTime = false
|
|||||||
filterTimeTo = monthInfo.lastSunday;
|
filterTimeTo = monthInfo.lastSunday;
|
||||||
isDayFilter = false;
|
isDayFilter = false;
|
||||||
}
|
}
|
||||||
if (isExactTime) {
|
|
||||||
//add +- 90 minutes to the filterDate ToDo: should be "shift duration"
|
|
||||||
// filterTimeFrom.setMinutes(filterTimeFrom.getMinutes() - 90);
|
|
||||||
filterTimeTo.setMinutes(filterTimeTo.getMinutes() + 90);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
filterTimeFrom.setHours(0, 0, 0, 0);
|
|
||||||
filterTimeTo.setHours(23, 59, 59, 999);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (filterDate) { // if no date is provided, we don't filter by date
|
|
||||||
|
if (filterTimeFrom) { // if no date is provided, we don't filter by date
|
||||||
|
selectBase.assignments.where = {
|
||||||
|
shift: {
|
||||||
|
startTime: { gte: prevMnt },
|
||||||
|
}
|
||||||
|
};
|
||||||
whereClause["availabilities"] = {
|
whereClause["availabilities"] = {
|
||||||
some: {
|
some: {
|
||||||
OR: [
|
OR: [
|
||||||
|
Reference in New Issue
Block a user