Skip to content
Snippets Groups Projects
Select Git revision
  • 3d04334110c46dc2a89cbddb4871f22c061ceb17
  • main default protected
  • OZG-6319-inlcude-externe-fachstelle-to-collaboration
  • OZG-7981-Statistik-Anzeige-von-Mandanten
  • OZG-8378-fix-routing
  • OZG-8376-ods-select
  • OZG-8405-Alfa-Bearbeiter-auswählen-und-entfernen-Design
  • OZG-8430-radio-button-card-styling
  • admin-cleanup
  • OZG-7981-Statistik-Anzeige-von-Mandanten-2
  • wip-sebo-sebastian
  • fix-storybook
  • OZG-8314-Alfa-Vorgang-Bearbeiter-Zuweisung-entfernen
  • testing-imports
  • storybook-improvements
  • release-administration
  • OZG-8422-BenutzerSpeichern
  • release-info
  • release
  • OZG-7856_schadcode-scanner-e2e
  • OZG-7985-fix-sorting
  • 1.12.1-administration
  • 1.12.0-administration
  • 1.12.0-info
  • 2.27.0-alfa
  • 1.11.0-info
  • 1.11.0-administration
  • 2.26.0-alfa
  • 1.10.0-info
  • 1.10.0-administration
  • 2.25.0-alfa
  • 1.9.0-info
  • 1.9.0-administration
  • 2.24.0-alfa
  • 1.8.0-info
  • 1.8.0-administration
  • 2.23.0-alfa
  • 1.7.0-info
  • 1.7.0-administration
  • 2.22.0-alfa
  • 1.6.0-info
41 results

bitbucket-pipelines.yml

Blame
  • aktenzeichen-edit-dialog.component.ts 3.13 KiB
    import { Component, Inject, OnInit } from '@angular/core';
    import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
    import { AktenzeichenEditDialogData } from './aktenzeichen-edit-dialog.data';
    import { AktenzeichenEditDialogFormservice } from './aktenzeichen-edit-dialog.formservice';
    import { VorgangService, VorgangWithEingangResource } from '@alfa-client/vorgang-shared';
    import { COMMAND_ERROR_MESSAGES, CommandResource, hasError, isSuccessfulDone } from '@alfa-client/command-shared';
    import { createEmptyStateResource, hasContent, isClipboardReadSupported, StateResource } from '@alfa-client/tech-shared';
    import { map, Observable, of, startWith, tap } from 'rxjs';
    import { SnackBarService } from '@alfa-client/ui';
    import { AktenzeichenEditDialogMessages } from './aktenzeichen-edit-dialog.message';
    
    @Component({
    	selector: 'alfa-aktenzeichen-edit-dialog',
    	templateUrl: './aktenzeichen-edit-dialog.component.html',
    	styleUrls: ['./aktenzeichen-edit-dialog.component.scss'],
    	providers: [AktenzeichenEditDialogFormservice]
    })
    export class AktenzeichenEditDialogComponent implements OnInit {
    
    	vorgang: VorgangWithEingangResource;
    
    	public setAktenzeichenPending$: Observable<StateResource<CommandResource>> = of(createEmptyStateResource<CommandResource>());
    	public hasAktenzeichen$: Observable<boolean>;
    	public isPasteSupported = false;
    
    	protected readonly AktenzeichenEditDialogFormservice = AktenzeichenEditDialogFormservice;
    
    	constructor(
    		public formService: AktenzeichenEditDialogFormservice,
    		private readonly snackbarService: SnackBarService,
    		private readonly vorgangService: VorgangService,
    		public dialogRef: MatDialogRef<AktenzeichenEditDialogComponent>,
    		@Inject(MAT_DIALOG_DATA) public data: AktenzeichenEditDialogData,
    	) {
    		this.vorgang = data.vorgang;
    	}
    
    	ngOnInit(): void {
    		this.isPasteSupported = isClipboardReadSupported();
    		this.formService.setAktenzeichen(this.vorgang.aktenzeichen);
    		this.hasAktenzeichen$ = this.formService.valueChanges()
    		.pipe(startWith(this.vorgang.aktenzeichen))
    		.pipe(map(hasContent));
    	}
    
    	public onCancel(): void {
    		this.dialogRef.close();
    	}
    
    	public onSubmit(): void {
    		this.formService.setVorgangWithEingangResource(this.vorgang);
    		this.setAktenzeichenPending$ = this.formService.submit()
    		.pipe(startWith(createEmptyStateResource<CommandResource>(true)))
    		.pipe(tap((commandStateResource: StateResource<CommandResource>) => this.onResponse(commandStateResource.resource)));
    	}
    
    	onResponse(commandResource: CommandResource) {
    		if (commandResource && hasError(commandResource)) {
    			this.showSnackbar(commandResource);
    		} else if (isSuccessfulDone(commandResource)) {
    			this.vorgangService.reloadCurrentVorgang();
    			this.dialogRef.close();
    		}
    	}
    
    	private showSnackbar(commandResource: CommandResource): void {
    		if (hasError(commandResource)) {
    			this.snackbarService.showError(this.getErrorMessage(commandResource));
    		}
    	}
    
    	private getErrorMessage(commandResource: CommandResource): string {
    		return COMMAND_ERROR_MESSAGES[commandResource.errorMessage] || AktenzeichenEditDialogMessages.SET_FAILED;
    	}
    
    	paste(clipboardContent: string) {
    		this.formService.setAktenzeichen(clipboardContent);
    	}
    }