From 4eb4e2ba415ee3d5d39c06932d78a225bb95e196 Mon Sep 17 00:00:00 2001 From: Alex ORLUC <alex.orluc@maarch.org> Date: Fri, 16 Oct 2020 18:27:20 +0200 Subject: [PATCH] FEAT #13268 TIME 0:20 begin admin connections --- .../administration-routing.module.ts | 4 +- .../administration/administration.module.ts | 4 +- .../connections-administration.component.html | 77 +++++++++++++++++++ .../connections-administration.component.scss | 0 .../connections-administration.component.ts | 17 ++++ src/frontend/service/privileges.service.ts | 10 +++ src/lang/lang-fr.json | 4 +- 7 files changed, 113 insertions(+), 3 deletions(-) create mode 100644 src/frontend/app/administration/connection/connections-administration.component.html create mode 100644 src/frontend/app/administration/connection/connections-administration.component.scss create mode 100644 src/frontend/app/administration/connection/connections-administration.component.ts diff --git a/src/frontend/app/administration/administration-routing.module.ts b/src/frontend/app/administration/administration-routing.module.ts index 7800f0559b9..05b01fe229f 100755 --- a/src/frontend/app/administration/administration-routing.module.ts +++ b/src/frontend/app/administration/administration-routing.module.ts @@ -54,6 +54,7 @@ import { IssuingSiteComponent } from './registered-mail/issuing-site/issuing-sit import { RegisteredMailListComponent } from './registered-mail/registered-mail-list.component'; import { RegisteredMailComponent } from './registered-mail/registered-mail.component'; import { SearchAdministrationComponent } from './search/search-administration.component'; +import { ConnectionsAdministrationComponent } from './connection/connections-administration.component'; @NgModule({ @@ -129,7 +130,8 @@ import { SearchAdministrationComponent } from './search/search-administration.co { path: 'administration/issuingSites', canActivate: [AppGuard], component: IssuingSiteListComponent }, { path: 'administration/issuingSites/new', canActivate: [AppGuard], component: IssuingSiteComponent }, { path: 'administration/issuingSites/:id', canActivate: [AppGuard], component: IssuingSiteComponent }, - { path: 'administration/search', canActivate : [AppGuard], component : SearchAdministrationComponent} + { path: 'administration/search', canActivate : [AppGuard], component : SearchAdministrationComponent}, + { path: 'administration/connections', canActivate : [AppGuard], component : ConnectionsAdministrationComponent} ]), ], exports: [ diff --git a/src/frontend/app/administration/administration.module.ts b/src/frontend/app/administration/administration.module.ts index b33eb544a64..f7407a67f85 100755 --- a/src/frontend/app/administration/administration.module.ts +++ b/src/frontend/app/administration/administration.module.ts @@ -75,6 +75,7 @@ import { IssuingSiteListComponent } from './registered-mail/issuing-site/issuing import { IssuingSiteComponent } from './registered-mail/issuing-site/issuing-site.component'; import { RegisteredMailListComponent } from './registered-mail/registered-mail-list.component'; import { SearchAdministrationComponent } from './search/search-administration.component'; +import { ConnectionsAdministrationComponent } from './connection/connections-administration.component'; @NgModule({ @@ -158,7 +159,8 @@ import { SearchAdministrationComponent } from './search/search-administration.co IssuingSiteListComponent, IssuingSiteComponent, RegisteredMailListComponent, - SearchAdministrationComponent + SearchAdministrationComponent, + ConnectionsAdministrationComponent ], entryComponents: [ AccountLinkComponent, diff --git a/src/frontend/app/administration/connection/connections-administration.component.html b/src/frontend/app/administration/connection/connections-administration.component.html new file mode 100644 index 00000000000..b3329dfdbc1 --- /dev/null +++ b/src/frontend/app/administration/connection/connections-administration.component.html @@ -0,0 +1,77 @@ +<mat-sidenav-container autosize class="maarch-container"> + <ng-template #adminMenuTemplate> + <mat-nav-list> + <h3 mat-subheader>{{'lang.actions' | translate}}</h3> + <a mat-list-item routerLink="/administration/connections/new"> + <mat-icon color="primary" mat-list-icon class="fa fa-plus"></mat-icon> + <p mat-line> + {{'lang.add' | translate}} + </p> + </a> + </mat-nav-list> + </ng-template> + <mat-sidenav-content> + <div class="bg-head"> + <div class="bg-head-title" [class.customContainerRight]="appService.getViewMode()"> + <div class="bg-head-title-label"> + <header-left></header-left> + </div> + <div class="bg-head-title-tool"> + <header-right></header-right> + </div> + </div> + <div class="bg-head-content" [class.fullContainer]="appService.getViewMode()"> + </div> + </div> + <div class="container" [class.fullContainer]="appService.getViewMode()"> + <div class="container-content"> + <div *ngIf="loading" style="display:flex;height:100%;"> + <mat-spinner style="margin:auto;"></mat-spinner> + </div> + <mat-card *ngIf="!loading" class="card-app-content"> + <div class="row" style="margin:0px;"> + <div class="col-md-6 col-xs-6"> + <mat-form-field> + <input matInput [formControl]="adminService.getFilterField()" placeholder="{{'lang.filterBy' | translate}}"> + </mat-form-field> + </div> + <div class="col-md-6 col-xs-6"> + <mat-paginator #paginator [length]="100" [hidePageSize]="true" [pageSize]="10"> + </mat-paginator> + </div> + </div> + <mat-table #table [dataSource]="adminService.getDataSource()" matSortDisableClear matSort> + <ng-container matColumnDef="group_id"> + <mat-header-cell *matHeaderCellDef mat-sort-header + [class.hide-for-mobile]="appService.getViewMode()">{{'lang.id' | translate}}</mat-header-cell> + <mat-cell *matCellDef="let element" [class.hide-for-mobile]="appService.getViewMode()"> + {{element.group_id}} </mat-cell> + </ng-container> + <ng-container matColumnDef="group_desc"> + <mat-header-cell *matHeaderCellDef mat-sort-header style="flex:2;">{{'lang.description' | translate}} + </mat-header-cell> + <mat-cell *matCellDef="let element" style="flex:2;"> + {{element.group_desc}} </mat-cell> + </ng-container> + <ng-container matColumnDef="actions"> + <mat-header-cell *matHeaderCellDef style="flex:1;"></mat-header-cell> + <mat-cell *matCellDef="let element" style="justify-content: flex-end;flex:1;"> + <button mat-icon-button color="warn" matTooltip="{{'lang.delete' | translate}}" + (click)="$event.stopPropagation();preDelete(element)"> + <mat-icon class="fa fa-trash-alt fa-2x" aria-hidden="true"></mat-icon> + </button> + </mat-cell> + </ng-container> + <mat-header-row *matHeaderRowDef="displayedColumns"></mat-header-row> + <mat-row *matRowDef="let row; columns: displayedColumns;" + routerLink="/administration/groups/{{row.id}}" style="cursor:pointer;" + matTooltip="{{'lang.view' | translate}}"></mat-row> + </mat-table> + <div class="mat-paginator" + style="min-height:48px;display: flex;justify-content: end;align-items: center;padding-right: 20px;"> + {{groups.length}} {{'lang.groups' | translate}}</div> + </mat-card> + </div> + </div> + </mat-sidenav-content> +</mat-sidenav-container> \ No newline at end of file diff --git a/src/frontend/app/administration/connection/connections-administration.component.scss b/src/frontend/app/administration/connection/connections-administration.component.scss new file mode 100644 index 00000000000..e69de29bb2d diff --git a/src/frontend/app/administration/connection/connections-administration.component.ts b/src/frontend/app/administration/connection/connections-administration.component.ts new file mode 100644 index 00000000000..23bee32788f --- /dev/null +++ b/src/frontend/app/administration/connection/connections-administration.component.ts @@ -0,0 +1,17 @@ +import { Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'app-connections-administration', + templateUrl: './connections-administration.component.html', + styleUrls: ['./connections-administration.component.scss'] +}) +export class ConnectionsAdministrationComponent implements OnInit { + + loading: boolean = true; + + constructor() { } + + ngOnInit(): void { + } + +} diff --git a/src/frontend/service/privileges.service.ts b/src/frontend/service/privileges.service.ts index 9cca9952fd2..9d487739c26 100755 --- a/src/frontend/service/privileges.service.ts +++ b/src/frontend/service/privileges.service.ts @@ -305,6 +305,16 @@ export class PrivilegeService { 'angular': true, 'hasParams': false }, + { + 'id': 'admin_connections', + 'label': 'lang.connections', + 'comment': 'lang.connectionsDesc', + 'route': '/administration/connections', + 'unit': 'supervision', + 'style': 'fas fa-plug', + 'angular': true, + 'hasParams': false + }, ]; private privileges: privilege[] = [ diff --git a/src/lang/lang-fr.json b/src/lang/lang-fr.json index 859e3e7bd39..f6a461ca4d7 100644 --- a/src/lang/lang-fr.json +++ b/src/lang/lang-fr.json @@ -2099,6 +2099,8 @@ "formDescription" : "Permet d'utiliser ce champs dans les modèle d'enregistrement", "technicalInformations" : "Informations techniques", "technicalDescription" : "Ce type est persistant et n'as pas besoin d'être associé à un modèle d'enregistrement", - "displayMode" :"Mode d'affichage" + "displayMode" :"Mode d'affichage", + "connections" :"Connexions", + "connectionsDesc" :"Administrer les modes de connexion de l'application" } -- GitLab