summaryrefslogtreecommitdiffstats
path: root/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/template-mapping/templ-mapp-creation
diff options
context:
space:
mode:
Diffstat (limited to 'cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/template-mapping/templ-mapp-creation')
-rw-r--r--cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/template-mapping/templ-mapp-creation/TemplateType.ts5
-rw-r--r--cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/template-mapping/templ-mapp-creation/templ-mapp-creation.component.html16
-rw-r--r--cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/template-mapping/templ-mapp-creation/templ-mapp-creation.component.ts66
3 files changed, 27 insertions, 60 deletions
diff --git a/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/template-mapping/templ-mapp-creation/TemplateType.ts b/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/template-mapping/templ-mapp-creation/TemplateType.ts
deleted file mode 100644
index 17a4bfae6..000000000
--- a/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/template-mapping/templ-mapp-creation/TemplateType.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-export enum TemplateType {
- Velocity = 'vtl',
- Koltin = 'kt',
- Jinja = 'Unknown'
-}
diff --git a/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/template-mapping/templ-mapp-creation/templ-mapp-creation.component.html b/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/template-mapping/templ-mapp-creation/templ-mapp-creation.component.html
index dda6231d9..dfd8c31a8 100644
--- a/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/template-mapping/templ-mapp-creation/templ-mapp-creation.component.html
+++ b/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/template-mapping/templ-mapp-creation/templ-mapp-creation.component.html
@@ -44,24 +44,24 @@
<div tourAnchor="tm-templateType" class="single-line">
<label class="label-name">Template Type</label>
<div class="label-input">
- <label name="trst" (click)="allowedExt=['.vtl']">
+ <label name="trst" (click)="allowedExt=['.vtl'];templateExt='vtl'">
<input class="form-check-input" [(ngModel)]="templateExt" type="radio"
- name="exampleRadios" id="exampleRadios1" value=Velcoity>
+ name="exampleRadios" id="exampleRadios1" value=vtl>
<span>
- Velcoity
+ Velocity
</span>
</label>
- <label name="trst" (click)="allowedExt=['.j2','.jinja2']">
+ <label name="trst" (click)="allowedExt=['.j2','.jinja2'];templateExt='j2'">
<input class="form-check-input" [(ngModel)]="templateExt" type="radio"
- name="exampleRadios" id="exampleRadios1" value=Jinja>
+ name="exampleRadios" id="exampleRadios1" value=j2>
<span>
Jinja
</span>
</label>
- <label tourAnchor="tm-templateContent" name="trst" (click)="allowedExt=['.kt']">
+ <label tourAnchor="tm-templateContent" name="trst" (click)="allowedExt=['.kt'];templateExt='kt'">
<input class="form-check-input" [(ngModel)]="templateExt" type="radio"
- name="exampleRadios" id="exampleRadios1" value=Kotlin>
+ name="exampleRadios" id="exampleRadios1" value=kt>
<span>
Kotlin
@@ -70,7 +70,7 @@
</div>
</div>
<div class="create-template-import">Use the editor to add parameters or you can also
- <a href="#" data-toggle="modal" (click)="allowedExt=[getFileExtension()]"
+ <a href="#" data-toggle="modal"
data-target="#templateModal"><b>Import
File</b></a>. <br /> <span class="templateNote"><i class="icon-info"
aria-hidden="true"></i> When you import new file, the new attributes will replace
diff --git a/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/template-mapping/templ-mapp-creation/templ-mapp-creation.component.ts b/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/template-mapping/templ-mapp-creation/templ-mapp-creation.component.ts
index 346a06d83..78449fba9 100644
--- a/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/template-mapping/templ-mapp-creation/templ-mapp-creation.component.ts
+++ b/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/template-mapping/templ-mapp-creation/templ-mapp-creation.component.ts
@@ -10,9 +10,11 @@ import { PackageCreationUtils } from '../../package-creation.utils';
import { JsonConvert, Any } from 'json2typescript';
import { ToastrService } from 'ngx-toastr';
import { SharedService } from '../shared-service';
-import { XmlParser } from '../utils/XmlParser';
+import { XmlParser } from '../utils/ParserFactory/XmlParser';
import { TourService } from 'ngx-tour-md-menu';
import { PackageCreationService } from '../../package-creation.service';
+import { ParserFactory } from '../utils/ParserFactory/ParserFactory';
+import { TemplateType, FileExtension } from '../utils/TemplateType';
declare var $: any;
@Component({
@@ -43,7 +45,7 @@ export class TemplMappCreationComponent implements OnInit, OnDestroy {
MappingAdapter: MappingAdapter;
mapping = new Map();
templateFileContent: string;
- templateExt = 'Velcoity';
+ templateExt = 'vtl';
dependancies = new Map<string, Array<string>>();
dependanciesSource = new Map<string, string>();
mappingRes = [];
@@ -51,6 +53,7 @@ export class TemplMappCreationComponent implements OnInit, OnDestroy {
currentMapping: any;
edit = false;
fileToDelete: any = {};
+ parserFactory = new ParserFactory();
constructor(
private packageCreationStore: PackageCreationStore,
@@ -82,12 +85,16 @@ export class TemplMappCreationComponent implements OnInit, OnDestroy {
} else {
this.mappingRes = [];
this.currentMapping = Any;
+ this.resourceDictionaryRes = [];
}
this.templateFileContent = templateInfo.fileContent;
+ this.templateExt = this.templateInfo.ext || this.templateExt ;
this.currentTemplate = Object.assign({}, templateInfo);
if (templateInfo.type === 'template' || templateInfo.type.includes('template')) {
- this.currentTemplate.fileName = 'Templates/' + this.fileName + '-template.vtl';
+ console.log('template extension ' + this.templateExt);
+ this.currentTemplate.fileName = 'Templates/' + this.fileName + '-template.' + this.templateExt;
+ console.log(this.currentTemplate.fileName);
} else {
this.currentTemplate = Any;
}
@@ -95,7 +102,7 @@ export class TemplMappCreationComponent implements OnInit, OnDestroy {
});
this.sharedService.isEdit().subscribe(res => {
- console.log('------------------------');
+ console.log('------------------------....');
console.log(res);
this.edit = res;
@@ -126,11 +133,11 @@ export class TemplMappCreationComponent implements OnInit, OnDestroy {
getFileExtension() {
switch (this.templateExt) {
- case 'Velcoity':
+ case 'vtl':
return '.vtl';
- case 'Koltin':
+ case 'kt':
return '.ktl';
- case 'Jinja':
+ case 'j2':
return '.j2';
default:
return '.vtl';
@@ -143,34 +150,10 @@ export class TemplMappCreationComponent implements OnInit, OnDestroy {
}
public getTemplateVariable(fileContent: string) {
- const variables: string[] = [];
- const stringsSlittedByBraces = fileContent.split('${');
- const stringsDefaultByDollarSignOnly = fileContent.split('"$');
-
- for (let i = 1; i < stringsSlittedByBraces.length; i++) {
- const element = stringsSlittedByBraces[i];
- if (element) {
- const firstElement = element.split('}')[0];
- if (!variables.includes(firstElement)) {
- variables.push(firstElement);
- } else {
- console.log(firstElement);
- }
- }
- }
-
- for (let i = 1; i < stringsDefaultByDollarSignOnly.length; i++) {
- const element = stringsDefaultByDollarSignOnly[i];
- if (element && !element.includes('$')) {
- const firstElement = element.split('"')[0]
- .replace('{', '')
- .replace('}', '').trim();
- if (!variables.includes(firstElement)) {
- variables.push(firstElement);
- }
- }
- }
- return variables;
+ // TODO: implement factory Pattern for parser
+ console.log('start parsing........ ' + this.templateExt);
+ const parser = this.parserFactory.getParser(fileContent, this.templateExt);
+ return parser.getVariables(fileContent);
}
public dropped(files: NgxFileDropEntry[]) {
@@ -253,6 +236,7 @@ export class TemplMappCreationComponent implements OnInit, OnDestroy {
fileReader.onload = (e) => {
this.templateFileContent = fileReader.result.toString();
this.variables = this.getTemplateVariable(this.templateFileContent);
+ console.log(this.variables);
};
fileReader.readAsText(file);
@@ -395,18 +379,6 @@ export class TemplMappCreationComponent implements OnInit, OnDestroy {
rerender(): void {
this.dtTrigger.next();
-
- // if (this.dtElement.dtInstance) {
- // console.log('rerender');
- // this.dtElement.dtInstance.then((dtInstance: DataTables.Api) => {
- // dtInstance.destroy();
- // this.dtElement.dtOptions = this.dtOptions;
- // this.dtElement.dtTrigger.next();
- // dtInstance.draw();
- // });
- // } else {
- // this.dtTrigger.next();
- // }
}
ngOnDestroy(): void {