Merge pull request #57 from bipproduction/qc/job

Qc/job
This commit is contained in:
Bagasbanuna02
2024-05-22 14:09:47 +08:00
committed by GitHub
249 changed files with 9644 additions and 1544 deletions

210
gen_api.ts Normal file
View File

@@ -0,0 +1,210 @@
import app_config from "@/util/app_config";
export const gen_api = {
/**
* [/Users/bagasbanuna/Documents/BIP/hipmi/src/app/api/test-scroll/route.ts](file:///Users/bagasbanuna/Documents/BIP/hipmi/src/app/api/test-scroll/route.ts)
*/
testScroll : async ({isServer}: {isServer?: boolean}) => {
return fetch(`${isServer && app_config.host || ''}/api/test-scroll/`, { method: 'GET', cache: 'no-cache' })
.then(res => res.json());
}
,
/**
* [/Users/bagasbanuna/Documents/BIP/hipmi/src/app/api/seeder/route.ts](file:///Users/bagasbanuna/Documents/BIP/hipmi/src/app/api/seeder/route.ts)
*/
seeder : async ({isServer}: {isServer?: boolean}) => {
return fetch(`${isServer && app_config.host || ''}/api/seeder/`, { method: 'GET', cache: 'no-cache' })
.then(res => res.json());
}
,
/**
* [/Users/bagasbanuna/Documents/BIP/hipmi/src/app/api/profile/url_foto/[url]/route.ts](file:///Users/bagasbanuna/Documents/BIP/hipmi/src/app/api/profile/url_foto/[url]/route.ts)
*/
profileUrl_fotoUrlByUrl : async ({url, isServer}: {url: string, isServer?: boolean}) => {
return fetch(`${isServer && app_config.host || ''}/api/profile/url_foto/${url}/`, { method: 'GET', cache: 'no-cache' })
.then(res => res.json());
}
,
/**
* [/Users/bagasbanuna/Documents/BIP/hipmi/src/app/api/profile/url_background/[url]/route.ts](file:///Users/bagasbanuna/Documents/BIP/hipmi/src/app/api/profile/url_background/[url]/route.ts)
*/
profileUrl_backgroundUrlByUrl : async ({url, isServer}: {url: string, isServer?: boolean}) => {
return fetch(`${isServer && app_config.host || ''}/api/profile/url_background/${url}/`, { method: 'GET', cache: 'no-cache' })
.then(res => res.json());
}
,
/**
* [/Users/bagasbanuna/Documents/BIP/hipmi/src/app/api/profile/foto/[id]/route.ts](file:///Users/bagasbanuna/Documents/BIP/hipmi/src/app/api/profile/foto/[id]/route.ts)
*/
profileFotoIdById : async ({id, isServer}: {id: string, isServer?: boolean}) => {
return fetch(`${isServer && app_config.host || ''}/api/profile/foto/${id}/`, { method: 'GET', cache: 'no-cache' })
.then(res => res.json());
}
,
/**
* [/Users/bagasbanuna/Documents/BIP/hipmi/src/app/api/profile/background/[id]/route.ts](file:///Users/bagasbanuna/Documents/BIP/hipmi/src/app/api/profile/background/[id]/route.ts)
*/
profileBackgroundIdById : async ({id, isServer}: {id: string, isServer?: boolean}) => {
return fetch(`${isServer && app_config.host || ''}/api/profile/background/${id}/`, { method: 'GET', cache: 'no-cache' })
.then(res => res.json());
}
,
/**
* [/Users/bagasbanuna/Documents/BIP/hipmi/src/app/api/portofolio/logo/[id]/route.ts](file:///Users/bagasbanuna/Documents/BIP/hipmi/src/app/api/portofolio/logo/[id]/route.ts)
*/
portofolioLogoIdById : async ({id, isServer}: {id: string, isServer?: boolean}) => {
return fetch(`${isServer && app_config.host || ''}/api/portofolio/logo/${id}/`, { method: 'GET', cache: 'no-cache' })
.then(res => res.json());
}
,
/**
* [/Users/bagasbanuna/Documents/BIP/hipmi/src/app/api/job/gambar/[id]/route.ts](file:///Users/bagasbanuna/Documents/BIP/hipmi/src/app/api/job/gambar/[id]/route.ts)
*/
jobGambarIdById : async ({id, isServer}: {id: string, isServer?: boolean}) => {
return fetch(`${isServer && app_config.host || ''}/api/job/gambar/${id}/`, { method: 'GET', cache: 'no-cache' })
.then(res => res.json());
}
,
/**
* [/Users/bagasbanuna/Documents/BIP/hipmi/src/app/api/investasi/prospektus/[id]/route.ts](file:///Users/bagasbanuna/Documents/BIP/hipmi/src/app/api/investasi/prospektus/[id]/route.ts)
*/
investasiProspektusIdById : async ({id, isServer}: {id: string, isServer?: boolean}) => {
return fetch(`${isServer && app_config.host || ''}/api/investasi/prospektus/${id}/`, { method: 'GET', cache: 'no-cache' })
.then(res => res.json());
}
,
/**
* [/Users/bagasbanuna/Documents/BIP/hipmi/src/app/api/investasi/midtrans/[id]/route.ts](file:///Users/bagasbanuna/Documents/BIP/hipmi/src/app/api/investasi/midtrans/[id]/route.ts)
*/
investasiMidtransIdById : async ({id, isServer}: {id: string, isServer?: boolean}) => {
return fetch(`${isServer && app_config.host || ''}/api/investasi/midtrans/${id}/`, { method: 'POST', cache: 'no-cache' })
.then(res => res.json());
}
,
/**
* [/Users/bagasbanuna/Documents/BIP/hipmi/src/app/api/investasi/gambar/[id]/route.ts](file:///Users/bagasbanuna/Documents/BIP/hipmi/src/app/api/investasi/gambar/[id]/route.ts)
*/
investasiGambarIdById : async ({id, isServer}: {id: string, isServer?: boolean}) => {
return fetch(`${isServer && app_config.host || ''}/api/investasi/gambar/${id}/`, { method: 'GET', cache: 'no-cache' })
.then(res => res.json());
}
,
/**
* [/Users/bagasbanuna/Documents/BIP/hipmi/src/app/api/investasi/dokumen/[id]/route.ts](file:///Users/bagasbanuna/Documents/BIP/hipmi/src/app/api/investasi/dokumen/[id]/route.ts)
*/
investasiDokumenIdById : async ({id, isServer}: {id: string, isServer?: boolean}) => {
return fetch(`${isServer && app_config.host || ''}/api/investasi/dokumen/${id}/`, { method: 'GET', cache: 'no-cache' })
.then(res => res.json());
}
,
/**
* [/Users/bagasbanuna/Documents/BIP/hipmi/src/app/api/donasi/image_cerita/[url]/route.ts](file:///Users/bagasbanuna/Documents/BIP/hipmi/src/app/api/donasi/image_cerita/[url]/route.ts)
*/
donasiImage_ceritaUrlByUrl : async ({url, isServer}: {url: string, isServer?: boolean}) => {
return fetch(`${isServer && app_config.host || ''}/api/donasi/image_cerita/${url}/`, { method: 'GET', cache: 'no-cache' })
.then(res => res.json());
}
,
/**
* [/Users/bagasbanuna/Documents/BIP/hipmi/src/app/api/donasi/image/[url]/route.ts](file:///Users/bagasbanuna/Documents/BIP/hipmi/src/app/api/donasi/image/[url]/route.ts)
*/
donasiImageUrlByUrl : async ({url, isServer}: {url: string, isServer?: boolean}) => {
return fetch(`${isServer && app_config.host || ''}/api/donasi/image/${url}/`, { method: 'GET', cache: 'no-cache' })
.then(res => res.json());
}
,
/**
* [/Users/bagasbanuna/Documents/BIP/hipmi/src/app/api/donasi/gambar_pencairan/[id]/route.ts](file:///Users/bagasbanuna/Documents/BIP/hipmi/src/app/api/donasi/gambar_pencairan/[id]/route.ts)
*/
donasiGambar_pencairanIdById : async ({id, isServer}: {id: string, isServer?: boolean}) => {
return fetch(`${isServer && app_config.host || ''}/api/donasi/gambar_pencairan/${id}/`, { method: 'GET', cache: 'no-cache' })
.then(res => res.json());
}
,
/**
* [/Users/bagasbanuna/Documents/BIP/hipmi/src/app/api/donasi/gambar_kabar/[id]/route.ts](file:///Users/bagasbanuna/Documents/BIP/hipmi/src/app/api/donasi/gambar_kabar/[id]/route.ts)
*/
donasiGambar_kabarIdById : async ({id, isServer}: {id: string, isServer?: boolean}) => {
return fetch(`${isServer && app_config.host || ''}/api/donasi/gambar_kabar/${id}/`, { method: 'GET', cache: 'no-cache' })
.then(res => res.json());
}
,
/**
* [/Users/bagasbanuna/Documents/BIP/hipmi/src/app/api/donasi/gambar_cerita/[id]/route.ts](file:///Users/bagasbanuna/Documents/BIP/hipmi/src/app/api/donasi/gambar_cerita/[id]/route.ts)
*/
donasiGambar_ceritaIdById : async ({id, isServer}: {id: string, isServer?: boolean}) => {
return fetch(`${isServer && app_config.host || ''}/api/donasi/gambar_cerita/${id}/`, { method: 'GET', cache: 'no-cache' })
.then(res => res.json());
}
,
/**
* [/Users/bagasbanuna/Documents/BIP/hipmi/src/app/api/donasi/gambar_bukti_transfer/[id]/route.ts](file:///Users/bagasbanuna/Documents/BIP/hipmi/src/app/api/donasi/gambar_bukti_transfer/[id]/route.ts)
*/
donasiGambar_bukti_transferIdById : async ({id, isServer}: {id: string, isServer?: boolean}) => {
return fetch(`${isServer && app_config.host || ''}/api/donasi/gambar_bukti_transfer/${id}/`, { method: 'GET', cache: 'no-cache' })
.then(res => res.json());
}
,
/**
* [/Users/bagasbanuna/Documents/BIP/hipmi/src/app/api/donasi/gambar/[id]/route.ts](file:///Users/bagasbanuna/Documents/BIP/hipmi/src/app/api/donasi/gambar/[id]/route.ts)
*/
donasiGambarIdById : async ({id, isServer}: {id: string, isServer?: boolean}) => {
return fetch(`${isServer && app_config.host || ''}/api/donasi/gambar/${id}/`, { method: 'GET', cache: 'no-cache' })
.then(res => res.json());
}
,
/**
* [/Users/bagasbanuna/Documents/BIP/hipmi/src/app/api/auth/validasi/route.ts](file:///Users/bagasbanuna/Documents/BIP/hipmi/src/app/api/auth/validasi/route.ts)
*/
authValidasi : async ({isServer}: {isServer?: boolean}) => {
return fetch(`${isServer && app_config.host || ''}/api/auth/validasi/`, { method: 'POST', cache: 'no-cache' })
.then(res => res.json());
}
,
/**
* [/Users/bagasbanuna/Documents/BIP/hipmi/src/app/api/auth/register/route.ts](file:///Users/bagasbanuna/Documents/BIP/hipmi/src/app/api/auth/register/route.ts)
*/
authRegister : async ({isServer}: {isServer?: boolean}) => {
return fetch(`${isServer && app_config.host || ''}/api/auth/register/`, { method: 'POST', cache: 'no-cache' })
.then(res => res.json());
}
,
/**
* [/Users/bagasbanuna/Documents/BIP/hipmi/src/app/api/auth/logout/route.ts](file:///Users/bagasbanuna/Documents/BIP/hipmi/src/app/api/auth/logout/route.ts)
*/
authLogout : async ({isServer}: {isServer?: boolean}) => {
return fetch(`${isServer && app_config.host || ''}/api/auth/logout/`, { method: 'GET', cache: 'no-cache' })
.then(res => res.json());
}
,
/**
* [/Users/bagasbanuna/Documents/BIP/hipmi/src/app/api/auth/login/route.ts](file:///Users/bagasbanuna/Documents/BIP/hipmi/src/app/api/auth/login/route.ts)
*/
authLogin : async ({isServer}: {isServer?: boolean}) => {
return fetch(`${isServer && app_config.host || ''}/api/auth/login/`, { method: 'POST', cache: 'no-cache' })
.then(res => res.json());
}
};

2431
gen_page.tsx Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -31,12 +31,14 @@
"@tiptap/pm": "^2.2.3", "@tiptap/pm": "^2.2.3",
"@tiptap/react": "^2.2.3", "@tiptap/react": "^2.2.3",
"@tiptap/starter-kit": "^2.2.3", "@tiptap/starter-kit": "^2.2.3",
"@types/lodash": "^4.14.199", "@types/lodash": "^4.17.4",
"@types/node": "20.4.5", "@types/node": "20.4.5",
"@types/react": "18.2.17", "@types/react": "18.2.17",
"@types/react-dom": "18.2.7", "@types/react-dom": "18.2.7",
"@types/react-virtualized": "^9.21.30",
"@types/uuid": "^9.0.4", "@types/uuid": "^9.0.4",
"autoprefixer": "10.4.14", "autoprefixer": "10.4.14",
"bufferutil": "^4.0.8",
"dayjs": "^1.11.10", "dayjs": "^1.11.10",
"echarts": "^5.4.3", "echarts": "^5.4.3",
"echarts-for-react": "^3.0.2", "echarts-for-react": "^3.0.2",
@@ -54,16 +56,20 @@
"react": "18.2.0", "react": "18.2.0",
"react-countdown": "^2.3.5", "react-countdown": "^2.3.5",
"react-dom": "18.2.0", "react-dom": "18.2.0",
"react-easy-infinite-scroll-hook": "^2.1.4",
"react-fast-marquee": "^1.6.4", "react-fast-marquee": "^1.6.4",
"react-icons": "^5.0.1", "react-icons": "^5.0.1",
"react-infinite-scroll-component": "^6.1.0",
"react-international-phone": "^4.2.6", "react-international-phone": "^4.2.6",
"react-quill": "^2.0.0", "react-quill": "^2.0.0",
"react-responsive-carousel": "^3.2.23", "react-responsive-carousel": "^3.2.23",
"react-simple-toasts": "^5.10.0", "react-simple-toasts": "^5.10.0",
"react-toastify": "^9.1.3", "react-toastify": "^9.1.3",
"react-virtualized": "^9.22.5",
"socket.io-client": "^4.7.2", "socket.io-client": "^4.7.2",
"tailwindcss": "3.3.3", "tailwindcss": "3.3.3",
"typescript": "5.1.6", "typescript": "5.1.6",
"utf-8-validate": "^6.0.3",
"uuid": "^9.0.1", "uuid": "^9.0.1",
"yaml": "^2.3.2" "yaml": "^2.3.2"
} }

View File

@@ -12,33 +12,37 @@ datasource db {
} }
model User { model User {
id String @id @default(cuid()) id String @id @default(cuid())
username String @unique username String @unique
nomor String @unique nomor String @unique
active Boolean @default(true) active Boolean @default(true)
createdAt DateTime? @default(now()) createdAt DateTime? @default(now())
updatedAt DateTime? @updatedAt updatedAt DateTime? @updatedAt
MasterUserRole MasterUserRole @relation(fields: [masterUserRoleId], references: [id]) MasterUserRole MasterUserRole @relation(fields: [masterUserRoleId], references: [id])
masterUserRoleId String @default("1") masterUserRoleId String @default("1")
UserSession UserSession? UserSession UserSession?
Profile Profile? Profile Profile?
Investasi Investasi[] Investasi Investasi[]
TransaksiInvestasi TransaksiInvestasi[] TransaksiInvestasi TransaksiInvestasi[]
Donasi Donasi[] Donasi Donasi[]
Donasi_Invoice Donasi_Invoice[] Donasi_Invoice Donasi_Invoice[]
Donasi_Notif Donasi_Notif[] Donasi_Notif Donasi_Notif[]
Event Event[] Event Event[]
Event_Peserta Event_Peserta[] Event_Peserta Event_Peserta[]
Voting Voting[] Voting Voting[]
Voting_Kontributor Voting_Kontributor[] Voting_Kontributor Voting_Kontributor[]
Job Job[] Job Job[]
Forum_Posting Forum_Posting[] Forum_Posting Forum_Posting[]
Forum_Komentar Forum_Komentar[] Forum_Komentar Forum_Komentar[]
Forum_ReportPosting Forum_ReportPosting[] Forum_ReportPosting Forum_ReportPosting[]
Forum_ReportKomentar Forum_ReportKomentar[] Forum_ReportKomentar Forum_ReportKomentar[]
ProjectCollaboration ProjectCollaboration[] ProjectCollaboration ProjectCollaboration[]
ProjectCollaboration_Partisipasi ProjectCollaboration_Partisipasi[] ProjectCollaboration_Partisipasi ProjectCollaboration_Partisipasi[]
ProjectCollaboration_RoomChat ProjectCollaboration_RoomChat[] ProjectCollaboration_RoomChat ProjectCollaboration_RoomChat[]
ProjectCollaboration_AnggotaRoomChat ProjectCollaboration_AnggotaRoomChat[]
ProjectCollaboration_Message ProjectCollaboration_Message[]
AdminProjectCollaboration_Notifikasi ProjectCollaboration_Notifikasi[] @relation("AdminNotifProjectToUser")
UserProjectCollaboration_Notifikasi ProjectCollaboration_Notifikasi[] @relation("UserNotifProjectToUser")
} }
model MasterUserRole { model MasterUserRole {
@@ -730,11 +734,13 @@ model ProjectCollaboration {
isActive Boolean @default(true) isActive Boolean @default(true)
createdAt DateTime @default(now()) createdAt DateTime @default(now())
updatedAt DateTime @updatedAt updatedAt DateTime @updatedAt
catatan String?
title String title String
lokasi String lokasi String
purpose String @db.Text purpose String @db.Text
benefit String? @db.Text benefit String? @db.Text
isReject Boolean? @default(false)
report String?
// jumlah_partisipan Int @default(0)
ProjectCollaborationMaster_Industri ProjectCollaborationMaster_Industri? @relation(fields: [projectCollaborationMaster_IndustriId], references: [id]) ProjectCollaborationMaster_Industri ProjectCollaborationMaster_Industri? @relation(fields: [projectCollaborationMaster_IndustriId], references: [id])
projectCollaborationMaster_IndustriId Int? projectCollaborationMaster_IndustriId Int?
@@ -743,6 +749,8 @@ model ProjectCollaboration {
ProjectCollaborationMaster_Status ProjectCollaborationMaster_Status? @relation(fields: [projectCollaborationMaster_StatusId], references: [id]) ProjectCollaborationMaster_Status ProjectCollaborationMaster_Status? @relation(fields: [projectCollaborationMaster_StatusId], references: [id])
projectCollaborationMaster_StatusId Int? @default(1) projectCollaborationMaster_StatusId Int? @default(1)
ProjectCollaboration_Partisipasi ProjectCollaboration_Partisipasi[] ProjectCollaboration_Partisipasi ProjectCollaboration_Partisipasi[]
ProjectCollaboration_RoomChat ProjectCollaboration_RoomChat[]
ProjectCollaboration_Notifikasi ProjectCollaboration_Notifikasi[]
} }
model ProjectCollaborationMaster_Industri { model ProjectCollaborationMaster_Industri {
@@ -766,24 +774,67 @@ model ProjectCollaborationMaster_Status {
} }
model ProjectCollaboration_Partisipasi { model ProjectCollaboration_Partisipasi {
id String @id @default(cuid())
isActive Boolean @default(true)
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
User User? @relation(fields: [userId], references: [id])
userId String?
ProjectCollaboration ProjectCollaboration? @relation(fields: [projectCollaborationId], references: [id])
projectCollaborationId String?
deskripsi_diri String
}
model ProjectCollaboration_RoomChat {
id String @id @default(cuid())
name String
isActive Boolean @default(true)
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
Author User? @relation(fields: [userId], references: [id])
userId String?
ProjectCollaboration ProjectCollaboration? @relation(fields: [projectCollaborationId], references: [id])
projectCollaborationId String?
ProjectCollaboration_AnggotaRoomChat ProjectCollaboration_AnggotaRoomChat[]
ProjectCollaboration_Message ProjectCollaboration_Message[]
}
model ProjectCollaboration_AnggotaRoomChat {
id String @id @default(cuid()) id String @id @default(cuid())
isActive Boolean @default(true) isActive Boolean @default(true)
createdAt DateTime @default(now()) createdAt DateTime @default(now())
updatedAt DateTime @updatedAt updatedAt DateTime @updatedAt
User User? @relation(fields: [userId], references: [id]) User User @relation(fields: [userId], references: [id])
userId String? userId String
ProjectCollaboration ProjectCollaboration? @relation(fields: [projectCollaborationId], references: [id])
projectCollaborationId String?
ProjectCollaboration_RoomChat ProjectCollaboration_RoomChat? @relation(fields: [projectCollaboration_RoomChatId], references: [id]) ProjectCollaboration_RoomChat ProjectCollaboration_RoomChat? @relation(fields: [projectCollaboration_RoomChatId], references: [id])
projectCollaboration_RoomChatId String? projectCollaboration_RoomChatId String?
} }
model ProjectCollaboration_RoomChat { model ProjectCollaboration_Message {
id String @id @default(cuid()) id String @id @default(cuid())
isActive Boolean @default(true) isActive Boolean @default(true)
createdAt DateTime @default(now()) createdAt DateTime @default(now())
updatedAt DateTime @updatedAt updatedAt DateTime @updatedAt
Author User? @relation(fields: [userId], references: [id]) message String
userId String? isFile Boolean? @default(false)
ProjectCollaboration_Partisipasi ProjectCollaboration_Partisipasi[] User User? @relation(fields: [userId], references: [id])
userId String?
ProjectCollaboration_RoomChat ProjectCollaboration_RoomChat? @relation(fields: [projectCollaboration_RoomChatId], references: [id])
projectCollaboration_RoomChatId String?
}
model ProjectCollaboration_Notifikasi {
id String @id @default(cuid())
isActive Boolean @default(true)
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
isRead Boolean @default(false)
note String?
ProjectCollaboration ProjectCollaboration? @relation(fields: [projectCollaborationId], references: [id])
projectCollaborationId String
AdminId User @relation("AdminNotifProjectToUser", fields: [adminId], references: [id], map: "AdminNotifProjectUser")
adminId String
User User @relation("UserNotifProjectToUser", fields: [userId], references: [id], map: "UserNotifProjectUser")
userId String
} }

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 110 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

View File

@@ -23,6 +23,8 @@ import forum_kategori_report from "../../../bin/seeder/forum/master_report.json"
import forum_status_posting from "../../../bin/seeder/forum/master_status.json"; import forum_status_posting from "../../../bin/seeder/forum/master_status.json";
import collaboration_industri from "../../../bin/seeder/colab/master_industri.json"; import collaboration_industri from "../../../bin/seeder/colab/master_industri.json";
import collaboration_status from "../../../bin/seeder/colab/master_status.json"; import collaboration_status from "../../../bin/seeder/colab/master_status.json";
import collaboration_jumlah_minimal_room from "../../../bin/seeder/colab/jumlah_minimal_room.json";
import { randomId } from "@mantine/hooks";
export async function GET(req: Request) { export async function GET(req: Request) {
const dev = new URL(req.url).searchParams.get("dev"); const dev = new URL(req.url).searchParams.get("dev");

View File

@@ -0,0 +1,12 @@
import prisma from "@/app/lib/prisma";
export async function GET(req: Request) {
const page = new URL(req.url).searchParams.get("page");
if (!page) return new Response("page require", { status: 400 });
const res = await prisma.projectCollaboration_Message.findMany({
take: 5,
skip: +page * 5 - 5,
});
// return Response.json(res);
}

View File

@@ -1,6 +1,8 @@
import { Admin_Award } from "@/app_modules/admin/award"; import { Admin_Award } from "@/app_modules/admin/award";
import { gen_api } from "../../../../../../gen_api";
export default async function Page() { export default async function Page() {
return ( return (
<> <>
<Admin_Award /> <Admin_Award />

View File

@@ -0,0 +1,9 @@
import ComponentAdminGlobal_LoadingPage from "@/app_modules/admin/component/loading_admin_page";
export default async function Page() {
return (
<>
<ComponentAdminGlobal_LoadingPage />
</>
);
}

View File

@@ -0,0 +1,20 @@
import { AdminColab_Dashboard } from "@/app_modules/admin/colab";
import adminColab_countGroupChat from "@/app_modules/admin/colab/fun/count/count_group_chat";
import adminColab_countIsPublish from "@/app_modules/admin/colab/fun/count/count_publish";
import adminColab_countIsReject from "@/app_modules/admin/colab/fun/count/count_reject";
export default async function Page() {
const countPublish = await adminColab_countIsPublish();
const countRoom = await adminColab_countGroupChat();
const countReject = await adminColab_countIsReject()
return (
<>
<AdminColab_Dashboard
countPublish={countPublish}
countRoom={countRoom}
countReject={countReject}
/>
</>
);
}

View File

@@ -0,0 +1,12 @@
import { AdminColab_TableGroup } from "@/app_modules/admin/colab";
import adminColab_getListAllGroupChat from "@/app_modules/admin/colab/fun/get/get_list_all_group_chat";
export default async function Page() {
const listGroup = await adminColab_getListAllGroupChat({page: 1})
return (
<>
<AdminColab_TableGroup listGroup={listGroup as any} />
</>
);
}

View File

@@ -0,0 +1,9 @@
import ComponentAdminGlobal_LoadingPage from "@/app_modules/admin/component/loading_admin_page";
export default async function Page() {
return (
<>
<ComponentAdminGlobal_LoadingPage />
</>
);
}

View File

@@ -0,0 +1,12 @@
import { AdminColab_TablePublish } from "@/app_modules/admin/colab";
import adminColab_getListAllPublish from "@/app_modules/admin/colab/fun/get/get_list_all_publish";
export default async function Page() {
const listData = await adminColab_getListAllPublish({ page: 1 });
return (
<>
<AdminColab_TablePublish listData={listData} />
</>
);
}

View File

@@ -0,0 +1,12 @@
import { AdminColab_TableRejected } from "@/app_modules/admin/colab";
import adminColab_getListAllRejected from "@/app_modules/admin/colab/fun/get/get_list_all_reject";
export default async function Page() {
const listReject = await adminColab_getListAllRejected({page: 1})
return (
<>
<AdminColab_TableRejected listReject={listReject as any} />
</>
);
}

View File

@@ -1,6 +1,6 @@
import { AdminLayout } from "@/app_modules/admin/main_dashboard"; import { AdminLayout } from "@/app_modules/admin/main_dashboard";
import { user_getOneUserId } from "@/app_modules/fun_global/get_user_token"; import { user_getOneUserId } from "@/app_modules/fun_global/get_user_token";
import { user_getOneById } from "@/app_modules/home/fun/get/get_one_user_by_id"; import { user_getOneByUserId } from "@/app_modules/home/fun/get/get_one_user_by_id";
import React from "react"; import React from "react";
export default async function Layout({ export default async function Layout({
@@ -9,7 +9,7 @@ export default async function Layout({
children: React.ReactNode; children: React.ReactNode;
}) { }) {
const userId = await user_getOneUserId() const userId = await user_getOneUserId()
const dataUser = await user_getOneById(userId) const dataUser = await user_getOneByUserId(userId)
const userRole = dataUser?.masterUserRoleId const userRole = dataUser?.masterUserRoleId
return ( return (

View File

@@ -0,0 +1,39 @@
import adminColab_getOneRoomChatById from "@/app_modules/admin/colab/fun/get/get_one_room_chat_by_id";
import { Colab_GroupChatView } from "@/app_modules/colab";
import ColabViewChat from "@/app_modules/colab/detail/chat";
import colab_V2getListMessageByRoomId from "@/app_modules/colab/fun/chat/get_message_by_room_id";
import colab_getMessageByRoomId from "@/app_modules/colab/fun/get/room_chat/get_message_by_room_id";
import { user_getOneUserId } from "@/app_modules/fun_global/get_user_token";
import { user_getOneByUserId } from "@/app_modules/home/fun/get/get_one_user_by_id";
import _ from "lodash";
export default async function Page({ params }: { params: { id: string } }) {
const roomId = params.id;
const userLoginId = await user_getOneUserId();
const getData = (await adminColab_getOneRoomChatById({ roomId: roomId }))
.data;
const dataRoom = _.omit(getData, [
"ProjectCollaboration",
"ProjectCollaboration_AnggotaRoomChat",
]);
let listMsg = await colab_getMessageByRoomId({ roomId: roomId, page: 1 });
const dataUserLogin = await user_getOneByUserId(userLoginId);
// console.log(dataUserLogin);
return (
<>
{/* <ColabViewChat
listMsg={listMsg as any}
dataRoom={dataRoom as any}
userLoginId={userLoginId}
/> */}
<Colab_GroupChatView
userLoginId={userLoginId}
listMsg={listMsg}
selectRoom={dataRoom as any}
dataUserLogin={dataUserLogin as any}
/>
</>
);
}

View File

@@ -1,14 +1,24 @@
import prisma from "@/app/lib/prisma";
import { LayoutColab_DetailGrupDiskusi } from "@/app_modules/colab"; import { LayoutColab_DetailGrupDiskusi } from "@/app_modules/colab";
import colab_getListAnggotaByRoomId from "@/app_modules/colab/fun/get/room_chat/get_list_anggota_by_room_id";
import React from "react"; import React from "react";
export default async function Layout({ export default async function Layout({
children, children,
params,
}: { }: {
children: React.ReactNode; children: React.ReactNode;
params: { id: string };
}) { }) {
let roomId = params.id;
const dataRoom = await colab_getListAnggotaByRoomId(roomId);
return ( return (
<> <>
<LayoutColab_DetailGrupDiskusi>{children}</LayoutColab_DetailGrupDiskusi> <LayoutColab_DetailGrupDiskusi dataRoom={dataRoom as any}>
{children}
</LayoutColab_DetailGrupDiskusi>
</> </>
); );
} }

View File

@@ -1,7 +1,20 @@
import { Colab_DetailGrupDiskusi } from "@/app_modules/colab"; import { Colab_DetailGrupDiskusi } from "@/app_modules/colab";
import colab_getMessageByRoomId from "@/app_modules/colab/fun/get/room_chat/get_message_by_room_id";
import { user_getOneUserId } from "@/app_modules/fun_global/get_user_token";
import _ from "lodash";
export default async function Page() { export default async function Page({ params }: { params: { id: string } }) {
return<> let roomId = params.id;
<Colab_DetailGrupDiskusi/> const userLoginId = await user_getOneUserId();
let listMsg = await colab_getMessageByRoomId({ page: 1, roomId: roomId });
return (
<>
<Colab_DetailGrupDiskusi
roomId={roomId}
listMsg={listMsg}
userLoginId={userLoginId}
/>
</> </>
);
} }

View File

@@ -0,0 +1,14 @@
import prisma from "@/app/lib/prisma";
import { Colab_DetailInfoGrup } from "@/app_modules/colab";
import colab_getListAnggotaByRoomId from "@/app_modules/colab/fun/get/room_chat/get_list_anggota_by_room_id";
export default async function Page({ params }: { params: { id: string } }) {
let roomId = params.id;
const dataRoom = await colab_getListAnggotaByRoomId(roomId);
return (
<>
<Colab_DetailInfoGrup dataRoom={dataRoom as any} />
</>
);
}

View File

@@ -1,4 +1,6 @@
import { LayoutColab_MainDetail } from "@/app_modules/colab"; import { LayoutColab_MainDetail } from "@/app_modules/colab";
import colab_getOneCollaborationById from "@/app_modules/colab/fun/get/get_one_by_id";
import { user_getOneUserId } from "@/app_modules/fun_global/get_user_token";
import React from "react"; import React from "react";
export default async function Layout({ export default async function Layout({
@@ -9,9 +11,16 @@ export default async function Layout({
params: { id: string }; params: { id: string };
}) { }) {
const colabId = params.id; const colabId = params.id;
const dataColab = await colab_getOneCollaborationById(colabId);
const authorId = dataColab?.Author?.id;
const userLoginId = await user_getOneUserId();
return ( return (
<> <>
<LayoutColab_MainDetail colabId={colabId}> <LayoutColab_MainDetail
colabId={colabId}
isAuthor={authorId === userLoginId ? true : false}
>
{children} {children}
</LayoutColab_MainDetail> </LayoutColab_MainDetail>
</> </>

View File

@@ -1,6 +1,6 @@
import { Colab_MainDetail } from "@/app_modules/colab"; import { Colab_MainDetail } from "@/app_modules/colab";
import colab_funCekPartisipasiById from "@/app_modules/colab/fun/get/cek_partisipasi_by_user_id"; import colab_funCekPartisipasiById from "@/app_modules/colab/fun/get/cek_partisipasi_by_user_id";
import colab_getListPartisipanById from "@/app_modules/colab/fun/get/get_list_partisipan_by_id"; import colab_getListPartisipanByColabId from "@/app_modules/colab/fun/get/get_list_partisipan_by_id";
import colab_getOneCollaborationById from "@/app_modules/colab/fun/get/get_one_by_id"; import colab_getOneCollaborationById from "@/app_modules/colab/fun/get/get_one_by_id";
import { user_getOneUserId } from "@/app_modules/fun_global/get_user_token"; import { user_getOneUserId } from "@/app_modules/fun_global/get_user_token";
@@ -8,9 +8,8 @@ export default async function Page({ params }: { params: { id: string } }) {
let colabId = params.id; let colabId = params.id;
const userLoginId = await user_getOneUserId(); const userLoginId = await user_getOneUserId();
const dataColab = await colab_getOneCollaborationById(colabId); const dataColab = await colab_getOneCollaborationById(colabId);
const listPartisipan = await colab_getListPartisipanById(colabId) const listPartisipan = await colab_getListPartisipanByColabId(colabId);
const cekPartisipan = await colab_funCekPartisipasiById(colabId) const cekPartisipan = await colab_funCekPartisipasiById(colabId);
return ( return (
<> <>

View File

@@ -0,0 +1,13 @@
import { Colab_DetailNotifikasi } from "@/app_modules/colab";
import colab_getOneNotifikasiById from "@/app_modules/colab/fun/get/get_one_notifikasi_by_id";
export default async function Page({ params }: { params: { id: string } }) {
let notifId = params.id;
const data = await colab_getOneNotifikasiById({ notifId: notifId });
return (
<>
<Colab_DetailNotifikasi data={data as any} />
</>
);
}

View File

@@ -1,11 +1,11 @@
import { Colab_DetailPartisipasiProyek } from "@/app_modules/colab"; import { Colab_DetailPartisipasiProyek } from "@/app_modules/colab";
import colab_getListPartisipanById from "@/app_modules/colab/fun/get/get_list_partisipan_by_id"; import colab_getListPartisipanByColabId from "@/app_modules/colab/fun/get/get_list_partisipan_by_id";
import colab_getOneCollaborationById from "@/app_modules/colab/fun/get/get_one_by_id"; import colab_getOneCollaborationById from "@/app_modules/colab/fun/get/get_one_by_id";
export default async function Page({params}: {params: {id: string}}) { export default async function Page({params}: {params: {id: string}}) {
const colabId = params.id const colabId = params.id
const dataColab = await colab_getOneCollaborationById(colabId) const dataColab = await colab_getOneCollaborationById(colabId)
const listPartisipan = await colab_getListPartisipanById(colabId) const listPartisipan = await colab_getListPartisipanByColabId(colabId)
return ( return (
<> <>

View File

@@ -1,14 +1,23 @@
import { LayoutColab_DetailProyekSaya } from "@/app_modules/colab"; import { LayoutColab_DetailProyekSaya } from "@/app_modules/colab";
import colab_getOneCollaborationById from "@/app_modules/colab/fun/get/get_one_by_id";
import { user_getOneUserId } from "@/app_modules/fun_global/get_user_token";
import React from "react"; import React from "react";
export default async function Layout({ export default async function Layout({
children, children,
params,
}: { }: {
children: React.ReactNode; children: React.ReactNode;
params: { id: string };
}) { }) {
let colabId = params.id;
const dataColab = await colab_getOneCollaborationById(colabId)
return ( return (
<> <>
<LayoutColab_DetailProyekSaya>{children}</LayoutColab_DetailProyekSaya> <LayoutColab_DetailProyekSaya dataColab={dataColab as any}>
{children}
</LayoutColab_DetailProyekSaya>
</> </>
); );
} }

View File

@@ -1,16 +1,15 @@
import { Colab_DetailProyekSaya } from "@/app_modules/colab"; import { Colab_DetailProyekSaya } from "@/app_modules/colab";
import colab_getListPartisipanById from "@/app_modules/colab/fun/get/get_list_partisipan_by_id"; import colab_getListPartisipanByColabId from "@/app_modules/colab/fun/get/get_list_partisipan_by_id";
import colab_getOneCollaborationById from "@/app_modules/colab/fun/get/get_one_by_id"; import colab_getOneCollaborationById from "@/app_modules/colab/fun/get/get_one_by_id";
export default async function Page({ params }: { params: { id: string } }) { export default async function Page({ params }: { params: { id: string } }) {
const colabId = params.id const colabId = params.id;
const dataColab = await colab_getOneCollaborationById(colabId) const dataColab = await colab_getOneCollaborationById(colabId);
const listPartisipan = await colab_getListPartisipanById(colabId); const listPartisipan = await colab_getListPartisipanByColabId(colabId);
return ( return (
<> <>
{/* <pre>{JSON.stringify(listPartisipan, null,2)}</pre> */} {/* <pre>{JSON.stringify(listPartisipan, null,2)}</pre> */}
<Colab_DetailProyekSaya <Colab_DetailProyekSaya
dataColab={dataColab as any} dataColab={dataColab as any}
listPartisipan={listPartisipan as any} listPartisipan={listPartisipan as any}

View File

@@ -1,9 +1,12 @@
import colab_getListRoomChatByAuthorId from "@/app_modules/colab/fun/get/room_chat/get_list_room_by_author_id";
import Colab_GrupDiskus from "@/app_modules/colab/main/grup"; import Colab_GrupDiskus from "@/app_modules/colab/main/grup";
export default async function Page() { export default async function Page() {
const listRoom = await colab_getListRoomChatByAuthorId();
return ( return (
<> <>
<Colab_GrupDiskus /> <Colab_GrupDiskus listRoom={listRoom as any} />
</> </>
); );
} }

View File

@@ -1,4 +1,5 @@
import { LayoutColab_Main } from "@/app_modules/colab"; import { LayoutColab_Main } from "@/app_modules/colab";
import colab_CekNotifikasi from "@/app_modules/colab/fun/get/cek_notifikasi";
import React from "react"; import React from "react";
export default async function Layout({ export default async function Layout({
@@ -6,9 +7,11 @@ export default async function Layout({
}: { }: {
children: React.ReactNode; children: React.ReactNode;
}) { }) {
const cekNotif = await colab_CekNotifikasi();
return ( return (
<> <>
<LayoutColab_Main>{children}</LayoutColab_Main> <LayoutColab_Main cekNotif={cekNotif as any}>{children}</LayoutColab_Main>
</> </>
); );
} }

View File

@@ -1,9 +1,13 @@
import { Colab_NotifikasiView } from "@/app_modules/colab"; import { Colab_NotifikasiView } from "@/app_modules/colab";
import colab_getListNotifikasiByUserId from "@/app_modules/colab/fun/get/get_list_notifikasi_by_user_id";
export default async function Page() { export default async function Page() {
const listNotifikasi = await colab_getListNotifikasiByUserId();
// console.log(listNotifikasi);
return ( return (
<> <>
<Colab_NotifikasiView /> <Colab_NotifikasiView listNotifikasi={listNotifikasi as any} />
</> </>
); );
} }

View File

@@ -1,15 +1,15 @@
import { Colab_Proyek } from "@/app_modules/colab"; import { Colab_Proyek } from "@/app_modules/colab";
import colab_getListPartisipasiByAuthorId from "@/app_modules/colab/fun/get/get_list_partisipasi_by_author_id"; import colab_getListPartisipasiProyekByAuthorId from "@/app_modules/colab/fun/get/get_list_partisipasi_proyek_by_author_id";
import colab_getListAllProyekByAuthorId from "@/app_modules/colab/fun/get/get_list_proyek_by_author_id"; import colab_getListAllProyekSayaByAuthorId from "@/app_modules/colab/fun/get/get_list_proyek_saya_by_author_id";
export default async function Page() { export default async function Page() {
const listPartisipasiUser = (await colab_getListPartisipasiByAuthorId()).data; const listPartisipasiProyek = (await colab_getListPartisipasiProyekByAuthorId()).data;
const listProyekSaya = (await colab_getListAllProyekByAuthorId()).data; const listProyekSaya = (await colab_getListAllProyekSayaByAuthorId()).data;
return ( return (
<> <>
<Colab_Proyek <Colab_Proyek
listPartisipasiUser={listPartisipasiUser as any} listPartisipasiUser={listPartisipasiProyek as any}
listProyekSaya={listProyekSaya as any} listProyekSaya={listProyekSaya as any}
/> />
</> </>

View File

@@ -8,9 +8,13 @@ export default async function Page({
children: React.ReactNode; children: React.ReactNode;
params: { id: string }; params: { id: string };
}) { }) {
let eventId = params.id let eventId = params.id;
return <> return (
<LayoutEvent_DetailDraft eventId={eventId}>{children}</LayoutEvent_DetailDraft>; <>
</> <LayoutEvent_DetailDraft eventId={eventId}>
{children}
</LayoutEvent_DetailDraft>
</>
);
} }

View File

@@ -1,8 +1,8 @@
import { Event_DetailDraft } from "@/app_modules/event"; import { Event_DetailDraft } from "@/app_modules/event"
import { Event_getOneById } from "@/app_modules/event/fun/get/get_one_by_id"; import { Event_getOneById } from "@/app_modules/event/fun/get/get_one_by_id"
export default async function Page({params}: {params: {id: string}}) { export default async function Page({ params }: { params: { id: string } }) {
let eventId = params.id let eventId = params.id
const dataEvent = await Event_getOneById(eventId) const dataEvent = await Event_getOneById(eventId)
return <Event_DetailDraft dataEvent={dataEvent as any} />; return <Event_DetailDraft dataEvent={dataEvent as any} />
} }

View File

@@ -1,6 +1,6 @@
import { LayoutForum_Forumku } from "@/app_modules/forum"; import { LayoutForum_Forumku } from "@/app_modules/forum";
import { user_getOneUserId } from "@/app_modules/fun_global/get_user_token"; import { user_getOneUserId } from "@/app_modules/fun_global/get_user_token";
import { user_getOneById } from "@/app_modules/home/fun/get/get_one_user_by_id"; import { user_getOneByUserId } from "@/app_modules/home/fun/get/get_one_user_by_id";
import React from "react"; import React from "react";
export default async function Layout({ export default async function Layout({
@@ -11,7 +11,7 @@ export default async function Layout({
params: { id: string }; params: { id: string };
}) { }) {
const authorId = params.id; const authorId = params.id;
const dataAuthor = await user_getOneById(authorId); const dataAuthor = await user_getOneByUserId(authorId);
return ( return (
<> <>

View File

@@ -2,14 +2,14 @@ import { Forum_Forumku } from "@/app_modules/forum";
import { forum_getListPostingByAuhtorId } from "@/app_modules/forum/fun/get/get_list_posting_by_author_id"; import { forum_getListPostingByAuhtorId } from "@/app_modules/forum/fun/get/get_list_posting_by_author_id";
import { forum_countOneTotalKomentarById } from "@/app_modules/forum/fun/count/count_one_total_komentar_by_id"; import { forum_countOneTotalKomentarById } from "@/app_modules/forum/fun/count/count_one_total_komentar_by_id";
import { user_getOneUserId } from "@/app_modules/fun_global/get_user_token"; import { user_getOneUserId } from "@/app_modules/fun_global/get_user_token";
import { user_getOneById } from "@/app_modules/home/fun/get/get_one_user_by_id"; import { user_getOneByUserId } from "@/app_modules/home/fun/get/get_one_user_by_id";
import _ from "lodash"; import _ from "lodash";
import { forum_countPostingByAuthorId } from "@/app_modules/forum/fun/count/count_posting_by_author_id"; import { forum_countPostingByAuthorId } from "@/app_modules/forum/fun/count/count_posting_by_author_id";
export default async function Page({ params }: { params: { id: string } }) { export default async function Page({ params }: { params: { id: string } }) {
const authorId = params.id; const authorId = params.id;
const userLoginId = await user_getOneUserId() const userLoginId = await user_getOneUserId();
const dataAuthor = await user_getOneById(authorId); const dataAuthor = await user_getOneByUserId(authorId);
const auhtorSelectedData = _.omit(dataAuthor, [ const auhtorSelectedData = _.omit(dataAuthor, [
"Profile.email", "Profile.email",
"Profile.alamat", "Profile.alamat",
@@ -25,14 +25,11 @@ export default async function Page({ params }: { params: { id: string } }) {
// setTimeout(a, 1000); // setTimeout(a, 1000);
// }); // });
const dataPosting = await forum_getListPostingByAuhtorId(authorId); const dataPosting = await forum_getListPostingByAuhtorId(authorId);
const totalPosting = await forum_countPostingByAuthorId(authorId); const totalPosting = await forum_countPostingByAuthorId(authorId);
return ( return (
<> <>
<Forum_Forumku <Forum_Forumku
auhtorSelectedData={auhtorSelectedData as any} auhtorSelectedData={auhtorSelectedData as any}
dataPosting={dataPosting as any} dataPosting={dataPosting as any}

View File

@@ -1,6 +1,6 @@
import { LayoutForum_Main } from "@/app_modules/forum"; import { LayoutForum_Main } from "@/app_modules/forum";
import { user_getOneUserId } from "@/app_modules/fun_global/get_user_token"; import { user_getOneUserId } from "@/app_modules/fun_global/get_user_token";
import { user_getOneById } from "@/app_modules/home/fun/get/get_one_user_by_id"; import { user_getOneByUserId } from "@/app_modules/home/fun/get/get_one_user_by_id";
import React from "react"; import React from "react";
export default async function Layout({ export default async function Layout({
@@ -9,7 +9,7 @@ export default async function Layout({
children: React.ReactNode; children: React.ReactNode;
}) { }) {
const authorId = await user_getOneUserId(); const authorId = await user_getOneUserId();
const dataAuthor = await user_getOneById(authorId); const dataAuthor = await user_getOneByUserId(authorId);
return ( return (
<> <>

View File

@@ -1,11 +1,11 @@
import { user_getOneUserId } from "@/app_modules/fun_global/get_user_token"; import { user_getOneUserId } from "@/app_modules/fun_global/get_user_token";
import { HomeLayout } from "@/app_modules/home"; import { HomeLayout } from "@/app_modules/home";
import { user_getOneById } from "@/app_modules/home/fun/get/get_one_user_by_id"; import { user_getOneByUserId } from "@/app_modules/home/fun/get/get_one_user_by_id";
import { redirect } from "next/navigation"; import { redirect } from "next/navigation";
export default async function Layout({ children }: { children: any }) { export default async function Layout({ children }: { children: any }) {
const userId = await user_getOneUserId(); const userId = await user_getOneUserId();
const dataUser = await user_getOneById(userId); const dataUser = await user_getOneByUserId(userId);
return ( return (
<> <>

View File

@@ -3,14 +3,15 @@ import { cookies } from "next/headers";
import { unsealData } from "iron-session"; import { unsealData } from "iron-session";
import _ from "lodash"; import _ from "lodash";
import { user_getOneUserId } from "@/app_modules/fun_global/get_user_token"; import { user_getOneUserId } from "@/app_modules/fun_global/get_user_token";
import { user_getOneById } from "@/app_modules/home/fun/get/get_one_user_by_id"; import { user_getOneByUserId } from "@/app_modules/home/fun/get/get_one_user_by_id";
import { redirect } from "next/navigation"; import { redirect } from "next/navigation";
import { RouterAdminDashboard } from "@/app/lib/router_hipmi/router_admin"; import { RouterAdminDashboard } from "@/app/lib/router_hipmi/router_admin";
import { RouterHome } from "@/app/lib/router_hipmi/router_home"; import { RouterHome } from "@/app/lib/router_hipmi/router_home";
import ComponentGlobal_V2_LoadingPage from "@/app_modules/component_global/loading_page_v2";
export default async function Page() { export default async function Page() {
const userId = await user_getOneUserId(); const userId = await user_getOneUserId();
const dataUser = await user_getOneById(userId); const dataUser = await user_getOneByUserId(userId);
if (dataUser?.active === false) { if (dataUser?.active === false) {
return redirect(RouterHome.home_user_non_active); return redirect(RouterHome.home_user_non_active);
@@ -19,6 +20,8 @@ export default async function Page() {
if (dataUser?.masterUserRoleId === "2" || dataUser?.masterUserRoleId === "3") if (dataUser?.masterUserRoleId === "2" || dataUser?.masterUserRoleId === "3")
return redirect(RouterAdminDashboard.splash_admin); return redirect(RouterAdminDashboard.splash_admin);
// if (dataUser?.Profile === null) return <ComponentGlobal_V2_LoadingPage />;
// await new Promise((a, b) => { // await new Promise((a, b) => {
// setTimeout(a, 4000); // setTimeout(a, 4000);
// }); // });

View File

@@ -1,13 +1,15 @@
"use server";
import { Job_MainDetail } from "@/app_modules/job"; import { Job_MainDetail } from "@/app_modules/job";
import { Job_getOneById } from "@/app_modules/job/fun/get/get_one_by_id"; import { Job_getOneById } from "@/app_modules/job/fun/get/get_one_by_id";
import app_config from "@/util/app_config";
export default async function Page({ params }: { params: { id: string } }) { export default async function Page({ params }: { params: { id: string } }) {
const jobId = params.id; const idJob = params.id;
const dataJob = await Job_getOneById(jobId) const dataJob = await Job_getOneById(idJob);
return ( return (
<> <>
<Job_MainDetail dataJob={dataJob as any} /> <Job_MainDetail dataJob={dataJob as any} hostName={app_config.host} />
</> </>
); );
} }

View File

@@ -1,10 +1,16 @@
"use server";
import { Job_NonUserView } from "@/app_modules/job"; import { Job_NonUserView } from "@/app_modules/job";
import { Job_getOneById } from "@/app_modules/job/fun/get/get_one_by_id"; import { Job_getOneById } from "@/app_modules/job/fun/get/get_one_by_id";
import os from "os";
export default async function Page({ params }: { params: { id: string } }) { export default async function Page({ params }: { params: { id: string } }) {
let jobId = params.id; let jobId = params.id;
const dataJob = await Job_getOneById(jobId); const dataJob = await Job_getOneById(jobId);
// const platform = os.platform();
// const hostName =
// platform === "darwin"
// ? "http://localhost:3000"
// : "https://test-hipmi.wibudev.com";
return ( return (
<> <>
<Job_NonUserView data={dataJob as any} /> <Job_NonUserView data={dataJob as any} />

View File

@@ -12,13 +12,13 @@ import { funGetListPortofolio } from "@/app_modules/katalog/portofolio/fun/get/g
import { user_getOneUserId } from "@/app_modules/fun_global/get_user_token"; import { user_getOneUserId } from "@/app_modules/fun_global/get_user_token";
import { Profile_getOneById } from "@/app_modules/katalog/profile/fun/get/get_one_profile"; import { Profile_getOneById } from "@/app_modules/katalog/profile/fun/get/get_one_profile";
import { Profile_getOneProfileAndUserById } from "@/app_modules/katalog/profile/fun/get/get_one_user_profile"; import { Profile_getOneProfileAndUserById } from "@/app_modules/katalog/profile/fun/get/get_one_user_profile";
import { user_getOneById } from "@/app_modules/home/fun/get/get_one_user_by_id"; import { user_getOneByUserId } from "@/app_modules/home/fun/get/get_one_user_by_id";
const config = yaml.parse(fs.readFileSync("config.yaml").toString()); const config = yaml.parse(fs.readFileSync("config.yaml").toString());
export default async function Page({ params }: { params: { id: string } }) { export default async function Page({ params }: { params: { id: string } }) {
let profileId = params.id; let profileId = params.id;
const authorId = await user_getOneUserId(); const authorId = await user_getOneUserId();
const dataUser = await user_getOneById(authorId) const dataUser = await user_getOneByUserId(authorId)
const listPorto = await funGetListPortofolio(profileId); const listPorto = await funGetListPortofolio(profileId);
const dataProfile = await Profile_getOneProfileAndUserById(profileId); const dataProfile = await Profile_getOneProfileAndUserById(profileId);

View File

@@ -1,10 +0,0 @@
import { user_getOneUserId } from "@/app_modules/fun_global/get_user_token";
import { CreateProfile } from "@/app_modules/katalog/profile";
export default async function Page({params}: {params: {id: string}}) {
const userId = await user_getOneUserId()
return <>
<CreateProfile userId={userId}/>
</>
}

View File

@@ -0,0 +1,12 @@
import { user_getOneUserId } from "@/app_modules/fun_global/get_user_token";
import { CreateProfile } from "@/app_modules/katalog/profile";
export default async function Page() {
const userId = await user_getOneUserId();
return (
<>
<CreateProfile userId={userId} />
</>
);
}

View File

@@ -2,12 +2,12 @@ import { RouterAdminDashboard } from "@/app/lib/router_hipmi/router_admin";
import { RouterHome } from "@/app/lib/router_hipmi/router_home"; import { RouterHome } from "@/app/lib/router_hipmi/router_home";
import { user_getOneUserId } from "@/app_modules/fun_global/get_user_token"; import { user_getOneUserId } from "@/app_modules/fun_global/get_user_token";
import { Home_UserNonActive } from "@/app_modules/home"; import { Home_UserNonActive } from "@/app_modules/home";
import { user_getOneById } from "@/app_modules/home/fun/get/get_one_user_by_id"; import { user_getOneByUserId } from "@/app_modules/home/fun/get/get_one_user_by_id";
import { redirect } from "next/navigation"; import { redirect } from "next/navigation";
export default async function Page() { export default async function Page() {
const userId = await user_getOneUserId(); const userId = await user_getOneUserId();
const dataUser = await user_getOneById(userId); const dataUser = await user_getOneByUserId(userId);
if (dataUser?.active === true) { if (dataUser?.active === true) {
return redirect(RouterHome.main_home); return redirect(RouterHome.main_home);

View File

@@ -2,7 +2,7 @@ import { UserSearch_MainView } from "@/app_modules/user_search";
import { UserSearch_getListUser } from "@/app_modules/user_search/fun/get/get_list_user"; import { UserSearch_getListUser } from "@/app_modules/user_search/fun/get/get_list_user";
export default async function Page() { export default async function Page() {
const listUser = await UserSearch_getListUser() const listUser = await UserSearch_getListUser({ name: "" });
return <UserSearch_MainView listUser={listUser as any} />; return <UserSearch_MainView listUser={listUser as any} />;
} }

View File

@@ -33,7 +33,7 @@ export default function RootStyleRegistry({
<body suppressHydrationWarning={true}> <body suppressHydrationWarning={true}>
<CacheProvider value={cache}> <CacheProvider value={cache}>
<MantineProvider withGlobalStyles withNormalizeCSS> <MantineProvider withGlobalStyles withNormalizeCSS>
<Notifications position="top-center" containerWidth="250px" /> <Notifications position="top-center" containerWidth={300} />
{children} {children}
{/* <ToastContainer position="bottom-center" /> {/* <ToastContainer position="bottom-center" />
<AppNotif /> */} <AppNotif /> */}

View File

@@ -1,11 +1,15 @@
// import MqttLoader from '@/util/mqtt_loader'; import MqttLoader from "@/util/mqtt_loader";
import RootStyleRegistry from './emotion'; import RootStyleRegistry from "./emotion";
export default function RootLayout({
export default function RootLayout({ children }: { children: React.ReactNode }) { children,
}: {
children: React.ReactNode;
}) {
return ( return (
<RootStyleRegistry> <RootStyleRegistry>
{/* <MqttLoader /> */} <MqttLoader />
{children}</RootStyleRegistry> {children}
</RootStyleRegistry>
); );
} }

View File

@@ -0,0 +1,6 @@
export const RouterAdminColab = {
dashboard: "/dev/admin/colab/dashboard",
table_publish: "/dev/admin/colab/sub-menu/publish",
table_group: "/dev/admin/colab/sub-menu/group",
table_reject: "/dev/admin/colab/sub-menu/reject",
};

View File

@@ -21,6 +21,9 @@ export const RouterColab = {
detail_partisipasi_proyek: "/dev/colab/detail/proyek/partisipasi/", detail_partisipasi_proyek: "/dev/colab/detail/proyek/partisipasi/",
detail_proyek_saya: "/dev/colab/detail/proyek/saya/", detail_proyek_saya: "/dev/colab/detail/proyek/saya/",
detail_grup: "/dev/colab/detail/grup/", detail_grup: "/dev/colab/detail/grup/",
info_grup: "/dev/colab/detail/info-grup/",
detail_notifikasi: "/dev/colab/detail/notifikasi/",
group_chat: "/dev/colab/detail/group/",
// proyek // proyek
}; };

View File

@@ -2,7 +2,7 @@ export const RouterProfile = {
katalog: "/dev/katalog/", katalog: "/dev/katalog/",
// create // create
create: "/dev/profile/create/", create: "/dev/profile/create",
// edit // edit
edit: "/dev/profile/edit/", edit: "/dev/profile/edit/",

9
src/app/makuro/_util.ts Normal file
View File

@@ -0,0 +1,9 @@
import { v4 as uuidv4 } from "uuid";
export const createItems = (length = 100): string[] =>
Array.from({ length }).map(() => uuidv4());
export const loadMore = async (length = 100): Promise<string[]> => {
console.log("Loading more items...");
return new Promise((res) => setTimeout(() => res(createItems(length)), 100));
};

View File

@@ -1,116 +1,101 @@
"use client"; "use client";
import { useState } from "react";
import useInfiniteScroll, {
ScrollDirection,
} from "react-easy-infinite-scroll-hook";
import { createItems, loadMore } from "./_util";
import { useShallowEffect } from "@mantine/hooks";
import { Center, Loader, Text } from "@mantine/core";
// Beda Package
import InfiniteScroll from "react-infinite-scroll-component";
import { export default function App() {
Box, const [data, setData] = useState<any[]>([]);
Button, const [isLoading, setIsLoading] = useState(false);
Center,
Paper,
ScrollArea,
SimpleGrid,
Stack,
Text,
TextInput,
Title,
} from "@mantine/core";
import _ from "lodash";
// import ViewMakuro from "./_server/makuro_view";
// import mqtt_client from "@/util/mqtt_client";
// import { useState } from "react";
// import { useAtom } from "jotai";
// import { gs_coba_chat } from "./gs_coba";
// export default function Page() { const ttlData = Array.from({ length: 21 });
// const [data1, setData1] = useState(""); const [list, setList] = useState<any[]>(ttlData);
// const [data2, setData2] = useState("");
// const [msg, setMsg] = useAtom(gs_coba_chat); // useShallowEffect(() => {
// setData(createItems());
// }, []);
// return ( // const next = async (direction: ScrollDirection) => {
// <> // console.log("next", direction);
// <SimpleGrid cols={2} mt={"lg"}> // try {
// <Stack align="center" justify="center"> // setIsLoading(true);
// <TextInput // const newData = await loadMore();
// label="User 1"
// value={data1} // const d = direction === "up" ? [...newData, ...data] : [];
// onChange={(val) => setData1(val.currentTarget.value)} // setData(d);
// /> // } finally {
// <button // setIsLoading(false);
// onClick={() => { // }
// mqtt_client.publish("example_hipmi", data1); // };
// setData1("");
// }} // const ref = useInfiniteScroll({
// > // next,
// kirim // rowCount: data.length,
// </button> // hasMore: { up: true },
// </Stack> // });
// <Stack align="center" justify="center">
// <TextInput const fetchMoreData = () => {
// label="User 2" setTimeout(() => {
// value={data2} setList(list.concat(Array.from({ length: 20 })));
// onChange={(val) => setData2(val.currentTarget.value)} }, 100);
// /> };
// <button
// onClick={() => { const style = {
// mqtt_client.publish("example_hipmi", data2); height: 30,
// setData2(""); border: "1px solid green",
// }} margin: 6,
// > padding: 8,
// kirim };
// </button>
// </Stack>
// </SimpleGrid>
// <Stack align="center" justify="center" mt={"xl"}>
// <Paper withBorder shadow="lg" p={"lg"}>
// {msg}
// </Paper>
// </Stack>
// {/* <ViewMakuro /> */}
// </>
// );
// }
export default function Page() {
return ( return (
<Box> <>
<Box <div id="scrollableDiv" style={{ height: "100vh", overflow: "auto" }}>
style={{ <InfiniteScroll
zIndex: 99, dataLength={list.length}
}} next={fetchMoreData}
w={"100%"} hasMore={true}
bg={"green"} loader={
pos={"sticky"} <center>
top={0} <h4>Loading...</h4>
h={"10vh"} </center>
> }
header scrollableTarget="scrollableDiv"
</Box> >
{list.map((i, index) => (
<Box bg={"red"} pos={"static"} > <div style={style} key={index}>
<Stack> div - #{index}
{Array.from(new Array(15)).map((v, k) => ( </div>
<Title key={k}>Cek halaman {k+1}</Title>
))} ))}
<Box style={{ </InfiniteScroll>
height: "10vh" </div>
}}> </>
);
</Box> return (
</Stack> <Center>
</Box> <div>
<Center>{isLoading && <Loader />}</Center>
<div
<Text // ref={ref as any}
style={{ className="List"
zIndex: 98, style={{
}} height: 500,
w={"100%"} overflowY: "auto",
bg={"blue"} }}
pos={"fixed"} >
bottom={0} {data.map((key: any) => (
h={"10vh"} <div className="Row" key={key}>
> {key}
footer </div>
</Text> ))}
</Box> </div>
</div>
</Center>
); );
} }

View File

@@ -1,51 +1,9 @@
"use client"; import Coba_TestLoading from "@/app_modules/zCoba";
import {
Box,
Center,
Group,
LoadingOverlay,
Paper,
Skeleton,
Text,
} from "@mantine/core";
export default function ComponentCobaCoba_LoadingPage() {
const listhHuruf = [
{
huruf: "H",
},
{
huruf: "I",
},
{
huruf: "P",
},
{
huruf: "M",
},
{
huruf: "I",
},
];
const customLOader = (
<Center h={"100vh"}>
<Group>
{listhHuruf.map((e, i) => (
<Center key={i} h={"100%"}>
<Skeleton height={50} circle radius={"100%"} />
<Text sx={{ position: "absolute" }} c={"gray.4"} fw={"bold"}>
{e.huruf}
</Text>
</Center>
))}
</Group>
</Center>
);
export default async function Page() {
return ( return (
<> <>
<LoadingOverlay visible overlayBlur={2} loader={customLOader} /> <Coba_TestLoading />
</> </>
); );
} }

View File

@@ -0,0 +1,68 @@
import { MODEL_COLLABORATION } from "@/app_modules/colab/model/interface";
import { Stack, Box, Center, Title, Grid, Text } from "@mantine/core";
export default function ComponentAdminColab_DetailData({
data,
}: {
data: MODEL_COLLABORATION;
}) {
return (
<>
<Stack>
<Box>
<Center px={"md"} mb={"lg"}>
<Title order={4}>{data?.title ? data.title : "Judul Proyek"}</Title>
</Center>
<Stack spacing={"sm"}>
<Grid>
<Grid.Col span={2}>
<Text fw={"bold"} fz={"sm"}>
Industri
</Text>
</Grid.Col>
<Grid.Col span={1}>
<Text fz={"sm"}>:</Text>
</Grid.Col>
<Grid.Col span={"auto"}>
<Text fz={"sm"}>
{data?.ProjectCollaborationMaster_Industri.name
? data.ProjectCollaborationMaster_Industri.name
: "Industri"}
</Text>
</Grid.Col>
</Grid>
<Grid>
<Grid.Col span={2}>
<Text fw={"bold"} fz={"sm"}>
Lokasi
</Text>
</Grid.Col>
<Grid.Col span={1}>
<Text fz={"sm"}>:</Text>
</Grid.Col>
<Grid.Col span={"auto"}>
<Text fz={"sm"} lineClamp={1}>
{data?.lokasi ? data.lokasi : " Lokasi dari proyek"}
</Text>
</Grid.Col>
</Grid>
<Stack spacing={5}>
<Text fw={"bold"} fz={"sm"}>
Tujuan proyek
</Text>
<Text fz={"sm"}>{data?.purpose ? data?.purpose : "-"}</Text>
</Stack>
<Stack spacing={5}>
<Text fw={"bold"} fz={"sm"}>
Keuntungan
</Text>
<Text fz={"sm"}>{data?.benefit ? data?.benefit : "-"}</Text>
</Stack>
</Stack>
</Box>
</Stack>
</>
);
}

View File

@@ -0,0 +1,72 @@
"use client";
import { Stack, SimpleGrid, Paper, Group, Title, Text } from "@mantine/core";
import { useRouter } from "next/navigation";
import ComponentAdminGlobal_HeaderTamplate from "../../component/header_tamplate";
export default function AdminColab_Dashboard({
countPublish,
countRoom,
countReject,
}: {
countPublish: number;
countRoom: number;
countReject: number;
}) {
const router = useRouter();
const listStatus = [
{
id: 1,
name: "Publish",
jumlah: countPublish,
color: "green",
},
{
id: 2,
name: "Group Chat",
jumlah: countRoom,
color: "orange",
},
{
id: 3,
name: "Reject",
jumlah: countReject,
color: "red",
},
];
return (
<>
<Stack>
<ComponentAdminGlobal_HeaderTamplate name="Project Collaboration" />
<SimpleGrid
cols={4}
spacing="lg"
breakpoints={[
{ maxWidth: "62rem", cols: 4, spacing: "lg" },
{ maxWidth: "48rem", cols: 2, spacing: "sm" },
{ maxWidth: "36rem", cols: 1, spacing: "sm" },
]}
>
{listStatus.map((e, i) => (
<Paper
key={i}
bg={"gray.2"}
shadow="md"
radius="md"
p="md"
// sx={{ borderColor: e.color, borderStyle: "solid" }}
>
<Group position="center">
<Stack align="center" spacing={0}>
<Text>{e.name}</Text>
<Title>{e.jumlah ? e.jumlah : 0}</Title>
</Stack>
</Group>
</Paper>
))}
</SimpleGrid>
</Stack>
</>
);
}

View File

@@ -0,0 +1,13 @@
"use server";
import prisma from "@/app/lib/prisma";
export default async function adminColab_countGroupChat() {
const count = await prisma.projectCollaboration_RoomChat.count({
where: {
isActive: true,
},
});
return count;
}

View File

@@ -0,0 +1,13 @@
"use server";
import prisma from "@/app/lib/prisma";
export default async function adminColab_countIsPublish() {
const count = await prisma.projectCollaboration.count({
where: {
isActive: true,
},
});
return count;
}

View File

@@ -0,0 +1,13 @@
"use server";
import prisma from "@/app/lib/prisma";
export default async function adminColab_countIsReject() {
const count = await prisma.projectCollaboration.count({
where: {
isReject: true,
},
});
return count;
}

Some files were not shown because too many files have changed in this diff Show More