From f62e64357bef1c4a074f0975243d9cc6dda99165 Mon Sep 17 00:00:00 2001 From: Tobi Date: Tue, 30 Mar 2021 19:07:29 +0200 Subject: [PATCH] implements #807 --- src-ui/src/app/app-routing.module.ts | 6 ++- src-ui/src/app/app.module.ts | 4 +- .../document-asncomponent.component.html | 1 + .../document-asncomponent.component.scss | 0 .../document-asncomponent.component.spec.ts | 25 ++++++++++++ .../document-asncomponent.component.ts | 38 +++++++++++++++++++ 6 files changed, 71 insertions(+), 3 deletions(-) create mode 100644 src-ui/src/app/components/document-asncomponent/document-asncomponent.component.html create mode 100644 src-ui/src/app/components/document-asncomponent/document-asncomponent.component.scss create mode 100644 src-ui/src/app/components/document-asncomponent/document-asncomponent.component.spec.ts create mode 100644 src-ui/src/app/components/document-asncomponent/document-asncomponent.component.ts diff --git a/src-ui/src/app/app-routing.module.ts b/src-ui/src/app/app-routing.module.ts index 27f0629b4..8f9af68ca 100644 --- a/src-ui/src/app/app-routing.module.ts +++ b/src-ui/src/app/app-routing.module.ts @@ -11,6 +11,7 @@ import { SettingsComponent } from './components/manage/settings/settings.compone import { TagListComponent } from './components/manage/tag-list/tag-list.component'; import { NotFoundComponent } from './components/not-found/not-found.component'; import { SearchComponent } from './components/search/search.component'; +import {DocumentASNComponentComponent} from "./components/document-asncomponent/document-asncomponent.component"; const routes: Routes = [ {path: '', redirectTo: 'dashboard', pathMatch: 'full'}, @@ -20,13 +21,14 @@ const routes: Routes = [ {path: 'view/:id', component: DocumentListComponent }, {path: 'search', component: SearchComponent }, {path: 'documents/:id', component: DocumentDetailComponent }, - + {path: 'asn/:id', component: DocumentASNComponentComponent }, + {path: 'tags', component: TagListComponent }, {path: 'documenttypes', component: DocumentTypeListComponent }, {path: 'correspondents', component: CorrespondentListComponent }, {path: 'logs', component: LogsComponent }, {path: 'settings', component: SettingsComponent }, - ]}, + ]}, {path: '404', component: NotFoundComponent}, {path: '**', redirectTo: '/404', pathMatch: 'full'} diff --git a/src-ui/src/app/app.module.ts b/src-ui/src/app/app.module.ts index ca87d1a07..4645caf4b 100644 --- a/src-ui/src/app/app.module.ts +++ b/src-ui/src/app/app.module.ts @@ -75,6 +75,7 @@ import localeEnGb from '@angular/common/locales/en-GB'; import localeRo from '@angular/common/locales/ro'; import localeRu from '@angular/common/locales/ru'; import localeEs from '@angular/common/locales/es'; +import { DocumentASNComponentComponent } from './components/document-asncomponent/document-asncomponent.component'; registerLocaleData(localeFr) @@ -138,7 +139,8 @@ registerLocaleData(localeEs) SafePipe, CustomDatePipe, DateComponent, - ColorComponent + ColorComponent, + DocumentASNComponentComponent ], imports: [ BrowserModule, diff --git a/src-ui/src/app/components/document-asncomponent/document-asncomponent.component.html b/src-ui/src/app/components/document-asncomponent/document-asncomponent.component.html new file mode 100644 index 000000000..aa0cdc641 --- /dev/null +++ b/src-ui/src/app/components/document-asncomponent/document-asncomponent.component.html @@ -0,0 +1 @@ +

Searching document with asn {{asn}}

diff --git a/src-ui/src/app/components/document-asncomponent/document-asncomponent.component.scss b/src-ui/src/app/components/document-asncomponent/document-asncomponent.component.scss new file mode 100644 index 000000000..e69de29bb diff --git a/src-ui/src/app/components/document-asncomponent/document-asncomponent.component.spec.ts b/src-ui/src/app/components/document-asncomponent/document-asncomponent.component.spec.ts new file mode 100644 index 000000000..9e1b6c059 --- /dev/null +++ b/src-ui/src/app/components/document-asncomponent/document-asncomponent.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { DocumentASNComponentComponent } from './document-asncomponent.component'; + +describe('DocumentASNComponentComponent', () => { + let component: DocumentASNComponentComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ DocumentASNComponentComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(DocumentASNComponentComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src-ui/src/app/components/document-asncomponent/document-asncomponent.component.ts b/src-ui/src/app/components/document-asncomponent/document-asncomponent.component.ts new file mode 100644 index 000000000..549cb8792 --- /dev/null +++ b/src-ui/src/app/components/document-asncomponent/document-asncomponent.component.ts @@ -0,0 +1,38 @@ +import { Component, OnInit } from '@angular/core'; +import {DocumentService} from "../../services/rest/document.service"; +import {ActivatedRoute, Router} from "@angular/router"; +import {CorrespondentService} from "../../services/rest/correspondent.service"; +import {DocumentTypeService} from "../../services/rest/document-type.service"; +import {FILTER_ASN} from "../../data/filter-rule-type"; + +@Component({ + selector: 'app-document-asncomponent', + templateUrl: './document-asncomponent.component.html', + styleUrls: ['./document-asncomponent.component.scss'] +}) +export class DocumentASNComponentComponent implements OnInit { + + asn: string; + constructor( + private documentsService: DocumentService, + private route: ActivatedRoute, + private correspondentService: CorrespondentService, + private documentTypeService: DocumentTypeService, + private router: Router) { } + + + ngOnInit(): void { + + this.route.paramMap.subscribe(paramMap => { + this.asn = paramMap.get('id'); + this.documentsService.listAllFilteredIds([{rule_type: FILTER_ASN, value: this.asn}]).subscribe(documentId => { + if (documentId.length == 1) { + this.router.navigate(['documents', documentId[0]]) + } else { + this.router.navigate(['404']) + } + }) + }) + + } +}