Initial commit, repo migration

This commit is contained in:
unknown
2024-05-14 22:19:14 +07:00
commit b51b940ac4
137 changed files with 19393 additions and 0 deletions
+55
View File
@@ -0,0 +1,55 @@
import { DatatablePrime } from '@/components/Datatables'
import FormJamKerja from '@/components/Form/JamKerja'
import { Belakang } from '@/components/Layouts'
import { Judul } from '@/components/TextCustom'
import { JamKerjaGet } from '@/services/manajemen/jam-kerja-service'
import Head from 'next/head'
import { Column } from 'primereact/column'
import { Toast } from 'primereact/toast'
import { useEffect, useRef, useState } from 'react'
export default function JamKerja() {
const toast = useRef(null)
const [data, setData] = useState([])
const [dialogForm, setDialogForm] = useState(false)
const [dataEdit, setDataEdit] = useState([])
const [refresh, setRefresh] = useState(0)
useEffect(() => {
JamKerjaGet()
.then((res) => {
console.log(res)
setData([res.data])
})
.catch((err) => {
console.log(err)
})
}, [refresh])
return (
<>
<Toast ref={toast} />
<Head>
<title>Jam Kerja</title>
</Head>
<Belakang>
<Judul>Jam Kerja</Judul>
<DatatablePrime
data={data}
dialogForm={dialogForm}
setDialogForm={setDialogForm}
Form={FormJamKerja}
buttonAdd={true}
buttonAddLabel='Tambah/replace data'
dataEdit={dataEdit}
setDataEdit={setDataEdit}
toast={toast}
refresh={setRefresh}
>
<Column field='days' header='Hari' sortable></Column>
<Column field='time' header='Jam Kerja' sortable></Column>
</DatatablePrime>
</Belakang>
</>
)
}
+110
View File
@@ -0,0 +1,110 @@
import { DatatablePrime } from '@/components/Datatables'
import { DialogDelete } from '@/components/Dialog'
import FormRole from '@/components/Form/Role'
import { Belakang } from '@/components/Layouts'
import { Judul } from '@/components/TextCustom'
import { RoleDelete, RoleGetOne, RoleList } from '@/services/manajemen/role-service'
import Head from 'next/head'
import { Button } from 'primereact/button'
import { Column } from 'primereact/column'
import { Toast } from 'primereact/toast'
import { useEffect, useRef, useState } from 'react'
export default function Role() {
const toast = useRef(null)
const [data, setData] = useState([])
const [dialogForm, setDialogForm] = useState(false)
const [dataEdit, setDataEdit] = useState([])
const [refresh, setRefresh] = useState(0)
const [search, setSearch] = useState('')
const [dialogDelete, setDialogDelete] = useState({})
useEffect(() => {
let params = {}
if (search !== null && search !== '') {
params.search = search
} else {
params.search = ''
}
RoleList(params).then((res) => setData(res.data))
}, [refresh, search])
const editRole = (data) => {
RoleGetOne({ role_id: data.role_id }).then((res) => {
if (res.status === 'ok') {
setDataEdit(res.data)
setDialogForm(true)
} else {
console.log(res.message)
}
})
}
const deleteRole = () => {
RoleDelete({ role_id: dialogDelete.role_id }).then((res) => {
if (res.status === 'success') {
setRefresh(Math.random)
setDialogDelete({ visible: false })
toast.current.show({
severity: 'success',
detail: res.message,
closable: false,
})
} else {
setDialogDelete({ visible: false })
toast.current.show({
severity: 'error',
detail: res.message,
closable: false,
})
}
})
}
const actionBodyTemplate = (rowData) => {
return (
<div className='flex gap-x-2'>
<Button icon='pi pi-pencil' className='p-button-sm p-button-rounded' onClick={() => editRole(rowData)} />
<Button
icon='pi pi-trash'
className='p-button-sm p-button-rounded'
onClick={() => setDialogDelete({ role_id: rowData.role_id, visible: true })}
/>
</div>
)
}
return (
<>
<Toast ref={toast} />
<Head>
<title>Role</title>
</Head>
<Belakang>
<Judul>Role</Judul>
<DatatablePrime
data={data}
setSearch={setSearch}
dialogForm={dialogForm}
setDialogForm={setDialogForm}
Form={FormRole}
buttonAdd={false}
buttonAddLabel='Tambah data'
dataEdit={dataEdit}
setDataEdit={setDataEdit}
toast={toast}
refresh={setRefresh}
>
<Column field='nama' header='Role' sortable></Column>
<Column header='Action' body={actionBodyTemplate} exportable={false}></Column>
</DatatablePrime>
</Belakang>
{dialogDelete.visible === true && (
<DialogDelete data={dialogDelete} setDelete={setDialogDelete} onCallback={deleteRole} />
)}
</>
)
}
+113
View File
@@ -0,0 +1,113 @@
import { DatatablePrime } from '@/components/Datatables'
import { DialogDelete } from '@/components/Dialog'
import FormUser from '@/components/Form/User'
import { Belakang } from '@/components/Layouts'
import { Judul } from '@/components/TextCustom'
import { UserDelete, UserGetOne, UserList } from '@/services/manajemen/user-service'
import Head from 'next/head'
import { Button } from 'primereact/button'
import { Column } from 'primereact/column'
import { Toast } from 'primereact/toast'
import { useEffect, useRef, useState } from 'react'
export default function User() {
const toast = useRef(null)
const [data, setData] = useState([])
const [dialogForm, setDialogForm] = useState(false)
const [dataEdit, setDataEdit] = useState([])
const [refresh, setRefresh] = useState(0)
const [search, setSearch] = useState('')
const [dialogDelete, setDialogDelete] = useState({})
useEffect(() => {
let params = {}
if (search !== null && search !== '') {
params.search = search
} else {
params.search = ''
}
UserList(params).then((res) => {
setData(res.data)
})
}, [refresh, search])
const editUser = (data) => {
UserGetOne({ user_id: data.user_id }).then((res) => {
if (res.status === 'ok') {
setDataEdit(res.data)
setDialogForm(true)
} else {
console.log(res.message)
}
})
}
const deleteUser = () => {
UserDelete({ user_id: dialogDelete.user_id }).then((res) => {
if (res.status === 'success') {
setRefresh(Math.random)
setDialogDelete({ visible: false })
toast.current.show({
severity: 'success',
detail: res.message,
closable: false,
})
} else {
setDialogDelete({ visible: false })
toast.current.show({
severity: 'error',
detail: res.message,
closable: false,
})
}
})
}
const actionBodyTemplate = (rowData) => {
return (
<div className='flex gap-x-2'>
<Button icon='pi pi-pencil' className='p-button-sm p-button-rounded' onClick={() => editUser(rowData)} />
<Button
icon='pi pi-trash'
className='p-button-sm p-button-rounded p-button-danger'
onClick={() => setDialogDelete({ user_id: rowData.jenis_id, visible: true })}
/>
</div>
)
}
return (
<>
<Toast ref={toast} />
<Head>
<title>User</title>
</Head>
<Belakang>
<Judul>User</Judul>
<DatatablePrime
data={data}
setSearch={setSearch}
dialogForm={dialogForm}
setDialogForm={setDialogForm}
Form={FormUser}
buttonAdd={true}
buttonAddLabel='Tambah data'
dataEdit={dataEdit}
setDataEdit={setDataEdit}
toast={toast}
refresh={setRefresh}
>
<Column field='nama' header='Nama' sortable></Column>
<Column field='username' header='Username' sortable></Column>
<Column header='Action' body={actionBodyTemplate} exportable={false}></Column>
</DatatablePrime>
</Belakang>
{dialogDelete.visible === true && (
<DialogDelete data={dialogDelete} setDelete={setDialogDelete} onCallback={deleteUser} />
)}
</>
)
}