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 99a4334f6f941c177c17682cb4c66de3ce178079..d23473f3e0eff48a8a3516db46a8e2386b071194 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 @@ -58,7 +58,6 @@ <div class="column has-text-centered is-marginless"> <app-logs-sessions [hidden]="isToggled" [childSessionId]="sessionId" [childNbSessions]="nbSessionId"> </app-logs-sessions> - <app-logs-slugs [hidden]="!isToggled" [childSlugsList]="allFields.slug_list" [childNbSlugs]="nbSlug" - [childNbUuids]="nbUuid"></app-logs-slugs> + <app-logs-slugs [hidden]="!isToggled"></app-logs-slugs> </div> </div> \ No newline at end of file diff --git a/src/app/components/logs-dashboard/logs-slugs/logs-slugs.component.html b/src/app/components/logs-dashboard/logs-slugs/logs-slugs.component.html index 20afa7611e8df01fa0adf3b962cc2dcfee842fe5..637c51660fb922eab371ec738dba7d296e6e98ae 100644 --- a/src/app/components/logs-dashboard/logs-slugs/logs-slugs.component.html +++ b/src/app/components/logs-dashboard/logs-slugs/logs-slugs.component.html @@ -5,93 +5,95 @@ <div class="column has-text-left"> <div class="columns is-centered is-marginless"> <div class="column has-text-left"> - <h2>{{ childNbSlugs -1 }} slug(s) trouvé(s)</h2> + <h2>{{childNbSlugs}} slug(s) trouvé(s)</h2> </div> </div> </div> </div> - <div class="table entity-list-table"> <div class="header columns is-marginless"> - <div class="column is-4 has-text-centered"> - <span class="is-sortable"> - <span class="sort-icons"> - <span class="icon"> - <i class="fas fa-sort-up"></i> - </span> - <span class="icon"> - <i class="fas fa-sort-down"></i> - </span> - </span> - <span class="column-title">Slugs</span> + <div class="column is-3 has-text-centered"> + <span class="is-sortable"> + <span class="sort-icons"> + <span class="icon"> + <i class="fas fa-sort-up"></i> </span> + <span class="icon"> + <i class="fas fa-sort-down"></i> + </span> + </span> + <span class="column-title">Slugs</span> + </span> </div> - <div class="column is-1 has-text-left"> - <span class="column-title">Uuids</span> + <div class="column is-2 has-text-left"> + <span class="column-title">Nb of Sessions</span> </div> <div class="column is-2 has-text-left"> - <span class="is-sortable"> - <span class="sort-icons"> - <span class="icon"> - <i class="fas fa-sort-up"></i> - </span> - <span class="icon"> - <i class="fas fa-sort-down"></i> - </span> - </span> - <span class="column-title">Completion Date</span> + <span class="is-sortable"> + <span class="sort-icons"> + <span class="icon"> + <i class="fas fa-sort-up"></i> </span> + <span class="icon"> + <i class="fas fa-sort-down"></i> + </span> + </span> + <span class="column-title">Completion Date</span> + </span> </div> <div class="column is-2 has-text-left"> - <span class="is-sortable"> - <span class="sort-icons"> - <span class="icon"> - <i class="fas fa-sort-up"></i> - </span> - <span class="icon"> - <i class="fas fa-sort-down"></i> - </span> - </span> - <span class="column-title">Duration</span> - </span> </div> + <span class="is-sortable"> + <span class="sort-icons"> + <span class="icon"> + <i class="fas fa-sort-up"></i> + </span> + <span class="icon"> + <i class="fas fa-sort-down"></i> + </span> + </span> + <span class="column-title">Duration (min)</span> + </span> </div> <div class="column is-1 has-text-left"> - <span class="is-sortable"> - <span class="sort-icons"> - <span class="icon"> - <i class="fas fa-sort-up"></i> - </span> - <span class="icon"> - <i class="fas fa-sort-down"></i> - </span> - </span> - <span class="column-title">Errors?</span> + <span class="is-sortable"> + <span class="sort-icons"> + <span class="icon"> + <i class="fas fa-sort-up"></i> + </span> + <span class="icon"> + <i class="fas fa-sort-down"></i> </span> + </span> + <span class="column-title">Errors?</span> + </span> </div> <div class="column is-1 has-text-left"> <span class="column-title"></span> </div> </div> <div class="data-list"> - <div *ngFor="let slug of allSessionsIdInfo; let i=index; let odd=odd; let even=even;" - > - <div class="data columns is-multiline is-vcentered is-marginless" *ngIf="slug._id.slug" [ngClass]="{ odd: odd, even: even }"> - <div class="column is-4 has-text-left"> - {{slug._id.slug}} <br> uuid: {{slug.uuid_list[0]}} + <div *ngFor="let slug of allSlugsInfoList; let i=index; let odd=odd; let even=even;"> + <div class="data columns is-multiline is-vcentered is-marginless" *ngIf="slug._id.slug" + [ngClass]="{ odd: odd, even: even }"> + <div class="column is-3 has-text-left"> + {{slug._id.slug}} <br> + <div class="small-text"> + <p>{{slug._id.uuid}}</p> + </div> </div> - <div class="column is-1 has-text-left"> - <!-- {{ format.mapServerType}} --> + <div class="column is-2 has-text-left"> + {{slug.data.length}} </div> <div class="column is-2 has-text-left"> - <span class="column-title">Completion Date</span> + {{slug.data[0].completionDate.$date}} </div> <div class="column is-2 has-text-left"> - <span class="column-title"></span> + {{slug.data[0].duration }} </div> <div class="column is-1 has-text-left actions"> - + {{slug.data[0].count[0].count}} </div> <div class="column is-1 has-text-left actions"> - <a class="button button-gl is-left" [routerLink]="['preReport','slug', slug]"> + <a class="button button-gl is-left" [routerLink]="['preReport', 'slug', slug._id.slug]"> <i class="fas fa-eye"></i> </a> </div> diff --git a/src/app/components/logs-dashboard/logs-slugs/logs-slugs.component.scss b/src/app/components/logs-dashboard/logs-slugs/logs-slugs.component.scss index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..42584e53d0a3af06a2d2db0f7b99a91fac87511b 100644 --- a/src/app/components/logs-dashboard/logs-slugs/logs-slugs.component.scss +++ b/src/app/components/logs-dashboard/logs-slugs/logs-slugs.component.scss @@ -0,0 +1,6 @@ +@import "../../../../scss/variables.scss"; +@import "../../../../../node_modules/bulma/sass/utilities/_all.sass"; + +.small-text{ + font-size:0.8em; +} \ No newline at end of file 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 fd5669e75539dee1cf875b680a175ed7893c3181..593c57a604b3dbc8a2260b19aec7760ca64e5a98 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 @@ -10,45 +10,41 @@ import { FormsModule } from '@angular/forms'; styleUrls: ['./logs-slugs.component.scss'], }) export class LogsSlugsComponent implements OnInit { - // @Input() childSessionId: string; - // @Input() childSessionsList: []; - @Input() childSlugsList: any; - @Input() childNbSlugs: any; - @Input() childNbUuids: any; urlCode: string = 'slugUrl'; - + allSlugsInfoList:any = []; allSessionsIdInfo:any = []; childSessionsList: any; + childNbSlugs: number = 0; constructor( private dataLogsService: DataLogsService, ) { } ngOnInit() { - this.childSlugsList = []; - this.childSessionsList = []; - this.getAllUniqueFields(); + this.allSlugsInfoList = []; + this.getAllInfoForAllSlugs(); } - getUuidFromSlug (slug) { - this.dataLogsService.getUuidFromSlug(slug).subscribe((result) => { - console.log('slug to uuid', result[0]); - this.allSessionsIdInfo.push(result[0]); + getAllInfoForAllSlugs() { + this.dataLogsService.getAllInfoForAllSlugs().subscribe((result) => { + this.allSlugsInfoList = result; + this.childNbSlugs = result.length; + console.log('allSlugsInfoList: ', this.allSlugsInfoList); + this.computeDateDuration(); }, ); + } - getAllUniqueFields() { - this.dataLogsService.getAllUniqueFields().subscribe((result) => { - this.childSlugsList = result[0]['slug_list']; - for (let i = 0; i < this.childNbSlugs; i += 1) { - this.getUuidFromSlug(this.childSlugsList[i]); + computeDateDuration() { + for (let i = 0; i < this.childNbSlugs; i += 1) { + for (let j = 0; j < this.allSlugsInfoList[i].data.length; j += 1) { + const date1 = new Date(this.allSlugsInfoList[i].data[j].completionDate.$date); + const date2 = new Date(this.allSlugsInfoList[i].data[j].startDate.$date); + this.allSlugsInfoList[i].data[j].duration = + Math.round((this.allSlugsInfoList[i].data[j].completionDate.$date - this.allSlugsInfoList[i].data[j].startDate.$date) / 60000); + this.allSlugsInfoList[i].data[j].completionDate.$date = new Date(this.allSlugsInfoList[i].data[j].completionDate.$date); } - // console.log('allSessionsIdInfo: ', this.allSessionsIdInfo); - }, - ); - } - getAllInfoForAllSlugs() { - + } } seeDashboard() {} } diff --git a/src/app/components/logs-dashboard/report/logs-pre-report/logs-pre-report.component.html b/src/app/components/logs-dashboard/report/logs-pre-report/logs-pre-report.component.html index 1f323673884a0abc91bcb133f21254faee8a616d..288af878f576ee2277ee8c834ba2108f58a4ba9f 100644 --- a/src/app/components/logs-dashboard/report/logs-pre-report/logs-pre-report.component.html +++ b/src/app/components/logs-dashboard/report/logs-pre-report/logs-pre-report.component.html @@ -122,7 +122,7 @@ <div class="columns is-centered is-marginless"> <div class="column has-text-left"> - <h2>{{ nbObjects -1 }} slug(s) trouvé(s)</h2> + <h2>{{nbObjects}} slug(s) trouvé(s)</h2> <!-- <h2>{{ childNbUuids }} uuid trouvées</h2> --> @@ -132,93 +132,105 @@ </div> <div class="table entity-list-table"> - <div class="header columns is-marginless"> - <div class="column is-4 has-text-centered"> - <span (click)="sortBy('name')" class="is-sortable"> - <span class="column-title">Slugs</span> - <p></p> - </span> - </div> - <div class="column is-1 has-text-centered"> - <span class="column-title">Uuids</span> - </div> - <div class="column is-2 has-text-centered"> + <div class="header columns is-marginless"> + <div class="column is-3 has-text-centered"> <span class="is-sortable"> - <span class="sort-icons"> - <span class="icon"> - <i class="fas fa-sort-up"></i> - </span> - <span class="icon"> - <i class="fas fa-sort-down"></i> - </span> + <span class="sort-icons"> + <span class="icon"> + <i class="fas fa-sort-up"></i> + </span> + <span class="icon"> + <i class="fas fa-sort-down"></i> </span> - <span class="column-title">Completion Date</span> </span> - </div> - <div class="column is-2 has-text-centered"> + <span class="column-title">Slugs</span> + </span> + </div> + <div class="column is-2 has-text-left"> + <span class="column-title">Nb of Sessions</span> + </div> + <div class="column is-2 has-text-left"> <span class="is-sortable"> - <span class="sort-icons"> - <span class="icon"> - <i class="fas fa-sort-up"></i> - </span> - <span class="icon"> - <i class="fas fa-sort-down"></i> - </span> + <span class="sort-icons"> + <span class="icon"> + <i class="fas fa-sort-up"></i> + </span> + <span class="icon"> + <i class="fas fa-sort-down"></i> </span> - <span class="column-title">Duration</span> </span> - </div> - <div class="column is-1 has-text-centered"> + <span class="column-title">Completion Date</span> + </span> + </div> + <div class="column is-2 has-text-left"> <span class="is-sortable"> - <span class="sort-icons"> - <span class="icon"> - <i class="fas fa-sort-up"></i> - </span> - <span class="icon"> - <i class="fas fa-sort-down"></i> - </span> + <span class="sort-icons"> + <span class="icon"> + <i class="fas fa-sort-up"></i> + </span> + <span class="icon"> + <i class="fas fa-sort-down"></i> </span> - <span class="column-title">Errors?</span> </span> - </div> - <div class="column is-1 has-text-centered"> - <span class="column-title"></span> - </div> - </div> - <div class="data-list" *ngFor="let slug of responseArray.slug_list; let i=index;let odd=odd; let even=even;" [ngClass]="{ odd: odd, even: even }"> - <div class="data columns is-multiline is-vcentered is-marginless" *ngIf="slug"> - <div class="column is-4 has-text-centered"> - {{ slug }} - </div> - <div class="column is-1 has-text-centered"> - <!-- {{ format.mapServerType}} --> - </div> - <div class="column is-2 has-text-centered"> - <span class="column-title">Completion Date</span> + <span class="column-title">Duration (min)</span> + </span> </div> + <div class="column is-1 has-text-left"> + <span class="is-sortable"> + <span class="sort-icons"> + <span class="icon"> + <i class="fas fa-sort-up"></i> + </span> + <span class="icon"> + <i class="fas fa-sort-down"></i> + </span> + </span> + <span class="column-title">Errors?</span> + </span> </div> - <div class="column is-2 has-text-centered"> + <div class="column is-1 has-text-left"> <span class="column-title"></span> </div> - <div class="column is-1 has-text-centered actions"> - - </div> - <div class="column is-1 actions"> - <a class="button button-gl " [routerLink]="['../../../../datalogs/report', slug, id, 'session']"> - <i class="fas fa-eye"></i> - </a> - </div> </div> - <div class="columns is-marginless"> - <div class="column"> - <!-- <app-paginator *ngIf="paginator.length > 0" [length]="paginator.length" [pageSize]="paginator.limit" + <div class="data-list"> + <div *ngFor="let slug of allSlugsInfoList; let i=index; let odd=odd; let even=even;"> + <div class="data columns is-multiline is-vcentered is-marginless" *ngIf="slug._id.slug" + [ngClass]="{ odd: odd, even: even }"> + <div class="column is-3 has-text-left"> + {{slug._id.slug}} <br> + <div class="small-text"> + <p>{{slug._id.uuid}}</p> + </div> + </div> + <div class="column is-2 has-text-left"> + {{slug.data.length}} + </div> + <div class="column is-2 has-text-left"> + {{slug.data[0].completionDate.$date}} + </div> + <div class="column is-2 has-text-left"> + {{slug.data[0].duration }} + </div> + <div class="column is-1 has-text-left actions"> + {{slug.data[0].count[0].count}} + </div> + <div class="column is-1 has-text-left actions"> + <a class="button button-gl is-left" [routerLink]="['/','datalogs','report', slug._id.slug, id, 'session']"> + <i class="fas fa-eye"></i> + </a> + </div> + </div> + </div> + <div class="columns is-marginless"> + <div class="column"> + <!-- <app-paginator *ngIf="paginator.length > 0" [length]="paginator.length" [pageSize]="paginator.limit" [pageSizeOptions]="paginator.pageSizeOptions" [pageIndex]="paginator.pageIndex" [pagesToShow]="5" [showFirstLastButtons]="true" (page)="changePagination($event)" (pageSizeChanged)="changePageSize($event)"> </app-paginator> --> + </div> </div> </div> </div> - </div> </div> </div> </div> diff --git a/src/app/components/logs-dashboard/report/logs-pre-report/logs-pre-report.component.scss b/src/app/components/logs-dashboard/report/logs-pre-report/logs-pre-report.component.scss index 0d8923b0348a24a396f4f5cd0dfcaa42e769518e..cef87095f4bc3d6c48f7e83f5c3214c53e21b07e 100644 --- a/src/app/components/logs-dashboard/report/logs-pre-report/logs-pre-report.component.scss +++ b/src/app/components/logs-dashboard/report/logs-pre-report/logs-pre-report.component.scss @@ -1,3 +1,9 @@ +@import "../../../../../scss/variables.scss"; +@import "../../../../../../node_modules/bulma/sass/utilities/_all.sass"; + +.small-text{ + font-size:0.8em; +} .full-width { width: 100%; } 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 8daa6fb0c5c663731e49583c52bb3af1e9f05cec..bf1b4d48971099da9b929ca5fb6cc205e5469c75 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 @@ -24,6 +24,8 @@ export class LogsPreReportComponent implements OnInit { serviceName:string; nbObjects: number = 0; isSession:boolean = false; + allSlugsInfoList:any = []; + oneTempSlugsInfo:any = []; constructor( private _dataLogsService: DataLogsService, @@ -53,6 +55,8 @@ export class LogsPreReportComponent implements OnInit { this.responseArray = response[0]; if (this.type === 'session') { this.nbObjects = response[0].slug_list.length; + console.log('response[0]', response[0]); + this.completeAllSlugsInfos(response[0].slug_list); } else { this.nbObjects = response[0].session_id_list.length; } @@ -61,5 +65,40 @@ export class LogsPreReportComponent implements OnInit { }); } + completeAllSlugsInfos(slugList) { + this.allSlugsInfoList = []; + this.oneTempSlugsInfo = []; + for (let i = 0; i < slugList.length; i += 1) { + console.log('slugList[i]', slugList[i]); + this.getAllInfoForOneSlug(slugList[i]); + } + } + getAllInfoForOneSlug(slug) { + this._dataLogsService.getAllInfoForOneSlugs(slug).subscribe((result) => { + console.log('result[0]', result[0]); + for (let j = 0; j < result[0].data.length; j += 1) { + const date1 = new Date(result[0].data[j].completionDate.$date); + const date2 = new Date(result[0].data[j].startDate.$date); + result[0].data[j].duration = + Math.round((result[0].data[j].completionDate.$date - result[0].data[j].startDate.$date) / 60000); + result[0].data[j].completionDate.$date = new Date(result[0].data[j].completionDate.$date); + } + this.allSlugsInfoList.push(result[0]) ; + }, + ); + + } + + // computeDateDuration() { + // for (let i = 0; i < this.nbObjects; i += 1) { + // for (let j = 0; j < this.allSlugsInfoList[i].data.length; j += 1) { + // const date1 = new Date(this.allSlugsInfoList[i].data[j].completionDate.$date); + // const date2 = new Date(this.allSlugsInfoList[i].data[j].startDate.$date); + // this.allSlugsInfoList[i].data[j].duration = + // Math.round((this.allSlugsInfoList[i].data[j].completionDate.$date - this.allSlugsInfoList[i].data[j].startDate.$date) / 60000); + // this.allSlugsInfoList[i].data[j].completionDate.$date = new Date(this.allSlugsInfoList[i].data[j].completionDate.$date); + // } + // } + // } } diff --git a/src/app/services/data-logs.service.ts b/src/app/services/data-logs.service.ts index 5875ec0c1675a3b4de697a4e8a132d06daeb2245..761cf8c3bd814908d8f18f21c078493a55a33931 100644 --- a/src/app/services/data-logs.service.ts +++ b/src/app/services/data-logs.service.ts @@ -55,6 +55,26 @@ export class DataLogsService { }), ); } + getAllInfoForAllSlugs(): Observable<any[]> { + const aggregationEndPoint = '/_aggrs/allFullSlugAggr'; + return this._httpClient.get<any[]>(this.resourceServiceUrl + aggregationEndPoint).pipe( + map((response) => { + return response; + }), + ); + } + + getAllInfoForOneSlugs(slug): Observable<any[]> { + const query = { slug }; + const stringQuery = JSON.stringify(query); + const aggregationEndPoint = '/_aggrs/oneFullSlugAggr?avars='; + return this._httpClient.get<any[]>(this.resourceServiceUrl + aggregationEndPoint + stringQuery).pipe( + map((response) => { + return response; + }), + ); + } + getData(thisUuid, sessionId): Observable<any[]> { const query = { uuid: thisUuid, session_id: sessionId }; const stringQuery = JSON.stringify(query);