diff --git a/src/app/components/logs-dashboard/logs-home/logs-home.component.html b/src/app/components/logs-dashboard/logs-home/logs-home.component.html index 08f25bda15e908126f6d71c9d519e4f71b4a7f31..16a0e18d2e44df0e5661c7d4faaeb35b6414c89d 100644 --- a/src/app/components/logs-dashboard/logs-home/logs-home.component.html +++ b/src/app/components/logs-dashboard/logs-home/logs-home.component.html @@ -7,7 +7,7 @@ <div class="table"> <div class="header columns is-marginless"> <div class="column is-5 has-text-left"> - <label> Slug/Uuid </label> + <label> Slug/Uuid {{test}} </label> </div> <div class="column is-5 has-text-left"> <label> Session Id </label> @@ -15,7 +15,6 @@ <div class="column is-2 has-text-left"> </div> </div> - <div class="data-list"> <div class="data columns is-multiline is-vcentered is-marginless"> <div class="column is-5 has-text-left"> @@ -25,7 +24,7 @@ <input class="input" type="text" size="45" name="sessionId" [(ngModel)]="sessionId"> </div> <div class="column is-2 has-text-left"> - <a class="button button-gl " [routerLink]="['report', slug, sessionId, 'home']"> + <a class="button button-gl " (click)="uuidDetector(slug)"> <i class="fas fa-search"></i> </a> </div> @@ -38,7 +37,6 @@ <!-- Tabs --> <ul class="tabs-container"> <li *ngFor="let tab of tabs" (click)="tabsToggler(tab.name)" [ngClass]="{'is-active':tab.isActive}"> - <!-- [routerLink]="tab.fullRouterLinkPath" routerLinkActive="is-active" --> <span class="tab-label">{{ tab.name }}</span> </li> </ul> diff --git a/src/app/components/logs-dashboard/logs-home/logs-home.component.ts b/src/app/components/logs-dashboard/logs-home/logs-home.component.ts index c31966ab29503618cbb1472a6dcbef91b2bd2818..fee711b8fc2c1c05b31983f52e189a233f2d3fff 100644 --- a/src/app/components/logs-dashboard/logs-home/logs-home.component.ts +++ b/src/app/components/logs-dashboard/logs-home/logs-home.component.ts @@ -1,6 +1,6 @@ import { Component, OnInit } from '@angular/core'; import { DataLogsService } from 'src/app/services/data-logs.service'; -import { ActivatedRoute, ParamMap } from '@angular/router'; +import { ActivatedRoute, Router, ParamMap } from '@angular/router'; import { ILogs } from 'src/app/models/logs.model'; import { ISimpleTab } from 'src/app/models/basic-tabs.model'; import { IPageHeaderInfo } from 'src/app/models/page.model'; @@ -16,9 +16,10 @@ export class LogsHomeComponent implements OnInit { }; isDashboardDisplayed: boolean = false; uuid: string; + isUuid: boolean = false; allFields: any; sessionId: string; - slug: string; + slug: any; data: any; stepData: ILogs; allStepsData: any; @@ -35,8 +36,9 @@ export class LogsHomeComponent implements OnInit { ]; sessionIdList: [string]; constructor( - private dataLogsService: DataLogsService, - private route: ActivatedRoute, + private _dataLogsService: DataLogsService, + private _route: ActivatedRoute, + private _router: Router, ) { } ngOnInit() { @@ -51,27 +53,8 @@ export class LogsHomeComponent implements OnInit { } - onSubmit() { - this.isDashboardDisplayed = true; - this.isToggled = false; - this.dataLogsService.uuidToSessionId(this.uuid) - .subscribe((result) => { - this.data.uuid = result[0]._id.uuid; - this.data.sessionIdList = result[0].session_id_list; - }, - ); - this.dataLogsService.getAllStepsDuration( - this.uuid, - this.sessionId, - ).subscribe((results) => { - // console.log('results', results); - this.allStepsData = results; - }, - ); - } - getAllUniqueFields() { - this.dataLogsService.getAllUniqueFields().subscribe((result) => { + this._dataLogsService.getAllUniqueFields().subscribe((result) => { this.allFields = result[0]; this.nbSessionId = result[0]['session_id_list'].length; this.nbUuid = result[0]['uuid_list'].length; @@ -93,4 +76,21 @@ export class LogsHomeComponent implements OnInit { } } + uuidDetector(testInput) { + const trimmedTestInput = testInput.trim(); + const regexp = new RegExp('^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$'); + this.isUuid = regexp.test(trimmedTestInput); + if (this.isUuid) { + this.convertUuidToSlugAndNavigate(trimmedTestInput); + } else { + this._router.navigate([this._route, 'report', trimmedTestInput, this.sessionId, 'home']); + } + } + + convertUuidToSlugAndNavigate(uuidInput) { + this._dataLogsService.getSlugFromUuid(uuidInput).subscribe((result) => { + this._router.navigate([this._route, 'report', result, this.sessionId, 'home']); + }, + ); + } } diff --git a/src/app/components/logs-dashboard/logs-sessions/logs-sessions.component.ts b/src/app/components/logs-dashboard/logs-sessions/logs-sessions.component.ts index 6b6a0b31a7186da137522be1d9c65043381d7767..41a1410b1b56129605ea73347e8369d77201a79f 100644 --- a/src/app/components/logs-dashboard/logs-sessions/logs-sessions.component.ts +++ b/src/app/components/logs-dashboard/logs-sessions/logs-sessions.component.ts @@ -1,10 +1,6 @@ import { Component, OnChanges, SimpleChanges, Input } from '@angular/core'; import { DataLogsService } from 'src/app/services/data-logs.service'; import { PaginatorOptions } from 'src/app/models/paginator-options.model'; -import { ActivatedRoute, ParamMap } from '@angular/router'; -import { switchMap } from 'rxjs/operators'; -import { ILogs } from 'src/app/models/logs.model'; -import { FormsModule } from '@angular/forms'; import { Subscription } from 'rxjs'; @Component({ diff --git a/src/app/components/logs-dashboard/logs-slugs/logs-slugs.component.ts b/src/app/components/logs-dashboard/logs-slugs/logs-slugs.component.ts index d6068cad6a24a0677b9d93cc16efaed636b8bce0..e47fb2e202f49c20c0f3a61f3480ad496ae42a42 100644 --- a/src/app/components/logs-dashboard/logs-slugs/logs-slugs.component.ts +++ b/src/app/components/logs-dashboard/logs-slugs/logs-slugs.component.ts @@ -1,10 +1,6 @@ import { Component, OnChanges, SimpleChanges, Input } from '@angular/core'; import { DataLogsService } from 'src/app/services/data-logs.service'; import { PaginatorOptions } from 'src/app/models/paginator-options.model'; -import { ActivatedRoute, ParamMap } from '@angular/router'; -import { switchMap } from 'rxjs/operators'; -import { ILogs } from 'src/app/models/logs.model'; -import { FormsModule } from '@angular/forms'; import { Subscription } from 'rxjs'; @Component({ diff --git a/src/app/components/logs-dashboard/report/logs-error/logs-error.component.ts b/src/app/components/logs-dashboard/report/logs-error/logs-error.component.ts index 0928ae00de229825e7b6021f922fe4e52d8e4bc3..6cbd7cea91fb77043f5b6793c20be66514b6af60 100644 --- a/src/app/components/logs-dashboard/report/logs-error/logs-error.component.ts +++ b/src/app/components/logs-dashboard/report/logs-error/logs-error.component.ts @@ -1,9 +1,7 @@ import { Component, OnChanges, SimpleChanges, Input } from '@angular/core'; import { DataLogsService } from 'src/app/services/data-logs.service'; -import { ActivatedRoute, ParamMap } from '@angular/router'; -import { switchMap } from 'rxjs/operators'; +import { ActivatedRoute } from '@angular/router'; import { ILogs } from 'src/app/models/logs.model'; -import { FormsModule } from '@angular/forms'; import { PaginatorOptions } from 'src/app/models/paginator-options.model'; import { Subscription } from 'rxjs'; diff --git a/src/app/components/logs-dashboard/report/logs-graph/logs-graph.component.html b/src/app/components/logs-dashboard/report/logs-graph/logs-graph.component.html index 0ed76e43bb3f417d7aa775c9e8a47a557310a6b6..a5eb9c18c9c20dbb2c6c4e4c54f92863872e2391 100644 --- a/src/app/components/logs-dashboard/report/logs-graph/logs-graph.component.html +++ b/src/app/components/logs-dashboard/report/logs-graph/logs-graph.component.html @@ -2,18 +2,16 @@ <div> <div class="section"> <div class="graph-component"> - + <h3>{{errorMessage}}</h3> <a class="button button-gl is-centered" (click)="replotGraph()"> Reload Chart </a> <div class="columns is-centered"> <div class="graph-div-canvas"> - <canvas id="graphCanvas">{{ chart }}</canvas> - </div> </div> </div> </div> </div> -</ng-container> +</ng-container> \ No newline at end of file diff --git a/src/app/components/logs-dashboard/report/logs-graph/logs-graph.component.ts b/src/app/components/logs-dashboard/report/logs-graph/logs-graph.component.ts index c03790bebb1612fe6412eaedb62a19f63df1b9da..20df23377d9d440576b99fc7695c84678f204fc2 100644 --- a/src/app/components/logs-dashboard/report/logs-graph/logs-graph.component.ts +++ b/src/app/components/logs-dashboard/report/logs-graph/logs-graph.component.ts @@ -1,10 +1,6 @@ import { Component, OnChanges, SimpleChanges, Input } from '@angular/core'; import { Chart } from 'chart.js'; import { DataLogsService } from 'src/app/services/data-logs.service'; -import { ActivatedRoute, ParamMap } from '@angular/router'; -import { switchMap } from 'rxjs/operators'; -import { ILogs } from 'src/app/models/logs.model'; -import { FormsModule } from '@angular/forms'; @Component({ selector: 'app-logs-graph', @@ -23,6 +19,7 @@ export class LogsGraphComponent implements OnChanges { dataset: any; xValues: any; yValues: any; + errorMessage: string = ''; constructor( private dataLogsService: DataLogsService, @@ -120,7 +117,12 @@ export class LogsGraphComponent implements OnChanges { } getData() { this.dataLogsService.getData(this.childUuid, this.childSessionId).subscribe((results) => { - console.log(results); + try { + const dataLenght = results[0].lenght; + } catch (e) { + this.errorMessage = 'No values for this slug and sessionId'; + console.log(this.errorMessage, e); + } this.graphData = results; this.getXYValuesFromData(); this.plotGraph(); diff --git a/src/app/components/logs-dashboard/report/logs-info/logs-info.component.ts b/src/app/components/logs-dashboard/report/logs-info/logs-info.component.ts index e31dae601ece2609e2ead9224b117a0e137d037d..b9caf070e41aeb3541c673e40f67e71aa52c502d 100644 --- a/src/app/components/logs-dashboard/report/logs-info/logs-info.component.ts +++ b/src/app/components/logs-dashboard/report/logs-info/logs-info.component.ts @@ -1,9 +1,7 @@ import { Component, OnChanges, SimpleChanges, Input } from '@angular/core'; import { DataLogsService } from 'src/app/services/data-logs.service'; -import { ActivatedRoute, ParamMap } from '@angular/router'; -import { switchMap } from 'rxjs/operators'; +import { ActivatedRoute } from '@angular/router'; import { ILogs } from 'src/app/models/logs.model'; -import { FormsModule } from '@angular/forms'; import { PaginatorOptions } from 'src/app/models/paginator-options.model'; import { Subscription } from 'rxjs'; diff --git a/src/app/components/logs-dashboard/report/logs-pre-report/logs-pre-report.component.ts b/src/app/components/logs-dashboard/report/logs-pre-report/logs-pre-report.component.ts index 74f35f8d76a75c6bbe50429a3793b527e4ab4523..b43ec9b25c4173793c9c3c598ea87e39c0c13dcc 100644 --- a/src/app/components/logs-dashboard/report/logs-pre-report/logs-pre-report.component.ts +++ b/src/app/components/logs-dashboard/report/logs-pre-report/logs-pre-report.component.ts @@ -2,7 +2,6 @@ import { Component, OnInit } from '@angular/core'; import { ActivatedRoute, ParamMap, Router } from '@angular/router'; import { FormBuilder, FormGroup, Validators } from '@angular/forms'; import { filter, switchMap } from 'rxjs/operators'; -import { Format } from 'src/app/models/format.model'; import { DataLogsService } from 'src/app/services/data-logs.service'; import { IPageHeaderInfo } from 'src/app/models/page.model'; import { PaginatorOptions } from 'src/app/models/paginator-options.model'; diff --git a/src/app/components/logs-dashboard/report/logs-report/logs-report.component.html b/src/app/components/logs-dashboard/report/logs-report/logs-report.component.html index 3bc7924e14f89fe17d37433ace3228d533a6bbee..49dd0cadd7122de8d26cf71d4879715f3bd8e68e 100644 --- a/src/app/components/logs-dashboard/report/logs-report/logs-report.component.html +++ b/src/app/components/logs-dashboard/report/logs-report/logs-report.component.html @@ -10,7 +10,10 @@ <span class="tab-label">{{ tab.name }}</span> </li> </ul> + <div> + <h2>{{errorMessage}}</h2> + </div> <app-logs-graph [hidden]="!isToggled" [childUuid]="uuid" [childSessionId]="sessionId" [childSlug]="slug"> </app-logs-graph> <app-logs-info [hidden]="isToggled||isToggled==undefined" [childUuid]="uuid" [childSessionId]="sessionId" diff --git a/src/app/components/logs-dashboard/report/logs-report/logs-report.component.ts b/src/app/components/logs-dashboard/report/logs-report/logs-report.component.ts index 7a87faf32f138390f8ec84736c7e0cf19aecebfd..684e2d212aa244b410331caa262f9b51d15253bc 100644 --- a/src/app/components/logs-dashboard/report/logs-report/logs-report.component.ts +++ b/src/app/components/logs-dashboard/report/logs-report/logs-report.component.ts @@ -1,8 +1,6 @@ import { Component, OnInit } from '@angular/core'; import { ActivatedRoute, ParamMap, Router } from '@angular/router'; import { FormBuilder, FormGroup, Validators } from '@angular/forms'; -import { filter, switchMap } from 'rxjs/operators'; -import { Format } from 'src/app/models/format.model'; import { DataLogsService } from 'src/app/services/data-logs.service'; import { IPageHeaderInfo } from 'src/app/models/page.model'; import { ISimpleTab } from 'src/app/models/basic-tabs.model'; @@ -17,18 +15,19 @@ export class LogsReportComponent implements OnInit { title: 'Data-Logs Report', }; responseArray: any = []; + errorMessage: string = ''; isToggled: boolean = true; form: FormGroup; title: string; - slug: string ; - uuid:string; + slug: string; + uuid: string; sessionId: string; - serviceName:string; + serviceName: string; nbObjects: number = 0; urlCode: string = ''; - isSession:boolean = false; + isSession: boolean = false; previousUrl: string; - tabs: ISimpleTab[] = [ + tabs: ISimpleTab[] = [ { name: 'Graph', isActive: true, @@ -68,8 +67,12 @@ export class LogsReportComponent implements OnInit { getUuidFromSlug(slug) { this._dataLogsService.getUuidFromSlug(slug).subscribe((result) => { - // console.log(result[0]); - this.uuid = result[0].uuid_list[0]; + try { + this.uuid = result[0].uuid_list[0]; + } catch (e) { + this.errorMessage = 'No uuid for this slug'; + console.log(this.errorMessage, e); + } }, ); } diff --git a/src/app/services/data-logs.service.ts b/src/app/services/data-logs.service.ts index 81550bed3a7dfab4b7efb6413efc81753d04d788..7c3815695553920376c472d6ca17b8afa914dcbf 100644 --- a/src/app/services/data-logs.service.ts +++ b/src/app/services/data-logs.service.ts @@ -153,6 +153,16 @@ export class DataLogsService { ); } + getSlugFromUuid(uuid): Observable<any[]> { + const query = { uuid }; + const stringQuery = JSON.stringify(query); + const aggregationEndPoint = '/_aggrs/uuidToSlug?avars='; + return this._httpClient.get<any[]>(this.resourceServiceUrl + aggregationEndPoint + stringQuery).pipe( + map((response) => { + return response[0]['slug_list'][0]; + }), + ); + } getSessionIdFromSlug(slug): Observable<any[]> { const query = { slug }; const stringQuery = JSON.stringify(query);