From bd302ab707c3e848f852215f088d8b004251a6bf Mon Sep 17 00:00:00 2001 From: "michele.artini" Date: Wed, 7 Feb 2024 14:36:35 +0100 Subject: [PATCH] prepared transformation inspector page --- .../is/src/app/app-routing.module.ts | 2 + dnet-app/frontends/is/src/app/app.module.ts | 2 + .../cleaner-tester.component.ts | 2 +- .../main-menu-panels.component.html | 4 +- .../xslt-tester/xslt-tester.component.html | 25 ++++++++++ .../app/xslt-tester/xslt-tester.component.ts | 49 +++++++++++++++++++ 6 files changed, 81 insertions(+), 3 deletions(-) create mode 100644 dnet-app/frontends/is/src/app/xslt-tester/xslt-tester.component.html create mode 100644 dnet-app/frontends/is/src/app/xslt-tester/xslt-tester.component.ts diff --git a/dnet-app/frontends/is/src/app/app-routing.module.ts b/dnet-app/frontends/is/src/app/app-routing.module.ts index 9e8e073..82d4391 100644 --- a/dnet-app/frontends/is/src/app/app-routing.module.ts +++ b/dnet-app/frontends/is/src/app/app-routing.module.ts @@ -14,6 +14,7 @@ import { IndexComponent } from './index/index.component'; import { OaiComponent } from './oai/oai.component'; import { SwaggerUiComponent } from './swagger/swagger-ui.component'; import { OaiExplorerComponent } from './oai-explorer/oai-explorer.component'; +import { XsltTesterComponent } from './xslt-tester/xslt-tester.component'; const routes: Routes = [ @@ -35,6 +36,7 @@ const routes: Routes = [ { path: "mdstores/:mdId", component: MdstoresComponent }, { path: "mdrecords/:versionId/:limit", component: MdstoreInspectorComponent }, { path: "cleaner", component: CleanerTesterComponent }, + { path: "xslt", component: XsltTesterComponent }, { path: "index", component: IndexComponent }, { path: "oai", component: OaiComponent }, { path: "oai-explorer", component: OaiExplorerComponent }, diff --git a/dnet-app/frontends/is/src/app/app.module.ts b/dnet-app/frontends/is/src/app/app.module.ts index 7cd2b8e..9ec5875 100644 --- a/dnet-app/frontends/is/src/app/app.module.ts +++ b/dnet-app/frontends/is/src/app/app.module.ts @@ -50,6 +50,7 @@ import { MatMenuModule } from '@angular/material/menu'; import { MatDatepickerModule } from '@angular/material/datepicker'; import { MatNativeDateModule } from '@angular/material/core'; import { OaiExplorerComponent } from './oai-explorer/oai-explorer.component'; +import { XsltTesterComponent } from './xslt-tester/xslt-tester.component'; @NgModule({ declarations: [ @@ -82,6 +83,7 @@ import { OaiExplorerComponent } from './oai-explorer/oai-explorer.component'; MDStoreVersionsDialog, AddMDStoreDialog, CleanerTesterComponent, + XsltTesterComponent, WfConfsComponent, WfConfDialog, WfConfSingle, diff --git a/dnet-app/frontends/is/src/app/cleaner-tester/cleaner-tester.component.ts b/dnet-app/frontends/is/src/app/cleaner-tester/cleaner-tester.component.ts index 0fe84dd..dc2bb72 100644 --- a/dnet-app/frontends/is/src/app/cleaner-tester/cleaner-tester.component.ts +++ b/dnet-app/frontends/is/src/app/cleaner-tester/cleaner-tester.component.ts @@ -38,7 +38,7 @@ export class CleanerTesterComponent { export class CleanerTesterClient extends ISClient { loadCleaningRules(onSuccess: Function): void { - this.httpGet("/proxy/byType/resource-manager/byType/cleaning_rule", onSuccess); + this.httpGet("/proxy/byType/resource_manager/api/resources/byType/cleaning_rule", onSuccess); } testCleaning(rule: string, xml: string, onSuccess: Function, relatedForm?: FormGroup): void { diff --git a/dnet-app/frontends/is/src/app/main-menu-panels/main-menu-panels.component.html b/dnet-app/frontends/is/src/app/main-menu-panels/main-menu-panels.component.html index 3380997..aeb397a 100644 --- a/dnet-app/frontends/is/src/app/main-menu-panels/main-menu-panels.component.html +++ b/dnet-app/frontends/is/src/app/main-menu-panels/main-menu-panels.component.html @@ -72,8 +72,8 @@
MDStore Inspector - Cleaner - Tester + Cleaner Tester + Xslt Tester
diff --git a/dnet-app/frontends/is/src/app/xslt-tester/xslt-tester.component.html b/dnet-app/frontends/is/src/app/xslt-tester/xslt-tester.component.html new file mode 100644 index 0000000..28244a5 --- /dev/null +++ b/dnet-app/frontends/is/src/app/xslt-tester/xslt-tester.component.html @@ -0,0 +1,25 @@ +

Transformation Rule Tester (XSLT)

+ +
+ + Transformation rule (XSLT) + + {{i.name}} + + + + + Input Record + + + + Output Record + + + + + + {{ xsltForm.errors?.['serverError'] }} + + +
diff --git a/dnet-app/frontends/is/src/app/xslt-tester/xslt-tester.component.ts b/dnet-app/frontends/is/src/app/xslt-tester/xslt-tester.component.ts new file mode 100644 index 0000000..57d31f3 --- /dev/null +++ b/dnet-app/frontends/is/src/app/xslt-tester/xslt-tester.component.ts @@ -0,0 +1,49 @@ +import { Component, Injectable, OnInit } from '@angular/core'; +import { FormGroup, FormControl, Validators } from '@angular/forms'; +import { MatDialog } from '@angular/material/dialog'; +import { ActivatedRoute } from '@angular/router'; +import { ResourceType, SimpleResource } from '../common/is.model'; +import { ISClient } from '../common/is.client'; +import { HttpHeaders } from '@angular/common/http'; + +@Component({ + selector: 'app-xslt-tester', + templateUrl: './xslt-tester.component.html', + styleUrls: [] +}) +export class XsltTesterComponent { + rules: SimpleResource[] = []; + + xmlOutput: string = '' + + xsltForm = new FormGroup({ + xmlIn: new FormControl('', [Validators.required]), + rule: new FormControl('', [Validators.required]), + xmlOut: new FormControl('') + }); + + constructor(public client: XsltTesterClient, public route: ActivatedRoute, public dialog: MatDialog) { + this.client.loadXsltRules((data: SimpleResource[]) => this.rules = data); + } + + transformXslt() { + this.client.transformXslt(this.xsltForm.get("rule")?.value!, this.xsltForm.get("xmlIn")?.value!, (data: string) => this.xsltForm.get("xmlOut")?.setValue(data), this.xsltForm); + } + +} + +@Injectable({ + providedIn: 'root' +}) +export class XsltTesterClient extends ISClient { + + loadXsltRules(onSuccess: Function): void { + this.httpGet("/proxy/byType/resource_manager/api/resources/byType/transformation_rule_xslt", onSuccess); + } + + transformXslt(rule: string, xml: string, onSuccess: Function, relatedForm?: FormGroup): void { + var headers = new HttpHeaders().set('Content-Type', 'text/plain; charset=utf-8'); + this.httpPostWithOptions('/proxy/byType/mapping/transformXslt?rule=' + encodeURIComponent(rule), xml, { headers, responseType: 'text' as 'json' }, onSuccess, relatedForm); + } + +}