fix initial calendar loading;
show unpublished events in calendar for ADMINS mark unavailable publishers when they are available on another time on the same day;
This commit is contained in:
@ -1,6 +1,8 @@
|
||||
import { getToken } from "next-auth/jwt";
|
||||
import { authOptions } from './auth/[...nextauth]'
|
||||
import { getServerSession } from "next-auth/next"
|
||||
import { NextApiRequest, NextApiResponse } from 'next'
|
||||
import { DayOfWeek, AvailabilityType } from '@prisma/client';
|
||||
import { DayOfWeek, AvailabilityType, UserRole } from '@prisma/client'; s
|
||||
const common = require('../../src/helpers/common');
|
||||
const dataHelper = require('../../src/helpers/data');
|
||||
const subq = require('../../prisma/bl/subqueries');
|
||||
@ -46,6 +48,9 @@ export default async function handler(req, res) {
|
||||
let monthInfo = common.getMonthDatesInfo(day);
|
||||
const searchText = req.query.searchText?.normalize('NFC');
|
||||
|
||||
const sessionServer = await getServerSession(req, res, authOptions)
|
||||
var isAdmin = sessionServer?.user.role == UserRole.ADMIN
|
||||
|
||||
try {
|
||||
switch (action) {
|
||||
case "initDb":
|
||||
@ -137,7 +142,7 @@ export default async function handler(req, res) {
|
||||
break;
|
||||
|
||||
case "getCalendarEvents":
|
||||
let events = await dataHelper.getCalendarEvents(req.query.publisherId, day);
|
||||
let events = await dataHelper.getCalendarEvents(req.query.publisherId, true, true, isAdmin);
|
||||
res.status(200).json(events);
|
||||
|
||||
case "getPublisherInfo":
|
||||
|
@ -194,15 +194,24 @@ export const getServerSideProps = async (context) => {
|
||||
req: context.req,
|
||||
allowedRoles: [/* ...allowed roles... */]
|
||||
});
|
||||
const session = await getSession(context);
|
||||
// const session = await getSession(context);
|
||||
const sessionServer = await getServerSession(context.req, context.res, authOptions)
|
||||
|
||||
if (!session) { return { props: {} } }
|
||||
const role = session?.user.role;
|
||||
console.log("server role: " + role);
|
||||
const userId = session?.user.id;
|
||||
if (!sessionServer) {
|
||||
return {
|
||||
redirect: {
|
||||
destination: '/auth/signin',
|
||||
permanent: false,
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
var items = await dataHelper.getCalendarEvents(session.user.id);
|
||||
const role = sessionServer?.user.role;
|
||||
console.log("server role: " + role);
|
||||
const userId = sessionServer?.user.id;
|
||||
var isAdmin = sessionServer?.user.role == UserRole.ADMIN;//role.localeCompare(UserRole.ADMIN) === 0;
|
||||
|
||||
var items = await dataHelper.getCalendarEvents(userId, true, true, isAdmin);
|
||||
// common.convertDatesToISOStrings(items);
|
||||
//serializable dates
|
||||
items = items.map(item => {
|
||||
@ -210,7 +219,8 @@ export const getServerSideProps = async (context) => {
|
||||
...item,
|
||||
startTime: item.startTime.toISOString(),
|
||||
endTime: item.endTime.toISOString(),
|
||||
date: item.date.toISOString()
|
||||
date: item.date.toISOString(),
|
||||
name: common.getTimeFormatted(item.startTime) + "-" + common.getTimeFormatted(item.endTime)
|
||||
};
|
||||
|
||||
if (updatedItem.shift) {
|
||||
@ -246,7 +256,7 @@ export const getServerSideProps = async (context) => {
|
||||
return {
|
||||
props: {
|
||||
initialItems: items,
|
||||
userId: session?.user.id,
|
||||
userId: sessionServer?.user.id,
|
||||
cartEvents: cartEvents,
|
||||
// messages: (await import(`../content/i18n/${context.locale}.json`)).default
|
||||
},
|
||||
|
Reference in New Issue
Block a user