-
+
Selecciona una opción @@ -38,13 +43,13 @@ - - - - + + + +
-
+
@@ -80,7 +85,7 @@
-
+
diff --git a/ogWebconsole/src/app/components/groups/components/advanced-search/advanced-search.component.ts b/ogWebconsole/src/app/components/groups/components/advanced-search/advanced-search.component.ts index fcf0bfe..59a2190 100644 --- a/ogWebconsole/src/app/components/groups/components/advanced-search/advanced-search.component.ts +++ b/ogWebconsole/src/app/components/groups/components/advanced-search/advanced-search.component.ts @@ -23,6 +23,7 @@ import { Router } from '@angular/router'; import { CreatePxeBootFileComponent } from "../../../ogboot/pxe-boot-files/create-pxeBootFile/create-pxe-boot-file/create-pxe-boot-file.component"; +import { JoyrideService } from 'ngx-joyride'; @Component({ @@ -69,7 +70,8 @@ export class AdvancedSearchComponent { private toastService: ToastrService, private _bottomSheet: MatBottomSheet, private http: HttpClient, - private router: Router + private router: Router, + private joyrideService: JoyrideService ) {} ngOnInit(): void { @@ -436,4 +438,23 @@ export class AdvancedSearchComponent { } } + iniciarTour(): void { + this.joyrideService.startTour({ + steps: [ + 'title2Step', + 'filterSelectionStep', + 'viewModeStep', + 'filtersStep', + 'selectAllStep', + 'saveFiltersStep', + 'sendActionStep', + 'addPxeStep', + 'resultsStep', + 'paginationStep' + ], + showPrevButton: true, + themeColor: '#3f51b5' + }); + } + } diff --git a/ogWebconsole/src/app/components/groups/groups.component.css b/ogWebconsole/src/app/components/groups/groups.component.css index 12e2d46..0028581 100644 --- a/ogWebconsole/src/app/components/groups/groups.component.css +++ b/ogWebconsole/src/app/components/groups/groups.component.css @@ -194,8 +194,7 @@ mat-spinner { .result-card { width: 100%; max-width: 250px; - height: 250px; /* Fijo para mantener la forma cuadrada */ -} + height: 250px; .paginator-container { display: flex; @@ -210,3 +209,7 @@ mat-spinner { mat-card { margin-bottom: 20px; } + +.mat-tooltip { + white-space: pre-line; +} \ No newline at end of file diff --git a/ogWebconsole/src/app/components/groups/groups.component.html b/ogWebconsole/src/app/components/groups/groups.component.html index 289e1ca..ea965f1 100644 --- a/ogWebconsole/src/app/components/groups/groups.component.html +++ b/ogWebconsole/src/app/components/groups/groups.component.html @@ -1,21 +1,39 @@ -
-

Administrar grupos

-
- - - +
+ +

Administrar grupos

+
+ + + + +
+
- + Centros + [ngClass]="{'selected-item': unidad === selectedUnidad, 'clickable-item': true}" + (click)="onSelectUnidad(unidad)">
apartment {{ unidad.name }} @@ -23,48 +41,37 @@ more_vert + + + + @@ -74,7 +81,11 @@ - + +
@@ -93,7 +104,9 @@ info No hay elementos internos
- +
apartment @@ -108,31 +121,45 @@ more_vert + + + + -
@@ -142,12 +169,15 @@
+ + + diff --git a/ogWebconsole/src/app/components/groups/groups.component.ts b/ogWebconsole/src/app/components/groups/groups.component.ts index e0763d9..42baf1b 100644 --- a/ogWebconsole/src/app/components/groups/groups.component.ts +++ b/ogWebconsole/src/app/components/groups/groups.component.ts @@ -27,6 +27,7 @@ import { } from "./components/organizational-unit-tab-view/organizational-unit-tab-view.component"; import { ExecuteCommandComponent } from '../commands/main-commands/execute-command/execute-command.component'; import { ExecuteCommandOuComponent } from './shared/execute-command-ou/execute-command-ou.component'; +import { JoyrideService } from 'ngx-joyride'; @Component({ selector: 'app-groups', @@ -69,7 +70,8 @@ export class GroupsComponent implements OnInit { public dialog: MatDialog, private toastService: ToastrService, private _bottomSheet: MatBottomSheet, - private http: HttpClient + private http: HttpClient, + private joyrideService: JoyrideService ) {} ngOnInit(): void { @@ -449,4 +451,11 @@ export class GroupsComponent implements OnInit { const dialogRef = this.dialog.open(AcctionsModalComponent, { data: { selectedElements: this.selectedElements }, width: '700px'}); } + iniciarTour(): void { + this.joyrideService.startTour({ + steps: ['titleStep', 'addStep', 'keyStep', 'unitStep', 'elementsStep', 'tabsStep'], + showPrevButton: true, + themeColor: '#3f51b5' + }); + } } From c168c87fc9ebcc4b5cf9a68effa16bdb2a848e00 Mon Sep 17 00:00:00 2001 From: apuente Date: Wed, 13 Nov 2024 12:39:49 +0100 Subject: [PATCH 8/8] refs #1136 Add joyride in all components --- .../commands-groups.component.html | 24 ++- .../commands-groups.component.ts | 21 +- .../commands-task.component.html | 22 +-- .../commands-task/commands-task.component.ts | 20 +- .../task-logs/task-logs.component.html | 18 +- .../task-logs/task-logs.component.ts | 20 +- .../main-commands/commands.component.html | 22 ++- .../main-commands/commands.component.ts | 19 +- .../client-tab-view.component.html | 179 +++++++++--------- .../client-tab-view.component.ts | 20 +- ...rganizational-unit-tab-view.component.html | 36 ++-- .../organizational-unit-tab-view.component.ts | 21 +- .../components/images/images.component.html | 104 +++++----- .../app/components/images/images.component.ts | 22 ++- .../ogboot-status/ogboot-status.component.css | 9 +- .../ogboot-status.component.html | 111 +++++------ .../ogboot-status/ogboot-status.component.ts | 17 +- .../pxe-boot-files.component.html | 21 +- .../pxe-boot-files.component.ts | 21 +- .../pxe-images/pxe-images.component.html | 40 ++-- .../ogboot/pxe-images/pxe-images.component.ts | 23 ++- .../components/ogboot/pxe/pxe.component.html | 38 ++-- .../components/ogboot/pxe/pxe.component.ts | 22 ++- .../og-dhcp-subnets.component.html | 46 +++-- .../og-dhcp-subnets.component.ts | 41 +++- .../status/status.component.css | 10 +- .../status/status.component.html | 49 ++--- .../status/status.component.ts | 18 +- .../operative-system.component.html | 31 ++- .../operative-system.component.ts | 13 +- .../software-profile.component.html | 13 +- .../software-profile.component.ts | 12 +- .../software/software.component.html | 11 +- .../components/software/software.component.ts | 19 +- 34 files changed, 746 insertions(+), 367 deletions(-) diff --git a/ogWebconsole/src/app/components/commands/commands-groups/commands-groups.component.html b/ogWebconsole/src/app/components/commands/commands-groups/commands-groups.component.html index 91bf19a..3735b4d 100644 --- a/ogWebconsole/src/app/components/commands/commands-groups/commands-groups.component.html +++ b/ogWebconsole/src/app/components/commands/commands-groups/commands-groups.component.html @@ -1,11 +1,16 @@
-

Administrar Grupos de Comandos

+ +

Administrar Grupos de Comandos

- +
+ -
+ +
Buscar nombre de grupo @@ -14,12 +19,12 @@
-
+
- +
+ -
{{ column.header }} @@ -27,7 +32,7 @@ {{ column.cell(commandGroup) }} - + Acciones + - + @@ -53,7 +59,7 @@
-
+
column.columnDef), 'actions']; private apiUrl = `${this.baseUrl}/command-groups`; - constructor(private http: HttpClient, private dialog: MatDialog, private toastService: ToastrService) {} + constructor(private http: HttpClient, private dialog: MatDialog, private toastService: ToastrService, + private joyrideService: JoyrideService) {} ngOnInit(): void { this.search(); @@ -114,4 +116,21 @@ export class CommandsGroupsComponent implements OnInit { this.length = event.length; this.search(); } + + iniciarTour(): void { + this.joyrideService.startTour({ + steps: [ + 'titleStep', + 'addCommandGroupStep', + 'searchStep', + 'tableStep', + 'viewCommandsStep', + 'actionsStep', + 'paginationStep' + ], + showPrevButton: true, + themeColor: '#3f51b5' + }); + } + } diff --git a/ogWebconsole/src/app/components/commands/commands-task/commands-task.component.html b/ogWebconsole/src/app/components/commands/commands-task/commands-task.component.html index 5e812eb..ca11063 100644 --- a/ogWebconsole/src/app/components/commands/commands-task/commands-task.component.html +++ b/ogWebconsole/src/app/components/commands/commands-task/commands-task.component.html @@ -1,13 +1,16 @@
-

Administrar Tareas

+ +

Administrar Tareas

- +
-
+
Buscar tarea @@ -16,12 +19,8 @@
-
- -
-
- +
@@ -49,9 +48,9 @@ -
Id {{ task.id }} Acciones + - + @@ -63,7 +62,8 @@
- diff --git a/ogWebconsole/src/app/components/commands/commands-task/commands-task.component.ts b/ogWebconsole/src/app/components/commands/commands-task/commands-task.component.ts index 0e9312b..ae7904e 100644 --- a/ogWebconsole/src/app/components/commands/commands-task/commands-task.component.ts +++ b/ogWebconsole/src/app/components/commands/commands-task/commands-task.component.ts @@ -5,6 +5,7 @@ import { ToastrService } from 'ngx-toastr'; import { CreateTaskComponent } from './create-task/create-task.component'; import { DetailTaskComponent } from './detail-task/detail-task.component'; import { DeleteModalComponent } from '../../../shared/delete_modal/delete-modal/delete-modal.component'; +import { JoyrideService } from 'ngx-joyride'; @Component({ selector: 'app-commands-task', @@ -23,7 +24,8 @@ export class CommandsTaskComponent implements OnInit { loading: boolean = false; private apiUrl = `${this.baseUrl}/command-tasks`; - constructor(private http: HttpClient, private dialog: MatDialog, private toastService: ToastrService) {} + constructor(private http: HttpClient, private dialog: MatDialog, private toastService: ToastrService, + private joyrideService: JoyrideService) {} ngOnInit(): void { this.loadTasks(); @@ -93,4 +95,20 @@ export class CommandsTaskComponent implements OnInit { this.itemsPerPage = event.pageSize; this.loadTasks(); } + + iniciarTour(): void { + this.joyrideService.startTour({ + steps: [ + 'titleStep', + 'addTaskStep', + 'searchStep', + 'tableStep', + 'actionsStep', + 'paginationStep' + ], + showPrevButton: true, + themeColor: '#3f51b5' + }); + } + } diff --git a/ogWebconsole/src/app/components/commands/commands-task/task-logs/task-logs.component.html b/ogWebconsole/src/app/components/commands/commands-task/task-logs/task-logs.component.html index 766cf69..fcd6123 100644 --- a/ogWebconsole/src/app/components/commands/commands-task/task-logs/task-logs.component.html +++ b/ogWebconsole/src/app/components/commands/commands-task/task-logs/task-logs.component.html @@ -1,13 +1,17 @@
-

Trazas de comandos y procedimientos

+ +

Trazas de comandos y procedimientos

- +
+
- + @@ -16,7 +20,7 @@ - + @@ -26,14 +30,12 @@
-
-
- +
{{ column.header }} @@ -46,7 +48,7 @@
-
+
; commandControl = new FormControl(); - constructor(private http: HttpClient) {} + constructor(private http: HttpClient, + private joyrideService: JoyrideService) {} ngOnInit(): void { this.loadTraces(); @@ -183,4 +185,20 @@ export class TaskLogsComponent implements OnInit { this.length = event.length; this.loadTraces(); } + + iniciarTour(): void { + this.joyrideService.startTour({ + steps: [ + 'titleStep', + 'resetFiltersStep', + 'clientSelectStep', + 'commandSelectStep', + 'tableStep', + 'paginationStep' + ], + showPrevButton: true, + themeColor: '#3f51b5' + }); + } + } diff --git a/ogWebconsole/src/app/components/commands/main-commands/commands.component.html b/ogWebconsole/src/app/components/commands/main-commands/commands.component.html index e9a221b..4bed5cb 100644 --- a/ogWebconsole/src/app/components/commands/main-commands/commands.component.html +++ b/ogWebconsole/src/app/components/commands/main-commands/commands.component.html @@ -1,12 +1,16 @@
-

Administrar Comandos

-
- + +

Administrar Comandos

+
+
+ -
+
Buscar nombre de comando @@ -15,12 +19,12 @@
-
+
- +
- @@ -49,7 +53,7 @@
{{ column.header }} @@ -36,10 +40,10 @@ Acciones + - +
-
+
column.columnDef), 'actions']; private apiUrl = `${this.baseUrl}/commands`; - constructor(private http: HttpClient, private dialog: MatDialog, private toastService: ToastrService) {} + constructor(private http: HttpClient, private dialog: MatDialog, private toastService: ToastrService, + private joyrideService: JoyrideService) {} ngOnInit(): void { this.search(); @@ -131,4 +133,19 @@ export class CommandsComponent implements OnInit { this.length = event.length; this.search(); } + + iniciarTour(): void { + this.joyrideService.startTour({ + steps: [ + 'titleStep', + 'addCommandStep', + 'searchStep', + 'tableStep', + 'actionsStep' + ], + showPrevButton: true, + themeColor: '#3f51b5' + }); + } + } diff --git a/ogWebconsole/src/app/components/groups/components/client-tab-view/client-tab-view.component.html b/ogWebconsole/src/app/components/groups/components/client-tab-view/client-tab-view.component.html index 63d3f09..27cd78a 100644 --- a/ogWebconsole/src/app/components/groups/components/client-tab-view/client-tab-view.component.html +++ b/ogWebconsole/src/app/components/groups/components/client-tab-view/client-tab-view.component.html @@ -1,89 +1,96 @@ -
-

Administrar clientes

-
- - -
+
+ +

Administrar clientes

+
+ +
- -
- - Buscar nombre de cliente - - search - Pulsar 'enter' para buscar - - - Buscar IP - - search - Pulsar 'enter' para buscar - - - Buscar MAC - - search - Pulsar 'enter' para buscar - - - U. Organizativa - - - {{ unit.name }} - - - -
- -
- -
- -
- - - - - - - - - - - - - -
{{ column.header }} - -
-
{{ client.name }}
-
{{ client.ip }}
-
{{ client.mac }}
-
-
- - - {{ client.status }} - - - - {{ column.cell(client) }} - -
Acciones - - - - - -
-
- -
+ + + +
+ + Buscar nombre de cliente + + search + Pulsar 'enter' para buscar + + + + Buscar IP + + search + Pulsar 'enter' para buscar + + + + Buscar MAC + + search + Pulsar 'enter' para buscar + + + + U. Organizativa + + + {{ unit.name }} + + + +
+ +
+ +
+ +
+ + + + + + + + + + + + + +
{{ column.header }} + +
+
{{ client.name }}
+
{{ client.ip }}
+
{{ client.mac }}
+
+
+ + {{ client.status }} + + + {{ column.cell(client) }} + +
Acciones + + + + + +
+ +
+ + +
diff --git a/ogWebconsole/src/app/components/groups/components/client-tab-view/client-tab-view.component.ts b/ogWebconsole/src/app/components/groups/components/client-tab-view/client-tab-view.component.ts index 7619310..d42ac76 100644 --- a/ogWebconsole/src/app/components/groups/components/client-tab-view/client-tab-view.component.ts +++ b/ogWebconsole/src/app/components/groups/components/client-tab-view/client-tab-view.component.ts @@ -13,6 +13,7 @@ import { throwError } from 'rxjs'; import { catchError } from 'rxjs/operators'; import {ClientViewComponent} from "../../shared/client-view/client-view.component"; import { Router } from '@angular/router'; +import { JoyrideService } from 'ngx-joyride'; @Component({ selector: 'app-client-tab-view', @@ -78,7 +79,8 @@ export class ClientTabViewComponent { public dialog: MatDialog, private toastService: ToastrService, private http: HttpClient, - private router: Router + private router: Router, + private joyrideService: JoyrideService ) {} ngOnInit(): void { @@ -190,4 +192,20 @@ export class ClientTabViewComponent { this.length = event.length; this.getClients(); } + + iniciarTour(): void { + this.joyrideService.startTour({ + steps: [ + 'title3Step', + 'resetFiltersStep', + 'addClientStep', + 'searchContainerStep', + 'tableStep', + 'actionsStep', + 'paginationStep' + ], + showPrevButton: true, + themeColor: '#3f51b5' + }); + } } diff --git a/ogWebconsole/src/app/components/groups/components/organizational-unit-tab-view/organizational-unit-tab-view.component.html b/ogWebconsole/src/app/components/groups/components/organizational-unit-tab-view/organizational-unit-tab-view.component.html index fe9c06e..b128a36 100644 --- a/ogWebconsole/src/app/components/groups/components/organizational-unit-tab-view/organizational-unit-tab-view.component.html +++ b/ogWebconsole/src/app/components/groups/components/organizational-unit-tab-view/organizational-unit-tab-view.component.html @@ -1,21 +1,27 @@
-

Administrar unidades organizativas

+ +

Administrar unidades organizativas

- - + +
+ -
+ +
Buscar nombre de OU search Pulsar 'enter' para buscar + Tipo - + Todos Centro Grupos de aulas @@ -24,28 +30,29 @@
- + +
- -
{{ column.header }} + {{ column.cell(ou) }} - + event_available - event_busy + event_busy - - {{ ou.type }} + + {{ ou.type }} Acciones + - +
-
+ +
-

Administrar imágenes

-
- -
+ +

+ Administrar imágenes +

+
+
- +
-
- - Buscar nombre de imagen - - search - Pulsar 'enter' para buscar - -
+ - - - - - +
+ + Buscar nombre de imagen + + search + Pulsar 'enter' para buscar + +
- - - - - - -
{{ column.header }} - - - {{ image[column.columnDef] ? 'check_circle' : 'cancel' }} - - - - {{ column.cell(image) }} - - Acciones - - -
+ + + + + -
- - -
+ + + + + + +
{{ column.header }} + + + {{ image[column.columnDef] ? 'check_circle' : 'cancel' }} + + + + {{ column.cell(image) }} + + Acciones + + +
+ +
+ + +
diff --git a/ogWebconsole/src/app/components/images/images.component.ts b/ogWebconsole/src/app/components/images/images.component.ts index 9bca5c5..d1ddae9 100644 --- a/ogWebconsole/src/app/components/images/images.component.ts +++ b/ogWebconsole/src/app/components/images/images.component.ts @@ -7,6 +7,7 @@ import { DatePipe } from '@angular/common'; import { CreateImageComponent } from './create-image/create-image.component'; import {CreateCommandComponent} from "../commands/main-commands/create-command/create-command.component"; import {DeleteModalComponent} from "../../shared/delete_modal/delete-modal/delete-modal.component"; +import { JoyrideService } from 'ngx-joyride'; @Component({ selector: 'app-images', @@ -61,7 +62,8 @@ export class ImagesComponent implements OnInit { constructor( public dialog: MatDialog, private http: HttpClient, - private toastService: ToastrService + private toastService: ToastrService, + private joyrideService: JoyrideService ) {} ngOnInit(): void { @@ -127,4 +129,22 @@ export class ImagesComponent implements OnInit { this.length = event.length; this.search(); } + + iniciarTour(): void { + this.joyrideService.startTour({ + steps: [ + 'imagesTitleStep', + 'addImageButton', + 'searchImageField', + 'imagesTable', + 'actionsHeader', + 'editImageButton', + 'deleteImageButton', + 'imagesPagination' + ], + showPrevButton: true, + themeColor: '#3f51b5' + }); + } + } diff --git a/ogWebconsole/src/app/components/ogboot/ogboot-status/ogboot-status.component.css b/ogWebconsole/src/app/components/ogboot/ogboot-status/ogboot-status.component.css index 29859f4..a4c857a 100644 --- a/ogWebconsole/src/app/components/ogboot/ogboot-status/ogboot-status.component.css +++ b/ogWebconsole/src/app/components/ogboot/ogboot-status/ogboot-status.component.css @@ -1,4 +1,11 @@ - +.header-container { + display: flex; + justify-content: space-between; + align-items: center; + height: 100px; + padding: 10px; +} + .disk-usage-info{ display: flex; justify-content: start; diff --git a/ogWebconsole/src/app/components/ogboot/ogboot-status/ogboot-status.component.html b/ogWebconsole/src/app/components/ogboot/ogboot-status/ogboot-status.component.html index f28c5c3..a9ac124 100644 --- a/ogWebconsole/src/app/components/ogboot/ogboot-status/ogboot-status.component.html +++ b/ogWebconsole/src/app/components/ogboot/ogboot-status/ogboot-status.component.html @@ -1,59 +1,64 @@
-

OgBoot server Status

- -
-
-

Uso de disco

- - -
-

Total: {{ formatBytes(diskUsage.total) }}

-

Ocupado: {{ formatBytes(diskUsage.used) }}

-

Disponible: {{ formatBytes(diskUsage.available) }}

-

Libre: {{ diskUsage.percentage }}%

-
-
- -
-

Servicios

-
    -
  • - - {{ service.name }}: {{ service.status }} -
  • -
+
+

OgBoot server Status

+ +
+ +
+
+

Uso de disco

+ + +
+

Total: {{ formatBytes(diskUsage.total) }}

+

Ocupado: {{ formatBytes(diskUsage.used) }}

+

Disponible: {{ formatBytes(diskUsage.available) }}

+

Libre: {{ diskUsage.percentage }}%

-
-

OGLives instalados

- - - - - - - - - - - - - - - - - -
IDKernelArchitectureRevision
{{ oglive.id }}{{ oglive.kernel }}{{ oglive.architecture }}{{ oglive.revision }}
+
+

Servicios

+
    +
  • + + {{ service.name }}: {{ service.status }} +
  • +
+ +
+

OGLives instalados

+ + + + + + + + + + + + + + + + + +
IDKernelArchitectureRevision
{{ oglive.id }}{{ oglive.kernel }}{{ oglive.architecture }}{{ oglive.revision }}
+
+
diff --git a/ogWebconsole/src/app/components/ogboot/ogboot-status/ogboot-status.component.ts b/ogWebconsole/src/app/components/ogboot/ogboot-status/ogboot-status.component.ts index 7a041bb..481a2eb 100644 --- a/ogWebconsole/src/app/components/ogboot/ogboot-status/ogboot-status.component.ts +++ b/ogWebconsole/src/app/components/ogboot/ogboot-status/ogboot-status.component.ts @@ -1,5 +1,6 @@ import { Component, OnInit } from '@angular/core'; import { HttpClient } from '@angular/common/http'; +import { JoyrideService } from 'ngx-joyride'; @Component({ selector: 'app-ogboot-status', @@ -23,7 +24,7 @@ export class OgbootStatusComponent implements OnInit { domain: ['#FF6384', '#3f51b5'] }; - constructor(private http: HttpClient) {} + constructor(private http: HttpClient, private joyrideService: JoyrideService) {} ngOnInit(): void { this.loadStatus(); @@ -68,4 +69,18 @@ export class OgbootStatusComponent implements OnInit { return bytes + ' B'; } } + + iniciarTour(): void { + this.joyrideService.startTour({ + steps: [ + 'titleStep', + 'diskUsageStep', + 'servicesStatusStep', + 'oglivesStep' + ], + showPrevButton: true, + themeColor: '#3f51b5' + }); + } + } diff --git a/ogWebconsole/src/app/components/ogboot/pxe-boot-files/pxe-boot-files.component.html b/ogWebconsole/src/app/components/ogboot/pxe-boot-files/pxe-boot-files.component.html index 0b161ad..6f12dcd 100644 --- a/ogWebconsole/src/app/components/ogboot/pxe-boot-files/pxe-boot-files.component.html +++ b/ogWebconsole/src/app/components/ogboot/pxe-boot-files/pxe-boot-files.component.html @@ -1,10 +1,12 @@ -
-

Netboot avanzado

+

Netboot avanzado

+
- + Selecciona Unidad Organizacional Cargando unidades... @@ -15,7 +17,7 @@ Este campo es obligatorio - + Selecciona aula No hay aulas disponibles @@ -29,17 +31,17 @@
- + Seleccione plantilla para aplicar a todos los clientes - + {{ option.name }} - +
- + Id {{element.id}} @@ -53,7 +55,7 @@ Plantilla - + Seleccione una plantilla Ninguna @@ -65,7 +67,6 @@ - diff --git a/ogWebconsole/src/app/components/ogboot/pxe-boot-files/pxe-boot-files.component.ts b/ogWebconsole/src/app/components/ogboot/pxe-boot-files/pxe-boot-files.component.ts index e88153e..1583aca 100644 --- a/ogWebconsole/src/app/components/ogboot/pxe-boot-files/pxe-boot-files.component.ts +++ b/ogWebconsole/src/app/components/ogboot/pxe-boot-files/pxe-boot-files.component.ts @@ -5,6 +5,7 @@ import { ToastrService } from 'ngx-toastr'; import { PageEvent } from '@angular/material/paginator'; import {Observable} from "rxjs"; import {ServerInfoDialogComponent} from "../../ogdhcp/og-dhcp-subnets/server-info-dialog/server-info-dialog.component"; +import { JoyrideService } from 'ngx-joyride'; @Component({ selector: 'app-pxe-boot-files', @@ -32,7 +33,8 @@ export class PxeBootFilesComponent implements OnInit { constructor( private fb: FormBuilder, private http: HttpClient, - private toastService: ToastrService + private toastService: ToastrService, + private joyrideService: JoyrideService ) { this.taskForm = this.fb.group({ organizationalUnit: ['', Validators.required], @@ -155,4 +157,21 @@ export class PxeBootFilesComponent implements OnInit { this.itemsPerPage = event.pageSize; this.fetchPxeTemplates(); } + + iniciarTour(): void { + this.joyrideService.startTour({ + steps: [ + 'titleStep', + 'selectUnitStep', + 'selectClassStep', + 'applyToAllStep', + 'saveButtonStep', + 'tableStep', + 'selectTemplateStep' + ], + showPrevButton: true, + themeColor: '#3f51b5' + }); + } + } diff --git a/ogWebconsole/src/app/components/ogboot/pxe-images/pxe-images.component.html b/ogWebconsole/src/app/components/ogboot/pxe-images/pxe-images.component.html index 96e0993..6fd64f3 100644 --- a/ogWebconsole/src/app/components/ogboot/pxe-images/pxe-images.component.html +++ b/ogWebconsole/src/app/components/ogboot/pxe-images/pxe-images.component.html @@ -1,41 +1,47 @@ - + Información en servidor ogBoot -
- +
- +
-

Administrar imágenes

+ +

Administrar imágenes

- +
+ +
- + Buscar nombre de imagen search Pulsar 'enter' para buscar - + + Imagen por defecto - + Todos No - + + Instalado servidor ogBoot Todos @@ -44,11 +50,11 @@
- + +
- -
{{ column.header }} - + {{ image[column.columnDef] ? 'check_circle' : 'cancel' }} @@ -76,15 +82,14 @@ {{ column.cell(image) }} - Acciones + - +
-
+ +
- + Información en servidor ogBoot
- +
@@ -12,34 +12,39 @@ -
-

Administrar plantillas PXE

+ +

Administrar plantillas PXE

- +
+ +
- + Buscar nombre de plantilla search Pulsar 'enter' para buscar - + Creada en ogBoot - + Todos No
- + +
- - + -
{{ column.header }} + {{ image[column.columnDef] ? 'check_circle' : 'cancel' }} @@ -52,19 +57,19 @@ Acciones + - - + + - + @@ -74,7 +79,8 @@
-
+ +
- + Información en servidor ogDHCP
- +
- +
-

Administrar Subredes

+ +

Administrar Subredes

- +
+
- + Buscar nombre de la subred - + search Pulsar 'enter' para buscar - + Buscar netmask - + search Pulsar 'enter' para buscar - + Buscar IP - + search Pulsar 'enter' para buscar - + Buscar Boot file name - + search Pulsar 'enter' para buscar
+ - + +
-
{{ column.header }} - {{ subnet[column.columnDef] ? 'check_circle' : 'cancel' }} @@ -75,9 +80,10 @@ Acciones + + edit +
-
- + +
+
diff --git a/ogWebconsole/src/app/components/ogdhcp/og-dhcp-subnets/og-dhcp-subnets.component.ts b/ogWebconsole/src/app/components/ogdhcp/og-dhcp-subnets/og-dhcp-subnets.component.ts index b98cd7a..1641ad8 100644 --- a/ogWebconsole/src/app/components/ogdhcp/og-dhcp-subnets/og-dhcp-subnets.component.ts +++ b/ogWebconsole/src/app/components/ogdhcp/og-dhcp-subnets/og-dhcp-subnets.component.ts @@ -7,8 +7,9 @@ import { HttpClient } from '@angular/common/http'; import { DeleteModalComponent } from '../../../shared/delete_modal/delete-modal/delete-modal.component'; import { ToastrService } from 'ngx-toastr'; import { AddClientsToSubnetComponent } from './add-clients-to-subnet/add-clients-to-subnet.component'; -import {ServerInfoDialogComponent} from "./server-info-dialog/server-info-dialog.component"; -import {Observable} from "rxjs"; +import { ServerInfoDialogComponent } from "./server-info-dialog/server-info-dialog.component"; +import { Observable } from "rxjs"; +import { JoyrideService } from 'ngx-joyride'; export interface Subnet { '@id': string; @@ -32,7 +33,7 @@ export interface Subnet { templateUrl: './og-dhcp-subnets.component.html', styleUrls: ['./og-dhcp-subnets.component.css'] }) -export class OgDhcpSubnetsComponent { +export class OgDhcpSubnetsComponent { baseUrl: string = import.meta.env.NG_APP_BASE_API_URL; displayedColumns: string[] = ['id', 'name', 'netmask', 'ipAddress', 'nextServer', 'bootFileName', 'synchronized', 'serverId', 'clients', 'actions']; dataSource = new MatTableDataSource([]); @@ -52,14 +53,15 @@ export class OgDhcpSubnetsComponent { { columnDef: 'ipAddress', header: 'IP Address', cell: (subnet: Subnet) => subnet.ipAddress }, { columnDef: 'nextServer', header: 'Next Server', cell: (subnet: Subnet) => subnet.nextServer }, { columnDef: 'bootFileName', header: 'Boot File Name', cell: (subnet: Subnet) => subnet.bootFileName }, - { columnDef: 'synchronized', header: 'Sincronizado', cell: (subnet: Subnet) => `${subnet.synchronized}`}, + { columnDef: 'synchronized', header: 'Sincronizado', cell: (subnet: Subnet) => `${subnet.synchronized}` }, { columnDef: 'serverId', header: 'Id Servidor DHCP', cell: (subnet: Subnet) => subnet.serverId }, - { columnDef: 'clients', header: 'Lista de clientes', cell: (subnet: Subnet) => `${subnet.clients}`}, + { columnDef: 'clients', header: 'Lista de clientes', cell: (subnet: Subnet) => `${subnet.clients}` }, ]; private apiUrl = `${this.baseUrl}/subnets`; - constructor(public dialog: MatDialog, private http: HttpClient, private toastService: ToastrService) {} + constructor(public dialog: MatDialog, private http: HttpClient, private toastService: ToastrService, + private joyrideService: JoyrideService) { } ngOnInit() { this.loadSubnets(); @@ -93,7 +95,7 @@ export class OgDhcpSubnetsComponent { }); } - toggleAction(subnet: any, action:string): void { + toggleAction(subnet: any, action: string): void { switch (action) { case 'get': this.http.post(`${this.baseUrl}/og-dhcp/server/${subnet.uuid}/get`, {}).subscribe({ @@ -149,7 +151,8 @@ export class OgDhcpSubnetsComponent { this.toastService.error(error.error['hydra:description']); } }); - }}) + } + }) break; default: console.error('Acción no soportada:', action); @@ -216,4 +219,26 @@ export class OgDhcpSubnetsComponent { this.itemsPerPage = event.pageSize; this.loadSubnets(); } + + iniciarTour(): void { + this.joyrideService.startTour({ + steps: [ + 'serverInfoStep', + 'syncDbStep', + 'viewInfoStep', + 'titleStep', + 'addSubnetStep', + 'searchNameStep', + 'searchNetmaskStep', + 'searchIpStep', + 'searchBootFileStep', + 'tableStep', + 'actionsStep', + 'paginationStep' + ], + showPrevButton: true, + themeColor: '#3f51b5' + }); + } + } diff --git a/ogWebconsole/src/app/components/ogdhcp/og-dhcp-subnets/status/status.component.css b/ogWebconsole/src/app/components/ogdhcp/og-dhcp-subnets/status/status.component.css index d0cc96f..e0992fd 100644 --- a/ogWebconsole/src/app/components/ogdhcp/og-dhcp-subnets/status/status.component.css +++ b/ogWebconsole/src/app/components/ogdhcp/og-dhcp-subnets/status/status.component.css @@ -78,11 +78,17 @@ th { .button-container { display: flex; flex-direction: column; - gap: 10px; /* Espacio entre botones */ + gap: 10px; margin-top: 50px; } - +.header-container { + display: flex; + justify-content: space-between; + align-items: center; + height: 100px; + padding: 10px; +} .btn:first-child { margin-left: 0; diff --git a/ogWebconsole/src/app/components/ogdhcp/og-dhcp-subnets/status/status.component.html b/ogWebconsole/src/app/components/ogdhcp/og-dhcp-subnets/status/status.component.html index 98b1b17..19464a8 100644 --- a/ogWebconsole/src/app/components/ogdhcp/og-dhcp-subnets/status/status.component.html +++ b/ogWebconsole/src/app/components/ogdhcp/og-dhcp-subnets/status/status.component.html @@ -1,8 +1,13 @@
-

OgDhcp server Status

+
+

OgDhcp server Status

+ +
-
+

Uso de disco

-
+

Servicios

  • - + {{ service.name }}: {{ service.status }}
-
+

Subredes

- - - - - - - + + + + + + + - - - - - - - + + + + + + +
IDBoot file nameNext serverIpOrdenadores
IDBoot file nameNext serverIpOrdenadores
{{ subnet.id }}{{ subnet['boot-file-name'] }}{{ subnet['next-server'] }}{{ subnet.subnet }}{{ subnet.reservations.length }}
{{ subnet.id }}{{ subnet['boot-file-name'] }}{{ subnet['next-server'] }}{{ subnet.subnet }}{{ subnet.reservations.length }}
diff --git a/ogWebconsole/src/app/components/ogdhcp/og-dhcp-subnets/status/status.component.ts b/ogWebconsole/src/app/components/ogdhcp/og-dhcp-subnets/status/status.component.ts index 44885b3..eb743b4 100644 --- a/ogWebconsole/src/app/components/ogdhcp/og-dhcp-subnets/status/status.component.ts +++ b/ogWebconsole/src/app/components/ogdhcp/og-dhcp-subnets/status/status.component.ts @@ -1,5 +1,6 @@ import { Component } from '@angular/core'; import {HttpClient} from "@angular/common/http"; +import { JoyrideService } from 'ngx-joyride'; @Component({ selector: 'app-status', @@ -23,7 +24,8 @@ export class StatusComponent { domain: ['#FF6384', '#3f51b5'] }; - constructor(private http: HttpClient) {} + constructor(private http: HttpClient, + private joyrideService: JoyrideService) {} ngOnInit(): void { this.loadStatus(); @@ -55,4 +57,18 @@ export class StatusComponent { status: this.servicesStatus[key] })); } + + iniciarTour(): void { + this.joyrideService.startTour({ + steps: [ + 'titleStep', + 'diskUsageStep', + 'servicesStatusStep', + 'subnetsStep' + ], + showPrevButton: true, + themeColor: '#3f51b5' + }); + } + } diff --git a/ogWebconsole/src/app/components/operative-system/operative-system.component.html b/ogWebconsole/src/app/components/operative-system/operative-system.component.html index 60589b9..0ad1eb3 100644 --- a/ogWebconsole/src/app/components/operative-system/operative-system.component.html +++ b/ogWebconsole/src/app/components/operative-system/operative-system.component.html @@ -1,22 +1,30 @@
-

Administrar sistemas operativos

+ +

+ Administrar sistemas operativos +

- +
+ +
- + Buscar nombre de sistema operativo search Pulsar 'enter' para buscar
- + +
- +
{{ column.header }} + {{ column.cell(image) }} @@ -24,17 +32,22 @@ - AccionesAcciones - - + +
-
+ +
-

Administrar perfiles software

+ +

Administrar perfiles software

- +
-
+
Buscar nombre de perfil @@ -13,7 +16,7 @@ Pulsar 'enter' para buscar
- +
- +
{{ column.header }} @@ -29,7 +32,7 @@ Acciones diff --git a/ogWebconsole/src/app/components/software-profile/software-profile.component.ts b/ogWebconsole/src/app/components/software-profile/software-profile.component.ts index 4673bab..ddf8d88 100644 --- a/ogWebconsole/src/app/components/software-profile/software-profile.component.ts +++ b/ogWebconsole/src/app/components/software-profile/software-profile.component.ts @@ -8,6 +8,7 @@ import {ToastrService} from "ngx-toastr"; import {DeleteModalComponent} from "../../shared/delete_modal/delete-modal/delete-modal.component"; import {PageEvent} from "@angular/material/paginator"; import {CreateSoftwareProfileComponent} from "./create-software-profile/create-software-profile.component"; +import { JoyrideService } from 'ngx-joyride'; @Component({ selector: 'app-software-profile', @@ -57,7 +58,8 @@ export class SoftwareProfileComponent { public dialog: MatDialog, private http: HttpClient, private dataService: DataService, - private toastService: ToastrService + private toastService: ToastrService, + private joyrideService: JoyrideService ) {} ngOnInit(): void { @@ -128,4 +130,12 @@ export class SoftwareProfileComponent { this.length = event.length; this.search(); } + + iniciarTour(): void { + this.joyrideService.startTour({ + steps: ['titleStep','addStep', 'filterStep', 'tableStep', 'actionsStep'], + showPrevButton: true, + themeColor: '#3f51b5' + }); + } } diff --git a/ogWebconsole/src/app/components/software/software.component.html b/ogWebconsole/src/app/components/software/software.component.html index 5f637fe..088df7f 100644 --- a/ogWebconsole/src/app/components/software/software.component.html +++ b/ogWebconsole/src/app/components/software/software.component.html @@ -1,11 +1,14 @@
-

Administrar Software

+ +

Administrar Software

- +
-
+
Buscar nombre de software @@ -21,7 +24,7 @@
- +
{{ column.header }} diff --git a/ogWebconsole/src/app/components/software/software.component.ts b/ogWebconsole/src/app/components/software/software.component.ts index 390dc49..1076b57 100644 --- a/ogWebconsole/src/app/components/software/software.component.ts +++ b/ogWebconsole/src/app/components/software/software.component.ts @@ -5,10 +5,10 @@ import {MatDialog} from "@angular/material/dialog"; import {HttpClient} from "@angular/common/http"; import {DataService} from "./data.service"; import {ToastrService} from "ngx-toastr"; -import {CreateCalendarComponent} from "../calendar/create-calendar/create-calendar.component"; import {DeleteModalComponent} from "../../shared/delete_modal/delete-modal/delete-modal.component"; import {PageEvent} from "@angular/material/paginator"; import {CreateSoftwareComponent} from "./create-software/create-software.component"; +import { JoyrideService } from 'ngx-joyride'; @Component({ selector: 'app-software', @@ -63,7 +63,8 @@ export class SoftwareComponent { public dialog: MatDialog, private http: HttpClient, private dataService: DataService, - private toastService: ToastrService + private toastService: ToastrService, + private joyrideService: JoyrideService ) {} ngOnInit(): void { @@ -134,4 +135,18 @@ export class SoftwareComponent { this.length = event.length; this.search(); } + + iniciarTour(): void { + this.joyrideService.startTour({ + steps: [ + 'titleStep', + 'addSoftwareStep', + 'searchStep', + 'tableStep', + ], + showPrevButton: true, + themeColor: '#3f51b5' + }); + } + }