diff --git a/src/components/Sidebar.tsx b/src/components/Sidebar.tsx index 705e2f1..115d95a 100644 --- a/src/components/Sidebar.tsx +++ b/src/components/Sidebar.tsx @@ -5,12 +5,6 @@ import { LayoutDashboard, Package, Wrench, - Users, - BarChart3, - Building2, - Truck, - FileText, - MapPin, Menu, X, Moon, @@ -45,31 +39,31 @@ const Sidebar: React.FC = ({ userEmail }) => { }; // Role-based visibility logic - const isMaintenanceManagerKASH = userEmail === 'maintenancemanager-kash@gmail.com'; - const isMaintenanceManagerTH = userEmail === 'maintenancemanager-th@gmail.com'; - const isMaintenanceManagerDAJH = userEmail === 'maintenancemanager-dajh@gmail.com'; + // const isMaintenanceManagerKASH = userEmail === 'maintenancemanager-kash@gmail.com'; + // const isMaintenanceManagerTH = userEmail === 'maintenancemanager-th@gmail.com'; + // const isMaintenanceManagerDAJH = userEmail === 'maintenancemanager-dajh@gmail.com'; const isFinanceManager = userEmail === 'financemanager@gmail.com'; const isEndUser = userEmail && ( userEmail.startsWith('enduser1-kash') || userEmail.startsWith('enduser1-dajh') || userEmail.startsWith('enduser1-th') ); - const isTechnician = userEmail && ( - userEmail.startsWith('technician1-kash') || - userEmail.startsWith('technician1-dajh') || - userEmail.startsWith('technician1-th') - ); + // const isTechnician = userEmail && ( + // userEmail.startsWith('technician1-kash') || + // userEmail.startsWith('technician1-dajh') || + // userEmail.startsWith('technician1-th') + // ); const showAsset = !isFinanceManager && !isEndUser; - const showInventory = !isFinanceManager && !isEndUser; + // const showInventory = !isFinanceManager && !isEndUser; const showPreventiveMaintenance = !isFinanceManager && !isEndUser; const showGeneralWO = !isFinanceManager && !isEndUser; - const showAMTeam = !isFinanceManager && !isEndUser; - const showProjectDashboard = !isMaintenanceManagerKASH && !isMaintenanceManagerTH && !isMaintenanceManagerDAJH && !isFinanceManager && !isEndUser && !isTechnician; - const showSiteDashboards = !isFinanceManager && !isEndUser; - const showSupplierDashboard = !isFinanceManager && !isEndUser; - const showSLA = !isFinanceManager && !isEndUser && !isTechnician; - const showSiteInfo = !isFinanceManager && !isEndUser; + // const showAMTeam = !isFinanceManager && !isEndUser; + // const showProjectDashboard = !isMaintenanceManagerKASH && !isMaintenanceManagerTH && !isMaintenanceManagerDAJH && !isFinanceManager && !isEndUser && !isTechnician; + // const showSiteDashboards = !isFinanceManager && !isEndUser; + // const showSupplierDashboard = !isFinanceManager && !isEndUser; + // const showSLA = !isFinanceManager && !isEndUser && !isTechnician; + // const showSiteInfo = !isFinanceManager && !isEndUser; const links: SidebarLink[] = [ { diff --git a/src/pages/AssetDetail.tsx b/src/pages/AssetDetail.tsx index 1012e30..efb7257 100644 --- a/src/pages/AssetDetail.tsx +++ b/src/pages/AssetDetail.tsx @@ -965,7 +965,7 @@ const handlePPMPlan = async () => { // Generate Status Summary HTML const statusSummaryHTML = Object.keys(statusCounts).length > 0 - ? Object.entries(statusCounts).map(([status, count], index) => { + ? Object.entries(statusCounts).map(([status, count]) => { const statusClass = status === 'Completed' ? 'bg-green-100 text-green-800 border-green-200' : status === 'Planned' diff --git a/src/pages/AssetList.tsx b/src/pages/AssetList.tsx index caaccba..636cc39 100644 --- a/src/pages/AssetList.tsx +++ b/src/pages/AssetList.tsx @@ -2,7 +2,7 @@ import React, { useState, useEffect, useRef } from 'react'; import { useNavigate } from 'react-router-dom'; import { useAssets, useAssetMutations } from '../hooks/useAsset'; import { FaPlus, FaSearch, FaEdit, FaEye, FaTrash, FaCopy, FaEllipsisV, FaDownload, FaPrint, FaFileExport, FaTimes, FaFilter, FaChevronDown, FaChevronUp, FaSave, - FaStar, FaLock } from 'react-icons/fa'; + FaStar } from 'react-icons/fa'; import LinkField from '../components/LinkField'; import { useUserPermissions } from '../hooks/useUserPermissions'; @@ -18,13 +18,13 @@ const AssetList: React.FC = () => { // ✅ NEW: Get user permissions for Asset doctype const { - isAdmin, + // isAdmin, permissionFilters, - restrictions, + // restrictions, loading: permissionsLoading, error: permissionsError, - hasRestriction, - getAllowedValues, + // hasRestriction, + // getAllowedValues, hasAnyRestrictions } = useUserPermissions('Asset'); @@ -211,11 +211,11 @@ const AssetList: React.FC = () => { }; // Quick filters - const applyQuickFilter = (type: 'active' | 'down' | 'recent') => { - handleClearFilters(); - if (type === 'active') setFilterDeviceStatus('Up'); - else if (type === 'down') setFilterDeviceStatus('Down'); - }; + // const applyQuickFilter = (type: 'active' | 'down' | 'recent') => { + // handleClearFilters(); + // if (type === 'active') setFilterDeviceStatus('Up'); + // else if (type === 'down') setFilterDeviceStatus('Down'); + // }; // Cleanup timeouts on unmount useEffect(() => { @@ -331,71 +331,71 @@ const AssetList: React.FC = () => { filterAssetName || filterSerialNumber || searchTerm; // ✅ NEW: Helper component for restricted select fields - const RestrictedSelect: React.FC<{ - label: string; - permissionType: string; - value: string; - onChange: (val: string) => void; - doctype: string; - placeholder?: string; - filters?: Record; - }> = ({ label, permissionType, value, onChange, doctype, placeholder, filters: linkFilters }) => { - const isRestricted = hasRestriction(permissionType); - const allowedValues = getAllowedValues(permissionType); + // const RestrictedSelect: React.FC<{ + // label: string; + // permissionType: string; + // value: string; + // onChange: (val: string) => void; + // doctype: string; + // placeholder?: string; + // filters?: Record; + // }> = ({ label, permissionType, value, onChange, doctype, placeholder, filters: linkFilters }) => { + // const isRestricted = hasRestriction(permissionType); + // const allowedValues = getAllowedValues(permissionType); - if (isRestricted && allowedValues.length > 0) { - return ( -
- - - {value && ( - - )} -
- ); - } + // if (isRestricted && allowedValues.length > 0) { + // return ( + //
+ // + // + // {value && ( + // + // )} + //
+ // ); + // } - // Not restricted - show normal LinkField - return ( -
- - {value && ( - - )} -
- ); - }; + // // Not restricted - show normal LinkField + // return ( + //
+ // + // {value && ( + // + // )} + //
+ // ); + // }; // ✅ NEW: Loading state for permissions if (permissionsLoading) { diff --git a/src/pages/ModernDashboard.tsx b/src/pages/ModernDashboard.tsx index 55a273e..5d397ec 100644 --- a/src/pages/ModernDashboard.tsx +++ b/src/pages/ModernDashboard.tsx @@ -39,7 +39,7 @@ const ModernDashboard: React.FC = () => { const { data: assetWiseChart } = useDashboardChart('Maintenance - Asset wise Count'); const { data: assigneesChart } = useDashboardChart('Asset Maintenance Assignees Status Count'); const { data: frequencyChart } = useDashboardChart('Asset Maintenance Frequency Chart'); - const { data: ppmStatusChart } = useDashboardChart('PPM Status'); + // const { data: ppmStatusChart } = useDashboardChart('PPM Status'); // Generate Up & Down Time Chart data from assets useEffect(() => { @@ -765,28 +765,28 @@ const CustomerSatisfactionCard: React.FC<{ data: any; title: string; description }; // Metric Card Component (Bottom Row - Smaller & Compact) -const MetricCard: React.FC<{ - icon: React.ReactNode; - label: string; - value: string; - iconColor?: string; - bgColor: string; - textColor?: string; -}> = ({ icon, label, value, iconColor = "text-white", bgColor, textColor = "text-gray-900 dark:text-white" }) => ( -
-
-
- {icon} -
-
-
-
- {label} -
-
{value}
-
-
-); +// const MetricCard: React.FC<{ +// icon: React.ReactNode; +// label: string; +// value: string; +// iconColor?: string; +// bgColor: string; +// textColor?: string; +// }> = ({ icon, label, value, iconColor = "text-white", bgColor, textColor = "text-gray-900 dark:text-white" }) => ( +//
+//
+//
+// {icon} +//
+//
+//
+//
+// {label} +//
+//
{value}
+//
+//
+// ); // Mini Area Chart Component const MiniAreaChart: React.FC = () => { diff --git a/src/pages/PPMDetail.tsx b/src/pages/PPMDetail.tsx index 2967ae7..b037b24 100644 --- a/src/pages/PPMDetail.tsx +++ b/src/pages/PPMDetail.tsx @@ -1,7 +1,7 @@ import React, { useState, useEffect } from 'react'; import { useParams, useNavigate, useSearchParams } from 'react-router-dom'; import { usePPMDetails, usePPMMutations } from '../hooks/usePPM'; -import { FaArrowLeft, FaSave, FaEdit, FaBuilding, FaTools, FaCalendarCheck, FaDollarSign } from 'react-icons/fa'; +import { FaArrowLeft, FaSave, FaEdit, FaTools } from 'react-icons/fa'; import type { CreatePPMData } from '../services/ppmService'; const PPMDetail: React.FC = () => { diff --git a/src/pages/PPMList.tsx b/src/pages/PPMList.tsx index 46608ca..6b2addd 100644 --- a/src/pages/PPMList.tsx +++ b/src/pages/PPMList.tsx @@ -1,7 +1,7 @@ import React, { useState, useEffect, useRef } from 'react'; import { useNavigate } from 'react-router-dom'; import { usePPMs, usePPMMutations } from '../hooks/usePPM'; -import { FaPlus, FaSearch, FaEdit, FaEye, FaTrash, FaCopy, FaEllipsisV, FaFileExport, FaCalendarCheck, FaTools, FaBuilding } from 'react-icons/fa'; +import { FaPlus, FaSearch, FaEdit, FaEye, FaTrash, FaCopy, FaEllipsisV, FaFileExport, FaCalendarCheck, FaBuilding } from 'react-icons/fa'; const PPMList: React.FC = () => { const navigate = useNavigate();