diff --git a/ogWebconsole/src/app/app.module.ts b/ogWebconsole/src/app/app.module.ts index a7ab960..5b21193 100644 --- a/ogWebconsole/src/app/app.module.ts +++ b/ogWebconsole/src/app/app.module.ts @@ -24,7 +24,7 @@ import { MatInputModule } from '@angular/material/input'; import { MatListModule } from '@angular/material/list'; import { UsersComponent } from './components/pages/admin/users/users/users.component'; import { RolesComponent } from './components/pages/admin/roles/roles/roles.component'; -import { MatCell, MatHeaderCell, MatHeaderCellDef, MatHeaderRow, MatHeaderRowDef, MatRow, MatTable } from '@angular/material/table'; +import {MatTableModule} from '@angular/material/table'; @NgModule({ declarations: [ AppComponent, @@ -51,13 +51,7 @@ import { MatCell, MatHeaderCell, MatHeaderCellDef, MatHeaderRow, MatHeaderRowDef MatFormFieldModule, MatInputModule, MatListModule, - MatTable, - MatHeaderRow, - MatHeaderCell, - MatCell, - MatRow, - MatHeaderRowDef, - MatHeaderCellDef], + MatTableModule], providers: [ { provide: HTTP_INTERCEPTORS, diff --git a/ogWebconsole/src/app/components/layout/main-layout/main-layout.component.css b/ogWebconsole/src/app/components/layout/main-layout/main-layout.component.css index e61afc7..54dacbd 100644 --- a/ogWebconsole/src/app/components/layout/main-layout/main-layout.component.css +++ b/ogWebconsole/src/app/components/layout/main-layout/main-layout.component.css @@ -9,4 +9,5 @@ .content-wrapper{ display: block; grid-area: content; + margin: 20px; } \ No newline at end of file diff --git a/ogWebconsole/src/app/components/pages/admin/users/users/users.component.css b/ogWebconsole/src/app/components/pages/admin/users/users/users.component.css index 2307539..ef18a39 100644 --- a/ogWebconsole/src/app/components/pages/admin/users/users/users.component.css +++ b/ogWebconsole/src/app/components/pages/admin/users/users/users.component.css @@ -1,43 +1,16 @@ -.users-table { - width: 100%; - border-collapse: collapse; - overflow-x: auto; - } - - .users-table th, .users-table td { - padding: 12px; - text-align: left; - border-bottom: 1px solid #ddd; - } - - .users-table th { - background-color: #f2f2f2; - color: #333; - } - - .users-table tbody tr:nth-child(even) { - background-color: #f2f2f2; - } - - .users-table tbody tr:hover { - background-color: #ddd; - } - - .action-cell { - text-align: right; - } - - .edit-button, .delete-button { - padding: 6px 12px; - margin-right: 5px; - border: none; - border-radius: 4px; - cursor: pointer; - background-color: #4CAF50; - color: white; - } - - .edit-button:hover, .delete-button:hover { - background-color: #45a049; - } - \ No newline at end of file +table { + width: 100%; + margin-top: 50px; +} + +.header-container { + margin-top: 16px; + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: 16px; +} + +.header-container h1 { + margin: 0; +} diff --git a/ogWebconsole/src/app/components/pages/admin/users/users/users.component.html b/ogWebconsole/src/app/components/pages/admin/users/users/users.component.html index cc0b0a7..e614822 100644 --- a/ogWebconsole/src/app/components/pages/admin/users/users/users.component.html +++ b/ogWebconsole/src/app/components/pages/admin/users/users/users.component.html @@ -1,19 +1,24 @@ - - - - - - - - - - - - - - - +
+

Gestión de usuarios

+ +
+
IDUsuarioAcciones
{{ user.id }}{{ user.username }} - - -
+ + + + + + + + + + + + + + +
{{ column.header }} {{ column.cell(user) }} Acciones + + +
diff --git a/ogWebconsole/src/app/components/pages/admin/users/users/users.component.ts b/ogWebconsole/src/app/components/pages/admin/users/users/users.component.ts index d95ff7c..7d8ccc5 100644 --- a/ogWebconsole/src/app/components/pages/admin/users/users/users.component.ts +++ b/ogWebconsole/src/app/components/pages/admin/users/users/users.component.ts @@ -1,6 +1,7 @@ // users.component.ts import { Component, OnInit } from '@angular/core'; import { UserService } from './users.service'; +import { MatTableDataSource } from '@angular/material/table'; @Component({ selector: 'app-users', @@ -8,13 +9,46 @@ import { UserService } from './users.service'; styleUrls: ['./users.component.css'] }) export class UsersComponent implements OnInit { - users: any[] = []; + dataSource = new MatTableDataSource(); + columns = [ + { + columnDef: 'id', + header: 'ID', + cell: (user: any) => `${user.id}` + }, + { + columnDef: 'username', + header: 'Nombre de Usuario', + cell: (user: any) => `${user.username}` + }, + { + columnDef: 'allowedOrganizationalUnits', + header: 'Unidades Organizacionales Permitidas', + cell: (user: any) => `${user.allowedOrganizationalUnits.join(', ')}` + }, + { + columnDef: 'roles', + header: 'Roles', + cell: (user: any) => `${user.roles.join(', ')}` + } + ]; + displayedColumns = [...this.columns.map(column => column.columnDef), 'actions']; constructor(private userService: UserService) {} ngOnInit() { this.userService.getUsers().subscribe(response => { - this.users = response['hydra:member']; + this.dataSource.data = response['hydra:member']; }); } + + editUser(user: any) { + // Implementar la lógica de edición + console.log('Editar usuario:', user); + } + + deleteUser(user: any) { + // Implementar la lógica de eliminación + console.log('Eliminar usuario:', user); + } }