Changes Completed in Overview
This commit is contained in:
3
.vscode/settings.json
vendored
Normal file
3
.vscode/settings.json
vendored
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"chat.disableAIFeatures": false
|
||||||
|
}
|
||||||
@@ -10,7 +10,7 @@ export default function DynamicDashboardPage() {
|
|||||||
return (
|
return (
|
||||||
|
|
||||||
|
|
||||||
<div className="p-8 mx-3">
|
<div className="p-6 mx-2">
|
||||||
<DynamicDashboardPortal/>
|
<DynamicDashboardPortal/>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ export default function LanguagePage() {
|
|||||||
return (
|
return (
|
||||||
|
|
||||||
|
|
||||||
<div className="p-8 mx-3">
|
<div className="p-6 mx-2">
|
||||||
<LanguagePortal/>
|
<LanguagePortal/>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ export default function MobileFlowPage() {
|
|||||||
return (
|
return (
|
||||||
|
|
||||||
|
|
||||||
<div className="p-8 mx-3">
|
<div className="p-6 mx-2">
|
||||||
<MobileFlowsPortal/>
|
<MobileFlowsPortal/>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ export default function ModulesPage() {
|
|||||||
return (
|
return (
|
||||||
|
|
||||||
|
|
||||||
<div className="p-8 mx-3">
|
<div className="p-6 mx-2">
|
||||||
<ModulesPortal/>
|
<ModulesPortal/>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
"use client"
|
"use client"
|
||||||
|
|
||||||
import AdminOverviewPortal from "@/components/dashboard/admin/overview";
|
import AdminOverviewPortal from "@/components/dashboard/admin/Platform/overview";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -9,7 +9,7 @@ export default function OverviewPage() {
|
|||||||
return (
|
return (
|
||||||
|
|
||||||
|
|
||||||
<div className="p-8 mx-3">
|
<div className="p-6 mx-2">
|
||||||
<AdminOverviewPortal/>
|
<AdminOverviewPortal/>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ export default function SecurityPage() {
|
|||||||
return (
|
return (
|
||||||
|
|
||||||
|
|
||||||
<div className="p-8 mx-3">
|
<div className="p-6 mx-2">
|
||||||
<SecurityPortal/>
|
<SecurityPortal/>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,17 +1,17 @@
|
|||||||
"use client"
|
"use client"
|
||||||
|
|
||||||
|
|
||||||
import SitePortal from "@/components/dashboard/admin/site";
|
import SitePortal from "@/components/dashboard/admin/Platform/site";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
export default function AuditSurveyPage() {
|
export default function SitePage() {
|
||||||
return (
|
return (
|
||||||
|
|
||||||
|
|
||||||
<div className="p-8 mx-3">
|
<div className="p-6 mx-2">
|
||||||
<SitePortal/>
|
<SitePortal/>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
"use client"
|
"use client"
|
||||||
|
|
||||||
|
|
||||||
import TenantsPortal from "@/components/dashboard/admin/tenants";
|
import TenantsPortal from "@/components/dashboard/admin/Platform/tenants";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -10,7 +10,7 @@ export default function TenantsPage() {
|
|||||||
return (
|
return (
|
||||||
|
|
||||||
|
|
||||||
<div className="p-8 mx-3">
|
<div className="p-6 mx-2">
|
||||||
<TenantsPortal/>
|
<TenantsPortal/>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
import UserPortal from "@/components/dashboard/admin/users";
|
import UserPortal from "@/components/dashboard/admin/Platform/users";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -11,7 +11,7 @@ export default function UsersPage() {
|
|||||||
return (
|
return (
|
||||||
|
|
||||||
|
|
||||||
<div className="p-8 mx-3">
|
<div className="p-6 mx-2">
|
||||||
<UserPortal/>
|
<UserPortal/>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ export default function AuditSurveyPage() {
|
|||||||
return (
|
return (
|
||||||
|
|
||||||
|
|
||||||
<div className="p-8 mx-3">
|
<div className="p-6 mx-2">
|
||||||
<AuditSurveyPortal/>
|
<AuditSurveyPortal/>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ export default function ContractsPage() {
|
|||||||
return (
|
return (
|
||||||
|
|
||||||
|
|
||||||
<div className="p-8 mx-3">
|
<div className="p-6 mx-2">
|
||||||
<ContractsPortal/>
|
<ContractsPortal/>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ export default function FireSafetyPage() {
|
|||||||
return (
|
return (
|
||||||
|
|
||||||
|
|
||||||
<div className="p-8 mx-3">
|
<div className="p-6 mx-2">
|
||||||
<FireSafetyPortal/>
|
<FireSafetyPortal/>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ export default function ComplianceSafetyPage() {
|
|||||||
return (
|
return (
|
||||||
|
|
||||||
|
|
||||||
<div className="p-8 mx-3">
|
<div className="p-6 mx-2">
|
||||||
<StatutoryCompliancePortal/>
|
<StatutoryCompliancePortal/>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ export default function TrainingPage() {
|
|||||||
return (
|
return (
|
||||||
|
|
||||||
|
|
||||||
<div className="p-8 mx-3">
|
<div className="p-6 mx-2">
|
||||||
<TrainingPortal/>
|
<TrainingPortal/>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ export default function WasteEsGPage() {
|
|||||||
return (
|
return (
|
||||||
|
|
||||||
|
|
||||||
<div className="p-8 mx-3">
|
<div className="p-6 mx-2">
|
||||||
<WasteESGPortal/>
|
<WasteESGPortal/>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ export default function MasterdataPage() {
|
|||||||
return (
|
return (
|
||||||
|
|
||||||
|
|
||||||
<div className="p-8 mx-3">
|
<div className="p-6 mx-2">
|
||||||
<MasterDataPortal/>
|
<MasterDataPortal/>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ export default function RolesAccessPage() {
|
|||||||
return (
|
return (
|
||||||
|
|
||||||
|
|
||||||
<div className="p-8 mx-3">
|
<div className="p-6 mx-2">
|
||||||
<RolesAccessPortal/>
|
<RolesAccessPortal/>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ export default function SettingsPage() {
|
|||||||
return (
|
return (
|
||||||
|
|
||||||
|
|
||||||
<div className="p-8 mx-3">
|
<div className="p-6 mx-2">
|
||||||
<SettingsPortal/>
|
<SettingsPortal/>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
"use client"
|
"use client"
|
||||||
|
|
||||||
import MasterDataPortal from "@/components/dashboard/configure/masterData";
|
|
||||||
import RolesAccessPortal from "@/components/dashboard/configure/rolesaccess";
|
|
||||||
import UserLocationPortal from "@/components/dashboard/configure/userLocation";
|
import UserLocationPortal from "@/components/dashboard/configure/userLocation";
|
||||||
|
|
||||||
|
|
||||||
@@ -12,7 +11,7 @@ export default function userLocationPage() {
|
|||||||
return (
|
return (
|
||||||
|
|
||||||
|
|
||||||
<div className="p-8 mx-3">
|
<div className="p-6 mx-2">
|
||||||
<UserLocationPortal/>
|
<UserLocationPortal/>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -3,18 +3,11 @@
|
|||||||
|
|
||||||
import WorkFlowAutomationPortal from "@/components/dashboard/configure/workflowAutomation";
|
import WorkFlowAutomationPortal from "@/components/dashboard/configure/workflowAutomation";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
export default function WorkflowAutomationPage() {
|
export default function WorkflowAutomationPage() {
|
||||||
return (
|
return (
|
||||||
|
|
||||||
|
|
||||||
<div className="p-8 mx-3">
|
<div className="p-6 mx-2">
|
||||||
<WorkFlowAutomationPortal/>
|
<WorkFlowAutomationPortal/>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ export default function BudgetPage() {
|
|||||||
return (
|
return (
|
||||||
|
|
||||||
|
|
||||||
<div className="p-8 mx-3">
|
<div className="p-6 mx-2">
|
||||||
<BudgetPortal/>
|
<BudgetPortal/>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ export default function CostInvoicePage() {
|
|||||||
return (
|
return (
|
||||||
|
|
||||||
|
|
||||||
<div className="p-8 mx-3">
|
<div className="p-6 mx-2">
|
||||||
<CostInvoicePortal/>
|
<CostInvoicePortal/>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ export default function ReportPage() {
|
|||||||
return (
|
return (
|
||||||
|
|
||||||
|
|
||||||
<div className="p-8 mx-3">
|
<div className="p-6 mx-2">
|
||||||
<ReportPortal/>
|
<ReportPortal/>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ export default function AiHelpdeskPage() {
|
|||||||
return (
|
return (
|
||||||
|
|
||||||
|
|
||||||
<div className="p-8 mx-3">
|
<div className="p-6 mx-2">
|
||||||
<AiHelpdeskPortal/>
|
<AiHelpdeskPortal/>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ export default function AiPredictivePage() {
|
|||||||
return (
|
return (
|
||||||
|
|
||||||
|
|
||||||
<div className="p-8 mx-3">
|
<div className="p-6 mx-2">
|
||||||
<AiPredictivePortal/>
|
<AiPredictivePortal/>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ export default function AssetHealthPage() {
|
|||||||
return (
|
return (
|
||||||
|
|
||||||
|
|
||||||
<div className="p-8 mx-3">
|
<div className="p-6 mx-2">
|
||||||
<AssetHealthPortal/>
|
<AssetHealthPortal/>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ export default function ConnectedAssetPage() {
|
|||||||
return (
|
return (
|
||||||
|
|
||||||
|
|
||||||
<div className="p-8 mx-3">
|
<div className="p-6 mx-2">
|
||||||
<ConnectedAssetPortal/>
|
<ConnectedAssetPortal/>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ export default function ConnectedOpsPage() {
|
|||||||
return (
|
return (
|
||||||
|
|
||||||
|
|
||||||
<div className="p-8 mx-3">
|
<div className="p-6 mx-2">
|
||||||
<ConnectedOpsPortal/>
|
<ConnectedOpsPortal/>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ export default function EnergybenchmarkingPage() {
|
|||||||
return (
|
return (
|
||||||
|
|
||||||
|
|
||||||
<div className="p-8 mx-3">
|
<div className="p-6 mx-2">
|
||||||
<EnergyBenchmarkingPortal/>
|
<EnergyBenchmarkingPortal/>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ export default function GpsTrackingPage() {
|
|||||||
return (
|
return (
|
||||||
|
|
||||||
|
|
||||||
<div className="p-8 mx-3">
|
<div className="p-6 mx-2">
|
||||||
<GpsTrackingPortal/>
|
<GpsTrackingPortal/>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ export default function SustainabilityPage() {
|
|||||||
return (
|
return (
|
||||||
|
|
||||||
|
|
||||||
<div className="p-8 mx-3">
|
<div className="p-6 mx-2">
|
||||||
<SustainabilityPortal/>
|
<SustainabilityPortal/>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ export default function AlarmRulesPage() {
|
|||||||
return (
|
return (
|
||||||
|
|
||||||
|
|
||||||
<div className="p-8 mx-3">
|
<div className="p-6 mx-2">
|
||||||
<AlarmRulesPortal/>
|
<AlarmRulesPortal/>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ export default function CommandCenterPage() {
|
|||||||
return (
|
return (
|
||||||
|
|
||||||
|
|
||||||
<div className="p-8 mx-3">
|
<div className="p-6 mx-2">
|
||||||
<CommandCenterPortal />
|
<CommandCenterPortal />
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ export default function DeviceFleetPage() {
|
|||||||
return (
|
return (
|
||||||
|
|
||||||
|
|
||||||
<div className="p-8 mx-3">
|
<div className="p-6 mx-2">
|
||||||
<DeviceFleetPortal/>
|
<DeviceFleetPortal/>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ export default function EnergyUtilityPage() {
|
|||||||
return (
|
return (
|
||||||
|
|
||||||
|
|
||||||
<div className="p-8 mx-3">
|
<div className="p-6 mx-2">
|
||||||
<EnergyUtilityPortal/>
|
<EnergyUtilityPortal/>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ export default function HVACPlantPage() {
|
|||||||
return (
|
return (
|
||||||
|
|
||||||
|
|
||||||
<div className="p-8 mx-3">
|
<div className="p-6 mx-2">
|
||||||
<HVACPlantPortal/>
|
<HVACPlantPortal/>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ export default function DashboardLayout({
|
|||||||
|
|
||||||
{/* Main Page Content */}
|
{/* Main Page Content */}
|
||||||
<main className="flex-1 bg-[#071321]">
|
<main className="flex-1 bg-[#071321]">
|
||||||
|
|
||||||
{children}
|
{children}
|
||||||
</main>
|
</main>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ export default function EnergyPage() {
|
|||||||
return (
|
return (
|
||||||
|
|
||||||
|
|
||||||
<div className="p-8 mx-3">
|
<div className="p-6 mx-2">
|
||||||
<EnergyPortal/>
|
<EnergyPortal/>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ export default function EquipmentPage() {
|
|||||||
return (
|
return (
|
||||||
|
|
||||||
|
|
||||||
<div className="p-8 mx-3">
|
<div className="p-6 mx-2">
|
||||||
<EquipmentPortal/>
|
<EquipmentPortal/>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ export default function HelpDeskPage() {
|
|||||||
return (
|
return (
|
||||||
|
|
||||||
|
|
||||||
<div className="p-8 mx-3">
|
<div className="p-6 mx-2">
|
||||||
<HelpDeskPortal/>
|
<HelpDeskPortal/>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ export default function InventoryPage() {
|
|||||||
return (
|
return (
|
||||||
|
|
||||||
|
|
||||||
<div className="p-8 mx-3">
|
<div className="p-6 mx-2">
|
||||||
<InventoryPortal/>
|
<InventoryPortal/>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ export default function ServiceRequestPage() {
|
|||||||
return (
|
return (
|
||||||
|
|
||||||
|
|
||||||
<div className="p-8 mx-3">
|
<div className="p-6 mx-2">
|
||||||
<ServiceRequestsPortal/>
|
<ServiceRequestsPortal/>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ export default function VendorPage() {
|
|||||||
return (
|
return (
|
||||||
|
|
||||||
|
|
||||||
<div className="p-8 mx-3">
|
<div className="p-6 mx-2">
|
||||||
<VendorServicePortal/>
|
<VendorServicePortal/>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ export default function WorkPermitPage() {
|
|||||||
return (
|
return (
|
||||||
|
|
||||||
|
|
||||||
<div className="p-8 mx-3">
|
<div className="p-6 mx-2">
|
||||||
<WorkPermitPortal/>
|
<WorkPermitPortal/>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ export default function BuildingOwnerPage() {
|
|||||||
return (
|
return (
|
||||||
|
|
||||||
|
|
||||||
<div className="p-8 mx-3">
|
<div className="p-6 mx-2">
|
||||||
<BuildingOwnerPortal/>
|
<BuildingOwnerPortal/>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ export default function OverViewDashboardPage() {
|
|||||||
return (
|
return (
|
||||||
|
|
||||||
|
|
||||||
<div className="p-8 mx-3">
|
<div className="p-6 mx-2">
|
||||||
<OperationsDashboard />
|
<OperationsDashboard />
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ export default function EngagementDashboard() {
|
|||||||
return (
|
return (
|
||||||
|
|
||||||
|
|
||||||
<div className="p-8 mx-3">
|
<div className="p-6 mx-2">
|
||||||
<EngagementPage/>
|
<EngagementPage/>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ export default function PropertymanagerPage() {
|
|||||||
return (
|
return (
|
||||||
|
|
||||||
|
|
||||||
<div className="p-8 mx-3">
|
<div className="p-6 mx-2">
|
||||||
<PropertyManagerPortal/>
|
<PropertyManagerPortal/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ export default function ServiceEngineerPage() {
|
|||||||
return (
|
return (
|
||||||
|
|
||||||
|
|
||||||
<div className="p-8 mx-3 ">
|
<div className="p-6 mx-2 ">
|
||||||
<ServiceEngineerPortal/>
|
<ServiceEngineerPortal/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ export default function MeetingPage() {
|
|||||||
return (
|
return (
|
||||||
|
|
||||||
|
|
||||||
<div className="p-8 mx-3">
|
<div className="p-6 mx-2">
|
||||||
<MeetingRoomPortal/>
|
<MeetingRoomPortal/>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ export default function VisitorPage() {
|
|||||||
return (
|
return (
|
||||||
|
|
||||||
|
|
||||||
<div className="p-8 mx-3">
|
<div className="p-6 mx-2">
|
||||||
<VistiorManagementPortal/>
|
<VistiorManagementPortal/>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ export default function WorkSpacePage() {
|
|||||||
return (
|
return (
|
||||||
|
|
||||||
|
|
||||||
<div className="p-8 mx-3">
|
<div className="p-6 mx-2">
|
||||||
<WorkSpacePortal/>
|
<WorkSpacePortal/>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -19,3 +19,7 @@ body {
|
|||||||
color: var(--foreground);
|
color: var(--foreground);
|
||||||
font-family: Arial, Helvetica, sans-serif;
|
font-family: Arial, Helvetica, sans-serif;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -2,6 +2,11 @@
|
|||||||
import "./globals.css";
|
import "./globals.css";
|
||||||
import SessionWrapper from "./sessionWrapper";
|
import SessionWrapper from "./sessionWrapper";
|
||||||
|
|
||||||
|
import { Inter } from "next/font/google";
|
||||||
|
|
||||||
|
const inter = Inter({
|
||||||
|
subsets: ["latin"],
|
||||||
|
});
|
||||||
|
|
||||||
export default function RootLayout({
|
export default function RootLayout({
|
||||||
children,
|
children,
|
||||||
@@ -11,6 +16,7 @@ export default function RootLayout({
|
|||||||
return (
|
return (
|
||||||
<html
|
<html
|
||||||
lang="en"
|
lang="en"
|
||||||
|
className={inter.className}
|
||||||
>
|
>
|
||||||
<body>
|
<body>
|
||||||
<SessionWrapper>
|
<SessionWrapper>
|
||||||
|
|||||||
@@ -7,7 +7,8 @@ type TableProps = {
|
|||||||
|
|
||||||
export default function Table({ headers, rows }: TableProps) {
|
export default function Table({ headers, rows }: TableProps) {
|
||||||
return (
|
return (
|
||||||
<div className="w-full overflow-hidden rounded-2xl border border-slate-800 bg-[#0B1727] shadow-xl">
|
<div className="w-full overflow-hidden rounded-2xl border
|
||||||
|
border-slate-800 bg-[#0B1727] shadow-xl">
|
||||||
<div className="overflow-x-auto">
|
<div className="overflow-x-auto">
|
||||||
<table className="w-full border-collapse text-[12px]">
|
<table className="w-full border-collapse text-[12px]">
|
||||||
<thead>
|
<thead>
|
||||||
|
|||||||
@@ -10,16 +10,16 @@ export default function EnergyPortal() {
|
|||||||
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="text-slate-100 mt-15 font-sans">
|
<div className="text-slate-100 my-15 font-sans">
|
||||||
{/* --- HEADER SECTION --- */}
|
{/* --- HEADER SECTION --- */}
|
||||||
<div className="flex flex-col md:flex-row md:items-start md:justify-between gap-4 mb-6">
|
<div className="flex flex-col md:flex-row md:items-start md:justify-between gap-4 mb-6">
|
||||||
<div>
|
<div>
|
||||||
<div className="flex items-center gap-2 text-[10px] font-bold tracking-widest text-slate-500 uppercase font-mono">
|
<div className="flex items-center gap-2 text-[12px] font-bold tracking-widest text-slate-500 uppercase font-mono">
|
||||||
<span className="text-teal-400">Apple One — HQ Tower</span>
|
<span className="text-teal-400">Apple One — HQ Tower</span>
|
||||||
<span>•</span>
|
<span className='text-gray-600'>•</span>
|
||||||
<span>Operations</span>
|
<span className='text-gray-400'>Operations</span>
|
||||||
<span>•</span>
|
<span className='text-gray-600'>•</span>
|
||||||
<span>Energy</span>
|
<span className='text-gray-400'>Energy</span>
|
||||||
</div>
|
</div>
|
||||||
<h1 className="text-2xl font-bold text-white tracking-tight mt-2">
|
<h1 className="text-2xl font-bold text-white tracking-tight mt-2">
|
||||||
Meters & readings
|
Meters & readings
|
||||||
|
|||||||
@@ -1,6 +1,4 @@
|
|||||||
import {
|
import {
|
||||||
Pencil,
|
|
||||||
FileText,
|
|
||||||
QrCode,
|
QrCode,
|
||||||
Search,
|
Search,
|
||||||
Plus,
|
Plus,
|
||||||
@@ -30,18 +28,18 @@ export default function EquipmentPortal() {
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="my-15 text-slate-100 font-sans ">
|
<div className="my-15 text-slate-100 font-sans ">
|
||||||
<div className="flex items-center gap-2 text-[10px]
|
<div className="flex items-center gap-2 text-[12px]
|
||||||
font-bold tracking-widest text-slate-500 uppercase font-mono">
|
font-bold tracking-widest text-slate-500 uppercase font-mono">
|
||||||
|
|
||||||
<span className="text-teal-400">Apple One — HQ Tower</span>
|
<span className="text-teal-400">Apple One — HQ Tower</span>
|
||||||
|
|
||||||
<span>•</span>
|
<span className='text-gray-600'>•</span>
|
||||||
|
|
||||||
<span>Operations</span>
|
<span className='text-gray-400'>Operations</span>
|
||||||
|
|
||||||
<span>•</span>
|
<span className='text-gray-600'>•</span>
|
||||||
|
|
||||||
<span>Equipment</span>
|
<span className='text-gray-400'>Equipment</span>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
@@ -6,9 +6,6 @@ import {
|
|||||||
Clock,
|
Clock,
|
||||||
Search,
|
Search,
|
||||||
QrCode,
|
QrCode,
|
||||||
Power,
|
|
||||||
List,
|
|
||||||
Pencil,
|
|
||||||
Plus,
|
Plus,
|
||||||
} from 'lucide-react';
|
} from 'lucide-react';
|
||||||
import Button from "@/components/common/button";
|
import Button from "@/components/common/button";
|
||||||
@@ -28,16 +25,16 @@ export default function HelpDeskPortal() {
|
|||||||
const [activeTab, setActiveTab] = useState<string>('Location');
|
const [activeTab, setActiveTab] = useState<string>('Location');
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="my-15 px-4 text-slate-100 font-sans">
|
<div className="my-15 text-slate-100 font-sans">
|
||||||
{/* --- HEADER SECTION --- */}
|
{/* --- HEADER SECTION --- */}
|
||||||
<div className="flex flex-col md:flex-row md:items-start md:justify-between gap-3 mb-4">
|
<div className="flex flex-col md:flex-row md:items-start md:justify-between gap-3 mb-4">
|
||||||
<div>
|
<div>
|
||||||
<div className="flex items-center gap-2 text-[10px] font-bold tracking-widest text-slate-500 uppercase font-mono">
|
<div className="flex items-center gap-2 text-[12px] font-bold tracking-widest text-slate-500 uppercase font-mono">
|
||||||
<span className="text-teal-400">Apple One — HQ Tower</span>
|
<span className="text-teal-400">Apple One — HQ Tower</span>
|
||||||
<span>•</span>
|
<span className='text-gray-600'>•</span>
|
||||||
<span>Operations</span>
|
<span className='text-gray-400'>Operations</span>
|
||||||
<span>•</span>
|
<span className='text-gray-600'>•</span>
|
||||||
<span>Help Desk</span>
|
<span className='text-gray-400'>Help Desk</span>
|
||||||
</div>
|
</div>
|
||||||
<h1 className="text-2xl font-extrabold text-white tracking-tight mt-1.5">
|
<h1 className="text-2xl font-extrabold text-white tracking-tight mt-1.5">
|
||||||
Help Desk & checklists
|
Help Desk & checklists
|
||||||
|
|||||||
@@ -21,12 +21,12 @@ export default function InventoryPortal() {
|
|||||||
{/* --- HEADER SECTION --- */}
|
{/* --- HEADER SECTION --- */}
|
||||||
<div className="flex flex-col md:flex-row md:items-start md:justify-between gap-4 mb-6">
|
<div className="flex flex-col md:flex-row md:items-start md:justify-between gap-4 mb-6">
|
||||||
<div>
|
<div>
|
||||||
<div className="flex items-center gap-2 text-[10px] font-bold tracking-widest text-slate-500 uppercase font-mono">
|
<div className="flex items-center gap-2 text-[12px] font-bold tracking-widest text-slate-500 uppercase font-mono">
|
||||||
<span className="text-teal-400">Apple One — HQ Tower</span>
|
<span className="text-teal-400">Apple One — HQ Tower</span>
|
||||||
<span>•</span>
|
<span className='text-gray-600'>•</span>
|
||||||
<span>Operations</span>
|
<span className='text-gray-400'>Operations</span>
|
||||||
<span>•</span>
|
<span className='text-gray-600'>•</span>
|
||||||
<span>Inventory</span>
|
<span className='text-gray-400'>Inventory</span>
|
||||||
</div>
|
</div>
|
||||||
<h1 className="text-2xl font-bold text-white tracking-tight mt-2">
|
<h1 className="text-2xl font-bold text-white tracking-tight mt-2">
|
||||||
Inventory & stock
|
Inventory & stock
|
||||||
|
|||||||
@@ -22,16 +22,16 @@ export default function ServiceRequestsPortal() {
|
|||||||
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="my-15 text-slate-100 max-w-7xl mx-auto font-sans">
|
<div className="my-15 text-slate-100 font-sans">
|
||||||
{/* --- HEADER SECTION --- */}
|
{/* --- HEADER SECTION --- */}
|
||||||
<div className="flex flex-col md:flex-row md:items-start md:justify-between gap-4 mb-6">
|
<div className="flex flex-col md:flex-row md:items-start md:justify-between gap-4 mb-6">
|
||||||
<div>
|
<div>
|
||||||
<div className="flex items-center gap-2 text-[10px] font-bold tracking-widest text-slate-500 uppercase font-mono">
|
<div className="flex items-center gap-2 text-[12px] font-bold tracking-widest text-slate-500 uppercase font-mono">
|
||||||
<span className="text-teal-400">Apple One — HQ Tower</span>
|
<span className="text-teal-400">Apple One — HQ Tower</span>
|
||||||
<span>•</span>
|
<span className='text-gray-600'>•</span>
|
||||||
<span>Operations</span>
|
<span className='text-gray-400'>Operations</span>
|
||||||
<span>•</span>
|
<span className='text-gray-600'>•</span>
|
||||||
<span>Requests</span>
|
<span className='text-gray-400'>Requests</span>
|
||||||
</div>
|
</div>
|
||||||
<h1 className="text-2xl font-bold text-white tracking-tight mt-2">
|
<h1 className="text-2xl font-bold text-white tracking-tight mt-2">
|
||||||
Service requests
|
Service requests
|
||||||
|
|||||||
@@ -19,12 +19,12 @@ export default function VendorServicePortal() {
|
|||||||
{/* --- HEADER SECTION --- */}
|
{/* --- HEADER SECTION --- */}
|
||||||
<div className="flex flex-col md:flex-row md:items-start md:justify-between gap-4 mb-6">
|
<div className="flex flex-col md:flex-row md:items-start md:justify-between gap-4 mb-6">
|
||||||
<div>
|
<div>
|
||||||
<div className="flex items-center gap-2 text-[10px] font-bold tracking-widest text-slate-500 uppercase font-mono">
|
<div className="flex items-center gap-2 text-[12px] font-bold tracking-widest text-slate-500 uppercase font-mono">
|
||||||
<span className="text-teal-400">Apple One — HQ Tower</span>
|
<span className="text-teal-400">Apple One — HQ Tower</span>
|
||||||
<span>•</span>
|
<span className='text-gray-600'>•</span>
|
||||||
<span>Operations</span>
|
<span className='text-gray-400'>Operations</span>
|
||||||
<span>•</span>
|
<span className='text-gray-600'>•</span>
|
||||||
<span>Vendors</span>
|
<span className='text-gray-400'>Vendors</span>
|
||||||
</div>
|
</div>
|
||||||
<h1 className="text-2xl font-bold text-white tracking-tight mt-2">
|
<h1 className="text-2xl font-bold text-white tracking-tight mt-2">
|
||||||
Vendor & field service
|
Vendor & field service
|
||||||
|
|||||||
@@ -74,12 +74,12 @@ export default function WorkPermitPortal() {
|
|||||||
{/* --- HEADER SECTION --- */}
|
{/* --- HEADER SECTION --- */}
|
||||||
<div className="flex flex-col md:flex-row md:items-start md:justify-between gap-4 mb-6">
|
<div className="flex flex-col md:flex-row md:items-start md:justify-between gap-4 mb-6">
|
||||||
<div>
|
<div>
|
||||||
<div className="flex items-center gap-2 text-[10px] font-bold tracking-widest text-slate-500 uppercase font-mono">
|
<div className="flex items-center gap-2 text-[12px] font-bold tracking-widest text-slate-500 uppercase font-mono">
|
||||||
<span className="text-teal-400">Apple One — HQ Tower</span>
|
<span className="text-teal-400">Apple One — HQ Tower</span>
|
||||||
<span>•</span>
|
<span className='text-gray-600'>•</span>
|
||||||
<span>Operations</span>
|
<span className='text-gray-400'>Operations</span>
|
||||||
<span>•</span>
|
<span className='text-gray-600'>•</span>
|
||||||
<span>Work Permit</span>
|
<span className='text-gray-400'>Work Permit</span>
|
||||||
</div>
|
</div>
|
||||||
<h1 className="text-2xl font-bold text-white tracking-tight mt-2">
|
<h1 className="text-2xl font-bold text-white tracking-tight mt-2">
|
||||||
Permit to Work
|
Permit to Work
|
||||||
|
|||||||
@@ -12,17 +12,17 @@ import { CardHeader } from "@/components/common/cardHeader";
|
|||||||
|
|
||||||
export default function BuildingOwnerPortal() {
|
export default function BuildingOwnerPortal() {
|
||||||
return (
|
return (
|
||||||
<div className="mt-20 font-sans antialiased">
|
<div className="mt-15 font-sans antiliased">
|
||||||
|
|
||||||
{/* --- HEADER SECTION --- */}
|
{/* --- HEADER SECTION --- */}
|
||||||
<div className="flex flex-col md:flex-row md:items-start md:justify-between gap-4 mb-4">
|
<div className="flex flex-col md:flex-row md:items-start md:justify-between gap-4 mb-4">
|
||||||
<div>
|
<div>
|
||||||
<div className="flex items-center gap-2 text-[10px] font-bold tracking-widest text-slate-500 uppercase font-mono">
|
<div className="flex items-center gap-2 text-[12px] font-bold tracking-widest text-slate-500 uppercase font-mono">
|
||||||
<span className="text-teal-400">Apple One — HQ Tower</span>
|
<span className="text-teal-400">Apple One — HQ Tower</span>
|
||||||
<span>•</span>
|
<span className="text-gray-600">•</span>
|
||||||
<span>Portal</span>
|
<span className="text-gray-400">Portal</span>
|
||||||
<span>•</span>
|
<span className="text-gray-600">•</span>
|
||||||
<span>Building Owner</span>
|
<span className="text-gray-400">Building Owner</span>
|
||||||
</div>
|
</div>
|
||||||
<h1 className="text-2xl font-bold text-white tracking-tight mt-2">
|
<h1 className="text-2xl font-bold text-white tracking-tight mt-2">
|
||||||
Building owner portal
|
Building owner portal
|
||||||
|
|||||||
@@ -3,32 +3,33 @@ import { Check } from 'lucide-react';
|
|||||||
import BarChart from "@/components/charts/barchart";
|
import BarChart from "@/components/charts/barchart";
|
||||||
import StatCard from "@/components/common/dashStatCard";
|
import StatCard from "@/components/common/dashStatCard";
|
||||||
import ActivityFeed from "@/components/dashboard/overview/activityFeed";
|
import ActivityFeed from "@/components/dashboard/overview/activityFeed";
|
||||||
import {activities, chartData} from "@/constants/constant"
|
import {activities, chartData, schedulePerformanceHeaders, schedulePerformanceRows} from "@/constants/constant"
|
||||||
import { Card } from '@/components/common/cardWrapper';
|
import { Card } from '@/components/common/cardWrapper';
|
||||||
import {CardHeader} from '@/components/common/cardHeader';
|
import {CardHeader} from '@/components/common/cardHeader';
|
||||||
import {ProgressBarRow }from '@/components/charts/progressBarRow';
|
import {ProgressBarRow }from '@/components/charts/progressBarRow';
|
||||||
import {StatusProgressRow} from '@/components/charts/statusProgressRow';
|
import {StatusProgressRow} from '@/components/charts/statusProgressRow';
|
||||||
|
import Table from '@/components/common/dataTable';
|
||||||
|
|
||||||
export default function Dashboard() {
|
export default function Dashboard() {
|
||||||
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div >
|
<div className='my-15 font-sans antialiased' >
|
||||||
<hr className="border-[#142538]" />
|
|
||||||
<main className=" pt-8 bg-[#071321] text-[#93a3b8] font-sans antialiased" >
|
|
||||||
{/* Title Section */}
|
{/* Title Section */}
|
||||||
<div className="flex items-start justify-between">
|
<div className="flex items-start justify-between">
|
||||||
<div>
|
<div>
|
||||||
<div className="flex items-center gap-2
|
<div className="flex items-center gap-2
|
||||||
text-xs font-bold uppercase tracking-widest text-teal-500 mt-8">
|
text-xs font-bold uppercase tracking-widest text-teal-500">
|
||||||
<span>Apple One — HQ Tower</span>
|
<span>Apple One — HQ Tower</span>
|
||||||
<span className="text-gray-600">·</span>
|
<span className="text-gray-600">·</span>
|
||||||
<span className="text-gray-400">Tenant</span>
|
<span className="text-gray-400">Tenant</span>
|
||||||
<span className="text-gray-600">·</span>
|
<span className="text-gray-600">·</span>
|
||||||
<span className="text-gray-400">Apple One</span>
|
<span className="text-gray-400">Apple One</span>
|
||||||
</div>
|
</div>
|
||||||
<h1 className="text-2xl font-bold text-white tracking-tight">Operations dashboard</h1>
|
<h1 className="text-2xl
|
||||||
<p className="mt-2 text-sm text-gray-400 max-w-xl leading-relaxed">
|
font-bold text-white tracking-tight">Operations dashboard</h1>
|
||||||
|
<p className="text-sm font-medium text-slate-400 mt-2 max-w-xl leading-relaxed">
|
||||||
Live snapshot scoped to Apple One. The layout below is the dashboard published for this tenant in Administration.
|
Live snapshot scoped to Apple One. The layout below is the dashboard published for this tenant in Administration.
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
@@ -87,35 +88,7 @@ export default function Dashboard() {
|
|||||||
<div className="lg:col-span-7">
|
<div className="lg:col-span-7">
|
||||||
<Card>
|
<Card>
|
||||||
<CardHeader title="Schedule performance • MMR" subtitle="ppm & amc" />
|
<CardHeader title="Schedule performance • MMR" subtitle="ppm & amc" />
|
||||||
<div className="overflow-x-auto mt-2">
|
<Table headers={schedulePerformanceHeaders} rows={schedulePerformanceRows}/>
|
||||||
<table className=" text-left border-collapse">
|
|
||||||
<thead>
|
|
||||||
<tr className="text-[#4b5f7a] text-xs font-bold uppercase tracking-wider border-b border-[#1b2b41]/40 pb-3">
|
|
||||||
<th className="pb-3">Schedule</th>
|
|
||||||
<th className="pb-3 text-right">Total</th>
|
|
||||||
<th className="pb-3 text-right">Done</th>
|
|
||||||
<th className="pb-3 text-right">On Time</th>
|
|
||||||
<th className="pb-3 text-right">Delayed</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody className="divide-y divide-[#1b2b41]/30 text-sm font-semibold">
|
|
||||||
<tr className="hover:bg-[#11233a]/25 transition-colors">
|
|
||||||
<td className="py-4 text-white">PPM</td>
|
|
||||||
<td className="py-4 text-right text-slate-300">24</td>
|
|
||||||
<td className="py-4 text-right text-slate-300">19</td>
|
|
||||||
<td className="py-4 text-right text-slate-300">17</td>
|
|
||||||
<td className="py-4 text-right text-red-500">2</td>
|
|
||||||
</tr>
|
|
||||||
<tr className="hover:bg-[#11233a]/25 transition-colors">
|
|
||||||
<td className="py-4 text-white">AMC</td>
|
|
||||||
<td className="py-4 text-right text-slate-300">8</td>
|
|
||||||
<td className="py-4 text-right text-slate-300">6</td>
|
|
||||||
<td className="py-4 text-right text-slate-300">6</td>
|
|
||||||
<td className="py-4 text-right text-slate-400">0</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
</Card>
|
</Card>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -204,7 +177,7 @@ export default function Dashboard() {
|
|||||||
</Card>
|
</Card>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</main>
|
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -18,16 +18,16 @@ import { CardHeader } from "@/components/common/cardHeader";
|
|||||||
|
|
||||||
export default function EngagementPage() {
|
export default function EngagementPage() {
|
||||||
return (
|
return (
|
||||||
<div className=" text-[#93a3b8] font-sans ">
|
<div className="my-15 font-sans antiliased ">
|
||||||
|
|
||||||
|
|
||||||
<main className="mt-20">
|
|
||||||
|
|
||||||
{/* Page Header Section */}
|
{/* Page Header Section */}
|
||||||
<div className="flex flex-col md:flex-row md:items-center
|
<div className="flex flex-col md:flex-row md:items-center
|
||||||
justify-between gap-4 mt-4">
|
justify-between gap-4 mt-4">
|
||||||
<div>
|
<div>
|
||||||
<div className="flex items-center gap-2 text-xs
|
<div className="flex items-center gap-2 text-xs
|
||||||
font-bold uppercase tracking-widest text-teal-500">
|
font-bold uppercase tracking-widest text-teal-500 font-mono">
|
||||||
<span>Apple One — HQ Tower</span>
|
<span>Apple One — HQ Tower</span>
|
||||||
<span className="text-gray-600">·</span>
|
<span className="text-gray-600">·</span>
|
||||||
<span className="text-gray-400">Intelligence</span>
|
<span className="text-gray-400">Intelligence</span>
|
||||||
@@ -35,7 +35,7 @@ export default function EngagementPage() {
|
|||||||
<span className="text-gray-400">Engagement</span>
|
<span className="text-gray-400">Engagement</span>
|
||||||
</div>
|
</div>
|
||||||
<h1 className="text-2xl font-bold text-white tracking-tight mt-1">Employee engagement</h1>
|
<h1 className="text-2xl font-bold text-white tracking-tight mt-1">Employee engagement</h1>
|
||||||
<p className="mt-2 text-sm text-gray-400 max-w-2xl leading-relaxed">
|
<p className="text-sm font-medium text-slate-400 mt-2 max-w-xl leading-relaxed">
|
||||||
Pulse satisfaction surveys, complaint tickets and a suggestion system — boosting morale, transparency and retention.
|
Pulse satisfaction surveys, complaint tickets and a suggestion system — boosting morale, transparency and retention.
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
@@ -151,7 +151,7 @@ export default function EngagementPage() {
|
|||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</main>
|
|
||||||
|
|
||||||
<div className="mb-10 mt-10">
|
<div className="mb-10 mt-10">
|
||||||
<InfoBanner
|
<InfoBanner
|
||||||
|
|||||||
@@ -18,18 +18,20 @@ import { CardHeader } from "@/components/common/cardHeader";
|
|||||||
|
|
||||||
export default function PropertyManagerPortal() {
|
export default function PropertyManagerPortal() {
|
||||||
return (
|
return (
|
||||||
<div className=" text-slate-100 mt-15
|
<div className=" mt-15 font-sans antiliased
|
||||||
">
|
">
|
||||||
|
|
||||||
{/* --- HEADER SECTION --- */}
|
{/* --- HEADER SECTION --- */}
|
||||||
<div className="flex flex-col md:flex-row md:items-start md:justify-between gap-4 mb-4">
|
<div className="flex flex-col md:flex-row md:items-start
|
||||||
|
md:justify-between gap-4 mb-4">
|
||||||
<div>
|
<div>
|
||||||
<div className="flex items-center gap-2 text-[10px] font-bold tracking-widest text-slate-500 uppercase font-mono">
|
<div className="flex items-center
|
||||||
|
gap-2 text-[12px] font-bold tracking-widest text-slate-500 uppercase font-mono">
|
||||||
<span className="text-teal-400">Apple One — HQ Tower</span>
|
<span className="text-teal-400">Apple One — HQ Tower</span>
|
||||||
<span>•</span>
|
<span className="text-gray-600">•</span>
|
||||||
<span>Portal</span>
|
<span className="text-gray-400">Portal</span>
|
||||||
<span>•</span>
|
<span className="text-gray-600">•</span>
|
||||||
<span>Property Manager</span>
|
<span className="text-gray-400">Property Manager</span>
|
||||||
</div>
|
</div>
|
||||||
<h1 className="text-2xl font-bold text-white tracking-tight mt-2">
|
<h1 className="text-2xl font-bold text-white tracking-tight mt-2">
|
||||||
Property manager portal
|
Property manager portal
|
||||||
|
|||||||
@@ -16,13 +16,14 @@ import { CardHeader } from "@/components/common/cardHeader";
|
|||||||
|
|
||||||
export default function ServiceEngineerPortal() {
|
export default function ServiceEngineerPortal() {
|
||||||
return (
|
return (
|
||||||
<div className="my-15 text-slate-100 ">
|
<div className="my-15 font-sans antiliased ">
|
||||||
|
|
||||||
{/* --- HEADER SECTION --- */}
|
{/* --- HEADER SECTION --- */}
|
||||||
<div className=" flex flex-col
|
<div className=" flex flex-col
|
||||||
md:flex-row md:items-start md:justify-between gap-4 mb-4">
|
md:flex-row md:items-start md:justify-between gap-4 mb-4">
|
||||||
<div>
|
<div>
|
||||||
<div className="flex items-center gap-2 text-[10px] font-bold tracking-widest text-slate-500 uppercase font-mono">
|
<div className="flex items-center gap-2
|
||||||
|
text-[12px] font-bold tracking-widest text-slate-500 uppercase font-mono">
|
||||||
<span className="text-teal-400">Apple One — HQ Tower</span>
|
<span className="text-teal-400">Apple One — HQ Tower</span>
|
||||||
<span>•</span>
|
<span>•</span>
|
||||||
<span>Portal</span>
|
<span>Portal</span>
|
||||||
|
|||||||
@@ -8,14 +8,17 @@ export default function Navbar() {
|
|||||||
const { mode } = useNav();
|
const { mode } = useNav();
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<header className="fixed top-0 right-0 left-64 z-30 flex h-16 items-center justify-between border-b border-[#142538]/50 bg-[#071321] px-8">
|
<header className="fixed top-0 right-0
|
||||||
|
left-64 z-30 flex h-16 items-center justify-between border-b
|
||||||
|
border-[#142538]/50 bg-[#071321]/80 backdrop-blur-md px-8">
|
||||||
{mode === "operations" ? (
|
{mode === "operations" ? (
|
||||||
/* ================= OPERATIONS NAVBAR ================= */
|
/* ================= OPERATIONS NAVBAR ================= */
|
||||||
<>
|
<>
|
||||||
{/* Left Group */}
|
{/* Left Group */}
|
||||||
<div className="flex items-center gap-2">
|
<div className="flex items-center gap-2">
|
||||||
{/* Company Selector */}
|
{/* Company Selector */}
|
||||||
<div className="flex items-center gap-2 rounded-full bg-[#0a1826] px-3 py-1.5 text-sm font-semibold text-[#10b981] border border-[#132338] cursor-pointer hover:bg-[#0f2338] transition whitespace-nowrap relative">
|
<div className="flex items-center gap-2
|
||||||
|
rounded-full bg-[#0a1826] px-3 py-1.5 text-sm font-semibold text-[#10b981] border border-[#132338] cursor-pointer hover:bg-[#0f2338] transition whitespace-nowrap relative">
|
||||||
<span className="h-2 w-2 rounded-full bg-[#10b981] shrink-0"></span>
|
<span className="h-2 w-2 rounded-full bg-[#10b981] shrink-0"></span>
|
||||||
|
|
||||||
<select
|
<select
|
||||||
|
|||||||
@@ -60,78 +60,78 @@ export const OPERATIONS_SIDEBAR_ITEMS = [
|
|||||||
title: "Operations",
|
title: "Operations",
|
||||||
icon: Settings,
|
icon: Settings,
|
||||||
children: [
|
children: [
|
||||||
{ title: "Help Desk", href: "/operations/help-desk", icon: CheckSquare, badge: 6, badgeColor: "bg-amber-500 text-black" },
|
{ title: "Help Desk", href: "/dashboard/operations/helpDesk", icon: CheckSquare, badge: 6, badgeColor: "bg-amber-500 text-black" },
|
||||||
{ title: "Equipment", href: "/operations/equipment", icon: Target },
|
{ title: "Equipment", href: "/dashboard/operations/equipment", icon: Target },
|
||||||
{ title: "Requests", href: "/operations/requests", icon: FileText, badge: 15, badgeColor: "bg-amber-400 text-black" },
|
{ title: "Requests", href: "/dashboard/operations/request", icon: FileText, badge: 15, badgeColor: "bg-amber-400 text-black" },
|
||||||
{ title: "Inventory", href: "/operations/inventory", icon: Box },
|
{ title: "Inventory", href: "/dashboard/operations/inventory", icon: Box },
|
||||||
{ title: "Energy", href: "/operations/energy", icon: Zap },
|
{ title: "Energy", href: "/dashboard/operations/energy", icon: Zap },
|
||||||
{ title: "Work Permit", href: "/operations/work-permit", icon: ClipboardList, badge: 3, badgeColor: "bg-amber-500 text-black" },
|
{ title: "Work Permit", href: "/dashboard/operations/workPermit", icon: ClipboardList, badge: 3, badgeColor: "bg-amber-500 text-black" },
|
||||||
{ title: "Vendor & Field Service", href: "/operations/vendor-field", icon: Star, badge: 12, badgeColor: "bg-sky-400 text-black" },
|
{ title: "Vendor & Field Service", href: "/dashboard/operations/vendorFieldService", icon: Star, badge: 12, badgeColor: "bg-sky-400 text-black" },
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "Workplace",
|
title: "Workplace",
|
||||||
icon: Monitor,
|
icon: Monitor,
|
||||||
children: [
|
children: [
|
||||||
{ title: "Visitor Management", href: "/workplace/visitor", icon: UserCheck },
|
{ title: "Visitor Management", href: "/dashboard/workplace/visitorManagement", icon: UserCheck },
|
||||||
{ title: "Meeting Rooms", href: "/workplace/meeting-rooms", icon: Calendar },
|
{ title: "Meeting Rooms", href: "/dashboard/workplace/meetingRoom", icon: Calendar },
|
||||||
{ title: "Workspace", href: "/workplace/workspace", icon: Layers },
|
{ title: "Workspace", href: "/dashboard/workplace/workspace", icon: Layers },
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "Finance",
|
title: "Finance",
|
||||||
icon: Wallet,
|
icon: Wallet,
|
||||||
children: [
|
children: [
|
||||||
{ title: "O&M Budget", href: "/finance/om-budget", icon: Coins },
|
{ title: "O&M Budget", href: "/dashboard/finance/budget", icon: Coins },
|
||||||
{ title: "Costing & Invoicing", href: "/finance/costing-invoicing", icon: Receipt },
|
{ title: "Costing & Invoicing", href: "/dashboard/finance/costinvoice", icon: Receipt },
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "Compliance & Safety",
|
title: "Compliance & Safety",
|
||||||
icon: ShieldCheck,
|
icon: ShieldCheck,
|
||||||
children: [
|
children: [
|
||||||
{ title: "Statutory Compliance", href: "/compliance/statutory", icon: ShieldCheck },
|
{ title: "Statutory Compliance", href: "/dashboard/compliance-safety/statutoryCompliance", icon: ShieldCheck },
|
||||||
{ title: "Contracts & SLA", href: "/compliance/contracts-sla", icon: FileText },
|
{ title: "Contracts & SLA", href: "/dashboard/compliance-safety/contracts", icon: FileText },
|
||||||
{ title: "Fire & Safety", href: "/compliance/fire-safety", icon: Flame },
|
{ title: "Fire & Safety", href: "/dashboard/compliance-safety/fireAndSafety", icon: Flame },
|
||||||
{ title: "Waste & ESG", href: "/compliance/waste-esg", icon: Recycle },
|
{ title: "Waste & ESG", href: "/dashboard/compliance-safety/wasteAndEsg", icon: Recycle },
|
||||||
{ title: "Training", href: "/compliance/training", icon: GraduationCap },
|
{ title: "Training", href: "/dashboard/compliance-safety/training", icon: GraduationCap },
|
||||||
{ title: "Audit & Survey", href: "/compliance/training", icon: GraduationCap },
|
{ title: "Audit & Survey", href: "/dashboard/compliance-safety/auditAndSurvey", icon: GraduationCap },
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "Intelligence",
|
title: "Intelligence",
|
||||||
icon: Brain,
|
icon: Brain,
|
||||||
children: [{ title: "AI & Predictive", href: "/intelligence/predictive", icon: Brain },
|
children: [{ title: "AI & Predictive", href: "/dashboard/intelligence/aiPredictive", icon: Brain },
|
||||||
{ title: "Asset Health", href: "/intelligence/asset-health", icon: ShieldCheck },
|
{ title: "Asset Health", href: "/dashboard/intelligence/assetHealth", icon: ShieldCheck },
|
||||||
{ title: "Energy Benchmarking", href: "/intelligence/benchmarking", icon: Activity },
|
{ title: "Energy Benchmarking", href: "/dashboard/intelligence/energyBenchmarking", icon: Activity },
|
||||||
{ title: "AI Helpdesk", href: "/intelligence/ai-helpdesk", icon: Bot },
|
{ title: "AI Helpdesk", href: "/dashboard/intelligence/aiHelpdesk", icon: Bot },
|
||||||
{ title: "Connected Ops", href: "/intelligence/connected-ops", icon: Gauge },
|
{ title: "Connected Ops", href: "/dashboard/intelligence/connectedOps", icon: Gauge },
|
||||||
{ title: "Connected Assets", href: "/intelligence/connected-assets", icon: Snowflake },
|
{ title: "Connected Assets", href: "/dashboard/intelligence/connectedAsset", icon: Snowflake },
|
||||||
{ title: "Sustainability", href: "/intelligence/sustainability", icon: Leaf },
|
{ title: "Sustainability", href: "/dashboard/intelligence/sustainability", icon: Leaf },
|
||||||
{ title: "GPS Tracking", href: "/intelligence/gps-tracking", icon: MapPin },],
|
{ title: "GPS Tracking", href: "/dashboard/intelligence/gpstracking", icon: MapPin },],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "IoT Application",
|
title: "IoT Application",
|
||||||
icon: Radar,
|
icon: Radar,
|
||||||
children: [{ title: "Command Center", href: "/iot/command-center", icon: Gauge },
|
children: [{ title: "Command Center", href: "/dashboard/iot-app/commandCenter", icon: Gauge },
|
||||||
{ title: "HVAC Plant", href: "/iot/hvac-plant", icon: Snowflake },
|
{ title: "HVAC Plant", href: "/dashboard/iot-app/hvacPlant", icon: Snowflake },
|
||||||
{ title: "Energy & Utilities", href: "/iot/energy-utilities", icon: Zap },
|
{ title: "Energy & Utilities", href: "/dashboard/iot-app/energyUtility", icon: Zap },
|
||||||
{ title: "Device Fleet", href: "/iot/device-fleet", icon: LayoutGrid },
|
{ title: "Device Fleet", href: "/dashboard/iot-app/deviceFleet", icon: LayoutGrid },
|
||||||
{ title: "Alarms & Rules", href: "/iot/alarms-rules", icon: Shield, badge: 7, badgeColor: "bg-rose-500 text-white" },],
|
{ title: "Alarms & Rules", href: "/dashboard/iot-app/alarmsRules", icon: Shield, badge: 7, badgeColor: "bg-rose-500 text-white" },],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "Insight",
|
title: "Insight",
|
||||||
icon: BarChart3,
|
icon: BarChart3,
|
||||||
children: [{ title: "Reports & MMR", href: "/insight/reports", icon: BarChart3 },],
|
children: [{ title: "Reports & MMR", href: "/dashboard/insight/report", icon: BarChart3 },],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "Configure",
|
title: "Configure",
|
||||||
icon: Cog,
|
icon: Cog,
|
||||||
children: [{ title: "Master Data", href: "/configure/master-data", icon: Layers },
|
children: [{ title: "Master Data", href: "/dashboard/configure/masterdata", icon: Layers },
|
||||||
{ title: "Roles & Access", href: "/configure/roles-access", icon: Shield },
|
{ title: "Roles & Access", href: "/dashboard/configure/rolesAndAccess", icon: Shield },
|
||||||
{ title: "Workflow Automation", href: "/configure/workflow", icon: Bot },
|
{ title: "Workflow Automation", href: "/dashboard/configure/workflowautomation", icon: Bot },
|
||||||
{ title: "User Location", href: "/configure/user-location", icon: MapPin },
|
{ title: "User Location", href: "/dashboard/configure/userLocation", icon: MapPin },
|
||||||
{ title: "Settings", href: "/configure/settings", icon: Sun },],
|
{ title: "Settings", href: "/dashboard/configure/settings", icon: Sun },],
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
export const ADMIN_SIDEBAR_ITEMS = [
|
export const ADMIN_SIDEBAR_ITEMS = [
|
||||||
@@ -139,26 +139,38 @@ export const ADMIN_SIDEBAR_ITEMS = [
|
|||||||
title: "Platform",
|
title: "Platform",
|
||||||
icon: Building2,
|
icon: Building2,
|
||||||
children: [
|
children: [
|
||||||
{ title: "Overview", href: "/admin/overview", icon: LayoutGrid },
|
{ title: "Overview", href: "/dashboard/admin/overview", icon: LayoutGrid },
|
||||||
{ title: "Tenants", href: "/admin/tenants", icon: Building2 },
|
{ title: "Tenants", href: "/dashboard/admin/tenants", icon: Building2 },
|
||||||
{ title: "Users", href: "/admin/users", icon: Users },
|
{ title: "Users", href: "/dashboard/admin/users", icon: Users },
|
||||||
{ title: "Sites", href: "/admin/sites", icon: MapPin },
|
{ title: "Sites", href: "/dashboard/admin/site", icon: MapPin },
|
||||||
{ title: "Security", href: "/admin/security", icon: Shield },
|
{ title: "Security", href: "/dashboard/admin/security", icon: Shield },
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "Configuration",
|
title: "Configuration",
|
||||||
icon: LayoutGrid,
|
icon: LayoutGrid,
|
||||||
children: [
|
children: [
|
||||||
{ title: "Modules", href: "/admin/configuration/modules", icon: LayoutGrid },
|
{ title: "Modules", href: "/dashboard/admin/modules", icon: LayoutGrid },
|
||||||
{ title: "Language", href: "/admin/configuration/language", icon: Globe },
|
{ title: "Language", href: "/dashboard/admin/language", icon: Globe },
|
||||||
{ title: "Dynamic Dashboard", href: "/admin/configuration/dynamic-dashboard", icon: LayoutDashboard },
|
{ title: "Dynamic Dashboard", href: "/dashboard/admin/dynamicDashboard", icon: LayoutDashboard },
|
||||||
{ title: "Mobile Flows", href: "/admin/configuration/mobile-flows", icon: Smartphone },
|
{ title: "Mobile Flows", href: "/dashboard/admin/mobileFlow", icon: Smartphone },
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
||||||
|
export const schedulePerformanceHeaders = [
|
||||||
|
"Schedule",
|
||||||
|
"Total",
|
||||||
|
"Done",
|
||||||
|
"On Time",
|
||||||
|
"Delayed",
|
||||||
|
];
|
||||||
|
|
||||||
|
export const schedulePerformanceRows = [
|
||||||
|
["PPM", 24, 19, 17, 2],
|
||||||
|
["AMC", 8, 6, 6, 0],
|
||||||
|
];
|
||||||
|
|
||||||
//Overview dashboard data
|
//Overview dashboard data
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user