diff --git a/src/app/api/auth/logout/route.ts b/src/app/api/auth/logout/route.ts
index 29f11a1..69c14fe 100644
--- a/src/app/api/auth/logout/route.ts
+++ b/src/app/api/auth/logout/route.ts
@@ -1,6 +1,9 @@
+import { createLogUser } from "@/module/user";
import { cookies } from "next/headers";
export async function DELETE() {
+ const log = await createLogUser({ act: 'LOGOUT', desc: 'User keluar dari program', table: 'user', data: '' })
+
cookies().delete('sessionCookieSDM')
return Response.json({ success: true })
diff --git a/src/app/api/division/[id]/route.ts b/src/app/api/division/[id]/route.ts
index 07b33c8..85b6110 100644
--- a/src/app/api/division/[id]/route.ts
+++ b/src/app/api/division/[id]/route.ts
@@ -36,7 +36,8 @@ export async function GET(request: Request, context: { params: { id: string } })
idUser: true,
User: {
select: {
- name: true
+ name: true,
+ img: true
}
}
},
@@ -47,7 +48,8 @@ export async function GET(request: Request, context: { params: { id: string } })
const fixMember = member.map((v: any) => ({
..._.omit(v, ["User"]),
- name: v.User.name
+ name: v.User.name,
+ img: v.User.img
}))
const dataFix = {
diff --git a/src/app/api/home/route.ts b/src/app/api/home/route.ts
index e05b640..69b0864 100644
--- a/src/app/api/home/route.ts
+++ b/src/app/api/home/route.ts
@@ -150,7 +150,7 @@ export async function GET(request: Request) {
for (let index = 0; index < dataStatus.length; index++) {
const cek = data.some((i: any) => i.status == dataStatus[index].status)
if (cek) {
- const find = (Number(data.find((i: any) => i.status == dataStatus[index].status)?._count) * 100)/ data.reduce((n, {_count}) => n + _count, 0)
+ const find = ((Number(data.find((i: any) => i.status == dataStatus[index].status)?._count) * 100)/ data.reduce((n, {_count}) => n + _count, 0)).toFixed(2)
input = {
name: dataStatus[index].name,
value: find
diff --git a/src/app/api/user/profile/route.ts b/src/app/api/user/profile/route.ts
index 45a33f0..2eee6b9 100644
--- a/src/app/api/user/profile/route.ts
+++ b/src/app/api/user/profile/route.ts
@@ -4,6 +4,7 @@ import _ from "lodash";
import { NextResponse } from "next/server";
import path from "path";
import fs from "fs";
+import { createLogUser } from "@/module/user";
// GET PROFILE BY COOKIES
@@ -139,6 +140,8 @@ export async function PUT(request: Request) {
})
}
+ const log = await createLogUser({ act: 'UPDATE', desc: 'User mengupdate data profile', table: 'user', data: user.id })
+
return NextResponse.json({ success: true, message: "Berhasil ubah profile" });
} catch (error) {
return NextResponse.json({ success: false, message: "Gagal ubah profile" }, { status: 500 });
diff --git a/src/module/auth/api/funSetCookies.ts b/src/module/auth/api/funSetCookies.ts
index 965203f..5ff7cf9 100644
--- a/src/module/auth/api/funSetCookies.ts
+++ b/src/module/auth/api/funSetCookies.ts
@@ -2,6 +2,7 @@
import { sealData } from "iron-session";
import { cookies } from "next/headers";
import { prisma, pwd_key_config } from "@/module/_global";
+import { createLogUser } from "@/module/user";
export default async function funSetCookies({ user }: { user: string }) {
try {
@@ -11,8 +12,8 @@ export default async function funSetCookies({ user }: { user: string }) {
const dataUser = await prisma.user.findUnique({
where: {
id: user
- },
- select:{
+ },
+ select: {
isFirstLogin: true
}
})
@@ -34,7 +35,7 @@ export default async function funSetCookies({ user }: { user: string }) {
value: encryptedUserData,
});
-
+ const log = await createLogUser({ act: 'LOGIN', desc: 'User masuk ke program', table: 'user', data: '' })
return { success: true, message: "Login berhasil!", pertamaLogin: dataUser?.isFirstLogin };
} catch (error) {
diff --git a/src/module/division_new/lib/type_division.ts b/src/module/division_new/lib/type_division.ts
index 3572cec..ea6bbf0 100644
--- a/src/module/division_new/lib/type_division.ts
+++ b/src/module/division_new/lib/type_division.ts
@@ -55,5 +55,6 @@ export interface IDataMemberDivision {
idUser: string,
isAdmin: string,
isLeader: string,
- name: string
+ name: string,
+ img: string
}
\ No newline at end of file
diff --git a/src/module/task/ui/create_task.tsx b/src/module/task/ui/create_task.tsx
index ed0f1e6..e2911ea 100644
--- a/src/module/task/ui/create_task.tsx
+++ b/src/module/task/ui/create_task.tsx
@@ -153,7 +153,7 @@ export default function CreateTask() {
borderRadius: 10,
}}
>
- Tambah Anggota
+ Tambah Anggota
@@ -205,7 +205,7 @@ export default function CreateTask() {
{
member.length > 0 &&
-
+
Anggota Terpilih
Total {member.length} Anggota
@@ -229,7 +229,7 @@ export default function CreateTask() {
key={i}
>
-
+
{v.name}
diff --git a/src/module/task/ui/create_users_project.tsx b/src/module/task/ui/create_users_project.tsx
index 1b15d8d..20079fe 100644
--- a/src/module/task/ui/create_users_project.tsx
+++ b/src/module/task/ui/create_users_project.tsx
@@ -4,18 +4,15 @@ import { funGetDivisionById, IDataMemberDivision } from "@/module/division_new";
import { useHookstate } from "@hookstate/core";
import {
ActionIcon,
- Anchor,
Avatar,
Box,
Button,
- Checkbox,
Divider,
Flex,
Group,
rem,
Skeleton,
Text,
- TextInput,
} from "@mantine/core";
import { useShallowEffect } from "@mantine/hooks";
import { useParams, useRouter } from "next/navigation";
@@ -23,6 +20,8 @@ import React, { useState } from "react";
import toast from "react-hot-toast";
import { globalMemberTask } from "../lib/val_task";
import { FaCheck } from "react-icons/fa6";
+import { RiListCheck } from "react-icons/ri";
+import { BsListCheck } from "react-icons/bs";
export default function CreateUsersProject({ onClose }: { onClose: (val: any) => void }) {
const router = useRouter()
@@ -64,7 +63,7 @@ export default function CreateUsersProject({ onClose }: { onClose: (val: any) =>
if (selectedFiles.some((i: any) => i.idUser == isData[index].idUser)) {
setSelectedFiles(selectedFiles.filter((i: any) => i.idUser != isData[index].idUser))
} else {
- setSelectedFiles([...selectedFiles, { idUser: isData[index].idUser, name: isData[index].name }])
+ setSelectedFiles([...selectedFiles, { idUser: isData[index].idUser, name: isData[index].name, img: isData[index].img }])
}
};
@@ -76,7 +75,7 @@ export default function CreateUsersProject({ onClose }: { onClose: (val: any) =>
for (let index = 0; index < isData.length; index++) {
if (!selectedFiles.some((i: any) => i.idUser == isData[index].idUser)) {
const newArr = {
- idUser: isData[index].idUser, name: isData[index].name
+ idUser: isData[index].idUser, name: isData[index].name, img: isData[index].img
}
setSelectedFiles((selectedFiles: any) => [...selectedFiles, newArr])
}
@@ -112,10 +111,10 @@ export default function CreateUsersProject({ onClose }: { onClose: (val: any) =>
Pilih Semua Anggota
- {selectAll ? : ""}
+
}
-
+
{loading ?
Array(3)
.fill(null)
@@ -146,7 +145,7 @@ export default function CreateUsersProject({ onClose }: { onClose: (val: any) =>
handleFileClick(i)}>
-
+