Merge css fix

pull/6/head
Alvaro Puente Mella 2024-07-31 12:25:27 +02:00
parent 41f6565381
commit 4016f00f78
4 changed files with 226 additions and 270 deletions

View File

@ -126,9 +126,16 @@ mat-spinner {
.container { /* Asegúrate de que esta clase sea la del contenedor del botón */
display: flex;
justify-content: flex-end;
width: 200px;
}
.classroomBtn-container {
display: flex;
justify-content: flex-end;
width: 100%; /* Asegura que el contenedor ocupe todo el ancho disponible */
padding-right: 20px; /* Opcional: ajusta el espacio a la derecha */
}
.roomMap-btn {
.classroomBtn {
}
.container {

View File

@ -1,27 +1,27 @@
<mat-tab-group>
<mat-tab label="General">
<mat-tab label="General" i18n-label="@@tabGeneralLabel">
<div class="header-container">
<h2 class="title">Administrar grupos</h2>
<h2 class="title" i18n="@@headerAdminGroups">Administrar grupos</h2>
<div class="groups-button-row">
<button mat-flat-button color="primary" (click)="addOU($event)">Nueva Unidad Organizativa</button>
<button mat-flat-button color="primary" (click)="addClient($event)">Nuevo Cliente</button>
<button mat-raised-button (click)="openBottomSheet()">Leyenda</button>
<button mat-flat-button color="primary" (click)="addOU($event)" i18n="@@buttonNewOU">Nueva Unidad Organizativa</button>
<button mat-flat-button color="primary" (click)="addClient($event)" i18n="@@buttonNewClient">Nuevo Cliente</button>
<button mat-raised-button (click)="openBottomSheet()" i18n="@@buttonLegend">Leyenda</button>
</div>
<div class="container">
<button mat-flat-button class="roomMap-btn" color="accent" (click)="roomMap()" *ngIf="selectedDetail && selectedDetail.type === 'classroom'">Plano de aula</button>
<div class="classroomBtn-container">
<button mat-flat-button class="classroomBtn" color="accent" (click)="roomMap()" *ngIf="selectedDetail && selectedDetail.type === 'classroom'" i18n="@@buttonRoomMap">Plano de aula</button>
</div>
</div>
<div class="search-container">
<mat-form-field appearance="fill">
<mat-label>Búsqueda</mat-label>
<input matInput placeholder="Búsqueda" [(ngModel)]="searchTerm" (keyup.enter)="search()">
<mat-label i18n="@@labelSearch">Búsqueda</mat-label>
<input matInput placeholder="Búsqueda" [(ngModel)]="searchTerm" (keyup.enter)="search()" i18n-placeholder="@@placeholderSearch">
<mat-icon matSuffix>search</mat-icon>
<mat-hint>Pulsar 'enter' para buscar entre las unidades organizativas</mat-hint>
<mat-hint i18n="@@hintSearch">Pulsar 'enter' para buscar entre las unidades organizativas</mat-hint>
</mat-form-field>
</div>
<div class="groupLists-container">
<mat-card class="card unidad-card">
<mat-card-title>Unidad organizativa</mat-card-title>
<mat-card-title i18n="@@cardTitleOU">Unidad organizativa</mat-card-title>
<mat-card-content>
<mat-spinner *ngIf="loading"></mat-spinner>
<mat-list *ngIf="!loading">
@ -38,45 +38,45 @@
class="edit-icon"
#tooltip="matTooltip"
matTooltip="Visualizar en forma de arbol"
matTooltipHideDelay="0">account_tree
matTooltipHideDelay="0" i18n-matTooltip="@@tooltipViewTree">account_tree
</mat-icon>
Ver organigrama
<span i18n="@@menuItemViewTree">Ver organigrama</span>
</button>
<button mat-menu-item (click)="onEditClick($event, unidad.type, unidad.uuid)">
<mat-icon
class="edit-icon"
#tooltip="matTooltip"
matTooltip="Editar unidad organizativa"
matTooltipHideDelay="0">edit
matTooltipHideDelay="0" i18n-matTooltip="@@tooltipEditOU">edit
</mat-icon>
Editar
<span i18n="@@menuItemEditOU">Editar</span>
</button>
<button mat-menu-item (click)="onShowClick($event, unidad)">
<mat-icon
class="edit-icon"
#tooltip="matTooltip"
matTooltip="Visualizar unidad organizativa"
matTooltipHideDelay="0">visibility
matTooltipHideDelay="0" i18n-matTooltip="@@tooltipViewOU">visibility
</mat-icon>
Visualizar datos
<span i18n="@@menuItemViewOU">Visualizar datos</span>
</button>
<button mat-menu-item (click)="addOU($event, unidad)">
<mat-icon
class="edit-icon"
#tooltip="matTooltip"
matTooltip="Crear unidad organizativa interna"
matTooltipHideDelay="0">add_home_work
matTooltipHideDelay="0" i18n-matTooltip="@@tooltipAddOU">add_home_work
</mat-icon>
Añadir unidad organizativa
<span i18n="@@menuItemAddOU">Añadir unidad organizativa</span>
</button>
<button mat-menu-item (click)="addClient($event, unidad)">
<mat-icon
class="edit-icon"
#tooltip="matTooltip"
matTooltip="Crear cliente en esta unidad organizativa"
matTooltipHideDelay="0">devices
matTooltipHideDelay="0" i18n-matTooltip="@@tooltipAddClient">devices
</mat-icon>
Crear cliente
<span i18n="@@menuItemAddClient">Crear cliente</span>
</button>
</mat-menu>
</span>
@ -88,7 +88,7 @@
<mat-card class="card elements-card">
<mat-card-title>
<div class="title-with-breadcrumb">
<span>Elementos internos</span>
<span i18n="@@cardTitleInternalElements">Elementos internos</span>
<mat-card-subtitle>
<ng-container *ngFor="let crumb of breadcrumb; let i = index">
<a (click)="navigateToBreadcrumb(i)">{{ crumb }}</a>
@ -102,7 +102,7 @@
<mat-list *ngIf="!loadingChildren">
<div *ngIf="children.length === 0" class="empty-list">
<mat-icon>info</mat-icon>
<span>No hay elementos internos</span>
<span i18n="@@emptyListNoInternalElements">No hay elementos internos</span>
</div>
<mat-list-item *ngFor="let child of children" [ngClass]="{'selected-item': child === selectedUnidad, 'clickable-item': true}" (click)="onSelectChild(child)">
<div class="item-content">
@ -119,24 +119,24 @@
<mat-icon mat-button [matMenuTriggerFor]="menu" (click)="$event.stopPropagation()">menu</mat-icon>
<mat-menu #menu="matMenu">
<button mat-menu-item (click)="onEditClick($event, child.type, child.uuid)">
<mat-icon class="edit-icon" #tooltip="matTooltip" matTooltip="Editar elemento" matTooltipHideDelay="0">edit</mat-icon>
Editar
<mat-icon class="edit-icon" #tooltip="matTooltip" matTooltip="Editar elemento" matTooltipHideDelay="0" i18n-matTooltip="@@tooltipEditElement">edit</mat-icon>
<span i18n="@@menuItemEditElement">Editar</span>
</button>
<button *ngIf="child.type !== 'client'" mat-menu-item (click)="onShowClick($event, child)">
<mat-icon class="edit-icon" #tooltip="matTooltip" matTooltip="Visualizar unidad organizativa" matTooltipHideDelay="0">visibility</mat-icon>
Visualizar datos
<mat-icon class="edit-icon" #tooltip="matTooltip" matTooltip="Visualizar unidad organizativa" matTooltipHideDelay="0" i18n-matTooltip="@@tooltipViewOUElement">visibility</mat-icon>
<span i18n="@@menuItemViewOUElement">Visualizar datos</span>
</button>
<button *ngIf="child.type !== 'client'" mat-menu-item (click)="addOU($event, child)">
<mat-icon class="edit-icon" #tooltip="matTooltip" matTooltip="Crear unidad organizativa interna" matTooltipHideDelay="0">add_home_work</mat-icon>
Añadir unidad organizativa
<mat-icon class="edit-icon" #tooltip="matTooltip" matTooltip="Crear unidad organizativa interna" matTooltipHideDelay="0" i18n-matTooltip="@@tooltipAddOUElement">add_home_work</mat-icon>
<span i18n="@@menuItemAddOUElement">Añadir unidad organizativa</span>
</button>
<button *ngIf="child.type !== 'client'" mat-menu-item (click)="addClient($event, child)">
<mat-icon class="edit-icon" #tooltip="matTooltip" matTooltip="Crear cliente en esta unidad organizativa" matTooltipHideDelay="0">devices</mat-icon>
Crear cliente
<mat-icon class="edit-icon" #tooltip="matTooltip" matTooltip="Crear cliente en esta unidad organizativa" matTooltipHideDelay="0" i18n-matTooltip="@@tooltipAddClientElement">devices</mat-icon>
<span i18n="@@menuItemAddClientElement">Crear cliente</span>
</button>
<button mat-menu-item (click)="onDeleteClick($event, child.uuid, child.name, child.type)">
<mat-icon class="delete-icon" #tooltip="matTooltip" matTooltip="Borrar elemento" matTooltipHideDelay="0">delete</mat-icon>
Borrar elemento
<mat-icon class="delete-icon" #tooltip="matTooltip" matTooltip="Borrar elemento" matTooltipHideDelay="0" i18n-matTooltip="@@tooltipDeleteElement">delete</mat-icon>
<span i18n="@@menuItemDeleteElement">Borrar elemento</span>
</button>
</mat-menu>
</span>
@ -148,12 +148,12 @@
<!-- <app-classroom-view class="card classroom-view" [clients]="clientsData" [pcInTable]="5"></app-classroom-view> -->
</div>
</mat-tab>
<mat-tab label="Búsqueda avanzada">
<h2 class="title">Búsqueda</h2>
<mat-tab label="Búsqueda avanzada" i18n-label="@@tabAdvancedSearchLabel">
<h2 class="title" i18n="@@headerSearch">Búsqueda</h2>
<div class="container">
<div class="header">
<mat-form-field>
<mat-label>Seleccione filtro</mat-label>
<mat-label i18n="@@labelSelectFilter">Seleccione filtro</mat-label>
<mat-select (selectionChange)="loadSelectedFilter($event.value)">
<mat-option *ngFor="let savedFilter of savedFilters" [value]="savedFilter">
{{ savedFilter.name }}
@ -161,68 +161,3 @@
</mat-select>
</mat-form-field>
</div>
<mat-divider class="divider"></mat-divider>
<div class="main-content">
<div class="filters">
<mat-form-field>
<mat-label>Selecciona una opción</mat-label>
<mat-select [(value)]="selectedFilter1" (selectionChange)="applyFilter()">
<mat-option value="ou">Unidades organizativas</mat-option>
<mat-option value="client">Clientes</mat-option>
</mat-select>
</mat-form-field>
<mat-form-field class="example-full-width">
<mat-label>Nombre</mat-label>
<input matInput placeholder="Unidad organizativa" (input)="applyFilter()" [(ngModel)]="filterName" >
</mat-form-field>
<mat-form-field disabled="selectedFilter1 === 'ou'">
<mat-label>Tipo de unidad </mat-label>
<mat-select [(value)]="selectedFilter2" (selectionChange)="applyFilter()">
<mat-option value="organizational-unit">Unidad organizativa</mat-option>
<mat-option value="classroom-group">Grupos de aulas</mat-option>
<mat-option value="classroom">Aulas</mat-option>
<mat-option value="client-group">Grupos de clientes</mat-option>
</mat-select>
</mat-form-field>
<mat-form-field>
<mat-label>Select an option</mat-label>
<mat-select [(value)]="selectedFilter1" (selectionChange)="applyFilter()">
<mat-option value="none">None</mat-option>
<mat-option value="option1">Option 1</mat-option>
<mat-option value="option2">Option 2</mat-option>
<mat-option value="option3">Option 3</mat-option>
</mat-select>
</mat-form-field>
<button mat-raised-button color="primary" (click)="saveFilters()">Guardar Filtros</button>
</div>
<div class="results">
<ng-container *ngIf="filteredResults && filteredResults.length > 0; else noResults">
<mat-grid-list cols="4" rowHeight="1:1">
<mat-grid-tile *ngFor="let result of filteredResults" >
<mat-card class="result-card">
<mat-card-title>{{ result.name }}</mat-card-title>
<mat-card-content>
<p>{{ result.type }}</p>
<p *ngIf="result.type !== 'client'">Unidades internas: {{ result.type !== 'client' ? result.children.length : 0}}</p>
<p *ngIf="result.type !== 'client'">Clientes: {{ result.type !== 'client' ? result.clients.length : 0}}</p>
</mat-card-content>
</mat-card>
</mat-grid-tile>
</mat-grid-list>
<div class="paginator-container">
<mat-paginator [length]="length"
[pageSize]="itemsPerPage"
[pageIndex]="page"
[pageSizeOptions]="pageSizeOptions"
(page)="onPageChange($event)">
</mat-paginator>
</div>
</ng-container>
<ng-template #noResults>
<p>No hay resultados para mostrar.</p>
</ng-template>
</div>
</div>
</div>
</mat-tab>
</mat-tab-group>

View File

@ -78,10 +78,10 @@ export class LoginComponent {
//SOLO PARA LA DEMO BORRAR EN PRODUCCION
redirectToUrl1() {
window.location.href = 'http://localhost:4201/auth/login';
window.location.href = 'http://localhost:4200/auth/login';
}
redirectToUrl2() {
window.location.href = 'http://localhost:4200/auth/login';
window.location.href = 'http://localhost:4201/auth/login';
}
}

View File

@ -1,180 +1,194 @@
{
"locale": "es",
"locale": "en",
"translations": {
"digital-board": "Pizarra digital",
"projector-alt": "Proyector",
"digital-board": "Digital board",
"projector-alt": "Projector",
"client-image-alt": "Client",
"save-disposition-button": "Guardar disposición",
"client-properties-title": "Propiedades cliente",
"property-header": "Propiedad",
"value-header": "Valor",
"power-on-button": "Encender",
"power-off-button": "Apagar",
"reset-button": "Resetear",
"other-actions-1": "Otras acciones 1",
"other-actions-2": "Otras acciones 2",
"other-actions-3": "Otras acciones 3",
"close-button": "Cerrar",
"add-client-dialog-title": "Añadir Cliente",
"organizational-unit-label": "Padre",
"name-label": "Nombre",
"serial-number-label": "Número de Serie",
"netiface-label": "Interfaz de red",
"net-driver-label": "Controlador de red",
"save-disposition-button": "Save disposition",
"client-properties-title": "Client properties",
"property-header": "Property",
"value-header": "Value",
"power-on-button": "Power on",
"power-off-button": "Power off",
"reset-button": "Reset",
"other-actions-1": "Other actions 1",
"other-actions-2": "Other actions 2",
"other-actions-3": "Other actions 3",
"close-button": "Close",
"add-client-dialog-title": "Add Client",
"organizational-unit-label": "Parent",
"name-label": "Name",
"serial-number-label": "Serial Number",
"netiface-label": "Network Interface",
"net-driver-label": "Network Driver",
"mac-label": "MAC",
"mac-hint": "Ejemplo: 00:11:22:33:44:55",
"mac-error": "Formato de MAC inválido. Ejemplo válido: 00:11:22:33:44:55",
"ip-label": "Dirección IP",
"ip-hint": "Ejemplo: 127.0.0.1",
"ip-error": "Formato de dirección IP inválido. Ejemplo válido: 127.0.0.1",
"menu-url-label": "Menú URL",
"menu-url-error": "Formato de URL inválido.",
"hardware-profile-label": "Perfil de Hardware",
"hardware-profile-error": "Formato de URL inválido.",
"cancel-button": "Cancelar",
"add-button": "Añadir",
"edit-client-dialog-title": "Editar Cliente",
"delete-dialog-title": "Eliminar",
"delete-dialog-content": "¿Quiere borrar los clientes situados en {$INTERPOLATION} o quiere resituarlos en el nivel superior?",
"delete-all-clients-button": "Borrar todos los clientes",
"reposition-clients-button": "Resituar",
"deleteDialogTitle": "Eliminar",
"deleteConfirmationMessage": "¿Estás seguro que deseas eliminar {$INTERPOLATION}?",
"cancelButton": "Cancelar",
"confirmButton": "Eliminar",
"titleAdminGroups": "Administrar grupos",
"btnNewOrgUnit": "Nueva Unidad Organizativa",
"btnNewClient": "Nuevo Cliente",
"btnLegend": "Leyenda",
"btnClassroomMap": "Plano de aula",
"lblSearch": "Búsqueda",
"phSearch": "Búsqueda",
"hintSearch": "Pulsar 'enter' para buscar entre las unidades organizativas",
"cardTitleOrgUnit": "Unidad organizativa",
"menuItemTreeView": "Ver organigrama",
"menuItemEdit": "Editar",
"menuItemViewData": "Visualizar datos",
"menuItemAddOrgUnit": "Añadir unidad organizativa",
"menuItemAddClient": "Crear cliente",
"cardTitleElements": "Elementos internos",
"noElements": "No hay elementos internos",
"menuItemEditElement": "Editar",
"menuItemViewOrgUnit": "Visualizar datos",
"menuItemAddInternalOrgUnit": "Añadir unidad organizativa",
"menuItemAddClientToOrgUnit": "Crear cliente",
"menuItemDeleteElement": "Borrar elemento",
"orgUnitTitle": "Unidad organizativa",
"classroomGroupsTitle": "Grupos de aula",
"classroomTitle": "Aula",
"clientGroupsTitle": "Grupos de clientes",
"clientTitle": "Cliente",
"addOrgUnitTitle": "Añadir Unidad Organizativa",
"mac-hint": "Example: 00:11:22:33:44:55",
"mac-error": "Invalid MAC format. Valid example: 00:11:22:33:44:55",
"ip-label": "IP Address",
"ip-hint": "Example: 127.0.0.1",
"ip-error": "Invalid IP address format. Valid example: 127.0.0.1",
"menu-url-label": "Menu URL",
"menu-url-error": "Invalid URL format.",
"hardware-profile-label": "Hardware Profile",
"hardware-profile-error": "Invalid URL format.",
"cancel-button": "Cancel",
"add-button": "Add",
"edit-client-dialog-title": "Edit Client",
"delete-dialog-title": "Delete",
"delete-dialog-content": "Do you want to delete the clients located at {$INTERPOLATION} or reposition them at the upper level?",
"delete-all-clients-button": "Delete all clients",
"reposition-clients-button": "Reposition",
"deleteDialogTitle": "Delete",
"deleteConfirmationMessage": "Are you sure you want to delete {$INTERPOLATION}?",
"cancelButton": "Cancel",
"confirmButton": "Delete",
"tabGeneralLabel": "General",
"headerAdminGroups": "Manage groups",
"buttonNewOU": "New Organizational Unit",
"buttonNewClient": "New Client",
"buttonLegend": "Legend",
"buttonRoomMap": "Classroom layout",
"labelSearch": "Search",
"placeholderSearch": "Search",
"hintSearch": "Press 'enter' to search among organizational units",
"cardTitleOU": "Organizational Unit",
"tooltipViewTree": "View as tree",
"menuItemViewTree": "View organizational chart",
"tooltipEditOU": "Edit organizational unit",
"menuItemEditOU": "Edit",
"tooltipViewOU": "View organizational unit",
"menuItemViewOU": "View data",
"tooltipAddOU": "Create internal organizational unit",
"menuItemAddOU": "Add organizational unit",
"tooltipAddClient": "Create client in this organizational unit",
"menuItemAddClient": "Create client",
"cardTitleInternalElements": "Internal Elements",
"emptyListNoInternalElements": "No internal elements",
"tooltipEditElement": "Edit element",
"menuItemEditElement": "Edit",
"tooltipViewOUElement": "View organizational unit",
"menuItemViewOUElement": "View data",
"tooltipAddOUElement": "Create internal organizational unit",
"menuItemAddOUElement": "Add organizational unit",
"tooltipAddClientElement": "Create client in this organizational unit",
"menuItemAddClientElement": "Create client",
"tooltipDeleteElement": "Delete element",
"menuItemDeleteElement": "Delete element",
"tabAdvancedSearchLabel": "Advanced Search",
"headerSearch": "Search",
"labelSelectFilter": "Select filter",
"orgUnitTitle": "Organizational Unit",
"classroomGroupsTitle": "Classroom Groups",
"classroomTitle": "Classroom",
"clientGroupsTitle": "Client Groups",
"clientTitle": "Client",
"addOrgUnitTitle": "Add Organizational Unit",
"generalStepLabel": "General",
"typeLabel": "Tipo",
"nameLabel": "Nombre",
"createOrgUnitparentLabel": "Unidad organizativa padre",
"typeLabel": "Type",
"nameLabel": "Name",
"createOrgUnitparentLabel": "Parent Organizational Unit",
"noParentOption": "--",
"descriptionLabel": "Descripción",
"nextButton": "Siguiente",
"classroomInfoStepLabel": "Información del Aula",
"locationLabel": "Ubicación",
"projectorToggle": "Proyector",
"boardToggle": "Pizarra",
"capacityLabel": "Aforo",
"backButton": "Atrás",
"additionalInfoStepLabel": "Información Adicional",
"commentsLabel": "Comentarios",
"networkSettingsStepLabel": "Configuración de Red",
"proxyUrlLabel": "Url servidor Proxy",
"dnsIpLabel": "IP servidor DNS",
"netmaskLabel": "Máscara de Red",
"descriptionLabel": "Description",
"nextButton": "Next",
"classroomInfoStepLabel": "Classroom Information",
"locationLabel": "Location",
"projectorToggle": "Projector",
"boardToggle": "Board",
"capacityLabel": "Capacity",
"backButton": "Back",
"additionalInfoStepLabel": "Additional Information",
"commentsLabel": "Comments",
"networkSettingsStepLabel": "Network Settings",
"proxyUrlLabel": "Proxy Server URL",
"dnsIpLabel": "DNS Server IP",
"netmaskLabel": "Netmask",
"routerLabel": "Router",
"ntpIpLabel": "IP servidor NTP",
"p2pModeLabel": "Modo P2P",
"p2pTimeLabel": "Tiempo P2P",
"mcastIpLabel": "IP Multicast",
"mcastSpeedLabel": "Velocidad Multicast",
"mcastPortLabel": "Puerto Multicast",
"mcastModeLabel": "Modo Multicast",
"menuUrlLabel": "Menú URL",
"hardwareProfileLabel": "Perfil de Hardware",
"urlFormatError": "Formato de URL inválido.",
"submitButton": "Añadir",
"editOrgUnitTitle": "Editar Unidad Organizativa",
"editOrgUnitParentLabel": "Padre",
"validationToggle": "Validación",
"orgUnitPropertiesTitle": "Propiedades unidad organizativa",
"generalDataTab": "Datos generales",
"classroomNetworkPropertiesTab": "Propiedades aula y de red",
"actionsTab": "Acciones",
"2366056895545879062": "Encender",
"7368908909686115507": "Apagar",
"7760171369336053154": "Resetear",
"6799187990933478083": "Otras acciones 1",
"8971534271481971645": "Otras acciones 2",
"3300614831699539964": "Otras acciones 3",
"viewTreeTitle": "Visualizar árbol unidad Organizativa",
"closeButton": "Cerrar",
"ntpIpLabel": "NTP Server IP",
"p2pModeLabel": "P2P Mode",
"p2pTimeLabel": "P2P Time",
"mcastIpLabel": "Multicast IP",
"mcastSpeedLabel": "Multicast Speed",
"mcastPortLabel": "Multicast Port",
"mcastModeLabel": "Multicast Mode",
"menuUrlLabel": "Menu URL",
"hardwareProfileLabel": "Hardware Profile",
"urlFormatError": "Invalid URL format.",
"submitButton": "Add",
"editOrgUnitTitle": "Edit Organizational Unit",
"editOrgUnitParentLabel": "Parent",
"validationToggle": "Validation",
"orgUnitPropertiesTitle": "Organizational Unit Properties",
"generalDataTab": "General Data",
"classroomNetworkPropertiesTab": "Classroom and Network Properties",
"actionsTab": "Actions",
"2366056895545879062": "Power on",
"7368908909686115507": "Power off",
"7760171369336053154": "Reset",
"6799187990933478083": "Other actions 1",
"8971534271481971645": "Other actions 2",
"3300614831699539964": "Other actions 3",
"viewTreeTitle": "View Organizational Unit Tree",
"closeButton": "Close",
"webConsoleTitle": "Opengnsys webconsole",
"admin": "Administración",
"editUser": "Editar usuario",
"usersMenuItem": "Usuarios",
"admin": "Administration",
"editUser": "Edit user",
"usersMenuItem": "Users",
"rolesMenuItem": "Roles",
"logout": "Salir",
"welcomeUser": "Bienvenido {$INTERPOLATION}",
"groups": "Grupos",
"actions": "Acciones",
"images": "Imágenes",
"components": "Componentes",
"repositories": "Repositorios",
"menus": "Menús",
"search": "Buscar",
"calendars": "Calendarios",
"logout": "Logout",
"welcomeUser": "Welcome {$INTERPOLATION}",
"groups": "Groups",
"actions": "Actions",
"images": "Images",
"components": "Components",
"repositories": "Repositories",
"menus": "Menus",
"search": "Search",
"calendars": "Calendars",
"headerOpengnsys": "Opengnsys",
"loginlabelUsername": "Introduce tu usuario",
"loginlabelPassword": "Introduce tu contraseña",
"buttonLogin": "Iniciar sesión",
"labelUsers": "Usuarios",
"loginlabelUsername": "Enter your username",
"loginlabelPassword": "Enter your password",
"buttonLogin": "Log in",
"labelUsers": "Users",
"labelRoles": "Roles",
"dialogTitleAddRole": "Añadir Rol (TBD)",
"labelRoleName": "Nombre",
"sectionTitlePermissions": "Permisos:",
"checkboxManageUsers": "Gestionar los usuarios",
"checkboxPXEConfig": "Configuración PXE",
"checkboxConsoleImages": "Imágenes de la consola web",
"checkboxManageComponents": "Gestionar los distintos componentes",
"checkboxCreateImages": "Crear imágenes",
"checkboxServerConfigScript": "script de configuración del servidor",
"dialogTitleAddRole": "Add Role (TBD)",
"labelRoleName": "Name",
"sectionTitlePermissions": "Permissions:",
"checkboxManageUsers": "Manage users",
"checkboxPXEConfig": "PXE Configuration",
"checkboxConsoleImages": "Web console images",
"checkboxManageComponents": "Manage components",
"checkboxCreateImages": "Create images",
"checkboxServerConfigScript": "Server configuration script",
"checkboxOther": "...",
"buttonCancel": "Cancelar",
"buttonAdd": "Añadir",
"dialogTitleDeleteRole": "Eliminar Rol",
"dialogContentDeleteRole": "¿Estás seguro que deseas eliminar el rol {$INTERPOLATION}?",
"buttonDelete": "Eliminar",
"headerRoleManagement": "Gestión de roles",
"buttonAddRole": "+ Añadir",
"headerActions": "Acciones",
"dialogTitleAddUser": "Añadir Usuario",
"addUserlabelUsername": "Nombre de usuario",
"addUserlabelPassword": "Contraseña",
"labelRole": "Rol",
"labelOrganizationalUnit": "Unidad organiativa",
"dialogTitleEditUser": "Editar Usuario",
"labelCurrentPassword": "Contraseña actual",
"labelNewPassword": "Nueva contraseña",
"labelRepeatPassword": "Repite la contraseña",
"errorPasswordMismatch": " Las contraseñas no coinciden ",
"buttonCancel": "Cancel",
"buttonAdd": "Add",
"dialogTitleDeleteRole": "Delete Role",
"dialogContentDeleteRole": "Are you sure you want to delete the role {$INTERPOLATION}?",
"buttonDelete": "Delete",
"headerRoleManagement": "Role management",
"buttonAddRole": "+ Add",
"headerActions": "Actions",
"dialogTitleAddUser": "Add User",
"addUserlabelUsername": "Username",
"addUserlabelPassword": "Password",
"labelRole": "Role",
"labelOrganizationalUnit": "Organizational Unit",
"dialogTitleEditUser": "Edit User",
"labelCurrentPassword": "Current password",
"labelNewPassword": "New password",
"labelRepeatPassword": "Repeat password",
"errorPasswordMismatch": " Passwords do not match ",
"errorUpdate": " {$INTERPOLATION} ",
"buttonEdit": "Editar",
"dialogTitleDeleteUser": "Eliminar Usuario",
"dialogContentDeleteUser": "¿Estás seguro que deseas eliminar a {$INTERPOLATION}?",
"editUserlabelUsername": "Nombre de usuario",
"editUserlabelPassword": "Contraseña",
"labelOrgUnit": "Unidad organizativa",
"headerUserManagement": "Gestión de usuarios",
"buttonAddUser": "+ Añadir",
"columnActions": "Acciones",
"buttonEditUser": "Editar",
"buttonDeleteUser": "Eliminar"
"buttonEdit": "Edit",
"dialogTitleDeleteUser": "Delete User",
"dialogContentDeleteUser": "Are you sure you want to delete {$INTERPOLATION}?",
"editUserlabelUsername": "Username",
"editUserlabelPassword": "Password",
"labelOrgUnit": "Organizational Unit",
"headerUserManagement": "User management",
"buttonAddUser": "+ Add",
"columnActions": "Actions",
"buttonEditUser": "Edit",
"buttonDeleteUser": "Delete"
}
}
}