Skip to content

Commit 2c8bd19

Browse files
committed
feat(assets-view): refactor asset detail handling and improve status display
Signed-off-by: Manuel Abascal <mjabascal10@gmail.com>
1 parent d2f2dea commit 2c8bd19

File tree

5 files changed

+51
-8
lines changed

5 files changed

+51
-8
lines changed

frontend/src/app/assets-discover/assets-view/assets-view.component.html

Lines changed: 46 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -270,16 +270,15 @@ <h5 class="card-title mb-0 text-uppercase label-header">
270270
<div class="title d-flex justify-content-between align-items-center border-bottom-1
271271
border-bottom-grey-100 pl-3 pt-3 pr-3 pb-0">
272272
<h6 class="card-title text-blue-800 font-weight-light">
273-
{{ assetSelected.isAgent }}
274-
{{ assetSelected.isAgent ? 'Agent' : 'Source' }} {{ assetName }} details
273+
{{ assetSelected.isAgent ? 'Agent' : 'Data Source' }} — {{ assetName }} Details
275274
</h6>
276275
<button (click)="closeDetail()" aria-label="Close"
277276
class="close button-close" type="button">
278277
<div class="close-icon"></div>
279278
</button>
280279
</div>
281280
<div class="p-3">
282-
<div class="w-100" *ngIf="reasonRun">
281+
<div class="w-100" *ngIf="reasonRun && assetSelected.isAgent; else assetDetail">
283282
<app-utm-agent-connect
284283
[websocketCommand]="reasonRun"
285284
[asset]="assetSelected"
@@ -289,3 +288,47 @@ <h6 class="card-title text-blue-800 font-weight-light">
289288
</div>
290289
</div>
291290
</div>
291+
292+
<ng-template #assetDetail>
293+
<div class="w-100 d-flex justify-content-start mb-2" *ngIf="assetSelected.displayName">
294+
<span class="text-blue-800 font-weight-light min-w-70px">Name:</span>&nbsp;
295+
{{assetSelected.displayName}}
296+
</div>
297+
<div class="w-100 mb-2" *ngIf="assetSelected.assetMac && assetSelected.assetMac !== ''">
298+
<span class="text-blue-800 font-weight-light min-w-70px">MAC:</span>&nbsp;
299+
<div class="d-flex justify-content-start align-items-center flex-wrap">
300+
<span *ngFor="let card of assetSelected.assetMac.split(',')" class="badge border-blue-800 border-1 mr-1 mb-1 p-1 text-blue-800">
301+
{{card}}
302+
</span>
303+
</div>
304+
</div>
305+
<div class="w-100 d-flex justify-content-start mb-2">
306+
<span class="text-blue-800 font-weight-light min-w-70px">Status:</span>&nbsp;
307+
<span [ngClass]="!assetSelected.status ? 'text-success-800':'text-warning-800'"
308+
class="span-small-icon d-flex justify-content-start align-items-center">
309+
<i [ngClass]="'icon-circle2'" class="mr-2"></i>
310+
{{ !assetSelected.status ? 'ONLINE' : 'OFFLINE' }}
311+
</span>
312+
</div>
313+
<div class="alert-details w-100 d-flex justify-content-start mb-2 ">
314+
<span class="text-blue-800 font-weight-light has-minimum-width">Type:</span>&nbsp;
315+
<app-assets-apply-type *ngIf="assetSelected" [assets]="[assetSelected.id]" [typeFormat]="'icon'"
316+
[type]="assetSelected.assetType" class="ml-2">
317+
</app-assets-apply-type>
318+
</div>
319+
<div class="alert-details w-100 d-flex justify-content-start mb-2 ">
320+
<span class="text-blue-800 font-weight-light has-minimum-width">Group Source:</span>&nbsp;
321+
<app-asset-group-add *ngIf="assetSelected" [assets]="[assetSelected.id]"
322+
[group]="assetSelected.group"
323+
[typeFormat]="'icon'" class="ml-2">
324+
</app-asset-group-add>
325+
</div>
326+
<div class="alert-details w-100 d-flex justify-content-start mb-2 ">
327+
<span class="text-blue-800 font-weight-light has-minimum-width">Comment:</span>&nbsp;
328+
<app-assets-apply-note *ngIf="assetSelected" [asset]="assetSelected" class="ml-2"></app-assets-apply-note>
329+
</div>
330+
<div class="agent-details w-100 d-flex justify-content-start mb-2" *ngIf="assetSelected.lastInput">
331+
<span class="text-blue-800 font-weight-light min-w-70px">Last seen:</span>&nbsp;
332+
{{ assetSelected.lastInput | date }}
333+
</div>
334+
</ng-template>

frontend/src/app/assets-discover/assets-view/assets-view.component.scss

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,3 +13,7 @@
1313
height: 100%;
1414
min-height: 0;
1515
}
16+
17+
.min-w-70px {
18+
min-width: 70px;
19+
}

frontend/src/app/assets-discover/assets-view/assets-view.component.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ import {SortEvent} from '../../shared/directives/sortable/type/sort-event';
1919
import {ChartValueSeparator} from '../../shared/enums/chart-value-separator';
2020
import {ElasticOperatorsEnum} from '../../shared/enums/elastic-operators.enum';
2121
import {IncidentOriginTypeEnum} from '../../shared/enums/incident-response/incident-origin-type.enum';
22-
import {UtmDatePipe} from '../../shared/pipes/date.pipe';
2322
import {IncidentCommandType} from '../../shared/types/incident/incident-command.type';
2423
import {UtmFieldType} from '../../shared/types/table/utm-field.type';
2524
import {TimeFilterType} from '../../shared/types/time-filter.type';
@@ -44,7 +43,7 @@ import {SourceDataTypeConfigComponent} from '../source-data-type-config/source-d
4443
changeDetection: ChangeDetectionStrategy.OnPush
4544
})
4645
export class AssetsViewComponent implements OnInit, OnDestroy {
47-
assets$: Observable<NetScanType[]>;
46+
4847
assets: NetScanType[];
4948
// defaultTime: ElasticFilterDefaultTime = new ElasticFilterDefaultTime('now-30d', 'now');
5049
pageWidth = window.innerWidth;

frontend/src/app/shared/components/utm/util/utm-agent-connect/utm-agent-connect.component.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ export class UtmAgentConnectComponent implements OnInit, OnChanges {
2323
}
2424

2525
ngOnInit() {
26-
console.log('init');
2726
this.hasNoReason = this.websocketCommand.reason === '' || !this.websocketCommand.reason;
2827
}
2928

frontend/src/app/shared/components/utm/util/utm-agent-detail/utm-agent-detail.component.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,6 @@ export class UtmAgentDetailComponent implements OnInit {
2828
this.agentIp = this.agent.ip;
2929
this.ips = this.agent.addresses !== '' ? this.agent.addresses.split(',') : [];
3030
this.macs = this.agent.mac !== '' ? this.agent.mac.split(',') : [];
31-
32-
console.log(this.agent);
3331
}
3432

3533
public getAgentIcon(): string {

0 commit comments

Comments
 (0)