diff --git a/monkey/monkey_island/cc/ui/src/components/map/preview-pane/InfMapPreviewPane.js b/monkey/monkey_island/cc/ui/src/components/map/preview-pane/InfMapPreviewPane.js
deleted file mode 100644
index a9fa7a6d6..000000000
--- a/monkey/monkey_island/cc/ui/src/components/map/preview-pane/InfMapPreviewPane.js
+++ /dev/null
@@ -1,246 +0,0 @@
-import React from 'react';
-import Toggle from 'react-toggle';
-import {OverlayTrigger, Tooltip} from 'react-bootstrap';
-import download from 'downloadjs'
-import PreviewPaneComponent from 'components/map/preview-pane/PreviewPane';
-
-class InfMapPreviewPaneComponent extends PreviewPaneComponent {
-
- osRow(asset) {
- return (
-
- Operating System |
- {asset.os.charAt(0).toUpperCase() + asset.os.slice(1)} |
-
- );
- }
-
- ipsRow(asset) {
- return (
-
- IP Addresses |
- {asset.ip_addresses.map(val => {val} )} |
-
- );
- }
-
- servicesRow(asset) {
- return (
-
- Services |
- {asset.services.map(val => {val} )} |
-
- );
- }
-
- accessibleRow(asset) {
- return (
-
-
- Accessible From
- {this.generateToolTip('List of machine which can access this one using a network protocol')}
- |
- {asset.accessible_from_nodes.map(val => {val} )} |
-
- );
- }
-
- statusRow(asset) {
- return (
-
- Status |
- {(asset.dead) ? 'Dead' : 'Alive'} |
-
- );
- }
-
- forceKill(event, asset) {
- let newConfig = asset.config;
- newConfig['alive'] = !event.target.checked;
- this.authFetch('/api/monkey/' + asset.guid,
- {
- method: 'PATCH',
- headers: {'Content-Type': 'application/json'},
- body: JSON.stringify({config: newConfig})
- });
- }
-
- forceKillRow(asset) {
- return (
-
-
- Force Kill
- {this.generateToolTip('If this is on, monkey will die next time it communicates')}
- |
-
- this.forceKill(e, asset)}/>
-
- |
-
- );
- }
-
- unescapeLog(st) {
- return st.substr(1, st.length - 2) // remove quotation marks on beginning and end of string.
- .replace(/\\n/g, '\n')
- .replace(/\\r/g, '\r')
- .replace(/\\t/g, '\t')
- .replace(/\\b/g, '\b')
- .replace(/\\f/g, '\f')
- .replace(/\\"/g, '\"')
- .replace(/\\'/g, '\'')
- .replace(/\\&/g, '\&');
- }
-
- downloadLog(asset) {
- this.authFetch('/api/log?id=' + asset.id)
- .then(res => res.json())
- .then(res => {
- let timestamp = res['timestamp'];
- timestamp = timestamp.substr(0, timestamp.indexOf('.'));
- let filename = res['monkey_label'].split(':').join('-') + ' - ' + timestamp + '.log';
- let logContent = this.unescapeLog(res['log']);
- download(logContent, filename, 'text/plain');
- });
-
- }
-
- downloadLogRow(asset) {
- return (
-
-
- Download Log
- |
-
- this.downloadLog(asset)}>Download
- |
-
- );
- }
-
- exploitsTimeline(asset) {
- if (asset.exploits.length === 0) {
- return ();
- }
-
- return (
-
-
- Exploit Timeline
- {this.generateToolTip('Timeline of exploit attempts. Red is successful. Gray is unsuccessful')}
-
-
-
- )
- }
-
- assetInfo(asset) {
- return (
-
-
-
- {this.osRow(asset)}
- {this.ipsRow(asset)}
- {this.servicesRow(asset)}
- {this.accessibleRow(asset)}
-
-
- {this.exploitsTimeline(asset)}
-
- );
- }
-
- infectedAssetInfo(asset) {
- return (
-
-
-
- {this.osRow(asset)}
- {this.statusRow(asset)}
- {this.ipsRow(asset)}
- {this.servicesRow(asset)}
- {this.accessibleRow(asset)}
- {this.forceKillRow(asset)}
- {this.downloadLogRow(asset)}
-
-
- {this.exploitsTimeline(asset)}
-
- );
- }
-
- scanInfo(edge) {
- return (
-
-
-
-
- Operating System |
- {edge.os.type} |
-
-
- IP Address |
- {edge.ip_address} |
-
-
- Services |
- {edge.services.map(val => {val} )} |
-
-
-
- {
- (edge.exploits.length === 0) ?
- '' :
-
- }
-
- );
- }
-
- islandEdgeInfo() {
- return (
-
-
- );
- }
-
- getInfoByProps() {
- switch (this.props.type) {
- case 'edge':
- return this.scanInfo(this.props.item);
- case 'node':
- return this.props.item.group.includes('monkey', 'manual') ?
- this.infectedAssetInfo(this.props.item) : this.assetInfo(this.props.item);
- case 'island_edge':
- return this.islandEdgeInfo();
- }
-
- return null;
- }
-}
-
-export default InfMapPreviewPaneComponent;
diff --git a/monkey/monkey_island/cc/ui/src/components/map/preview-pane/PreviewPane.js b/monkey/monkey_island/cc/ui/src/components/map/preview-pane/PreviewPane.js
index a5d4d98fa..a4386d851 100644
--- a/monkey/monkey_island/cc/ui/src/components/map/preview-pane/PreviewPane.js
+++ b/monkey/monkey_island/cc/ui/src/components/map/preview-pane/PreviewPane.js
@@ -253,8 +253,12 @@ class PreviewPaneComponent extends AuthComponent {
info = this.scanInfo(this.props.item);
break;
case 'node':
- info = this.props.item.group.includes('monkey', 'manual') ? this.infectedAssetInfo(this.props.item) :
- this.props.item.group !== 'island' ? this.assetInfo(this.props.item) : this.islandAssetInfo();
+ if(this.props.item.group.includes('monkey') && this.props.item.group.includes('starting')){
+ info = this.assetInfo(this.props.item);
+ } else {
+ info = this.props.item.group.includes('monkey', 'manual') ? this.infectedAssetInfo(this.props.item) :
+ this.props.item.group !== 'island' ? this.assetInfo(this.props.item) : this.islandAssetInfo();
+ }
break;
case 'island_edge':
info = this.islandEdgeInfo();
diff --git a/monkey/monkey_island/cc/ui/src/components/pages/MapPage.js b/monkey/monkey_island/cc/ui/src/components/pages/MapPage.js
index 278b4c791..9394eed54 100644
--- a/monkey/monkey_island/cc/ui/src/components/pages/MapPage.js
+++ b/monkey/monkey_island/cc/ui/src/components/pages/MapPage.js
@@ -3,7 +3,7 @@ import {Col, Modal} from 'react-bootstrap';
import {Link} from 'react-router-dom';
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'
import { faStopCircle, faMinus } from '@fortawesome/free-solid-svg-icons'
-import InfMapPreviewPaneComponent from 'components/map/preview-pane/InfMapPreviewPane';
+import PreviewPaneComponent from 'components/map/preview-pane/PreviewPane';
import {ReactiveGraph} from 'components/reactive-graph/ReactiveGraph';
import {options, edgeGroupToColor} from 'components/map/MapOptions';
import AuthComponent from '../AuthComponent';
@@ -192,7 +192,7 @@ class MapPageComponent extends AuthComponent {
: ''}
-
+
);