ソースを参照

saturday normal hr

(cherry picked from commit 7d983ad5a9)
(cherry picked from commit 7929cfd7a0)
pull/5/head
DESKTOP\derek 6ヶ月前
committed by MSI\derek
コミット
388cd135f5
6個のファイルの変更23行の追加13行の削除
  1. +8
    -3
      src/components/DateHoursTable/DateHoursTable.tsx
  2. +3
    -0
      src/components/TimeLeaveModal/TimeLeaveModal.tsx
  3. +4
    -0
      src/components/UserWorkspacePage/UserWorkspacePage.tsx
  4. +4
    -0
      src/components/UserWorkspacePage/UserWorkspaceWrapper.tsx
  5. +0
    -8
      src/config/authConfig.ts
  6. +4
    -2
      src/middleware.ts

+ 8
- 3
src/components/DateHoursTable/DateHoursTable.tsx ファイルの表示

@@ -36,6 +36,7 @@ interface Props<EntryTableProps = object> {
EntryTableProps & { day: string; isHoliday: boolean } EntryTableProps & { day: string; isHoliday: boolean }
>; >;
entryTableProps: EntryTableProps; entryTableProps: EntryTableProps;
isSaturdayWorker: boolean
} }


function DateHoursTable<EntryTableProps>({ function DateHoursTable<EntryTableProps>({
@@ -45,9 +46,9 @@ function DateHoursTable<EntryTableProps>({
leaveEntries, leaveEntries,
timesheetEntries, timesheetEntries,
companyHolidays, companyHolidays,
isSaturdayWorker,
}: Props<EntryTableProps>) { }: Props<EntryTableProps>) {
const { t } = useTranslation("home"); const { t } = useTranslation("home");

return ( return (
<TableContainer sx={{ maxHeight: 400 }}> <TableContainer sx={{ maxHeight: 400 }}>
<Table stickyHeader> <Table stickyHeader>
@@ -71,6 +72,7 @@ function DateHoursTable<EntryTableProps>({
timesheetEntries={timesheetEntries} timesheetEntries={timesheetEntries}
EntryTableComponent={EntryTableComponent} EntryTableComponent={EntryTableComponent}
entryTableProps={entryTableProps} entryTableProps={entryTableProps}
isSaturdayWorker={isSaturdayWorker}
/> />
); );
})} })}
@@ -87,6 +89,7 @@ function DayRow<EntryTableProps>({
entryTableProps, entryTableProps,
EntryTableComponent, EntryTableComponent,
companyHolidays, companyHolidays,
isSaturdayWorker,
}: { }: {
day: string; day: string;
companyHolidays: HolidaysResult[]; companyHolidays: HolidaysResult[];
@@ -96,16 +99,18 @@ function DayRow<EntryTableProps>({
EntryTableProps & { day: string; isHoliday: boolean } EntryTableProps & { day: string; isHoliday: boolean }
>; >;
entryTableProps: EntryTableProps; entryTableProps: EntryTableProps;
isSaturdayWorker: boolean
}) { }) {
const { const {
t, t,
i18n: { language }, i18n: { language },
} = useTranslation("home"); } = useTranslation("home");
const dayJsObj = dayjs(day); const dayJsObj = dayjs(day);
const [open, setOpen] = useState(false);


const [open, setOpen] = useState(false);
const holiday = getHolidayForDate(day, companyHolidays); const holiday = getHolidayForDate(day, companyHolidays);
const isHoliday = holiday || dayJsObj.day() === 0 || dayJsObj.day() === 6;
const isWeekend = !isSaturdayWorker ? dayJsObj.day() === 0 || dayJsObj.day() === 6 : dayJsObj.day() === 0;
const isHoliday = holiday || isWeekend;


const leaves = leaveEntries[day]; const leaves = leaveEntries[day];
const leaveHours = const leaveHours =


+ 3
- 0
src/components/TimeLeaveModal/TimeLeaveModal.tsx ファイルの表示

@@ -54,6 +54,7 @@ interface Props {
isFullTime: boolean; isFullTime: boolean;
joinDate: Dayjs; joinDate: Dayjs;
miscTasks: Task[]; miscTasks: Task[];
isSaturdayWorker: boolean
} }


const modalSx: SxProps = { const modalSx: SxProps = {
@@ -81,6 +82,7 @@ const TimeLeaveModal: React.FC<Props> = ({
isFullTime, isFullTime,
joinDate, joinDate,
miscTasks, miscTasks,
isSaturdayWorker,
}) => { }) => {
const { t } = useTranslation("home"); const { t } = useTranslation("home");


@@ -227,6 +229,7 @@ const TimeLeaveModal: React.FC<Props> = ({
leaveTypes, leaveTypes,
miscTasks, miscTasks,
}} }}
isSaturdayWorker={isSaturdayWorker}
/> />
</Box> </Box>
{errorComponent} {errorComponent}


+ 4
- 0
src/components/UserWorkspacePage/UserWorkspacePage.tsx ファイルの表示

@@ -43,6 +43,7 @@ export interface Props {
isFullTime: boolean; isFullTime: boolean;
joinDate?: number | null; joinDate?: number | null;
miscTasks: Task[]; miscTasks: Task[];
isSaturdayWorker: boolean
} }


const menuItemSx: SxProps = { const menuItemSx: SxProps = {
@@ -65,6 +66,7 @@ const UserWorkspacePage: React.FC<Props> = ({
isFullTime, isFullTime,
joinDate, joinDate,
miscTasks, miscTasks,
isSaturdayWorker
}) => { }) => {
const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null); const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);


@@ -183,6 +185,7 @@ const UserWorkspacePage: React.FC<Props> = ({
allProjects={allProjects} allProjects={allProjects}
leaveTypes={leaveTypes} leaveTypes={leaveTypes}
companyHolidays={holidays} companyHolidays={holidays}
isSaturdayWorker={isSaturdayWorker}
/> />
<TimeLeaveModal <TimeLeaveModal
fastEntryEnabled={fastEntryEnabled} fastEntryEnabled={fastEntryEnabled}
@@ -197,6 +200,7 @@ const UserWorkspacePage: React.FC<Props> = ({
isFullTime={isFullTime} isFullTime={isFullTime}
joinDate={dayjs(joinDate)} joinDate={dayjs(joinDate)}
miscTasks={miscTasks} miscTasks={miscTasks}
isSaturdayWorker={isSaturdayWorker}
/> />
<LeaveModal <LeaveModal
open={isLeaveCalendarVisible} open={isLeaveCalendarVisible}


+ 4
- 0
src/components/UserWorkspacePage/UserWorkspaceWrapper.tsx ファイルの表示

@@ -16,6 +16,7 @@ import {
MAINTAIN_TIMESHEET_FAST_TIME_ENTRY, MAINTAIN_TIMESHEET_FAST_TIME_ENTRY,
MAINTAIN_NORMAL_STAFF_WORKSPACE, MAINTAIN_NORMAL_STAFF_WORKSPACE,
MAINTAIN_MANAGEMENT_STAFF_WORKSPACE, MAINTAIN_MANAGEMENT_STAFF_WORKSPACE,
SATURDAY_WORKERS
} from "@/middleware"; } from "@/middleware";
import { fetchAllTasks } from "@/app/api/tasks"; import { fetchAllTasks } from "@/app/api/tasks";


@@ -59,6 +60,8 @@ const UserWorkspaceWrapper: React.FC = async () => {


const miscTasks = allTasks.filter((t) => t.taskGroup.id === 5); const miscTasks = allTasks.filter((t) => t.taskGroup.id === 5);


const isSaturdayWorker = abilities.includes(SATURDAY_WORKERS)

return ( return (
<UserWorkspacePage <UserWorkspacePage
joinDate={userStaff?.joinDate} joinDate={userStaff?.joinDate}
@@ -78,6 +81,7 @@ const UserWorkspaceWrapper: React.FC = async () => {
maintainManagementStaffWorkspaceAbility={ maintainManagementStaffWorkspaceAbility={
maintainManagementStaffWorkspaceAbility maintainManagementStaffWorkspaceAbility
} }
isSaturdayWorker={isSaturdayWorker}
/> />
); );
}; };


+ 0
- 8
src/config/authConfig.ts ファイルの表示

@@ -58,14 +58,6 @@ export const authOptions: AuthOptions = {
jwt(params) { jwt(params) {
// Add the data from user to the token // Add the data from user to the token
const { token, user, account, trigger, session } = params; const { token, user, account, trigger, session } = params;
// console.log("--------------------------")
// console.log("%c [ token ]:", 'font-size:13px; background:#A888B5; color:#bf2c9f;', token)
// console.log("%c [ user ]:", 'font-size:13px; background:pink; color:#bf2c9f;', user)
// console.log("%c [ account ]:", 'font-size:13px; background:pink; color:#bf2c9f;', account)
// console.log("%c [ session ]:", 'font-size:13px; background:#FFD2A0; color:#bf2c9f;', session)
// console.log("%c [ trigger ]:", 'font-size:13px; background:#EFB6C8; color:#bf2c9f;', trigger)
// console.log(params)
// console.log("--------------------------")


if (trigger === "update" && session?.accessToken && session?.refreshToken) { if (trigger === "update" && session?.accessToken && session?.refreshToken) {
token.accessToken = session.accessToken token.accessToken = session.accessToken


+ 4
- 2
src/middleware.ts ファイルの表示

@@ -71,7 +71,8 @@ export const [
GENERATE_PROJECT_CASH_FLOW_REPORT, GENERATE_PROJECT_CASH_FLOW_REPORT,
GENERATE_STAFF_MONTHLY_WORK_HOURS_ANALYSIS_REPORT, GENERATE_STAFF_MONTHLY_WORK_HOURS_ANALYSIS_REPORT,
GENERATE_CROSS_TEAM_CHARGE_REPORT, GENERATE_CROSS_TEAM_CHARGE_REPORT,
VIEW_ALL_PROJECTS
VIEW_ALL_PROJECTS,
SATURDAY_WORKERS
] = [ ] = [
'MAINTAIN_USER', 'MAINTAIN_USER',
'MAINTAIN_TIMESHEET', 'MAINTAIN_TIMESHEET',
@@ -124,7 +125,8 @@ export const [
'G_PROJECT_CASH_FLOW_REPORT', 'G_PROJECT_CASH_FLOW_REPORT',
'G_STAFF_MONTHLY_WORK_HOURS_ANALYSIS_REPORT', 'G_STAFF_MONTHLY_WORK_HOURS_ANALYSIS_REPORT',
'G_CROSS_TEAM_CHARGE_REPORT', 'G_CROSS_TEAM_CHARGE_REPORT',
'VIEW_ALL_PROJECTS'
'VIEW_ALL_PROJECTS',
'SATURDAY_WORKERS'
] ]


const PRIVATE_ROUTES = [ const PRIVATE_ROUTES = [


読み込み中…
キャンセル
保存