From 0948a79d43c861da0c2801ba50e0cac7a8a0245c Mon Sep 17 00:00:00 2001 From: amel Date: Fri, 30 Aug 2024 10:20:31 +0800 Subject: [PATCH 1/3] upd: home Deskripsi: - nilai persen 2 angka dibelakang koma No Issues --- src/app/api/home/route.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/api/home/route.ts b/src/app/api/home/route.ts index 8cc6eb5..e0a44ee 100644 --- a/src/app/api/home/route.ts +++ b/src/app/api/home/route.ts @@ -149,7 +149,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 From 611de86c09d15a152d410bca26ead75f46562b36 Mon Sep 17 00:00:00 2001 From: amel Date: Fri, 30 Aug 2024 11:13:37 +0800 Subject: [PATCH 2/3] upd: auth Deskripsi: - update log user pada edit profile, login, dan logout No Issues --- src/app/api/auth/logout/route.ts | 3 +++ src/app/api/user/profile/route.ts | 3 +++ src/module/auth/api/funSetCookies.ts | 7 ++++--- src/module/user/profile/ui/profile.tsx | 2 +- 4 files changed, 11 insertions(+), 4 deletions(-) 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/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/user/profile/ui/profile.tsx b/src/module/user/profile/ui/profile.tsx index 2b07fe5..e07ad4d 100644 --- a/src/module/user/profile/ui/profile.tsx +++ b/src/module/user/profile/ui/profile.tsx @@ -46,7 +46,7 @@ export default function Profile() { await fetch('/api/auth/logout', { method: 'DELETE', }); - toast.success('Logout Success') + toast.success('Logout Sukses') window.location.href = '/'; } From 3c50078218686e82b0ad25e021097b4d721dc892 Mon Sep 17 00:00:00 2001 From: amel Date: Fri, 30 Aug 2024 11:37:28 +0800 Subject: [PATCH 3/3] upd : task divisi Deskripsi - image member No Issues --- src/app/api/division/[id]/route.ts | 6 ++++-- src/module/division_new/lib/type_division.ts | 3 ++- src/module/task/ui/create_task.tsx | 6 +++--- src/module/task/ui/create_users_project.tsx | 15 +++++++-------- 4 files changed, 16 insertions(+), 14 deletions(-) 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/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)}> - +