mirror of
				https://github.com/Telecominfraproject/wlan-cloud-ucentralgw-ui.git
				synced 2025-11-03 20:27:59 +00:00 
			
		
		
		
	Compare commits
	
		
			7 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					f7a7b8aa9d | ||
| 
						 | 
					0a08bfca60 | ||
| 
						 | 
					1958de15be | ||
| 
						 | 
					c7bf7ad1dc | ||
| 
						 | 
					e0cf06b437 | ||
| 
						 | 
					460ba9eee7 | ||
| 
						 | 
					788e1f59bd | 
							
								
								
									
										2
									
								
								.github/workflows/ci.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.github/workflows/ci.yml
									
									
									
									
										vendored
									
									
								
							@@ -20,7 +20,7 @@ defaults:
 | 
			
		||||
 | 
			
		||||
jobs:
 | 
			
		||||
  docker:
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
    runs-on: ubuntu-20.04
 | 
			
		||||
    env:
 | 
			
		||||
      DOCKER_REGISTRY_URL: tip-tip-wlan-cloud-ucentral.jfrog.io
 | 
			
		||||
      DOCKER_REGISTRY_USERNAME: ucentral
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								.github/workflows/release.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.github/workflows/release.yml
									
									
									
									
										vendored
									
									
								
							@@ -11,7 +11,7 @@ defaults:
 | 
			
		||||
 | 
			
		||||
jobs:
 | 
			
		||||
  helm-package:
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
    runs-on: ubuntu-20.04
 | 
			
		||||
    env:
 | 
			
		||||
      HELM_REPO_URL: https://tip.jfrog.io/artifactory/tip-wlan-cloud-ucentral-helm/
 | 
			
		||||
      HELM_REPO_USERNAME: ucentral
 | 
			
		||||
 
 | 
			
		||||
@@ -8,7 +8,7 @@ fullnameOverride: ""
 | 
			
		||||
images:
 | 
			
		||||
  owgwui:
 | 
			
		||||
    repository: tip-tip-wlan-cloud-ucentral.jfrog.io/owgw-ui
 | 
			
		||||
    tag: main
 | 
			
		||||
    tag: v3.2.1
 | 
			
		||||
    pullPolicy: Always
 | 
			
		||||
 | 
			
		||||
services:
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										32
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										32
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							@@ -1,12 +1,12 @@
 | 
			
		||||
{
 | 
			
		||||
  "name": "ucentral-client",
 | 
			
		||||
  "version": "4.1.0",
 | 
			
		||||
  "version": "3.2.0",
 | 
			
		||||
  "lockfileVersion": 3,
 | 
			
		||||
  "requires": true,
 | 
			
		||||
  "packages": {
 | 
			
		||||
    "": {
 | 
			
		||||
      "name": "ucentral-client",
 | 
			
		||||
      "version": "4.1.0",
 | 
			
		||||
      "version": "3.2.0",
 | 
			
		||||
      "license": "ISC",
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "@chakra-ui/anatomy": "^2.1.1",
 | 
			
		||||
@@ -3540,7 +3540,7 @@
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/@jridgewell/resolve-uri": {
 | 
			
		||||
      "version": "3.1.0",
 | 
			
		||||
      "devOptional": true,
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "license": "MIT",
 | 
			
		||||
      "engines": {
 | 
			
		||||
        "node": ">=6.0.0"
 | 
			
		||||
@@ -3548,7 +3548,7 @@
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/@jridgewell/set-array": {
 | 
			
		||||
      "version": "1.1.2",
 | 
			
		||||
      "devOptional": true,
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "license": "MIT",
 | 
			
		||||
      "engines": {
 | 
			
		||||
        "node": ">=6.0.0"
 | 
			
		||||
@@ -3556,7 +3556,7 @@
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/@jridgewell/source-map": {
 | 
			
		||||
      "version": "0.3.2",
 | 
			
		||||
      "devOptional": true,
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "license": "MIT",
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "@jridgewell/gen-mapping": "^0.3.0",
 | 
			
		||||
@@ -3565,7 +3565,7 @@
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/@jridgewell/source-map/node_modules/@jridgewell/gen-mapping": {
 | 
			
		||||
      "version": "0.3.2",
 | 
			
		||||
      "devOptional": true,
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "license": "MIT",
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "@jridgewell/set-array": "^1.0.1",
 | 
			
		||||
@@ -3578,12 +3578,12 @@
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/@jridgewell/sourcemap-codec": {
 | 
			
		||||
      "version": "1.4.14",
 | 
			
		||||
      "devOptional": true,
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "license": "MIT"
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/@jridgewell/trace-mapping": {
 | 
			
		||||
      "version": "0.3.17",
 | 
			
		||||
      "devOptional": true,
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "license": "MIT",
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "@jridgewell/resolve-uri": "3.1.0",
 | 
			
		||||
@@ -4374,7 +4374,7 @@
 | 
			
		||||
      "version": "18.15.11",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.11.tgz",
 | 
			
		||||
      "integrity": "sha512-E5Kwq2n4SbMzQOn6wnmBjuK9ouqlURrcZDVfbo9ftDDTFt3nk7ZKK4GMOzoYgnpQJKcxwQw+lGaBvvlMo0qN/Q==",
 | 
			
		||||
      "devOptional": true
 | 
			
		||||
      "dev": true
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/@types/parse-json": {
 | 
			
		||||
      "version": "4.0.0",
 | 
			
		||||
@@ -4419,7 +4419,7 @@
 | 
			
		||||
      "version": "18.0.11",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.11.tgz",
 | 
			
		||||
      "integrity": "sha512-O38bPbI2CWtgw/OoQoY+BRelw7uysmXbWvw3nLWO21H1HSh+GOlqPuXshJfjmpNlKiiSDG9cc1JZAaMmVdcTlw==",
 | 
			
		||||
      "devOptional": true,
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "@types/react": "*"
 | 
			
		||||
      }
 | 
			
		||||
@@ -4753,7 +4753,7 @@
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/acorn": {
 | 
			
		||||
      "version": "8.8.0",
 | 
			
		||||
      "devOptional": true,
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "license": "MIT",
 | 
			
		||||
      "bin": {
 | 
			
		||||
        "acorn": "bin/acorn"
 | 
			
		||||
@@ -5174,7 +5174,7 @@
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/buffer-from": {
 | 
			
		||||
      "version": "1.1.2",
 | 
			
		||||
      "devOptional": true,
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "license": "MIT"
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/builtin-modules": {
 | 
			
		||||
@@ -9781,7 +9781,7 @@
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/source-map-support": {
 | 
			
		||||
      "version": "0.5.21",
 | 
			
		||||
      "devOptional": true,
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "license": "MIT",
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "buffer-from": "^1.0.0",
 | 
			
		||||
@@ -9790,7 +9790,7 @@
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/source-map-support/node_modules/source-map": {
 | 
			
		||||
      "version": "0.6.1",
 | 
			
		||||
      "devOptional": true,
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "license": "BSD-3-Clause",
 | 
			
		||||
      "engines": {
 | 
			
		||||
        "node": ">=0.10.0"
 | 
			
		||||
@@ -10080,7 +10080,7 @@
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/terser": {
 | 
			
		||||
      "version": "5.15.1",
 | 
			
		||||
      "devOptional": true,
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "license": "BSD-2-Clause",
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "@jridgewell/source-map": "^0.3.2",
 | 
			
		||||
@@ -10097,7 +10097,7 @@
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/terser/node_modules/commander": {
 | 
			
		||||
      "version": "2.20.3",
 | 
			
		||||
      "devOptional": true,
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "license": "MIT"
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/text-table": {
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
{
 | 
			
		||||
  "name": "ucentral-client",
 | 
			
		||||
  "version": "4.1.0",
 | 
			
		||||
  "version": "3.2.1",
 | 
			
		||||
  "description": "",
 | 
			
		||||
  "private": true,
 | 
			
		||||
  "main": "index.tsx",
 | 
			
		||||
 
 | 
			
		||||
@@ -514,10 +514,6 @@
 | 
			
		||||
			"started_upgrade": "{{serialNumber}} just shut down to start the upgrade!",
 | 
			
		||||
			"trace": "Trace",
 | 
			
		||||
			"trace_description": "Launch a remote trace of this device for either a specific duration or a number of packets",
 | 
			
		||||
      "re_enroll": "Re-enroll",
 | 
			
		||||
      "re_enroll_initiated": "Re-enrollment initiated for device {{serialNumber}}",
 | 
			
		||||
      "re_enroll_warning": "This will renew the operational certificate for device {{serialNumber}}.",
 | 
			
		||||
      "confirm_re_enroll": "Renew Certificate for {{serialNumber}}",
 | 
			
		||||
			"update_success": "Device updated!",
 | 
			
		||||
			"updated_blacklist": "Updated Blacklist!"
 | 
			
		||||
		},
 | 
			
		||||
@@ -626,7 +622,6 @@
 | 
			
		||||
		"all": "All",
 | 
			
		||||
		"associations": "Associations",
 | 
			
		||||
		"certificate_expires_in": "Certificate Expiry",
 | 
			
		||||
    "certificate_issuer": "Certificate Issuer",
 | 
			
		||||
		"certificate_expiry": "Cert. Expires In",
 | 
			
		||||
		"connected": "Connected",
 | 
			
		||||
		"crash_logs": "Crash Logs",
 | 
			
		||||
 
 | 
			
		||||
@@ -32,7 +32,6 @@ interface Props {
 | 
			
		||||
  onOpenTelemetryModal: (serialNumber: string) => void;
 | 
			
		||||
  onOpenScriptModal: (device: GatewayDevice) => void;
 | 
			
		||||
  onOpenRebootModal: (serialNumber: string) => void;
 | 
			
		||||
  onOpenReEnrollModal?: (serialNumber: string) => void;
 | 
			
		||||
  size?: 'sm' | 'md' | 'lg';
 | 
			
		||||
  isCompact?: boolean;
 | 
			
		||||
}
 | 
			
		||||
@@ -50,7 +49,6 @@ const DeviceActionDropdown = ({
 | 
			
		||||
  onOpenConfigureModal,
 | 
			
		||||
  onOpenScriptModal,
 | 
			
		||||
  onOpenRebootModal,
 | 
			
		||||
  onOpenReEnrollModal,
 | 
			
		||||
  size,
 | 
			
		||||
  isCompact,
 | 
			
		||||
}: Props) => {
 | 
			
		||||
@@ -236,11 +234,6 @@ const DeviceActionDropdown = ({
 | 
			
		||||
            <MenuItem onClick={handleRebootClick} hidden={!isCompact}>
 | 
			
		||||
              {t('commands.reboot')}
 | 
			
		||||
            </MenuItem>
 | 
			
		||||
            {onOpenReEnrollModal && (
 | 
			
		||||
              <MenuItem onClick={() => onOpenReEnrollModal(device.serialNumber)}>
 | 
			
		||||
                {t('controller.devices.re_enroll')}
 | 
			
		||||
              </MenuItem>
 | 
			
		||||
            )}
 | 
			
		||||
            <MenuItem onClick={handleOpenTelemetry}>{t('controller.telemetry.title')}</MenuItem>
 | 
			
		||||
            <MenuItem onClick={handleOpenScript}>{t('script.one')}</MenuItem>
 | 
			
		||||
            <MenuItem onClick={handleOpenTrace}>{t('controller.devices.trace')}</MenuItem>
 | 
			
		||||
 
 | 
			
		||||
@@ -1,50 +0,0 @@
 | 
			
		||||
import React from 'react';
 | 
			
		||||
import { Center, Spinner, Alert, Button } from '@chakra-ui/react';
 | 
			
		||||
import { useTranslation } from 'react-i18next';
 | 
			
		||||
import { Modal } from '../Modal';
 | 
			
		||||
import { useReEnroll } from 'hooks/Network/ReEnroll';
 | 
			
		||||
import { ModalProps } from 'models/Modal';
 | 
			
		||||
 | 
			
		||||
interface Props {
 | 
			
		||||
  modalProps: ModalProps;
 | 
			
		||||
  serialNumber: string;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
const ReEnrollModal = ({ modalProps: { isOpen, onClose }, serialNumber }: Props) => {
 | 
			
		||||
  const { t } = useTranslation();
 | 
			
		||||
  const { mutate: reEnroll, isLoading } = useReEnroll({ serialNumber });
 | 
			
		||||
 | 
			
		||||
  const submit = () => {
 | 
			
		||||
    reEnroll(
 | 
			
		||||
      { serialNumber, when: 0 },
 | 
			
		||||
      {
 | 
			
		||||
        onSuccess: () => {
 | 
			
		||||
          onClose();
 | 
			
		||||
        },
 | 
			
		||||
      }
 | 
			
		||||
    );
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  return (
 | 
			
		||||
    <Modal isOpen={isOpen} onClose={onClose} title={t('controller.devices.re_enroll')}>
 | 
			
		||||
      {isLoading ? (
 | 
			
		||||
        <Center>
 | 
			
		||||
          <Spinner size="lg" />
 | 
			
		||||
        </Center>
 | 
			
		||||
      ) : (
 | 
			
		||||
        <>
 | 
			
		||||
          <Alert colorScheme="blue" mb={6}>
 | 
			
		||||
            {t('controller.devices.re_enroll_warning', { serialNumber })}
 | 
			
		||||
          </Alert>
 | 
			
		||||
          <Center mb={6}>
 | 
			
		||||
            <Button size="lg" colorScheme="blue" onClick={submit} fontWeight="bold">
 | 
			
		||||
              {t('controller.devices.confirm_re_enroll', { serialNumber })}
 | 
			
		||||
            </Button>
 | 
			
		||||
          </Center>
 | 
			
		||||
        </>
 | 
			
		||||
      )}
 | 
			
		||||
    </Modal>
 | 
			
		||||
  );
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
export default ReEnrollModal;
 | 
			
		||||
@@ -166,7 +166,6 @@ export type DeviceStatus = {
 | 
			
		||||
  connected: boolean;
 | 
			
		||||
  connectReason?: string;
 | 
			
		||||
  certificateExpiryDate: number;
 | 
			
		||||
  certificateIssuerName?: string;
 | 
			
		||||
  connectionCompletionTime: number;
 | 
			
		||||
  firmware: string;
 | 
			
		||||
  ipAddress: string;
 | 
			
		||||
 
 | 
			
		||||
@@ -1,78 +0,0 @@
 | 
			
		||||
import { useToast } from '@chakra-ui/react';
 | 
			
		||||
import { useMutation, useQueryClient } from '@tanstack/react-query';
 | 
			
		||||
import { useTranslation } from 'react-i18next';
 | 
			
		||||
import { axiosGw } from 'constants/axiosInstances';
 | 
			
		||||
 | 
			
		||||
export type ReEnrollRequest = {
 | 
			
		||||
  serialNumber: string;
 | 
			
		||||
  when?: number;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
export type ReEnrollResponse = {
 | 
			
		||||
  UUID: string;
 | 
			
		||||
  command: 're-enroll' | 'reenroll';
 | 
			
		||||
  completed: number;
 | 
			
		||||
  custom: number;
 | 
			
		||||
  details: {
 | 
			
		||||
    serial: string;
 | 
			
		||||
    when: number;
 | 
			
		||||
  };
 | 
			
		||||
  errorCode: number;
 | 
			
		||||
  errorText: string;
 | 
			
		||||
  executed: number;
 | 
			
		||||
  executionTime: number;
 | 
			
		||||
  results: {
 | 
			
		||||
    serial: string;
 | 
			
		||||
    status: {
 | 
			
		||||
      error: number;
 | 
			
		||||
      resultCode: number;
 | 
			
		||||
      resultText: string;
 | 
			
		||||
      text: string;
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
  serialNumber: string;
 | 
			
		||||
  status: string;
 | 
			
		||||
  submitted: number;
 | 
			
		||||
  submittedBy: string;
 | 
			
		||||
  when: number;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
const reEnrollDevice = async ({ serialNumber, when = 0 }: ReEnrollRequest) =>
 | 
			
		||||
  axiosGw.post<ReEnrollResponse>(`device/${serialNumber}/reenroll`, {
 | 
			
		||||
    serial: serialNumber,
 | 
			
		||||
    when,
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
export const useReEnroll = ({ serialNumber }: { serialNumber: string }) => {
 | 
			
		||||
  const queryClient = useQueryClient();
 | 
			
		||||
  const { t } = useTranslation();
 | 
			
		||||
  const toast = useToast();
 | 
			
		||||
 | 
			
		||||
  return useMutation(reEnrollDevice, {
 | 
			
		||||
    onSuccess: () => {
 | 
			
		||||
      queryClient.invalidateQueries(['commands', serialNumber]);
 | 
			
		||||
      queryClient.invalidateQueries(['device', serialNumber]);
 | 
			
		||||
      queryClient.invalidateQueries(['device-status', serialNumber]);
 | 
			
		||||
      toast({
 | 
			
		||||
        id: `re-enroll-success-${serialNumber}`,
 | 
			
		||||
        title: t('common.success'),
 | 
			
		||||
        description: t('controller.devices.re_enroll_initiated', { serialNumber }),
 | 
			
		||||
        status: 'success',
 | 
			
		||||
        duration: 5000,
 | 
			
		||||
        isClosable: true,
 | 
			
		||||
        position: 'top-right',
 | 
			
		||||
      });
 | 
			
		||||
    },
 | 
			
		||||
    onError: (error: any) => {
 | 
			
		||||
      toast({
 | 
			
		||||
        id: `re-enroll-error-${serialNumber}`,
 | 
			
		||||
        title: t('common.error'),
 | 
			
		||||
        description: error?.response?.data?.ErrorDescription || t('common.error'),
 | 
			
		||||
        status: 'error',
 | 
			
		||||
        duration: 5000,
 | 
			
		||||
        isClosable: true,
 | 
			
		||||
        position: 'top-right',
 | 
			
		||||
      });
 | 
			
		||||
    },
 | 
			
		||||
  });
 | 
			
		||||
};
 | 
			
		||||
@@ -171,12 +171,6 @@ const DeviceSummary = ({ serialNumber }: Props) => {
 | 
			
		||||
                '-'
 | 
			
		||||
              )}
 | 
			
		||||
            </GridItem>
 | 
			
		||||
            <GridItem colSpan={1} alignContent="center" alignItems="center">
 | 
			
		||||
              <Heading size="sm">{t('devices.certificate_issuer')}:</Heading>
 | 
			
		||||
            </GridItem>
 | 
			
		||||
            <GridItem colSpan={1}>
 | 
			
		||||
              {getStatus.data?.certificateIssuerName ? getStatus.data.certificateIssuerName.split('CN=')[1] : '-'}
 | 
			
		||||
            </GridItem>
 | 
			
		||||
            <GridItem colSpan={1} alignContent="center" alignItems="center">
 | 
			
		||||
              <Heading size="sm">Connect Reason:</Heading>
 | 
			
		||||
            </GridItem>
 | 
			
		||||
 
 | 
			
		||||
@@ -41,7 +41,6 @@ import { EventQueueModal } from 'components/Modals/EventQueueModal';
 | 
			
		||||
import FactoryResetModal from 'components/Modals/FactoryResetModal';
 | 
			
		||||
import { FirmwareUpgradeModal } from 'components/Modals/FirmwareUpgradeModal';
 | 
			
		||||
import { RebootModal } from 'components/Modals/RebootModal';
 | 
			
		||||
import ReEnrollModal from 'components/Modals/ReEnrollModal';
 | 
			
		||||
import { useScriptModal } from 'components/Modals/ScriptModal/useScriptModal';
 | 
			
		||||
import ethernetConnected from './ethernetIconConnected.svg?react';
 | 
			
		||||
import ethernetDisconnected from './ethernetIconDisconnected.svg?react';
 | 
			
		||||
@@ -77,7 +76,6 @@ const DevicePageWrapper = ({ serialNumber }: Props) => {
 | 
			
		||||
  const telemetryModalProps = useDisclosure();
 | 
			
		||||
  const traceModalProps = useDisclosure();
 | 
			
		||||
  const rebootModalProps = useDisclosure();
 | 
			
		||||
  const reEnrollModalProps = useDisclosure();
 | 
			
		||||
  const scriptModal = useScriptModal();
 | 
			
		||||
  // Sticky-top styles
 | 
			
		||||
  const isCompact = breakpoint === 'base' || breakpoint === 'sm' || breakpoint === 'md';
 | 
			
		||||
@@ -218,7 +216,6 @@ const DevicePageWrapper = ({ serialNumber }: Props) => {
 | 
			
		||||
                  onOpenTelemetryModal={telemetryModalProps.onOpen}
 | 
			
		||||
                  onOpenScriptModal={scriptModal.openModal}
 | 
			
		||||
                  onOpenRebootModal={rebootModalProps.onOpen}
 | 
			
		||||
                  onOpenReEnrollModal={reEnrollModalProps.onOpen}
 | 
			
		||||
                  size="md"
 | 
			
		||||
                  isCompact
 | 
			
		||||
                />
 | 
			
		||||
@@ -271,7 +268,6 @@ const DevicePageWrapper = ({ serialNumber }: Props) => {
 | 
			
		||||
                    onOpenTelemetryModal={telemetryModalProps.onOpen}
 | 
			
		||||
                    onOpenRebootModal={rebootModalProps.onOpen}
 | 
			
		||||
                    onOpenScriptModal={scriptModal.openModal}
 | 
			
		||||
                    onOpenReEnrollModal={reEnrollModalProps.onOpen}
 | 
			
		||||
                    size="md"
 | 
			
		||||
                  />
 | 
			
		||||
                )}
 | 
			
		||||
@@ -315,7 +311,6 @@ const DevicePageWrapper = ({ serialNumber }: Props) => {
 | 
			
		||||
      <ConfigureModal serialNumber={serialNumber} modalProps={configureModalProps} />
 | 
			
		||||
      <TelemetryModal serialNumber={serialNumber} modalProps={telemetryModalProps} />
 | 
			
		||||
      <RebootModal serialNumber={serialNumber} modalProps={rebootModalProps} />
 | 
			
		||||
      <ReEnrollModal serialNumber={serialNumber} modalProps={reEnrollModalProps} />
 | 
			
		||||
      {scriptModal.modal}
 | 
			
		||||
      <Box mt={isCompact ? '0px' : '68px'}>
 | 
			
		||||
        <Masonry
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user