diff --git a/src/frontend/app/indexation/indexation.component.ts b/src/frontend/app/indexation/indexation.component.ts index 4402fc646c1c01ec9b626904cadd967b520e0bd1..1a80cd0793b4cf24a62bf9853cc77df062cf1ff4 100644 --- a/src/frontend/app/indexation/indexation.component.ts +++ b/src/frontend/app/indexation/indexation.component.ts @@ -11,6 +11,7 @@ import { AuthService } from '../service/auth.service'; import { NotificationService } from '../service/notification.service'; import { SignaturesContentService } from '../service/signatures.service'; import { SignaturePositionComponent } from './signature-position/signature-position.component'; +import { ActionsService } from '../service/actions.service'; @Component({ templateUrl: 'indexation.component.html', @@ -40,7 +41,8 @@ export class IndexationComponent implements OnInit { public loadingController: LoadingController, public alertController: AlertController, public datePipe: DatePipe, - public modalController: ModalController + public modalController: ModalController, + public actionsService: ActionsService ) { } ngOnInit(): void { } @@ -176,6 +178,7 @@ export class IndexationComponent implements OnInit { const objTosend = this.formatData(data.note); for (let index = 0; index < objTosend.length; index++) { await this.saveDocument(objTosend[index], index); + this.actionsService.setEvent(objTosend[0].workflow); } load.dismiss(); if (this.errors.length === 0) { diff --git a/src/frontend/app/service/actions.service.ts b/src/frontend/app/service/actions.service.ts index 1427bab92c527ff2f59ff7e3a44ecca7c359d94c..f20cabbe0ee0c0422b3ed673349432fddf76c5b1 100644 --- a/src/frontend/app/service/actions.service.ts +++ b/src/frontend/app/service/actions.service.ts @@ -4,15 +4,18 @@ import { TranslateService } from '@ngx-translate/core'; import { tap, catchError } from 'rxjs/operators'; import { SignaturesContentService } from './signatures.service'; import { NotificationService } from '../service/notification.service'; -import { of } from 'rxjs'; +import { Observable, of, Subject } from 'rxjs'; import { FunctionsService } from './functions.service'; import { AlertController } from '@ionic/angular'; +import { AuthService } from '../service/auth.service'; @Injectable({ providedIn: 'root' }) export class ActionsService { + private eventAction = new Subject<any>(); + constructor( public http: HttpClient, public translate: TranslateService, @@ -20,8 +23,17 @@ export class ActionsService { public signaturesService: SignaturesContentService, private functionsService: FunctionsService, public alertController: AlertController, + public authService: AuthService ) { } + catchEvent(): Observable<any> { + return this.eventAction.asObservable(); + } + + setEvent(content: any) { + return this.eventAction.next(content); + } + sendDocument(documentId: number, note: string, eSignature: any = null, signatureLength: any = null, tmpUniqueId: string = null, imgDocElements: any[] = null) { return new Promise(async (resolve) => { let data: any = {}; diff --git a/src/frontend/app/sidebar/sidebar.component.ts b/src/frontend/app/sidebar/sidebar.component.ts index 33277db95220fb552901bc153b353555f7f8772b..a118d0d34d23b8767b5199e26ccfbcbfb8a338c9 100755 --- a/src/frontend/app/sidebar/sidebar.component.ts +++ b/src/frontend/app/sidebar/sidebar.component.ts @@ -4,12 +4,14 @@ import { Router, ActivatedRoute } from '@angular/router'; import { SignaturesContentService } from '../service/signatures.service'; import { NotificationService } from '../service/notification.service'; import { FormControl } from '@angular/forms'; -import { debounceTime, switchMap, distinctUntilChanged, tap, finalize } from 'rxjs/operators'; +import { debounceTime, switchMap, distinctUntilChanged, tap, finalize, elementAt } from 'rxjs/operators'; import { AuthService } from '../service/auth.service'; import { MenuController, ModalController } from '@ionic/angular'; import { ProfileComponent } from '../profile/profile.component'; import { FunctionsService } from '../service/functions.service'; import { FiltersService } from '../service/filters.service'; +import { Subscription } from 'rxjs'; +import { ActionsService } from '../service/actions.service'; @Component({ @@ -22,6 +24,8 @@ export class SidebarComponent implements OnInit, AfterViewInit { @ViewChild('listContent') listContent: ElementRef; @ViewChild('searchInput') searchInput: ElementRef; + subscription: Subscription; + loadingList: boolean = false; searchMode: boolean = false; @@ -37,7 +41,8 @@ export class SidebarComponent implements OnInit, AfterViewInit { public authService: AuthService, public modalController: ModalController, public functionsService: FunctionsService, - public filterService: FiltersService + public filterService: FiltersService, + public actionsService: ActionsService ) { this.searchTerm.valueChanges.pipe( debounceTime(500), @@ -49,6 +54,14 @@ export class SidebarComponent implements OnInit, AfterViewInit { this.signaturesService.documentsListCount = response.count; this.loadingList = false; }); + + this.subscription = this.actionsService.catchEvent().subscribe((result: any[]) => { + let mode: any = result.filter((item: any) => item.userId === this.authService.user.id).map((el: any) => el.mode); + mode = [... new Set(mode)].toString(); + this.signaturesService.mode = mode; + this.filter(mode); + this.signaturesService.mode = mode; + }); } ngOnInit() {