fix: Upload image

Deskripsi:
- Upload image job di arahkan ke storage server
## No Issue
This commit is contained in:
2024-09-13 16:12:42 +08:00
parent 3b7e9977f6
commit 370e3ec4e4
55 changed files with 1326 additions and 877 deletions

View File

@@ -1,6 +1,9 @@
"use client";
import { myConsole } from "@/app/fun/my_console";
import { ApiHipmi } from "@/app/lib/api";
import { Warna } from "@/app/lib/warna";
import { ComponentGlobal_NotifikasiBerhasil } from "@/app_modules/_global/notif_global/notifikasi_berhasil";
import { ComponentGlobal_NotifikasiPeringatan } from "@/app_modules/_global/notif_global/notifikasi_peringatan";
import { auth_Logout } from "@/app_modules/auth/fun/fun_logout";
import { gs_kodeId } from "@/app_modules/auth/state/state";
import {
ActionIcon,
Button,
@@ -10,15 +13,10 @@ import {
Stack,
Title,
} from "@mantine/core";
import { useRouter } from "next/navigation";
import { useAtom } from "jotai";
import { IconLogout } from "@tabler/icons-react";
import { Warna } from "@/app/lib/warna";
import { useDisclosure } from "@mantine/hooks";
import { gs_kodeId, gs_nomor, gs_otp } from "@/app_modules/auth/state/state";
import { auth_Logout } from "@/app_modules/auth/fun/fun_logout";
import { ComponentGlobal_NotifikasiBerhasil } from "@/app_modules/_global/notif_global/notifikasi_berhasil";
import { ComponentGlobal_NotifikasiPeringatan } from "@/app_modules/_global/notif_global/notifikasi_peringatan";
import { IconLogout } from "@tabler/icons-react";
import { useAtom } from "jotai";
import { useRouter } from "next/navigation";
import { useState } from "react";
export default function Admin_Logout() {

View File

@@ -1,40 +1,21 @@
"use client";
import { RouterProfile } from "@/app/lib/router_hipmi/router_katalog";
import ComponentAdminGlobal_HeaderTamplate from "@/app_modules/admin/_admin_global/header_tamplate";
import { adminEvent_getListPesertaById } from "@/app_modules/admin/event/fun/get/get_list_peserta_by_id";
import { ComponentGlobal_NotifikasiPeringatan } from "@/app_modules/_global/notif_global/notifikasi_peringatan";
import {
MODEL_EVENT,
MODEL_EVENT_PESERTA,
} from "@/app_modules/event/model/interface";
import { MODEL_JOB } from "@/app_modules/job/model/interface";
import {
MODEL_VOTE_KONTRIBUTOR,
MODEL_VOTING,
MODEL_VOTING_DAFTAR_NAMA_VOTE,
} from "@/app_modules/vote/model/interface";
import {
Avatar,
Badge,
Box,
Button,
Card,
Center,
Divider,
Grid,
Group,
Modal,
Paper,
ScrollArea,
Spoiler,
Stack,
Table,
Text,
Title,
Title
} from "@mantine/core";
import { useDisclosure } from "@mantine/hooks";
import { IconEyeCheck, IconEyeShare } from "@tabler/icons-react";
import { IconEyeCheck } from "@tabler/icons-react";
import _ from "lodash";
import { useRouter } from "next/navigation";
import { useState } from "react";
@@ -74,13 +55,13 @@ function TableStatus({ listArsip }: { listArsip: MODEL_JOB[] }) {
</td>
<td>
<Center w={150}>
{e.imagesId ? (
{e.imageId ? (
<Button
color="green"
radius={"xl"}
leftIcon={<IconEyeCheck />}
onClick={() => {
setImg(e.imagesId);
setImg(e.imageId);
open();
}}
>

View File

@@ -16,16 +16,14 @@ import {
Table,
Text,
TextInput,
Title
Title,
} from "@mantine/core";
import {
IconEyeCheck,
IconSearch
} from "@tabler/icons-react";
import { IconEyeCheck, IconSearch } from "@tabler/icons-react";
import { useRouter } from "next/navigation";
import { useState } from "react";
import adminJob_getListPublish from "../../fun/get/get_list_publish";
import { IconPhotoCheck } from "@tabler/icons-react";
import { ComponentAdminGlobal_TitlePage } from "@/app_modules/admin/_admin_global/_component";
export default function AdminJob_TablePublish({
dataPublish,
@@ -49,7 +47,7 @@ function TableStatus({ dataPublish }: { dataPublish: any }) {
const [nPage, setNPage] = useState(dataPublish.nPage);
const [activePage, setActivePage] = useState(1);
const [isSearch, setSearch] = useState("");
const [isLoadingShowImage, setLoadingShowImage] = useState(false);
async function onSearch(s: string) {
setSearch(s);
@@ -102,19 +100,22 @@ function TableStatus({ dataPublish }: { dataPublish: any }) {
</td>
<td>
<Center w={200}>
{e.imagesId ? (
{e.imageId ? (
<Button
loaderPosition="center"
loading={isLoadingShowImage}
color="green"
radius={"xl"}
leftIcon={<IconPhotoCheck />}
onClick={() => {
router.push(RouterAdminJob.detail_poster + e?.imagesId);
setLoadingShowImage(true);
router.push(RouterAdminJob.detail_poster + e?.imageId);
}}
>
Lihat
</Button>
) : (
<Center w={200} >
<Center w={200}>
<Text fw={"bold"} fz={"xs"} fs={"italic"}>
Tidak ada poster
</Text>
@@ -147,28 +148,22 @@ function TableStatus({ dataPublish }: { dataPublish: any }) {
return (
<>
<Stack spacing={"xs"} h={"100%"}>
{/* <pre>{JSON.stringify(listUser, null, 2)}</pre> */}
<Group
position="apart"
bg={"green.4"}
p={"xs"}
style={{ borderRadius: "6px" }}
>
<Title order={4} c={"white"}>
Publish
</Title>
<TextInput
icon={<IconSearch size={20} />}
radius={"xl"}
placeholder="Masukan judul"
onChange={(val) => {
onSearch(val.currentTarget.value);
}}
/>
</Group>
<ComponentAdminGlobal_TitlePage
name="Publish"
color="green.4"
component={
<TextInput
icon={<IconSearch size={20} />}
radius={"xl"}
placeholder="Masukan judul"
onChange={(val) => {
onSearch(val.currentTarget.value);
}}
/>
}
/>
<Paper p={"md"} withBorder shadow="lg" h={"80vh"}>
<ScrollArea w={"100%"} h={"90%"}>
@@ -217,8 +212,6 @@ function TableStatus({ dataPublish }: { dataPublish: any }) {
</Center>
</Paper>
</Stack>
</>
);
}

View File

@@ -97,13 +97,13 @@ function TableStatus({ listReject }: { listReject: any }) {
</td>
<td>
<Center w={150}>
{e.imagesId ? (
{e.imageId ? (
<Button
color="green"
radius={"xl"}
leftIcon={<IconPhotoCheck />}
onClick={() => {
router.push(RouterAdminJob.detail_poster + e?.imagesId);
router.push(RouterAdminJob.detail_poster + e?.imageId);
}}
>
Lihat

View File

@@ -85,7 +85,7 @@ function TableStatus({ listReview }: { listReview: any }) {
async function onSearch(s: string) {
setSearch(s);
setActivePage(1)
setActivePage(1);
const loadData = await adminJob_getListReview({
page: 1,
search: s,
@@ -123,13 +123,13 @@ function TableStatus({ listReview }: { listReview: any }) {
</td>
<td>
<Center w={200}>
{e.imagesId ? (
{e.imageId ? (
<Button
color="green"
radius={"xl"}
leftIcon={<IconPhotoCheck />}
onClick={() => {
router.push(RouterAdminJob.detail_poster + e?.imagesId);
router.push(RouterAdminJob.detail_poster + e?.imageId);
}}
>
Lihat

View File

@@ -3,23 +3,30 @@
import { RouterJob } from "@/app/lib/router_hipmi/router_job";
import { Center, Image, Stack } from "@mantine/core";
import ComponentAdminGlobal_BackButton from "../../_admin_global/back_button";
import { APIs } from "@/app/lib";
import { useState } from "react";
import ComponentGlobal_Loader from "@/app_modules/_global/component/loader";
export default function AdminJob_DetailPoster({
imageId,
}: {
imageId: string;
}) {
const [isLoading, setLoading] = useState(true);
return (
<>
<Stack>
<ComponentAdminGlobal_BackButton />
<Center>
<Image
alt="Foto"
src={RouterJob.api_gambar + imageId}
mah={500}
maw={300}
/>
<Image onLoad={() => setLoading(false)} alt="Foto" src={APIs.GET + imageId} mah={500} maw={300} />
{isLoading ? (
<Center h={"100%"}>
<ComponentGlobal_Loader size={30} variant="dots" />
</Center>
) : (
""
)}
</Center>
</Stack>
</>

View File

@@ -27,19 +27,8 @@ export default async function adminJob_getListPublish({
mode: "insensitive",
},
},
select: {
id: true,
title: true,
isActive: true,
isArsip: true,
createdAt: true,
updatedAt: true,
content: true,
deskripsi: true,
catatan: true,
authorId: true,
include: {
Author: true,
imagesId: true,
},
});

View File

@@ -27,18 +27,8 @@ export default async function adminJob_getListReject({
mode: "insensitive",
},
},
select: {
id: true,
title: true,
isActive: true,
createdAt: true,
updatedAt: true,
content: true,
deskripsi: true,
catatan: true,
authorId: true,
include: {
Author: true,
imagesId: true,
},
});

View File

@@ -27,18 +27,8 @@ export default async function adminJob_getListReview({
mode: "insensitive",
},
},
select: {
id: true,
title: true,
isActive: true,
createdAt: true,
updatedAt: true,
content: true,
deskripsi: true,
catatan: true,
authorId: true,
include: {
Author: true,
imagesId: true,
},
});

View File

@@ -13,19 +13,8 @@ export async function AdminJob_getListTableByStatusId(statusId: string) {
isActive: true,
isArsip: true,
},
select: {
id: true,
title: true,
isActive: true,
isArsip: true,
createdAt: true,
updatedAt: true,
content: true,
deskripsi: true,
catatan: true,
authorId: true,
include: {
Author: true,
imagesId: true,
},
});
@@ -41,18 +30,8 @@ export async function AdminJob_getListTableByStatusId(statusId: string) {
isActive: true,
isArsip: false,
},
select: {
id: true,
title: true,
isActive: true,
createdAt: true,
updatedAt: true,
content: true,
deskripsi: true,
catatan: true,
authorId: true,
include: {
Author: true,
imagesId: true,
},
});
@@ -67,18 +46,8 @@ export async function AdminJob_getListTableByStatusId(statusId: string) {
masterStatusId: "2",
isActive: true,
},
select: {
id: true,
title: true,
isActive: true,
createdAt: true,
updatedAt: true,
content: true,
deskripsi: true,
catatan: true,
authorId: true,
include: {
Author: true,
imagesId: true,
},
});
@@ -94,18 +63,8 @@ export async function AdminJob_getListTableByStatusId(statusId: string) {
masterStatusId: "4",
isActive: true,
},
select: {
id: true,
title: true,
isActive: true,
createdAt: true,
updatedAt: true,
content: true,
deskripsi: true,
catatan: true,
authorId: true,
include: {
Author: true,
imagesId: true,
},
});