diff --git a/src/App.jsx b/src/App.jsx
index ae251bd..7eeb525 100644
--- a/src/App.jsx
+++ b/src/App.jsx
@@ -15,7 +15,6 @@ import IndexTag from './pages/master/tag/IndexTag';
import IndexUnit from './pages/master/unit/IndexUnit';
import IndexBrandDevice from './pages/master/brandDevice/IndexBrandDevice';
import AddBrandDevice from './pages/master/brandDevice/AddBrandDevice';
-import IndexPlantSection from './pages/master/plantSection/IndexPlantSection';
import IndexStatus from './pages/master/status/IndexStatus';
import IndexShift from './pages/master/shift/IndexShift';
@@ -41,6 +40,7 @@ import SvgAirDryerB from './pages/home/SvgAirDryerB';
import SvgAirDryerC from './pages/home/SvgAirDryerC';
import IndexHistoryAlarm from './pages/history/alarm/IndexHistoryAlarm';
import IndexHistoryEvent from './pages/history/event/IndexHistoryEvent';
+import IndexPlantSubSection from './pages/master/plantSubSection/IndexPlantSubSection';
const App = () => {
return (
@@ -74,7 +74,7 @@ const App = () => {
} />
} />
} />
- } />
+ } />
} />
} />
diff --git a/src/layout/LayoutMenu.jsx b/src/layout/LayoutMenu.jsx
index f52b424..d0d5cfc 100644
--- a/src/layout/LayoutMenu.jsx
+++ b/src/layout/LayoutMenu.jsx
@@ -93,9 +93,9 @@ const allItems = [
label: 'Master',
children: [
{
- key: 'master-plant-section',
+ key: 'master-plant-sub-section',
icon: ,
- label: Plant Sub Section,
+ label: Plant Sub Section,
},
{
key: 'master-brand-device',
diff --git a/src/pages/master/device/component/ListDevice.jsx b/src/pages/master/device/component/ListDevice.jsx
index 70dc2dd..875deba 100644
--- a/src/pages/master/device/component/ListDevice.jsx
+++ b/src/pages/master/device/component/ListDevice.jsx
@@ -15,6 +15,13 @@ import { deleteDevice, getAllDevice } from '../../../../api/master-device';
import TableList from '../../../../components/Global/TableList';
const columns = (showPreviewModal, showEditModal, showDeleteDialog) => [
+ {
+ title: 'No',
+ key: 'no',
+ width: '5%',
+ align: 'center',
+ render: (_, __, index) => index + 1,
+ },
{
title: 'ID',
dataIndex: 'device_id',
@@ -27,6 +34,7 @@ const columns = (showPreviewModal, showEditModal, showDeleteDialog) => [
dataIndex: 'device_code',
key: 'device_code',
width: '10%',
+ hidden: true,
},
{
title: 'Device Name',
diff --git a/src/pages/master/plantSection/IndexPlantSection.jsx b/src/pages/master/plantSubSection/IndexPlantSubSection.jsx
similarity index 89%
rename from src/pages/master/plantSection/IndexPlantSection.jsx
rename to src/pages/master/plantSubSection/IndexPlantSubSection.jsx
index 3ec995f..5fc44a2 100644
--- a/src/pages/master/plantSection/IndexPlantSection.jsx
+++ b/src/pages/master/plantSubSection/IndexPlantSubSection.jsx
@@ -1,13 +1,13 @@
import React, { memo, useState, useEffect } from 'react';
import { useNavigate } from 'react-router-dom';
-import ListPlantSection from './component/ListPlantSection';
-import DetailPlantSection from './component/DetailPlantSection';
+import ListPlantSection from './component/ListPlantSubSection';
+import DetailPlantSection from './component/DetailPlantSubSection';
import { useBreadcrumb } from '../../../layout/LayoutBreadcrumb';
import { Typography } from 'antd';
const { Text } = Typography;
-const IndexPlantSection = memo(function IndexPlantSection() {
+const IndexPlantSubSection = memo(function IndexPlantSubSection() {
const navigate = useNavigate();
const { setBreadcrumbItems } = useBreadcrumb();
@@ -71,4 +71,4 @@ const IndexPlantSection = memo(function IndexPlantSection() {
);
});
-export default IndexPlantSection;
+export default IndexPlantSubSection;
diff --git a/src/pages/master/plantSection/component/DetailPlantSection.jsx b/src/pages/master/plantSubSection/component/DetailPlantSubSection.jsx
similarity index 99%
rename from src/pages/master/plantSection/component/DetailPlantSection.jsx
rename to src/pages/master/plantSubSection/component/DetailPlantSubSection.jsx
index bdeef66..de45dd4 100644
--- a/src/pages/master/plantSection/component/DetailPlantSection.jsx
+++ b/src/pages/master/plantSubSection/component/DetailPlantSubSection.jsx
@@ -7,7 +7,7 @@ import TextArea from 'antd/es/input/TextArea';
const { Text } = Typography;
-const DetailPlantSection = (props) => {
+const DetailPlantSubSection = (props) => {
const [confirmLoading, setConfirmLoading] = useState(false);
const defaultData = {
@@ -265,4 +265,4 @@ const DetailPlantSection = (props) => {
);
};
-export default DetailPlantSection;
+export default DetailPlantSubSection;
diff --git a/src/pages/master/plantSection/component/ListPlantSection.jsx b/src/pages/master/plantSubSection/component/ListPlantSubSection.jsx
similarity index 96%
rename from src/pages/master/plantSection/component/ListPlantSection.jsx
rename to src/pages/master/plantSubSection/component/ListPlantSubSection.jsx
index 9de4089..fd18e0a 100644
--- a/src/pages/master/plantSection/component/ListPlantSection.jsx
+++ b/src/pages/master/plantSubSection/component/ListPlantSubSection.jsx
@@ -24,27 +24,21 @@ const columns = (showPreviewModal, showEditModal, showDeleteDialog) => [
title: 'Plant Sub Section Code',
dataIndex: 'plant_sub_section_code',
key: 'plant_sub_section_code',
- width: '15%',
+ width: '10%',
align: 'center',
+ hidden: true,
},
{
title: 'Plant Sub Section Name',
dataIndex: 'plant_sub_section_name',
key: 'plant_sub_section_name',
- width: '25%',
- },
- {
- title: 'Table Name Value',
- dataIndex: 'table_name_value',
- key: 'table_name_value',
- width: '20%',
- render: (text) => text || '-',
+ width: '15%',
},
{
title: 'Description',
dataIndex: 'plant_sub_section_description',
key: 'plant_sub_section_description',
- width: '20%',
+ width: '30%',
render: (text) => text || '-',
},
{
@@ -101,7 +95,7 @@ const columns = (showPreviewModal, showEditModal, showDeleteDialog) => [
},
];
-const ListPlantSection = memo(function ListPlantSection(props) {
+const ListPlantSubSection = memo(function ListPlantSubSection(props) {
const [trigerFilter, setTrigerFilter] = useState(false);
const defaultFilter = { criteria: '' };
const [formDataFilter, setFormDataFilter] = useState(defaultFilter);
@@ -259,4 +253,4 @@ const ListPlantSection = memo(function ListPlantSection(props) {
);
});
-export default ListPlantSection;
+export default ListPlantSubSection;
diff --git a/src/pages/master/shift/component/ListShift.jsx b/src/pages/master/shift/component/ListShift.jsx
index ae2b829..d177631 100644
--- a/src/pages/master/shift/component/ListShift.jsx
+++ b/src/pages/master/shift/component/ListShift.jsx
@@ -28,6 +28,13 @@ const formatTime = (timeValue) => {
};
const columns = (showPreviewModal, showEditModal, showDeleteDialog) => [
+ {
+ title: 'No',
+ key: 'no',
+ width: '5%',
+ align: 'center',
+ render: (_, __, index) => index + 1,
+ },
{
title: 'Shift Name',
dataIndex: 'shift_name',
diff --git a/src/pages/master/status/component/DetailStatus.jsx b/src/pages/master/status/component/DetailStatus.jsx
index 11b1afa..360f2f6 100644
--- a/src/pages/master/status/component/DetailStatus.jsx
+++ b/src/pages/master/status/component/DetailStatus.jsx
@@ -197,39 +197,43 @@ const DetailStatus = (props) => {
-
-
Status Color
-
*
-
- `color hex: ${color.toHexString()}`}
- allowClear={false}
- format="hex"
- size="large"
- style={{ width: '100%' }}
- presets={[
- {
- label: 'Recommended',
- colors: [
- '#EF4444', // Merah
- '#3B82F6', // Biru
- '#10B981', // Hijau
- '#F59E0B', // Kuning
- '#8B5CF6', // Ungu
- '#EC4899', // Pink
- '#F97316', // Orange
- '#14B8A6', // Teal
- '#6B7280', // Gray
- '#000000', // Black
- ],
- },
- ]}
- />
-
-
+
+
+
+
Status Color
+
*
+
+ `color hex: ${color.toHexString()}`}
+ allowClear={false}
+ format="hex"
+ style={{ width: '100%' }}
+ presets={[
+ {
+ label: 'Recommended',
+ colors: [
+ '#EF4444', // Merah
+ '#3B82F6', // Biru
+ '#10B981', // Hijau
+ '#F59E0B', // Kuning
+ '#8B5CF6', // Ungu
+ '#EC4899', // Pink
+ '#F97316', // Orange
+ '#14B8A6', // Teal
+ '#6B7280', // Gray
+ '#000000', // Black
+ ],
+ },
+ ]}
+ />
+
+
+
+
+
Description
- {/* Alarm Checkbox */}
- {/* Report Checkbox */}
-
- {/* History Checkbox */}
-
-
History
-
-
+
+ {/* Alarm Checkbox */}
+
+ {/* Report Checkbox */}
+
+ {/* History Checkbox */}
+
@@ -639,14 +649,14 @@ const DetailTag = (props) => {
gap: '12px',
}}
>
- {/* Limit Low Crash */}
+ {/* Limit Low Low */}
- Limit Low Crash
+ Limit Low Low
{
step="any"
/>
- {/* Limit High Crash */}
+ {/* Limit High High */}
- Limit High Crash
+ Limit High High
[
+ {
+ title: 'No',
+ key: 'no',
+ width: '5%',
+ align: 'center',
+ render: (_, __, index) => index + 1,
+ },
{
title: 'ID',
dataIndex: 'tag_id',
@@ -25,12 +32,7 @@ const columns = (showPreviewModal, showEditModal, showDeleteDialog) => [
dataIndex: 'tag_code',
key: 'tag_code',
width: '10%',
- },
- {
- title: 'Tag Name',
- dataIndex: 'tag_name',
- key: 'tag_name',
- width: '15%',
+ hidden: true,
},
{
title: 'Tag Number',
@@ -40,7 +42,14 @@ const columns = (showPreviewModal, showEditModal, showDeleteDialog) => [
align: 'center',
},
{
- title: 'Data Type',
+ title: 'Tag Name',
+ dataIndex: 'tag_name',
+ key: 'tag_name',
+ width: '20%',
+ },
+
+ {
+ title: 'Type',
dataIndex: 'data_type',
key: 'data_type',
width: '8%',
@@ -66,19 +75,13 @@ const columns = (showPreviewModal, showEditModal, showDeleteDialog) => [
key: 'device_name',
width: '12%',
render: (text) => text || '-',
- },
- {
- title: 'Description',
- dataIndex: 'tag_description',
- key: 'tag_description',
- width: '12%',
- render: (text) => text || '-',
+ hidden: true,
},
{
title: 'Status',
dataIndex: 'is_active',
key: 'is_active',
- width: '8%',
+ width: '5%',
align: 'center',
render: (_, { is_active }) => (
<>
diff --git a/src/pages/master/unit/component/DetailUnit.jsx b/src/pages/master/unit/component/DetailUnit.jsx
index cc7c2fb..f3e56cb 100644
--- a/src/pages/master/unit/component/DetailUnit.jsx
+++ b/src/pages/master/unit/component/DetailUnit.jsx
@@ -2,15 +2,12 @@ import React, { useEffect, useState } from 'react';
import { Modal, Input, Typography, Switch, Button, ConfigProvider, Divider, Select } from 'antd';
import { NotifOk } from '../../../../components/Global/ToastNotif';
import { createUnit, updateUnit } from '../../../../api/master-unit';
-import { getAllTag } from '../../../../api/master-tag'; // Import API untuk Tag
import { validateRun } from '../../../../Utils/validate';
const { Text } = Typography;
const DetailUnit = (props) => {
const [confirmLoading, setConfirmLoading] = useState(false);
- const [tagList, setTagList] = useState([]);
- const [loadingTags, setLoadingTags] = useState(false);
const defaultData = {
unit_id: '',
@@ -18,28 +15,10 @@ const DetailUnit = (props) => {
unit_name: '',
unit_description: '',
is_active: true,
- tag_id: null, // Tambahkan tag_id
};
const [formData, setFormData] = useState(defaultData);
- // Fungsi untuk mengambil data Tag
- const loadTags = async () => {
- setLoadingTags(true);
- try {
- const params = new URLSearchParams({ limit: 1000, criteria: '' });
- const response = await getAllTag(params);
- if (response && response.data) {
- const activeTags = response.data.filter((tag) => tag.is_active === true);
- setTagList(activeTags);
- }
- } catch (error) {
- console.error('Error loading tags:', error);
- } finally {
- setLoadingTags(false);
- }
- };
-
const handleCancel = () => {
props.setSelectedData(null);
props.setActionMode('list');
@@ -48,10 +27,7 @@ const DetailUnit = (props) => {
const handleSave = async () => {
setConfirmLoading(true);
- const validationRules = [
- { field: 'unit_name', label: 'Unit Name', required: true },
- { field: 'tag_id', label: 'Tag', required: true }, // Tambah validasi untuk tag_id
- ];
+ const validationRules = [{ field: 'unit_name', label: 'Unit Name', required: true }];
if (
validateRun(formData, validationRules, (errorMessages) => {
@@ -71,7 +47,6 @@ const DetailUnit = (props) => {
unit_name: formData.unit_name,
unit_description: formData.unit_description,
is_active: formData.is_active,
- tag_id: formData.tag_id, // Tambahkan tag_id ke payload
};
const response =
@@ -115,13 +90,6 @@ const DetailUnit = (props) => {
});
};
- const handleSelectChange = (name, value) => {
- setFormData({
- ...formData,
- [name]: value,
- });
- };
-
const handleStatusToggle = (checked) => {
setFormData({
...formData,
@@ -130,10 +98,6 @@ const DetailUnit = (props) => {
};
useEffect(() => {
- if (props.showModal) {
- loadTags(); // Panggil fungsi loadTags saat modal muncul
- }
-
if (props.selectedData) {
setFormData(props.selectedData);
} else {
@@ -227,33 +191,6 @@ const DetailUnit = (props) => {
/>
-
- Tag
- *
-
-
-
Unit Name
*
@@ -284,4 +221,4 @@ const DetailUnit = (props) => {
);
};
-export default DetailUnit;
\ No newline at end of file
+export default DetailUnit;
diff --git a/src/pages/master/unit/component/ListUnit.jsx b/src/pages/master/unit/component/ListUnit.jsx
index d97d6ea..18f1805 100644
--- a/src/pages/master/unit/component/ListUnit.jsx
+++ b/src/pages/master/unit/component/ListUnit.jsx
@@ -24,19 +24,20 @@ const columns = (showPreviewModal, showEditModal, showDeleteDialog) => [
title: 'Unit Code',
dataIndex: 'unit_code',
key: 'unit_code',
- width: '20%',
+ width: '10%',
+ hidden: true,
},
{
title: 'Name',
dataIndex: 'unit_name',
key: 'unit_name',
- width: '20%',
+ width: '15%',
},
{
title: 'Description',
dataIndex: 'unit_description',
key: 'unit_description',
- width: '25%',
+ width: '30%',
render: (text) => text || '-',
},
{
diff --git a/src/pages/role/component/ListRole.jsx b/src/pages/role/component/ListRole.jsx
index 4cb1e63..559a585 100644
--- a/src/pages/role/component/ListRole.jsx
+++ b/src/pages/role/component/ListRole.jsx
@@ -13,6 +13,13 @@ import { getAllRole, deleteRole } from '../../../api/role';
import TableList from '../../../components/Global/TableList';
const columns = (showPreviewModal, showEditModal, showDeleteDialog) => [
+ {
+ title: 'No',
+ key: 'no',
+ width: '5%',
+ align: 'center',
+ render: (_, __, index) => index + 1,
+ },
{
title: 'ID',
dataIndex: 'role_id',
diff --git a/src/pages/user/component/ListUser.jsx b/src/pages/user/component/ListUser.jsx
index 067b456..e3c0de2 100644
--- a/src/pages/user/component/ListUser.jsx
+++ b/src/pages/user/component/ListUser.jsx
@@ -51,6 +51,13 @@ const getRoleColor = (role_name, role_level) => {
};
const columns = (showPreviewModal, showEditModal, showDeleteDialog, showApprovalModal) => [
+ {
+ title: 'No',
+ key: 'no',
+ width: '5%',
+ align: 'center',
+ render: (_, __, index) => index + 1,
+ },
{
title: 'ID',
dataIndex: 'user_id',