diff --git a/BACKEND/Modules/Admin/app/Http/Controllers/TrackingController.php b/BACKEND/Modules/Admin/app/Http/Controllers/TrackingController.php index 5c70fbd..885b89c 100755 --- a/BACKEND/Modules/Admin/app/Http/Controllers/TrackingController.php +++ b/BACKEND/Modules/Admin/app/Http/Controllers/TrackingController.php @@ -122,27 +122,27 @@ class TrackingController extends Controller } } - public function update(DiscountRequest $request) + public function update(Request $request) { $id = $request->get('id'); - $discount = Discount::find($id); + $tracking = Tracking::find($id); $payload = $request->all(); - if ($discount) { - $discount->update($payload); + if ($tracking) { + $tracking->update($payload); } return response()->json([ - 'data' => $discount, + 'data' => $tracking, 'status' => true ]); } - public function delete(DiscountRequest $request) + public function delete(Request $request) { $id = $request->get('id'); - Discount::destroy($id); + Tracking::destroy($id); return response()->json([ 'status' => true ]); diff --git a/BACKEND/Modules/Admin/routes/api.php b/BACKEND/Modules/Admin/routes/api.php index acc3713..b747261 100755 --- a/BACKEND/Modules/Admin/routes/api.php +++ b/BACKEND/Modules/Admin/routes/api.php @@ -150,5 +150,6 @@ Route::middleware('api') ], function () { Route::get('/', [TrackingController::class, 'get']); Route::post('/scan-create', [TrackingController::class, 'create']); + Route::get('/delete', [TrackingController::class, 'delete']); // Route::get('/clear-cache', [SettingController::class, 'clearCache']); }); \ No newline at end of file diff --git a/FRONTEND/src/api/Admin.ts b/FRONTEND/src/api/Admin.ts index 4a6ae89..7ed2287 100644 --- a/FRONTEND/src/api/Admin.ts +++ b/FRONTEND/src/api/Admin.ts @@ -52,4 +52,5 @@ export const statisticSearchSNByMonth = API_URL + 'v1/admin/dashboard/statistics export const statisticRevenuesByMonth = API_URL + 'v1/admin/dashboard/statistics-revenues-by-month' // Tracking -export const getListTracking = API_URL + 'v1/admin/tracking' \ No newline at end of file +export const getListTracking = API_URL + 'v1/admin/tracking' +export const deleteTracking = API_URL + 'v1/admin/tracking/delete' \ No newline at end of file diff --git a/FRONTEND/src/pages/Tracking/Tracking.module.css b/FRONTEND/src/pages/Tracking/Tracking.module.css index 95296df..7deaf8b 100644 --- a/FRONTEND/src/pages/Tracking/Tracking.module.css +++ b/FRONTEND/src/pages/Tracking/Tracking.module.css @@ -7,4 +7,30 @@ padding: 0 var(--mantine-spacing-sm) var(--mantine-spacing-lg) var(--mantine-spacing-sm); border-bottom: solid rgba(201, 201, 201, 0.377) 1px; + } + + .optionIcon { + display: flex; + justify-content: space-evenly; + } + + .deleteIcon { + color: red; + cursor: pointer; + padding: 2px; + border-radius: 25%; + } + + .deleteIcon:hover { + background-color: rgba(203, 203, 203, 0.809); + } + + .dialog { + background-color: light-dark(white, #2d353c); + text-align: center; + border: solid 1px rgb(255, 145, 0); + } + + .dialogText { + color: light-dark(#2d353c, white); } \ No newline at end of file diff --git a/FRONTEND/src/pages/Tracking/Tracking.tsx b/FRONTEND/src/pages/Tracking/Tracking.tsx index a5d9565..7c87cc6 100644 --- a/FRONTEND/src/pages/Tracking/Tracking.tsx +++ b/FRONTEND/src/pages/Tracking/Tracking.tsx @@ -1,15 +1,19 @@ -import { getListTracking } from "@/api/Admin" +import { deleteTracking, getListTracking } from "@/api/Admin" +import { DataTablePagination } from "@/components/DataTable/DataTable" +import { Xdelete } from "@/rtk/helpers/CRUD" import { get } from "@/rtk/helpers/apiService" -import { Box, Text } from "@mantine/core" +import { Box, Button, Dialog, Group, Text } from "@mantine/core" +import { IconTrash } from "@tabler/icons-react" import moment from "moment" import { useEffect, useState } from "react" import classes from './Tracking.module.css' -import { DataTablePagination } from "@/components/DataTable/DataTable" const Tracking = () => { const [listTracking, setListTracking] = useState({ data: [] }) - + const [action, setAction] = useState('') + const [item, setItem] = useState({id: 0}) + const [activeBtn, setActiveBtn] = useState(false) const columns = [ { name: 'id', @@ -39,6 +43,28 @@ const Tracking = () => { return moment(row.updated_at).format('YYYY/MM/DD - HH:mm:ss') }, }, + { + name: '#', + size: '10%', + header: 'Action', + render: (row: any) => { + return ( + + { + setAction('delete') + setItem(row) + }} + width={20} + height={20} + /> + + ) + }, + }, ] const filterInfo = [ @@ -81,10 +107,18 @@ const Tracking = () => { } } + const handleDelete = async (id: number) => { + try { + await Xdelete(deleteTracking, { id: id }, getAllTracking) + } catch (error) { + console.log(error) + } + } + useEffect(()=>{ setInterval(()=>{ getAllTracking() - }, 3000) + }, 7000) }, []) return (
@@ -114,6 +148,44 @@ const Tracking = () => { /> } + + setAction('')} + size="lg" + radius="md" + position={{ top: 30, right: 10 }} + > + + Do you want to delete this discount? + + + + + +
) }