diff --git a/Birdmap.API/Birdmap.API.csproj b/Birdmap.API/Birdmap.API.csproj
index 57b6c21..1e5227d 100644
--- a/Birdmap.API/Birdmap.API.csproj
+++ b/Birdmap.API/Birdmap.API.csproj
@@ -52,7 +52,7 @@
-
+
diff --git a/Birdmap.API/ClientApp/src/components/dashboard/Dashboard.jsx b/Birdmap.API/ClientApp/src/components/dashboard/Dashboard.jsx
index 7be8121..58eaedd 100644
--- a/Birdmap.API/ClientApp/src/components/dashboard/Dashboard.jsx
+++ b/Birdmap.API/ClientApp/src/components/dashboard/Dashboard.jsx
@@ -1,160 +1,31 @@
-import { Box, Grid, IconButton, Paper, Typography } from '@material-ui/core';
-import { blueGrey } from '@material-ui/core/colors';
-import { AddBox, Refresh } from '@material-ui/icons/';
+import React, { Component } from 'react';
import { withStyles } from '@material-ui/styles';
-import { HubConnectionBuilder } from '@microsoft/signalr';
-import React, { Component } from 'react';
-import AddNewDialog from './AddNewDialog';
-import DashboardService, { ServiceRequest } from './DashboardService';
-import ServiceInfoComponent from './ServiceInfoComponent';
-import ServiceInfoSkeleton from './ServiceInfoSkeleton';
+import Services from './services/Services';
const styles = theme => ({
root: {
flexGrow: 1,
padding: '64px',
backgroundColor: theme.palette.primary.dark,
- },
- paper: {
- backgroundColor: blueGrey[50],
- height: '60px',
- },
- typo: {
- fontSize: theme.typography.pxToRem(20),
- fontWeight: theme.typography.fontWeightRegular,
- },
+ }
});
-const hub_url = "/hubs/services";
-const notify_method_name = "NotifyUpdatedAsync";
-
class Dashboard extends Component {
- constructor(props) {
- super(props);
-
- this.state = {
- hubConnection: null,
- isDialogOpen: false,
- isLoading: false,
- service: new DashboardService(),
- services: [],
- serviceCount: [1, 2, 3],
- }
-
- this.handleDevicesUpdated = this.handleDevicesUpdated.bind(this);
- this.addDevice = this.addDevice.bind(this);
- }
-
- handleDevicesUpdated() {
- this.setState({ isLoading: true });
-
- this.state.service.getCount().then(result => {
- const updatedCount = [];
- for (var i = 0; i < result; i++) {
- updatedCount.push(i);
- }
- this.setState({ serviceCount: updatedCount });
- }).catch(ex => {
- console.log(ex);
- });
-
- this.state.service.get().then(result => {
- const updatedServices = [];
- for (var s of result) {
- updatedServices.push(s);
- }
- this.setState({ services: updatedServices });
- }).catch(ex => {
- console.log(ex);
- }).finally(() => this.setState({ isLoading: false }));
- }
-
- componentDidMount() {
- this.handleDevicesUpdated();
- const newConnection = new HubConnectionBuilder()
- .withUrl(hub_url)
- .withAutomaticReconnect()
- .build();
-
- this.setState({ hubConnection: newConnection });
-
- newConnection.start()
- .then(_ => {
- console.log('Services hub Connected!');
- newConnection.on(notify_method_name, () => this.handleDevicesUpdated());
- }).catch(e => console.log('Services hub Connection failed: ', e));
- }
-
- componentWillUnmount() {
- if (this.state.hubConnection != null) {
- this.state.hubConnection.off(notify_method_name);
- console.log('Services hub Disconnected!');
- }
- }
-
- addDevice(name, url) {
- this.setState({ isDialogOpen: false });
- let request = new ServiceRequest();
- request.id = 0;
- request.name = name;
- request.uri = url;
-
- this.state.service.post(request).catch(ex => {
- console.log(ex);
- });
- }
-
render() {
- const { classes } = this.props;
-
- const Services = this.state.services.map((info, index) => (
-
- ));
-
- const Skeletons = this.state.serviceCount.map((i, index) => (
-
- ));
-
- return (
-
-
-
-
-
-
- Services
-
-
- {this.props.isAdmin ?
- this.setState({ isDialogOpen: true })}>
-
-
- : null
- }
-
-
-
-
-
-
- this.setState({ isDialogOpen: false })} handleAdd={this.addDevice}/>
-
-
- {this.state.isLoading ? Skeletons : Services}
-
-
-
-
-
-
-
+
+
+
+
-
- );
+
+
+
+
+
+
+
+
+
}
}
diff --git a/Birdmap.API/ClientApp/src/components/dashboard/DashboardService.js.map b/Birdmap.API/ClientApp/src/components/dashboard/DashboardService.js.map
deleted file mode 100644
index e7de3e0..0000000
--- a/Birdmap.API/ClientApp/src/components/dashboard/DashboardService.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"DashboardService.js","sourceRoot":"","sources":["DashboardService.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/Birdmap.API/ClientApp/src/components/dashboard/AddNewDialog.jsx b/Birdmap.API/ClientApp/src/components/dashboard/services/AddNewDialog.jsx
similarity index 100%
rename from Birdmap.API/ClientApp/src/components/dashboard/AddNewDialog.jsx
rename to Birdmap.API/ClientApp/src/components/dashboard/services/AddNewDialog.jsx
diff --git a/Birdmap.API/ClientApp/src/components/dashboard/DeleteDialog.jsx b/Birdmap.API/ClientApp/src/components/dashboard/services/DeleteDialog.jsx
similarity index 100%
rename from Birdmap.API/ClientApp/src/components/dashboard/DeleteDialog.jsx
rename to Birdmap.API/ClientApp/src/components/dashboard/services/DeleteDialog.jsx
diff --git a/Birdmap.API/ClientApp/src/components/dashboard/ServiceInfoComponent.jsx b/Birdmap.API/ClientApp/src/components/dashboard/services/ServiceInfoComponent.jsx
similarity index 100%
rename from Birdmap.API/ClientApp/src/components/dashboard/ServiceInfoComponent.jsx
rename to Birdmap.API/ClientApp/src/components/dashboard/services/ServiceInfoComponent.jsx
diff --git a/Birdmap.API/ClientApp/src/components/dashboard/DashboardService.js b/Birdmap.API/ClientApp/src/components/dashboard/services/ServiceInfoService.js
similarity index 94%
rename from Birdmap.API/ClientApp/src/components/dashboard/DashboardService.js
rename to Birdmap.API/ClientApp/src/components/dashboard/services/ServiceInfoService.js
index 1a8bbee..4aa9da5 100644
--- a/Birdmap.API/ClientApp/src/components/dashboard/DashboardService.js
+++ b/Birdmap.API/ClientApp/src/components/dashboard/services/ServiceInfoService.js
@@ -22,13 +22,13 @@ var __extends = (this && this.__extends) || (function () {
})();
Object.defineProperty(exports, "__esModule", { value: true });
exports.ApiException = exports.HttpStatusCode = exports.ServiceRequest = exports.ServiceInfo = void 0;
-var DashboardService = /** @class */ (function () {
- function DashboardService(baseUrl, http) {
+var ServiceInfoService = /** @class */ (function () {
+ function ServiceInfoService(baseUrl, http) {
this.jsonParseReviver = undefined;
this.http = http ? http : window;
this.baseUrl = baseUrl !== undefined && baseUrl !== null ? baseUrl : "";
}
- DashboardService.prototype.getCount = function () {
+ ServiceInfoService.prototype.getCount = function () {
var _this = this;
var url_ = this.baseUrl + "/api/Services/count";
url_ = url_.replace(/[?&]$/, "");
@@ -43,7 +43,7 @@ var DashboardService = /** @class */ (function () {
return _this.processGetCount(_response);
});
};
- DashboardService.prototype.processGetCount = function (response) {
+ ServiceInfoService.prototype.processGetCount = function (response) {
var _this = this;
var status = response.status;
var _headers = {};
@@ -66,7 +66,7 @@ var DashboardService = /** @class */ (function () {
}
return Promise.resolve(null);
};
- DashboardService.prototype.get = function () {
+ ServiceInfoService.prototype.get = function () {
var _this = this;
var url_ = this.baseUrl + "/api/Services";
url_ = url_.replace(/[?&]$/, "");
@@ -81,7 +81,7 @@ var DashboardService = /** @class */ (function () {
return _this.processGet(_response);
});
};
- DashboardService.prototype.processGet = function (response) {
+ ServiceInfoService.prototype.processGet = function (response) {
var _this = this;
var status = response.status;
var _headers = {};
@@ -110,7 +110,7 @@ var DashboardService = /** @class */ (function () {
}
return Promise.resolve(null);
};
- DashboardService.prototype.post = function (request) {
+ ServiceInfoService.prototype.post = function (request) {
var _this = this;
var url_ = this.baseUrl + "/api/Services";
url_ = url_.replace(/[?&]$/, "");
@@ -128,7 +128,7 @@ var DashboardService = /** @class */ (function () {
return _this.processPost(_response);
});
};
- DashboardService.prototype.processPost = function (response) {
+ ServiceInfoService.prototype.processPost = function (response) {
var _this = this;
var status = response.status;
var _headers = {};
@@ -151,7 +151,7 @@ var DashboardService = /** @class */ (function () {
}
return Promise.resolve(null);
};
- DashboardService.prototype.put = function (request) {
+ ServiceInfoService.prototype.put = function (request) {
var _this = this;
var url_ = this.baseUrl + "/api/Services";
url_ = url_.replace(/[?&]$/, "");
@@ -168,7 +168,7 @@ var DashboardService = /** @class */ (function () {
return _this.processPut(_response);
});
};
- DashboardService.prototype.processPut = function (response) {
+ ServiceInfoService.prototype.processPut = function (response) {
var status = response.status;
var _headers = {};
if (response.headers && response.headers.forEach) {
@@ -187,7 +187,7 @@ var DashboardService = /** @class */ (function () {
}
return Promise.resolve(null);
};
- DashboardService.prototype.delete = function (id) {
+ ServiceInfoService.prototype.delete = function (id) {
var _this = this;
var url_ = this.baseUrl + "/api/Services/{id}";
if (id === undefined || id === null)
@@ -204,7 +204,7 @@ var DashboardService = /** @class */ (function () {
return _this.processDelete(_response);
});
};
- DashboardService.prototype.processDelete = function (response) {
+ ServiceInfoService.prototype.processDelete = function (response) {
var status = response.status;
var _headers = {};
if (response.headers && response.headers.forEach) {
@@ -223,9 +223,9 @@ var DashboardService = /** @class */ (function () {
}
return Promise.resolve(null);
};
- return DashboardService;
+ return ServiceInfoService;
}());
-exports.default = DashboardService;
+exports.default = ServiceInfoService;
var ServiceInfo = /** @class */ (function () {
function ServiceInfo(data) {
if (data) {
@@ -383,4 +383,4 @@ function throwException(message, status, response, headers, result) {
else
throw new ApiException(message, status, response, headers, null);
}
-//# sourceMappingURL=DashboardService.js.map
\ No newline at end of file
+//# sourceMappingURL=SystemInfoService.js.map
\ No newline at end of file
diff --git a/Birdmap.API/ClientApp/src/components/dashboard/services/ServiceInfoService.js.map b/Birdmap.API/ClientApp/src/components/dashboard/services/ServiceInfoService.js.map
new file mode 100644
index 0000000..d95c22a
--- /dev/null
+++ b/Birdmap.API/ClientApp/src/components/dashboard/services/ServiceInfoService.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"SystemInfoService.js","sourceRoot":"","sources":["SystemInfoService.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/Birdmap.API/ClientApp/src/components/dashboard/DashboardService.ts b/Birdmap.API/ClientApp/src/components/dashboard/services/ServiceInfoService.ts
similarity index 99%
rename from Birdmap.API/ClientApp/src/components/dashboard/DashboardService.ts
rename to Birdmap.API/ClientApp/src/components/dashboard/services/ServiceInfoService.ts
index 5a9dcdb..1e8b7a5 100644
--- a/Birdmap.API/ClientApp/src/components/dashboard/DashboardService.ts
+++ b/Birdmap.API/ClientApp/src/components/dashboard/services/ServiceInfoService.ts
@@ -7,7 +7,7 @@
//----------------------
// ReSharper disable InconsistentNaming
-export default class DashboardService {
+export default class ServiceInfoService {
private http: { fetch(url: RequestInfo, init?: RequestInit): Promise };
private baseUrl: string;
protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;
diff --git a/Birdmap.API/ClientApp/src/components/dashboard/ServiceInfoSkeleton.jsx b/Birdmap.API/ClientApp/src/components/dashboard/services/ServiceInfoSkeleton.jsx
similarity index 100%
rename from Birdmap.API/ClientApp/src/components/dashboard/ServiceInfoSkeleton.jsx
rename to Birdmap.API/ClientApp/src/components/dashboard/services/ServiceInfoSkeleton.jsx
diff --git a/Birdmap.API/ClientApp/src/components/dashboard/services/Services.jsx b/Birdmap.API/ClientApp/src/components/dashboard/services/Services.jsx
new file mode 100644
index 0000000..032c291
--- /dev/null
+++ b/Birdmap.API/ClientApp/src/components/dashboard/services/Services.jsx
@@ -0,0 +1,146 @@
+import { Box, Grid, IconButton, Paper, Typography } from '@material-ui/core';
+import { blueGrey } from '@material-ui/core/colors';
+import { AddBox, Refresh } from '@material-ui/icons/';
+import { withStyles } from '@material-ui/styles';
+import { HubConnectionBuilder } from '@microsoft/signalr';
+import React, { Component } from 'react';
+import AddNewDialog from './AddNewDialog';
+import ServiceInfoService, { ServiceRequest } from './ServiceInfoService';
+import ServiceInfoComponent from './ServiceInfoComponent';
+import ServiceInfoSkeleton from './ServiceInfoSkeleton';
+
+const styles = theme => ({
+ typo: {
+ fontSize: theme.typography.pxToRem(20),
+ fontWeight: theme.typography.fontWeightRegular,
+ },
+ paper: {
+ backgroundColor: blueGrey[50],
+ height: '60px',
+ }
+});
+
+const hub_url = "/hubs/services";
+const notify_method_name = "NotifyUpdatedAsync";
+
+class Services extends Component {
+ constructor(props) {
+ super(props);
+
+ this.state = {
+ hubConnection: null,
+ isDialogOpen: false,
+ isLoading: false,
+ service: new ServiceInfoService(),
+ services: [],
+ serviceCount: [1, 2, 3],
+ }
+
+ this.handleDevicesUpdated = this.handleDevicesUpdated.bind(this);
+ this.addDevice = this.addDevice.bind(this);
+ }
+
+ handleDevicesUpdated() {
+ this.setState({ isLoading: true });
+
+ this.state.service.getCount().then(result => {
+ const updatedCount = [];
+ for (var i = 0; i < result; i++) {
+ updatedCount.push(i);
+ }
+ this.setState({ serviceCount: updatedCount });
+ }).catch(ex => {
+ console.log(ex);
+ });
+
+ this.state.service.get().then(result => {
+ const updatedServices = [];
+ for (var s of result) {
+ updatedServices.push(s);
+ }
+ this.setState({ services: updatedServices });
+ }).catch(ex => {
+ console.log(ex);
+ }).finally(() => this.setState({ isLoading: false }));
+ }
+
+ componentDidMount() {
+ this.handleDevicesUpdated();
+ const newConnection = new HubConnectionBuilder()
+ .withUrl(hub_url)
+ .withAutomaticReconnect()
+ .build();
+
+ this.setState({ hubConnection: newConnection });
+
+ newConnection.start()
+ .then(_ => {
+ console.log('Services hub Connected!');
+ newConnection.on(notify_method_name, () => this.handleDevicesUpdated());
+ }).catch(e => console.log('Services hub Connection failed: ', e));
+ }
+
+ componentWillUnmount() {
+ if (this.state.hubConnection != null) {
+ this.state.hubConnection.off(notify_method_name);
+ console.log('Services hub Disconnected!');
+ }
+ }
+
+ addDevice(name, url) {
+ this.setState({ isDialogOpen: false });
+ let request = new ServiceRequest();
+ request.id = 0;
+ request.name = name;
+ request.uri = url;
+
+ this.state.service.post(request).catch(ex => {
+ console.log(ex);
+ });
+ }
+
+ render() {
+ const { classes } = this.props;
+
+ const ServiceComponents = this.state.services.map((info, index) => (
+
+ ));
+
+ const Skeletons = this.state.serviceCount.map((i, index) => (
+
+ ));
+
+ return (
+
+
+
+
+ Services
+
+
+ {this.props.isAdmin ?
+ this.setState({ isDialogOpen: true })}>
+
+
+ : null
+ }
+
+
+
+
+
+
+ this.setState({ isDialogOpen: false })} handleAdd={this.addDevice}/>
+
+
+ {this.state.isLoading ? Skeletons : ServiceComponents}
+
+ );
+ }
+}
+
+export default withStyles(styles)(Services);
\ No newline at end of file