diff --git a/src/main/webapp/app/app.module.ts b/src/main/webapp/app/app.module.ts
index 0d54b73..958cca3 100755
--- a/src/main/webapp/app/app.module.ts
+++ b/src/main/webapp/app/app.module.ts
@@ -25,7 +25,6 @@ import { MatIconModule } from '@angular/material/icon';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { RscTreeComponent } from './rsc-tree/rsc-tree.component';
import { TableScreenComponent } from './table-screen/table-screen.component';
-
@NgModule({
imports: [
BrowserModule,
diff --git a/src/main/webapp/app/rsc-tree/rsc-tree.component.html b/src/main/webapp/app/rsc-tree/rsc-tree.component.html
index 0293aca..c818862 100644
--- a/src/main/webapp/app/rsc-tree/rsc-tree.component.html
+++ b/src/main/webapp/app/rsc-tree/rsc-tree.component.html
@@ -5,25 +5,17 @@
-
+
Resource tree
diff --git a/src/main/webapp/app/rsc-tree/rsc-tree.component.ts b/src/main/webapp/app/rsc-tree/rsc-tree.component.ts
index 0e53332..8bf14fe 100644
--- a/src/main/webapp/app/rsc-tree/rsc-tree.component.ts
+++ b/src/main/webapp/app/rsc-tree/rsc-tree.component.ts
@@ -5,9 +5,10 @@ import { NestedTreeControl } from '@angular/cdk/tree';
import { ResourcesLoaderService } from 'app/services/resources-loader.service';
import { IResource } from 'app/services/i-resource';
import { ContextsLoaderService } from 'app/services/contexts-loader.service';
-import { ContextNode, IContextNode } from 'app/services/i-context-node';
+import { IContextNode } from 'app/services/i-context-node';
import { Observable, map, startWith } from 'rxjs';
-import { FormBuilder, FormGroup } from '@angular/forms';
+import { AbstractControl, FormBuilder, FormGroup, Validators } from '@angular/forms';
+import { Clipboard } from '@angular/cdk/clipboard';
@Component({
selector: 'jhi-rsc-tree',
@@ -20,12 +21,21 @@ export class RscTreeComponent implements OnInit {
nestedDataSource = new MatTreeNestedDataSource();
@Output() treeNode = new EventEmitter(); //emitting event to parent
- contexts: ContextNode[];
- filteredContexts: Observable | any;
+ contexts: IContextNode[];
+ public filteredContexts: Observable | undefined;
chooseContextForm: FormGroup | any;
- constructor(private fb: FormBuilder, private resLoader: ResourcesLoaderService, private ctxLoader: ContextsLoaderService) {
+ constructor(
+ private fb: FormBuilder,
+ private resLoader: ResourcesLoaderService,
+ private ctxLoader: ContextsLoaderService,
+ private clipboard: Clipboard
+ ) {
this.contexts = [];
+ this.chooseContextForm = this.fb.group({
+ namefield: ['', [Validators.required]],
+ uidfield: [''],
+ });
}
get namefield(): any {
@@ -42,11 +52,6 @@ export class RscTreeComponent implements OnInit {
this.nestedDataSource.data = res;
});
- this.chooseContextForm = this.fb.group({
- namefield: null,
- uidfield: null,
- });
-
// per la form dei contesti
this.ctxLoader.getData().subscribe(res => {
this.contexts = res;
@@ -59,23 +64,29 @@ export class RscTreeComponent implements OnInit {
);
} //fine oninit
+ //TODO: questo metodo va inserito in una classe di utility common
+ checkForErrorsIn(formControl: AbstractControl): string {
+ if (formControl.hasError('required')) {
+ return 'Value is required!';
+ }
+ return '';
+ }
+
//mettere ANY come tipo dell'argomento per evitare errore TypeScript nella map!!
filterContexts(name: any): IContextNode[] {
return this.contexts.filter(ctx => ctx.name.toLowerCase().includes(name.toLowerCase()));
}
- displayFn(name: string): string {
- return name ? name : '';
+ displayFn(ctx: IContextNode): string {
+ return ctx.name ? ctx.name + ' | ' + ctx.id : '';
}
- /*
-//mettendo ID come value da passare
-displayFn(name: string): string {
- if (!id) return '';
- let index = this.states.findIndex(state => state.id === id);
- return this.states[index].name;
+ onSelFn(ctx: IContextNode): void {
+ console.log('-----------' + ctx.id);
+ this.uidfield.value = ctx.id;
}
- */
+
+ // (onSelectionChange)="onSelFn(ctx)"
hasNestedChild(_: number, node: IResource): boolean {
if (node.children == null) {
@@ -84,4 +95,16 @@ displayFn(name: string): string {
return node.children.length > 0;
}
}
+
+ copyUid(): void {
+ //const res = this.uidfield ? this.uidfield.value : '';
+ const res = this.uidfield.value;
+ this.clipboard.copy(res);
+ alert(this.uidfield.value);
+ }
+
+ //TODO: modificare per gestire eventuali eventi sulla onselect
+ assignUid(uid: string): void {
+ console.debug('------------UUID:.....' + uid);
+ }
}
diff --git a/src/main/webapp/app/rsc-tree/rsc-tree.module.ts b/src/main/webapp/app/rsc-tree/rsc-tree.module.ts
index ee5041d..ee128b2 100644
--- a/src/main/webapp/app/rsc-tree/rsc-tree.module.ts
+++ b/src/main/webapp/app/rsc-tree/rsc-tree.module.ts
@@ -9,6 +9,7 @@ import { MatInputModule } from '@angular/material/input';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { MatAutocompleteModule } from '@angular/material/autocomplete';
import { TableScreenComponent } from 'app/table-screen/table-screen.component';
+import { ClipboardModule } from '@angular/cdk/clipboard';
@NgModule({
declarations: [],