refs #1518. Add progress bar to task logs component and update styles for better UX
testing/ogGui-multibranch/pipeline/head This commit looks good
Details
testing/ogGui-multibranch/pipeline/head This commit looks good
Details
parent
ee37287f9e
commit
7698be2bca
|
@ -41,6 +41,7 @@ import { EditOrganizationalUnitComponent } from './components/groups/shared/orga
|
||||||
import { EditClientComponent } from './components/groups/shared/clients/edit-client/edit-client.component';
|
import { EditClientComponent } from './components/groups/shared/clients/edit-client/edit-client.component';
|
||||||
import { ClassroomViewComponent } from './components/groups/shared/classroom-view/classroom-view.component';
|
import { ClassroomViewComponent } from './components/groups/shared/classroom-view/classroom-view.component';
|
||||||
import { MatProgressSpinner } from "@angular/material/progress-spinner";
|
import { MatProgressSpinner } from "@angular/material/progress-spinner";
|
||||||
|
import { MatProgressBarModule } from '@angular/material/progress-bar';
|
||||||
import { MatMenu, MatMenuItem, MatMenuTrigger } from "@angular/material/menu";
|
import { MatMenu, MatMenuItem, MatMenuTrigger } from "@angular/material/menu";
|
||||||
import {MatAutocomplete, MatAutocompleteTrigger} from "@angular/material/autocomplete";
|
import {MatAutocomplete, MatAutocompleteTrigger} from "@angular/material/autocomplete";
|
||||||
import { MatChip, MatChipListbox, MatChipOption, MatChipSet, MatChipsModule } from "@angular/material/chips";
|
import { MatChip, MatChipListbox, MatChipOption, MatChipSet, MatChipsModule } from "@angular/material/chips";
|
||||||
|
@ -236,6 +237,7 @@ export function HttpLoaderFactory(http: HttpClient) {
|
||||||
MatDialogModule,
|
MatDialogModule,
|
||||||
MatSelectModule,
|
MatSelectModule,
|
||||||
MatDividerModule,
|
MatDividerModule,
|
||||||
|
MatProgressBarModule,
|
||||||
MatStepperModule,
|
MatStepperModule,
|
||||||
DragDropModule,
|
DragDropModule,
|
||||||
MatSlideToggleModule, MatMenu, MatMenuTrigger, MatMenuItem, MatAutocomplete, MatChipListbox, MatChipOption, MatChipSet, MatChipsModule, MatChip, MatProgressSpinner, MatTabGroup, MatTab, MatTooltip,
|
MatSlideToggleModule, MatMenu, MatMenuTrigger, MatMenuItem, MatAutocomplete, MatChipListbox, MatChipOption, MatChipSet, MatChipsModule, MatChip, MatProgressSpinner, MatTabGroup, MatTab, MatTooltip,
|
||||||
|
|
|
@ -61,6 +61,12 @@ table {
|
||||||
box-shadow: 0px 0px 0px rgba(0, 0, 0, 0.2);
|
box-shadow: 0px 0px 0px rgba(0, 0, 0, 0.2);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.progress-container {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
.paginator-container {
|
.paginator-container {
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: end;
|
justify-content: end;
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
</button>
|
</button>
|
||||||
|
|
||||||
<div class="header-container-title">
|
<div class="header-container-title">
|
||||||
<h2 class="title" joyrideStep="titleStep" text="{{ 'titleStepText' | translate }}">{{ 'adminCommandsTitle' |
|
<h2 joyrideStep="titleStep" text="{{ 'titleStepText' | translate }}">{{ 'adminCommandsTitle' |
|
||||||
translate }}</h2>
|
translate }}</h2>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -64,20 +64,28 @@
|
||||||
<ng-container [ngSwitch]="column.columnDef">
|
<ng-container [ngSwitch]="column.columnDef">
|
||||||
<!-- Caso para "status" -->
|
<!-- Caso para "status" -->
|
||||||
<ng-container *ngSwitchCase="'status'">
|
<ng-container *ngSwitchCase="'status'">
|
||||||
<mat-chip [ngClass]="{
|
<ng-container *ngIf="trace.status === 'in-progress'; else statusChip">
|
||||||
'chip-failed': trace.status === 'failed',
|
<div class="progress-container">
|
||||||
'chip-success': trace.status === 'success',
|
<mat-progress-bar class="example-margin" [mode]="mode" [value]="progress" [bufferValue]="bufferValue">
|
||||||
'chip-pending': trace.status === 'pending',
|
</mat-progress-bar>
|
||||||
'chip-in-progress': trace.status === 'in-progress'
|
<span>{{progress}}%</span>
|
||||||
}">
|
</div>
|
||||||
{{
|
</ng-container>
|
||||||
|
<ng-template #statusChip>
|
||||||
|
<mat-chip [ngClass]="{
|
||||||
|
'chip-failed': trace.status === 'failed',
|
||||||
|
'chip-success': trace.status === 'success',
|
||||||
|
'chip-pending': trace.status === 'pending',
|
||||||
|
'chip-in-progress': trace.status === 'in-progress'
|
||||||
|
}">
|
||||||
|
{{
|
||||||
trace.status === 'failed' ? 'Fallido' :
|
trace.status === 'failed' ? 'Fallido' :
|
||||||
trace.status === 'success' ? 'Finalizado con éxito' :
|
trace.status === 'success' ? 'Finalizado con éxito' :
|
||||||
trace.status === 'pending' ? 'Pendiente de ejecutar' :
|
trace.status === 'pending' ? 'Pendiente de ejecutar' :
|
||||||
trace.status === 'in-progress' ? 'Ejecutando' :
|
trace.status
|
||||||
trace.status
|
}}
|
||||||
}}
|
</mat-chip>
|
||||||
</mat-chip>
|
</ng-template>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
<!-- Caso para "input" con modal -->
|
<!-- Caso para "input" con modal -->
|
||||||
|
@ -106,4 +114,4 @@
|
||||||
<mat-paginator [length]="length" [pageSize]="itemsPerPage" [pageIndex]="page" [pageSizeOptions]="pageSizeOptions"
|
<mat-paginator [length]="length" [pageSize]="itemsPerPage" [pageIndex]="page" [pageSizeOptions]="pageSizeOptions"
|
||||||
(page)="onPageChange($event)">
|
(page)="onPageChange($event)">
|
||||||
</mat-paginator>
|
</mat-paginator>
|
||||||
</div>
|
</div>
|
|
@ -5,8 +5,9 @@ import { FormControl } from '@angular/forms';
|
||||||
import { map, startWith } from 'rxjs/operators';
|
import { map, startWith } from 'rxjs/operators';
|
||||||
import { DatePipe } from '@angular/common';
|
import { DatePipe } from '@angular/common';
|
||||||
import { JoyrideService } from 'ngx-joyride';
|
import { JoyrideService } from 'ngx-joyride';
|
||||||
import {MatDialog} from "@angular/material/dialog";
|
import { MatDialog } from "@angular/material/dialog";
|
||||||
import {InputDialogComponent} from "./input-dialog/input-dialog.component";
|
import { InputDialogComponent } from "./input-dialog/input-dialog.component";
|
||||||
|
import { ProgressBarMode, MatProgressBarModule } from '@angular/material/progress-bar';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-task-logs',
|
selector: 'app-task-logs',
|
||||||
|
@ -25,6 +26,9 @@ export class TaskLogsComponent implements OnInit {
|
||||||
loading: boolean = true;
|
loading: boolean = true;
|
||||||
pageSizeOptions: number[] = [10, 20, 30, 50];
|
pageSizeOptions: number[] = [10, 20, 30, 50];
|
||||||
datePipe: DatePipe = new DatePipe('es-ES');
|
datePipe: DatePipe = new DatePipe('es-ES');
|
||||||
|
mode: ProgressBarMode = 'buffer';
|
||||||
|
progress = 65;
|
||||||
|
bufferValue = 0;
|
||||||
|
|
||||||
columns = [
|
columns = [
|
||||||
{
|
{
|
||||||
|
@ -84,7 +88,7 @@ export class TaskLogsComponent implements OnInit {
|
||||||
constructor(private http: HttpClient,
|
constructor(private http: HttpClient,
|
||||||
private joyrideService: JoyrideService,
|
private joyrideService: JoyrideService,
|
||||||
private dialog: MatDialog
|
private dialog: MatDialog
|
||||||
) {}
|
) { }
|
||||||
|
|
||||||
ngOnInit(): void {
|
ngOnInit(): void {
|
||||||
this.loadTraces();
|
this.loadTraces();
|
||||||
|
@ -215,12 +219,12 @@ export class TaskLogsComponent implements OnInit {
|
||||||
iniciarTour(): void {
|
iniciarTour(): void {
|
||||||
this.joyrideService.startTour({
|
this.joyrideService.startTour({
|
||||||
steps: [
|
steps: [
|
||||||
'titleStep',
|
'titleStep',
|
||||||
'resetFiltersStep',
|
'resetFiltersStep',
|
||||||
'clientSelectStep',
|
'clientSelectStep',
|
||||||
'commandSelectStep',
|
'commandSelectStep',
|
||||||
'tableStep',
|
'tableStep',
|
||||||
'paginationStep'
|
'paginationStep'
|
||||||
],
|
],
|
||||||
showPrevButton: true,
|
showPrevButton: true,
|
||||||
themeColor: '#3f51b5'
|
themeColor: '#3f51b5'
|
||||||
|
|
Loading…
Reference in New Issue