udpate
This commit is contained in:
@ -47,7 +47,7 @@ const ListToolBar = () => {
|
||||
|
||||
if (date?.from && date?.to) {
|
||||
filters.push({
|
||||
id: 'user_activity.created_at',
|
||||
id: 'UserActivities.createdAt',
|
||||
value: {
|
||||
from: `${date.from.toISOString().split('T')[0]} 00:00:00`,
|
||||
to: `${date.to.toISOString().split('T')[0]} 23:59:59`
|
||||
|
||||
@ -43,12 +43,12 @@ const LogActivityContextProvider = ({ children }: { children: React.ReactNode })
|
||||
const columns = useMemo<ColumnDef<any>[]>(
|
||||
() => [
|
||||
{
|
||||
accessorFn: (row) => row.created_at,
|
||||
id: 'created_at',
|
||||
accessorFn: (row) => row.createdAt,
|
||||
id: 'createdAt',
|
||||
header: ({ column }) => <DataGridColumnHeader title="Timestamp" column={column} />,
|
||||
enableSorting: true,
|
||||
enableHiding: false,
|
||||
cell: ({ row }) => moment(row.original.created_at).format('YYYY-MM-DD HH:mm:ss')
|
||||
cell: ({ row }) => moment(row.original.createdAt).format('YYYY-MM-DD HH:mm:ss')
|
||||
},
|
||||
{
|
||||
accessorFn: (row) => row.user.username,
|
||||
@ -116,11 +116,15 @@ const LogActivityContextProvider = ({ children }: { children: React.ReactNode })
|
||||
all_user = auth.role_name === 'Super Admin';
|
||||
}
|
||||
|
||||
const user = localStorage.getItem('brillian-bri-tl-auth-v1=9.1.1');
|
||||
console.log('filter :', filter);
|
||||
|
||||
const user = localStorage.getItem(
|
||||
`${import.meta.env.VITE_APP_NAME}-auth-v${import.meta.env.VITE_APP_VERSION}`
|
||||
);
|
||||
const parsedUser = user ? JSON.parse(user) : null;
|
||||
const desc = sorting.length > 0 ? sorting[0].desc : false;
|
||||
|
||||
sorting = [{ id: 'user_activity.created_at', desc }];
|
||||
sorting = [{ id: 'UserActivities.createdAt', desc }];
|
||||
|
||||
let dataFilter: any = {};
|
||||
|
||||
@ -128,17 +132,17 @@ const LogActivityContextProvider = ({ children }: { children: React.ReactNode })
|
||||
filter.forEach((f: any) => {
|
||||
if (f.id === 'username') {
|
||||
dataFilter['username'] = { like: f.value };
|
||||
} else if (f.id === 'user_activity.created_at') {
|
||||
dataFilter['user_activity.created_at'] = f.value;
|
||||
} else if (f.id === 'UserActivities.createdAt') {
|
||||
dataFilter['UserActivities.createdAt'] = f.value;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
if (!dataFilter['user_activity.created_at']) {
|
||||
if (!dataFilter['UserActivities.createdAt']) {
|
||||
const defaultFrom = date?.from || new Date(new Date().setMonth(new Date().getMonth() - 1));
|
||||
const defaultTo = date?.to || new Date();
|
||||
|
||||
dataFilter['user_activity.created_at'] = {
|
||||
dataFilter['UserActivities.createdAt'] = {
|
||||
from: `${format(defaultFrom, 'yyyy-MM-dd')} 00:00:00`,
|
||||
to: `${format(defaultTo, 'yyyy-MM-dd')} 23:59:59`
|
||||
};
|
||||
@ -151,7 +155,7 @@ const LogActivityContextProvider = ({ children }: { children: React.ReactNode })
|
||||
order_field: sorting[0].id,
|
||||
order_direction: sorting[0].desc === false ? 'ASC' : 'DESC',
|
||||
filter: JSON.stringify(dataFilter),
|
||||
all_user: all_user
|
||||
all_user
|
||||
});
|
||||
|
||||
return { data: response?.data.list, totalCount: response?.data.total_count };
|
||||
@ -160,39 +164,36 @@ const LogActivityContextProvider = ({ children }: { children: React.ReactNode })
|
||||
);
|
||||
|
||||
const doExportData = async (sorting: any, filter: any) => {
|
||||
const AUTH_LOCAL_STORAGE_KEY = `${import.meta.env.VITE_APP_NAME}-auth-v${import.meta.env.VITE_APP_VERSION}`;
|
||||
const user = localStorage.getItem(
|
||||
`${import.meta.env.VITE_APP_NAME}-auth-v${import.meta.env.VITE_APP_VERSION}`
|
||||
);
|
||||
|
||||
const user = localStorage.getItem(AUTH_LOCAL_STORAGE_KEY);
|
||||
const parsedUser = user ? JSON.parse(user) : null;
|
||||
sorting = sorting.length === 0 ? [{ id: 'user_activity.created_at', desc: false }] : sorting;
|
||||
sorting = sorting.length === 0 ? [{ id: 'UserActivities.createdAt', desc: false }] : sorting;
|
||||
filter = filter && filter.length > 0 ? filter : [];
|
||||
const auth = getAuth();
|
||||
let all_user = false;
|
||||
if (auth) {
|
||||
all_user = auth.role_name === 'Super Admin';
|
||||
}
|
||||
|
||||
let dataFilter: any = {};
|
||||
|
||||
if (filter && filter.length > 0) {
|
||||
filter.forEach((f: any) => {
|
||||
if (f.id === 'username') {
|
||||
dataFilter['username'] = { like: f.value };
|
||||
} else if (f.id === 'user_activity.created_at') {
|
||||
dataFilter['user_activity.created_at'] = f.value;
|
||||
} else if (f.id === 'UserActivities.createdAt') {
|
||||
dataFilter['UserActivities.createdAt'] = f.value;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
if (!dataFilter['user_activity.created_at']) {
|
||||
if (!dataFilter['UserActivities.createdAt']) {
|
||||
const defaultFrom = new Date(new Date().setMonth(new Date().getMonth() - 1));
|
||||
const defaultTo = new Date();
|
||||
|
||||
dataFilter['user_activity.created_at'] = {
|
||||
dataFilter['UserActivities.createdAt'] = {
|
||||
from: `${format(defaultFrom, 'yyyy-MM-dd')} 00:00:00`,
|
||||
to: `${format(defaultTo, 'yyyy-MM-dd')} 23:59:59`
|
||||
};
|
||||
}
|
||||
let order = 'user_activity.created_at';
|
||||
let order = 'UserActivities.createdAt';
|
||||
let param = {
|
||||
all_user: false,
|
||||
// order_field: sorting[0].id,
|
||||
@ -208,8 +209,8 @@ const LogActivityContextProvider = ({ children }: { children: React.ReactNode })
|
||||
GetExportData(url, param, 'user_activity_export_');
|
||||
|
||||
const createActivity = {
|
||||
module: 'Update Pengajuan Kredit',
|
||||
description: `Export Pengajuan Kredit => Log Activity`,
|
||||
module: 'Log Activity',
|
||||
description: `Export => Log Activity`,
|
||||
action: 'E'
|
||||
};
|
||||
doSaveLogActivity(createActivity);
|
||||
@ -230,7 +231,7 @@ const LogActivityContextProvider = ({ children }: { children: React.ReactNode })
|
||||
pagination={{ size: 10 }}
|
||||
toolbar={<ListToolBar />}
|
||||
layout={{ card: true }}
|
||||
sorting={[{ id: 'UserActivity.created_at', desc: true }]}
|
||||
sorting={[{ id: 'UserActivity.createdAt', desc: true }]}
|
||||
serverSide={true}
|
||||
onFetchData={({ pageIndex, pageSize, sorting, columnFilters }) =>
|
||||
doGetListData(pageIndex, pageSize, sorting, columnFilters)
|
||||
|
||||
@ -86,8 +86,7 @@ const AddDialog = () => {
|
||||
const response = await PostData(`${API_URL}/user_role/create`, {
|
||||
name: formField.name,
|
||||
roles: selectMenus,
|
||||
status: 'Y',
|
||||
application: 'ukln'
|
||||
status: 'Y'
|
||||
});
|
||||
|
||||
if (response?.status) {
|
||||
@ -97,7 +96,7 @@ const AddDialog = () => {
|
||||
reload();
|
||||
const createActivity = {
|
||||
module: 'Manage Position',
|
||||
description: `Create New User => ${formField.name}`,
|
||||
description: `Create New Position => ${formField.name}`,
|
||||
action: 'C'
|
||||
};
|
||||
|
||||
|
||||
@ -1,12 +1,12 @@
|
||||
import { Container, DataGridInner } from '@/components';
|
||||
import { EditDialog } from './blocks';
|
||||
import { ConfigUserContextProvider } from './hooks';
|
||||
import { ManageUserContextProvider } from './hooks';
|
||||
import { AddDialog } from './blocks/AddDialog';
|
||||
import { DeleteDialog } from './blocks/DeleteDialog';
|
||||
|
||||
export default function ConfigUserPage() {
|
||||
return (
|
||||
<ConfigUserContextProvider>
|
||||
<ManageUserContextProvider>
|
||||
<Container>
|
||||
<div className="grid gap-5 lg:gap-7.5">
|
||||
<DataGridInner />
|
||||
@ -15,6 +15,6 @@ export default function ConfigUserPage() {
|
||||
<AddDialog />
|
||||
<DeleteDialog />
|
||||
</Container>
|
||||
</ConfigUserContextProvider>
|
||||
</ManageUserContextProvider>
|
||||
);
|
||||
}
|
||||
@ -50,22 +50,9 @@ const EditDialog = () => {
|
||||
e.preventDefault();
|
||||
const response = await PutData(`${API_URL}/user/update/${selectedUser}`, {
|
||||
...formField,
|
||||
id_role: undefined,
|
||||
id_role_old: undefined
|
||||
});
|
||||
if (response?.status) {
|
||||
if (formField.id_role_old != '') {
|
||||
const responseUserDeleteRole = await PutData(
|
||||
`${API_URL}/user/delete_role/${selectedUser}/${formField.id_role_old}`,
|
||||
{}
|
||||
);
|
||||
}
|
||||
|
||||
const responseUserAddRole = await PutData(
|
||||
`${API_URL}/user/add_role/${selectedUser}/${formField.id_role}`,
|
||||
{}
|
||||
);
|
||||
setAlert((prev) => ({ ...prev, show: false, message: '' }));
|
||||
handleEditDialog(false, null);
|
||||
toast.success('Success Update User');
|
||||
reload();
|
||||
@ -86,15 +73,15 @@ const EditDialog = () => {
|
||||
const doFetchUserData = useCallback(async (id: string) => {
|
||||
const response = await GetData(`${API_URL}/user/detail/${id}`, { id });
|
||||
if (response?.status) {
|
||||
let id_role = response.data.roles;
|
||||
let id_role = response.data.role.id || '';
|
||||
|
||||
setFormField((prev) => ({
|
||||
...prev,
|
||||
name: response.data.name,
|
||||
username: response.data.username,
|
||||
email: response.data.email,
|
||||
id_role: id_role.length != 0 ? id_role[0].id : '',
|
||||
id_role_old: id_role.length != 0 ? id_role[0].id : '',
|
||||
id_role: id_role,
|
||||
id_role_old: id_role,
|
||||
status: response.data.status
|
||||
}));
|
||||
} else {
|
||||
@ -45,11 +45,11 @@ const initialProps: ContextProps = {
|
||||
roles: []
|
||||
};
|
||||
|
||||
const ConfigUserContext = createContext<ContextProps>(initialProps);
|
||||
const ManageUserContext = createContext<ContextProps>(initialProps);
|
||||
|
||||
const API_URL = apiConfig.service_dashboard;
|
||||
|
||||
const ConfigUserContextProvider = ({ children }: { children: React.ReactNode }) => {
|
||||
const ManageUserContextProvider = ({ children }: { children: React.ReactNode }) => {
|
||||
/* state */
|
||||
const [showEditDialog, setShowEditDialog] = useState(false);
|
||||
const [showAddDialog, setShowAddDialog] = useState(false);
|
||||
@ -104,18 +104,16 @@ const ConfigUserContextProvider = ({ children }: { children: React.ReactNode })
|
||||
}
|
||||
},
|
||||
{
|
||||
accessorFn: (row) => row.role_name,
|
||||
accessorFn: (row) => row.role.name,
|
||||
id: 'role_name',
|
||||
header: ({ column }) => <DataGridColumnHeader title="Role Name" column={column} />,
|
||||
enableSorting: false,
|
||||
enableHiding: false,
|
||||
cell: (data: any) => {
|
||||
const { roles } = data.row.original;
|
||||
|
||||
const { role } = data.row.original;
|
||||
console.log('role :', role);
|
||||
let html = <p className="text-danger italic">Unassigned</p>;
|
||||
for (let _role of roles) {
|
||||
html = _role.name;
|
||||
}
|
||||
if (role && role.name) html = role.name;
|
||||
return html;
|
||||
},
|
||||
meta: {
|
||||
@ -214,7 +212,7 @@ const ConfigUserContextProvider = ({ children }: { children: React.ReactNode })
|
||||
}, [fetchRoles]);
|
||||
|
||||
return (
|
||||
<ConfigUserContext.Provider
|
||||
<ManageUserContext.Provider
|
||||
value={{
|
||||
showEditDialog,
|
||||
handleEditDialog,
|
||||
@ -241,9 +239,9 @@ const ConfigUserContextProvider = ({ children }: { children: React.ReactNode })
|
||||
>
|
||||
{children}
|
||||
</DataGridProvider>
|
||||
</ConfigUserContext.Provider>
|
||||
</ManageUserContext.Provider>
|
||||
);
|
||||
};
|
||||
|
||||
export { ConfigUserContextProvider, ConfigUserContext };
|
||||
export { ManageUserContextProvider, ManageUserContext };
|
||||
export type { SelectedUser };
|
||||
2
src/pages/settings/user/manage-user/hooks/index.ts
Normal file
2
src/pages/settings/user/manage-user/hooks/index.ts
Normal file
@ -0,0 +1,2 @@
|
||||
export * from './ManageUserContext';
|
||||
export * from './useManageUserContext';
|
||||
@ -1,8 +1,8 @@
|
||||
import { useContext } from 'react';
|
||||
import { ConfigUserContext } from './ConfigUserContext';
|
||||
import { ManageUserContext } from './ManageUserContext';
|
||||
|
||||
const useUserContext = () => {
|
||||
const context = useContext(ConfigUserContext);
|
||||
const context = useContext(ManageUserContext);
|
||||
|
||||
if (!context) throw new Error('useUserContext must be used within AuthProvider');
|
||||
|
||||
@ -1,2 +0,0 @@
|
||||
export * from './ConfigUserContext';
|
||||
export * from './useUserContext';
|
||||
Reference in New Issue
Block a user