diff --git a/app/containers/Dashboard/index.js b/app/containers/Dashboard/index.js
index c438550..6c9cef4 100644
--- a/app/containers/Dashboard/index.js
+++ b/app/containers/Dashboard/index.js
@@ -65,7 +65,7 @@ const Dashboard = () => {
toTime,
equipmentIds: [0],
dataTypes: ['StatusChangedEvent'],
- limit: 100,
+ limit: 1000,
},
});
diff --git a/app/containers/Network/containers/AccessPointDetails/index.js b/app/containers/Network/containers/AccessPointDetails/index.js
index b6e79fb..e0b82a5 100644
--- a/app/containers/Network/containers/AccessPointDetails/index.js
+++ b/app/containers/Network/containers/AccessPointDetails/index.js
@@ -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,
},
});
diff --git a/app/containers/Network/containers/AccessPoints/index.js b/app/containers/Network/containers/AccessPoints/index.js
index 87416d7..1dfb3e1 100644
--- a/app/containers/Network/containers/AccessPoints/index.js
+++ b/app/containers/Network/containers/AccessPoints/index.js
@@ -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 ;
}
- if (error && !(equipData && equipData.filterEquipment && equipData.filterEquipment.items)) {
+ if (error && !equipData?.filterEquipment?.items) {
return ;
}
diff --git a/app/containers/Network/containers/ClientDeviceDetails/index.js b/app/containers/Network/containers/ClientDeviceDetails/index.js
index e08659b..4ac72e4 100644
--- a/app/containers/Network/containers/ClientDeviceDetails/index.js
+++ b/app/containers/Network/containers/ClientDeviceDetails/index.js
@@ -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 ;
}
- if (error) {
+ if (error && !data?.getClientSession) {
return (
);
diff --git a/app/containers/Network/containers/ClientDevices/index.js b/app/containers/Network/containers/ClientDevices/index.js
index ff5d44c..c13d5cc 100644
--- a/app/containers/Network/containers/ClientDevices/index.js
+++ b/app/containers/Network/containers/ClientDevices/index.js
@@ -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 ;
}
- if (error && !(data && data.filterClientSessions && data.filterClientSessions.items)) {
+ if (error && !data?.filterClientSessions?.items) {
return (
);
diff --git a/app/containers/System/containers/AutoProvision/index.js b/app/containers/System/containers/AutoProvision/index.js
new file mode 100644
index 0000000..9cfbd9a
--- /dev/null
+++ b/app/containers/System/containers/AutoProvision/index.js
@@ -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 ;
+ }
+
+ if (error) {
+ return (
+
+ );
+ }
+
+ return (
+
+ );
+};
+
+export default AutoProvision;
diff --git a/app/containers/System/containers/Firmware/index.js b/app/containers/System/containers/Firmware/index.js
index 8ae7da7..c3efcda 100644
--- a/app/containers/System/containers/Firmware/index.js
+++ b/app/containers/System/containers/Firmware/index.js
@@ -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.',
diff --git a/app/containers/System/containers/Manufacturer/index.js b/app/containers/System/containers/Manufacturer/index.js
index 41b4945..87004a8 100644
--- a/app/containers/System/containers/Manufacturer/index.js
+++ b/app/containers/System/containers/Manufacturer/index.js
@@ -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({
diff --git a/app/containers/System/index.js b/app/containers/System/index.js
index 8ef15eb..3842465 100644
--- a/app/containers/System/index.js
+++ b/app/containers/System/index.js
@@ -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 = () => {
+
diff --git a/app/graphql/mutations.js b/app/graphql/mutations.js
index e03b841..ced9f5d 100644
--- a/app/graphql/mutations.js
+++ b/app/graphql/mutations.js
@@ -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
+ }
+ }
+`;
diff --git a/app/graphql/queries.js b/app/graphql/queries.js
index a5d64c8..7f38290 100644
--- a/app/graphql/queries.js
+++ b/app/graphql/queries.js
@@ -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!
diff --git a/package-lock.json b/package-lock.json
index 9a8af17..8d853dc 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -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",
diff --git a/package.json b/package.json
index 02cdfc4..00f1333 100644
--- a/package.json
+++ b/package.json
@@ -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",