Merge remote-tracking branch 'origin/main' into production

This commit is contained in:
Dobromir Popov
2024-03-13 13:34:31 +02:00
4 changed files with 31 additions and 8 deletions

View File

@ -560,7 +560,7 @@ async function DeleteSchedule(axios: Axios, date: Date, forDay: Boolean | undefi
async function CreateCalendarForUser(eventId: string | string[] | undefined) { async function CreateCalendarForUser(eventId: string | string[] | undefined) {
try { try {
CAL.authorizeNew(); //CAL.authorizeNew();
CAL.createEvent(eventId); CAL.createEvent(eventId);
} catch (error) { } catch (error) {
console.log(error); console.log(error);

View File

@ -87,8 +87,10 @@ export default function MySchedulePage({ assignments }) {
<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">
<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-green-500" 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"
onClick={() => AddToGoogleCalendar(assignment.id)} disabled={true}
// disabled={assignment.isInGoogleCalendar}
onClick={() => SaveEventsInGoogleCalendar(assignment)}
> >
Добави в календар Добави в календар
</button> </button>
@ -128,7 +130,6 @@ export default function MySchedulePage({ assignments }) {
onChange={(publisher) => { onChange={(publisher) => {
setIsConfirmModalOpen(true); setIsConfirmModalOpen(true);
setNewPublisher(publisher); setNewPublisher(publisher);
}} }}
showAllAuto={true} showAllAuto={true}
showSearch={true} showSearch={true}
@ -164,14 +165,18 @@ export const getServerSideProps = async (context) => {
} }
const prisma = common.getPrismaClient(); const prisma = common.getPrismaClient();
const publisher = await prisma.publisher.findMany({ const monthInfo = common.getMonthInfo(new Date());
//minus 1 day from the firstMonday to get the last Sunday
const lastSunday = new Date(monthInfo.firstMonday);
lastSunday.setDate(lastSunday.getDate() - 1);
const publisher = await prisma.publisher.findUnique({
where: { where: {
id: session.user.id, id: session.user.id,
assignments: { assignments: {
some: { some: {
shift: { shift: {
startTime: { startTime: {
gte: new Date(), gte: lastSunday,
}, },
}, },
}, },
@ -200,7 +205,7 @@ export const getServerSideProps = async (context) => {
}, },
}); });
const assignments = publisher[0]?.assignments || []; const assignments = publisher?.assignments || [];
const transformedAssignments = assignments?.map(assignment => { const transformedAssignments = assignments?.map(assignment => {
if (assignment.shift && assignment.shift.startTime) { if (assignment.shift && assignment.shift.startTime) {

View File

@ -474,7 +474,24 @@ createEvent = async (event) => {
} }
}; };
SaveEventsInGoogleCalendar = async function SaveEventsInGoogleCalendar(events) {
// Load client secrets from a local file.
try {
const content = await fs.readFile(CREDENTIALS_PATH);
// Authorize a client with credentials, then call the Google Calendar API.
authorize(JSON.parse(content), createEvent);
} catch (err) {
console.log("Error loading client secret file:", err);
}
};
exports.GenerateICS = GenerateICS; exports.GenerateICS = GenerateICS;
exports.createEvent = createEvent; exports.createEvent = createEvent;
exports.SaveEventsInGoogleCalendar = SaveEventsInGoogleCalendar;
createEvent();
//createEvent();

View File

@ -288,6 +288,7 @@ exports.getMonthDatesInfo = function (date) {
nrOfWeeks: Math.ceil((lastMonday.getDate() - firstMonday.getDate()) / 7) nrOfWeeks: Math.ceil((lastMonday.getDate() - firstMonday.getDate()) / 7)
}; };
}; };
exports.getMonthInfo = exports.getMonthDatesInfo;
exports.getMonthlyScheduleRange = function (date) { exports.getMonthlyScheduleRange = function (date) {
let info = exports.getMonthDatesInfo(date); let info = exports.getMonthDatesInfo(date);