Skip to content
Snippets Groups Projects
document-note-pad.component.ts 3.56 KiB
Newer Older
  • Learn to ignore specific revisions
  • import { Component, OnInit, ViewChild, Input, ElementRef, EventEmitter, Output } from '@angular/core';
    
    Alex ORLUC's avatar
    Alex ORLUC committed
    import { SignaturesContentService } from '../service/signatures.service';
    import { NotificationService } from '../service/notification.service';
    import { DomSanitizer } from '@angular/platform-browser';
    
    import { TranslateService } from '@ngx-translate/core';
    
    import { AuthService } from '../service/auth.service';
    
    Alex ORLUC's avatar
    Alex ORLUC committed
    
    @Component({
        selector: 'app-document-note-pad',
        templateUrl: 'document-note-pad.component.html',
        styleUrls: ['document-note-pad.component.scss'],
    })
    export class DocumentNotePadComponent implements OnInit {
    
    
        penColors = [{ id: '#000000' }, { id: '#1a75ff' }, { id: '#FF0000' }];
    
        @Output() triggerEvent = new EventEmitter<string>();
        @ViewChild('canvas') canvas: ElementRef;
    
        constructor(private translate: TranslateService, private sanitizer: DomSanitizer, public signaturesService: SignaturesContentService, public notificationService: NotificationService, public authService: AuthService) { }
    
    Alex ORLUC's avatar
    Alex ORLUC committed
    
        ngOnInit(): void { }
    
    
        initPad() {
            setTimeout(() => {
    
    Alex ORLUC's avatar
    Alex ORLUC committed
                ($('#myCanvas') as any).sign({
    
                    mode: this.authService.user.preferences.writingMode, // direct or stylus
                    lineWidth: this.authService.user.preferences.writingSize,
    
                    changeColor: $('.radio'),
    
    Alex ORLUC's avatar
    Alex ORLUC committed
                    undo: $('.undo'),
    
                    height: this.signaturesService.workingAreaHeight,
                    width: this.signaturesService.workingAreaWidth,
    
                    fixHeight: this.signaturesService.y,
    
                    fixWidth: this.signaturesService.x,
                    mobileMode: this.signaturesService.mobileMode
    
                $('input[value=\'' + this.authService.user.preferences.writingColor + '\']').trigger('click');
    
    Alex ORLUC's avatar
    Alex ORLUC committed
            }, 200);
    
    Alex ORLUC's avatar
    Alex ORLUC committed
        }
    
        cancelAnnotation() {
    
            this.signaturesService.mainLoading = true;
    
    Alex ORLUC's avatar
    Alex ORLUC committed
            setTimeout(() => {
    
                this.triggerEvent.emit();
                this.signaturesService.x = 0;
    
                this.signaturesService.y = 90;
    
    Alex ORLUC's avatar
    Alex ORLUC committed
                this.signaturesService.annotationMode = false;
    
                this.signaturesService.mainLoading = false;
    
    Alex ORLUC's avatar
    Alex ORLUC committed
            }, 200);
        }
    
        validateAnnotation() {
    
            this.signaturesService.mainLoading = true;
    
    Alex ORLUC's avatar
    Alex ORLUC committed
            if (!this.signaturesService.notesContent[this.signaturesService.currentPage]) {
                this.signaturesService.notesContent[this.signaturesService.currentPage] = [];
            }
    
            this.signaturesService.notesContent[this.signaturesService.currentPage].push(
                {
                    'fullPath': <HTMLCanvasElement>this.canvas.nativeElement.toDataURL('image/png'),
                    'positionX': 0,
                    'positionY': 0,
                    'height': this.signaturesService.workingAreaHeight,
                    'width': this.signaturesService.workingAreaWidth,
                }
            );
            localStorage.setItem(this.signaturesService.mainDocumentId.toString(), JSON.stringify({'sign' : this.signaturesService.signaturesContent, 'note' : this.signaturesService.notesContent}));
            this.triggerEvent.emit();
            this.signaturesService.x = 0;
    
            this.signaturesService.y = 90;
    
    Alex ORLUC's avatar
    Alex ORLUC committed
            if (this.signaturesService.scale > 1) {
                this.signaturesService.renderingDoc = true;
            }
            this.signaturesService.annotationMode = false;
    
            this.notificationService.success('lang.annotationAdded');
    
    Alex ORLUC's avatar
    Alex ORLUC committed
        }
    
        undo() {
    
            /*const data = this.signaturePad.toData();
    
    Alex ORLUC's avatar
    Alex ORLUC committed
            if (data) {
                data.pop(); // remove the last dot or line
                this.signaturePad.fromData(data);