diff --git a/src/frontend/app/administration/group/indexing/indexing-administration.component.ts b/src/frontend/app/administration/group/indexing/indexing-administration.component.ts index 291246386864a6f41ee4ba1cf41cf13977c85968..a3d53a7e35480abf630139b0ac687544647a397e 100644 --- a/src/frontend/app/administration/group/indexing/indexing-administration.component.ts +++ b/src/frontend/app/administration/group/indexing/indexing-administration.component.ts @@ -7,6 +7,7 @@ import { map, catchError, filter, exhaustMap, finalize } from 'rxjs/operators'; import { of } from 'rxjs'; import { MatDialogRef, MatDialog } from '@angular/material'; import { ConfirmComponent } from '../../../../plugins/modal/confirm.component'; +import { HeaderService } from '../../../../service/header.service'; declare function $j(selector: any): any; @@ -38,6 +39,7 @@ export class IndexingAdministrationComponent implements OnInit { constructor(public http: HttpClient, private notify: NotificationService, + private headerService: HeaderService, private dialog: MatDialog, ) { @@ -317,6 +319,7 @@ export class IndexingAdministrationComponent implements OnInit { this.http.put('../../rest/groups/' + this.groupId + '/indexing', { canIndex: canIndex }).pipe( tap(() => { this.indexingInfo.canIndex = canIndex; + this.headerService.refreshShortcuts(); }), tap(() => { if (this.indexingInfo.canIndex) { diff --git a/src/frontend/app/menu/menu-shortcut.component.html b/src/frontend/app/menu/menu-shortcut.component.html index 11b453d7b1f22b23388fe4395c2e05dd9603525f..b38e53a74a2618bea04330360ad55e3b9b7112ab 100755 --- a/src/frontend/app/menu/menu-shortcut.component.html +++ b/src/frontend/app/menu/menu-shortcut.component.html @@ -31,13 +31,13 @@ <h3 mat-subheader>{{lang.shortcut}}</h3> <div class="button-row" style="padding-left: 10px;padding-right: 10px;display: flex;width: 300px;margin-top: -10px;margin-bottom: 10px;"> <ng-container *ngFor="let shortcut of headerService.shortcut"> - <span style="flex:1;text-align: left;padding: 5px;" *ngIf="(shortcut.id == 'indexing' && speedDialFabButtons.length<=1) || (shortcut.id != 'indexing')"> + <span style="flex:1;text-align: left;padding: 5px;" *ngIf="(shortcut.id == 'indexing' && shortcut.groups.length<=1) || (shortcut.id != 'indexing')"> <button style="z-index: 9999;" color="default" mat-fab (click)="gotToMenu(shortcut);" matTooltip="{{shortcut.name}}" matTooltipPosition="above"> <mat-icon class="fa {{shortcut.style}}" style="height:auto;font-size:22px;"></mat-icon> </button> </span> - <span style="flex:1;text-align: left;padding: 5px;position: relative;" *ngIf="shortcut.id=='indexing' && speedDialFabButtons.length>1"> + <span style="flex:1;text-align: left;padding: 5px;position: relative;" *ngIf="shortcut.id=='indexing' && shortcut.groups.length>1"> <smd-fab-speed-dial #myFab direction="down" animationMode="fling" fixed="false" (mouseenter)="myFab.open = true" (mouseleave)="myFab.open = false"> <smd-fab-trigger spin="true"> @@ -47,9 +47,9 @@ </smd-fab-trigger> <smd-fab-actions> - <button color="primary" mat-mini-fab (click)="onSpeedDialFabClicked(button,shortcut)" *ngFor="let button of speedDialFabButtons"> - <span class="speedDialLabel" color="primary" style="display:none;position: absolute;margin-left: 20px;margin-top: -5px;">{{button.label}}</span> - <mat-icon class="{{button.icon}}"></mat-icon> + <button color="primary" mat-mini-fab (click)="onSpeedDialFabClicked(group,shortcut)" *ngFor="let group of shortcut.groups"> + <span class="speedDialLabel" color="primary" style="display:none;position: absolute;margin-left: 20px;margin-top: -5px;">{{group.label}}</span> + <mat-icon class="fa fa-plus"></mat-icon> </button> </smd-fab-actions> </smd-fab-speed-dial> diff --git a/src/frontend/app/menu/menu-shortcut.component.scss b/src/frontend/app/menu/menu-shortcut.component.scss index 4afdbf7e348cdf24c776460ee123fc2614e06b39..e7033ed9a7206852c4763cfbe6098ceb3ef1bd79 100755 --- a/src/frontend/app/menu/menu-shortcut.component.scss +++ b/src/frontend/app/menu/menu-shortcut.component.scss @@ -3,6 +3,10 @@ color: #135f7f; } +.mat-fab ::ng-deep.mat-button-wrapper { + padding: 0px; +} + .speedDialLabel { margin-left: -220px !important; width: 200px; @@ -16,3 +20,7 @@ transition: opacity 1s ease-in !important; display: block !important; } + +.mat-icon { + height: auto !important; +} \ No newline at end of file diff --git a/src/frontend/app/menu/menu-shortcut.component.ts b/src/frontend/app/menu/menu-shortcut.component.ts index b57be28f20db5592e11d35114d2f91430dfc4a08..aa9ef5a6b6c10ef57f981bbf3130878a6a9f95de 100755 --- a/src/frontend/app/menu/menu-shortcut.component.ts +++ b/src/frontend/app/menu/menu-shortcut.component.ts @@ -34,24 +34,12 @@ export class MenuShortcutComponent implements OnInit { /**/ } - ngOnInit(): void { - setTimeout(() => { - const index = this.headerService.shortcut.map(index => index.id).indexOf('indexing'); - if(index > -1) { - this.headerService.shortcut[index].groups.forEach((group: any) => { - this.speedDialFabButtons.push({ - icon: 'fa fa-plus', - tooltip: this.lang.indexingWithProfile+' '+ group.label, - label: group.label, - id: group.id - }); - }); - } - }, 500); + ngOnInit(): void { + this.headerService.getShortcut(); } - onSpeedDialFabClicked(btn: any, shortcut:any) { - location.href = shortcut.servicepage+'&groupId='+btn.id; + onSpeedDialFabClicked(group: any, shortcut:any) { + location.href = shortcut.servicepage+'&groupId='+group.id; } gotToMenu(shortcut:any) { diff --git a/src/frontend/service/header.service.ts b/src/frontend/service/header.service.ts index c03551758f93d6a54da2d3d3049ec0a9e7d8fe50..578386a43eab367d0c2319fb8f6c4afc54204ee3 100755 --- a/src/frontend/service/header.service.ts +++ b/src/frontend/service/header.service.ts @@ -1,7 +1,7 @@ import { Injectable } from '@angular/core'; import { HttpClient } from '@angular/common/http'; import { LANG } from '../app/translate.component'; -import { tap, catchError } from 'rxjs/operators'; +import { tap, catchError, filter } from 'rxjs/operators'; import { of } from 'rxjs'; @Injectable() @@ -10,7 +10,7 @@ export class HeaderService { subHeaderMessage: string = ""; user: any = { firstname: "", lastname: "" }; menu: any[] = []; - shortcut: any[] = []; + shortcut: any[] = null; shortcutIcon: any = { home: 'fa fa-home', administration: 'fa fa-cogs', @@ -25,14 +25,30 @@ export class HeaderService { this.http.get('../../rest/header').pipe( tap((data: any) => this.setUser(data.user)), tap((data: any) => this.setMenu(data.menu)), + catchError((err: any) => { + console.log(err); + return of(false); + }) + ).subscribe(); + } + + getShortcut() { + this.http.get('../../rest/shortcuts').pipe( + filter(() => this.shortcut === null), tap((data: any) => this.setShortcut(data.shortcuts)), + tap(() => console.log(this.shortcut)), catchError((err: any) => { - console.log(err.error.errors); + console.log(err); return of(false); }) ).subscribe(); } + refreshShortcuts() { + this.shortcut = []; + this.getShortcut(); + } + setUser(user: any) { this.user = user; } @@ -53,6 +69,7 @@ export class HeaderService { } setShortcut(shortcuts: any) { + this.shortcut = []; shortcuts.forEach((element: any) => { if (['indexing', 'search'].indexOf(element.id) > -1) { // TO DO : DELETE AFTER FULL V2