Merge branch 'master' of https://github.com/Telecominfraproject/wlan-cloud-ui into feature/TW-917

This commit is contained in:
Alidev123
2020-07-27 11:28:54 -04:00
13 changed files with 184 additions and 48 deletions

View File

@@ -65,7 +65,7 @@ const Dashboard = () => {
toTime,
equipmentIds: [0],
dataTypes: ['StatusChangedEvent'],
limit: 100,
limit: 1000,
},
});

View File

@@ -152,7 +152,7 @@ export const GET_ALL_PROFILES = gql`
`;
const toTime = moment();
const fromTime = moment().subtract(24, 'hours');
const fromTime = moment().subtract(1, 'hour');
const AccessPointDetails = ({ locations }) => {
const { id } = useParams();
@@ -179,6 +179,7 @@ const AccessPointDetails = ({ locations }) => {
toTime: toTime.valueOf().toString(),
equipmentIds: [id],
dataTypes: ['ApNode'],
limit: 100,
},
});

View File

@@ -1,7 +1,7 @@
import React, { useEffect, useContext } from 'react';
import PropTypes from 'prop-types';
import { useLazyQuery } from '@apollo/react-hooks';
import { Alert, notification } from 'antd';
import { Alert } from 'antd';
import { NetworkTable, Loading } from '@tip-wlan/wlan-cloud-ui-library';
import UserContext from 'contexts/UserContext';
@@ -93,7 +93,10 @@ const accessPointsTableColumns = [
const AccessPoints = ({ checkedLocations }) => {
const { customerId } = useContext(UserContext);
const [filterEquipment, { loading, error, data: equipData, fetchMore }] = useLazyQuery(
FILTER_EQUIPMENT
FILTER_EQUIPMENT,
{
errorPolicy: 'all',
}
);
const handleLoadMore = () => {
@@ -119,15 +122,6 @@ const AccessPoints = ({ checkedLocations }) => {
const fetchFilterEquipment = async () => {
filterEquipment({
variables: { customerId, locationIds: checkedLocations, equipmentType: 'AP' },
errorPolicy: 'all',
onError: e => {
e.forEach(({ message }) => {
notification.error({
message: 'Error',
description: message,
});
});
},
});
};
@@ -139,7 +133,7 @@ const AccessPoints = ({ checkedLocations }) => {
return <Loading />;
}
if (error && !(equipData && equipData.filterEquipment && equipData.filterEquipment.items)) {
if (error && !equipData?.filterEquipment?.items) {
return <Alert message="Error" description="Failed to load equipment." type="error" showIcon />;
}

View File

@@ -12,13 +12,14 @@ import UserContext from 'contexts/UserContext';
import { GET_CLIENT_SESSION, FILTER_SERVICE_METRICS } from 'graphql/queries';
const toTime = moment();
const fromTime = moment().subtract(24, 'hours');
const fromTime = moment().subtract(1, 'hour');
const ClientDeviceDetails = () => {
const { id } = useParams();
const { customerId } = useContext(UserContext);
const { loading, error, data, refetch } = useQuery(GET_CLIENT_SESSION, {
variables: { customerId, macAddress: id },
errorPolicy: 'all',
});
const {
loading: metricsLoading,
@@ -32,6 +33,7 @@ const ClientDeviceDetails = () => {
toTime: toTime.valueOf().toString(),
clientMacs: [id],
dataTypes: ['Client'],
limit: 100,
},
});
@@ -56,7 +58,7 @@ const ClientDeviceDetails = () => {
return <Loading />;
}
if (error) {
if (error && !data?.getClientSession) {
return (
<Alert message="Error" description="Failed to load Client Device." type="error" showIcon />
);

View File

@@ -1,7 +1,7 @@
import React, { useEffect, useContext } from 'react';
import PropTypes from 'prop-types';
import { useLazyQuery } from '@apollo/react-hooks';
import { Alert, notification } from 'antd';
import { Alert } from 'antd';
import { NetworkTable, Loading } from '@tip-wlan/wlan-cloud-ui-library';
import UserContext from 'contexts/UserContext';
@@ -29,7 +29,10 @@ const clientDevicesTableColumns = [
const ClientDevices = ({ checkedLocations }) => {
const { customerId } = useContext(UserContext);
const [filterClientSessions, { loading, error, data, fetchMore }] = useLazyQuery(
FILTER_CLIENT_SESSIONS
FILTER_CLIENT_SESSIONS,
{
errorPolicy: 'all',
}
);
const handleLoadMore = () => {
@@ -52,26 +55,21 @@ const ClientDevices = ({ checkedLocations }) => {
}
};
useEffect(() => {
const fetchFilterClientSessions = async () => {
filterClientSessions({
variables: { customerId, locationIds: checkedLocations, equipmentType: 'AP' },
errorPolicy: 'all',
onError: e => {
e.forEach(({ message }) => {
notification.error({
message: 'Error',
description: message,
});
});
},
});
};
useEffect(() => {
fetchFilterClientSessions();
}, [checkedLocations]);
if (loading) {
return <Loading />;
}
if (error && !(data && data.filterClientSessions && data.filterClientSessions.items)) {
if (error && !data?.filterClientSessions?.items) {
return (
<Alert message="Error" description="Failed to load client devices." type="error" showIcon />
);

View File

@@ -0,0 +1,87 @@
import React, { useContext } from 'react';
import { useQuery, useMutation } from '@apollo/react-hooks';
import { Alert, notification } from 'antd';
import { AutoProvision as AutoProvisionPage, Loading } from '@tip-wlan/wlan-cloud-ui-library';
import UserContext from 'contexts/UserContext';
import { GET_CUSTOMER, GET_ALL_LOCATIONS, GET_ALL_PROFILES } from 'graphql/queries';
import { UPDATE_CUSTOMER } from 'graphql/mutations';
const AutoProvision = () => {
const { customerId } = useContext(UserContext);
const { data, loading, error, refetch } = useQuery(GET_CUSTOMER, {
variables: { id: customerId },
});
const [updateCustomer] = useMutation(UPDATE_CUSTOMER);
const { data: dataLocation, loading: loadingLoaction, error: errorLocation } = useQuery(
GET_ALL_LOCATIONS,
{
variables: { customerId },
}
);
const { data: dataProfile, loading: loadingProfile, error: errorProfile } = useQuery(
GET_ALL_PROFILES,
{
variables: { customerId, type: 'equipment_ap' },
}
);
const handleUpdateCustomer = (
id,
email,
name,
details,
createdTimestamp,
lastModifiedTimestamp
) => {
updateCustomer({
variables: {
id,
email,
name,
details,
createdTimestamp,
lastModifiedTimestamp,
},
})
.then(() => {
refetch();
notification.success({
message: 'Success',
description: 'Settings successfully updated.',
});
})
.catch(() =>
notification.error({
message: 'Error',
description: 'Settings could not be updated.',
})
);
};
if (loading) {
return <Loading />;
}
if (error) {
return (
<Alert message="Error" description="Failed to load Customer Data." type="error" showIcon />
);
}
return (
<AutoProvisionPage
data={data && data.getCustomer}
dataLocation={dataLocation && dataLocation.getAllLocations}
dataProfile={dataProfile && dataProfile.getAllProfiles.items}
loadingLoaction={loadingLoaction}
loadingProfile={loadingProfile}
errorLocation={errorLocation}
errorProfile={errorProfile}
onUpdateCustomer={handleUpdateCustomer}
/>
);
};
export default AutoProvision;

View File

@@ -43,6 +43,7 @@ const Firmware = () => {
data: firmwareModelData,
error: firmwareModelError,
loading: firmwareModelLoading,
refetch: refetchFirmwareModels,
} = useQuery(GET_ALL_FIRMWARE_MODELS);
const [updateTrackAssignment] = useMutation(UPDATE_TRACK_ASSIGNMENT);
@@ -67,13 +68,13 @@ const Firmware = () => {
refetchAssignmentData();
notification.success({
message: 'Success',
description: 'Track Assignment successfully created.',
description: 'Model Target Version successfully created.',
});
})
.catch(() =>
notification.error({
message: 'Error',
description: 'Track Assignment could not be created.',
description: 'Model Target Version could not be created.',
})
);
};
@@ -97,13 +98,13 @@ const Firmware = () => {
refetchAssignmentData();
notification.success({
message: 'Success',
description: 'Track Assignment successfully updated.',
description: 'Model Target Version successfully updated.',
});
})
.catch(() =>
notification.error({
message: 'Error',
description: 'Track Assignment could not be updated.',
description: 'Model Target Version could not be updated.',
})
);
};
@@ -119,13 +120,13 @@ const Firmware = () => {
refetchAssignmentData();
notification.success({
message: 'Success',
description: 'Track Assignment successfully deleted.',
description: 'Model Target Version successfully deleted.',
});
})
.catch(() =>
notification.error({
message: 'Error',
description: 'Track Assignment could not be deleted.',
description: 'Model Target Version could not be deleted.',
})
);
};
@@ -151,6 +152,7 @@ const Firmware = () => {
})
.then(() => {
refetch();
refetchFirmwareModels();
notification.success({
message: 'Success',
description: 'Firmware version successfully created.',
@@ -192,6 +194,7 @@ const Firmware = () => {
})
.then(() => {
refetch();
refetchFirmwareModels();
notification.success({
message: 'Success',
description: 'Firmware version successfully updated.',
@@ -213,6 +216,7 @@ const Firmware = () => {
})
.then(() => {
refetch();
refetchFirmwareModels();
notification.success({
message: 'Success',
description: 'Firmware version successfully deleted.',

View File

@@ -68,11 +68,18 @@ const System = () => {
const handleFileUpload = (fileName, file) =>
fileUpload({ variables: { fileName, file } })
.then(() => {
notification.success({
message: 'Success',
description: 'File successfully uploaded.',
});
.then(resp => {
if (resp?.ouiUpload?.success) {
notification.success({
message: 'Success',
description: 'File successfully uploaded.',
});
} else {
notification.error({
message: 'Error',
description: 'File could not be uploaded.',
});
}
})
.catch(() =>
notification.error({

View File

@@ -5,6 +5,7 @@ import { System as SystemPage } from '@tip-wlan/wlan-cloud-ui-library';
import Manufacturer from 'containers/System/containers/Manufacturer';
import Firmware from 'containers/System/containers/Firmware';
import AutoProvision from 'containers/System/containers/AutoProvision';
const System = () => {
const { path } = useRouteMatch();
@@ -14,6 +15,7 @@ const System = () => {
<Switch>
<Route exact path={`${path}/manufacturer`} component={Manufacturer} />
<Route exact path={`${path}/firmware`} component={Firmware} />
<Route exact path={`${path}/autoprovision`} component={AutoProvision} />
<Redirect from={path} to={`${path}/manufacturer`} />
</Switch>

View File

@@ -86,8 +86,7 @@ export const FILE_UPLOAD = gql`
export const OUI_UPLOAD = gql`
mutation OuiUpload($fileName: String, $file: Upload) {
ouiUpload(fileName: $fileName, file: $file) {
fileName
baseUrl
success
}
}
`;
@@ -239,3 +238,30 @@ export const CREATE_EQUIPMENT = gql`
}
}
`;
export const UPDATE_CUSTOMER = gql`
mutation UpdateCustomer(
$id: ID!
$email: String!
$name: String!
$details: JSONObject
$createdTimestamp: String
$lastModifiedTimestamp: String
) {
updateCustomer(
id: $id
email: $email
name: $name
details: $details
createdTimestamp: $createdTimestamp
lastModifiedTimestamp: $lastModifiedTimestamp
) {
id
email
name
details
createdTimestamp
lastModifiedTimestamp
}
}
`;

View File

@@ -163,6 +163,7 @@ export const FILTER_SERVICE_METRICS = gql`
$clientMacs: [String]
$equipmentIds: [ID]
$dataTypes: [String]
$limit: Int
) {
filterServiceMetrics(
customerId: $customerId
@@ -172,6 +173,7 @@ export const FILTER_SERVICE_METRICS = gql`
clientMacs: $clientMacs
equipmentIds: $equipmentIds
dataTypes: $dataTypes
limit: $limit
) {
items {
dataType
@@ -275,6 +277,19 @@ export const GET_ALARM_COUNT = gql`
}
`;
export const GET_CUSTOMER = gql`
query GetCustomer($id: ID!) {
getCustomer(id: $id) {
id
name
email
createdTimestamp
lastModifiedTimestamp
details
}
}
`;
export const FILTER_SYSTEM_EVENTS = gql`
query FilterSystemEvents(
$customerId: ID!

8
package-lock.json generated
View File

@@ -1,6 +1,6 @@
{
"name": "wlan-cloud-ui",
"version": "0.2.1",
"version": "0.2.3",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
@@ -1874,9 +1874,9 @@
}
},
"@tip-wlan/wlan-cloud-ui-library": {
"version": "0.2.1",
"resolved": "https://tip.jfrog.io/artifactory/api/npm/tip-wlan-cloud-npm-repo/@tip-wlan/wlan-cloud-ui-library/-/@tip-wlan/wlan-cloud-ui-library-0.2.1.tgz",
"integrity": "sha1-erMcjUClH8GattvLkFOnhN72kpA="
"version": "0.2.3",
"resolved": "https://tip.jfrog.io/artifactory/api/npm/tip-wlan-cloud-npm-repo/@tip-wlan/wlan-cloud-ui-library/-/@tip-wlan/wlan-cloud-ui-library-0.2.3.tgz",
"integrity": "sha1-m/aF8DLiaeGF8UDtECAabipk2P0="
},
"@types/anymatch": {
"version": "1.3.1",

View File

@@ -1,6 +1,6 @@
{
"name": "wlan-cloud-ui",
"version": "0.2.1",
"version": "0.2.3",
"author": "ConnectUs",
"description": "React Portal",
"engines": {
@@ -20,7 +20,7 @@
"@ant-design/icons": "^4.2.1",
"@apollo/react-hoc": "^3.1.4",
"@apollo/react-hooks": "^3.1.3",
"@tip-wlan/wlan-cloud-ui-library": "^0.2.1",
"@tip-wlan/wlan-cloud-ui-library": "^0.2.3",
"antd": "^4.3.1",
"apollo-cache-inmemory": "^1.6.6",
"apollo-client": "^2.6.10",