User Dataset Editor. Table of contents loads properly on saved template. Table of contents and tempalte description have the same visibilityRules service.
This commit is contained in:
parent
12a1f7da12
commit
e801bbf2e2
|
@ -164,7 +164,7 @@
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-12">
|
<!-- <div class="col-12">
|
||||||
<div class="heading">1.4 {{'DATASET-PROFILE-EDITOR.STEPS.GENERAL-INFO.DATASET-TEMPLATE-USERS'| translate}}</div>
|
<div class="heading">1.4 {{'DATASET-PROFILE-EDITOR.STEPS.GENERAL-INFO.DATASET-TEMPLATE-USERS'| translate}}</div>
|
||||||
<div class="full-width basic-info-input">
|
<div class="full-width basic-info-input">
|
||||||
<table class="col-12 user-table">
|
<table class="col-12 user-table">
|
||||||
|
@ -212,7 +212,7 @@
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div> -->
|
||||||
<!-- <div class="col-12">
|
<!-- <div class="col-12">
|
||||||
<button mat-button class="full-width" (click)="addPage()"
|
<button mat-button class="full-width" (click)="addPage()"
|
||||||
[disabled]="viewOnly">{{'DATASET-PROFILE-EDITOR.ACTIONS.NEXT' | translate}}</button>
|
[disabled]="viewOnly">{{'DATASET-PROFILE-EDITOR.ACTIONS.NEXT' | translate}}</button>
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<form class="row user-role-editor" [formGroup]="formGroup" (ngSubmit)="formSubmit()">
|
<form class="row user-role-editor" [formGroup]="formGroup" (ngSubmit)="formSubmit()">
|
||||||
<div *ngIf="!this.nowEditing"class="roles col">
|
<div *ngIf="!this.nowEditing"class="roles col">
|
||||||
<ng-container *ngFor="let role of this.formGroup.get('appRoles').value">
|
<ng-container *ngFor="let role of this.formGroup.get('appRoles').value">
|
||||||
<div>
|
<div *ngIf="role!=3">
|
||||||
<span class="user-role" [ngClass]="{'user': role == 0, 'manager': role == 1, 'admin': role == 2, 'dataset-template-editor': role == 3}">
|
<span class="user-role" [ngClass]="{'user': role == 0, 'manager': role == 1, 'admin': role == 2, 'dataset-template-editor': role == 3}">
|
||||||
{{getPrincipalAppRoleWithLanguage(role)}}
|
{{getPrincipalAppRoleWithLanguage(role)}}
|
||||||
</span>
|
</span>
|
||||||
|
@ -10,7 +10,9 @@
|
||||||
</div>
|
</div>
|
||||||
<mat-form-field *ngIf="this.nowEditing" class="select-role roles-width-180 col-auto">
|
<mat-form-field *ngIf="this.nowEditing" class="select-role roles-width-180 col-auto">
|
||||||
<mat-select formControlName="appRoles" multiple required>
|
<mat-select formControlName="appRoles" multiple required>
|
||||||
<mat-option *ngFor="let role of getPrincipalAppRoleValues()" [value]="role">{{getPrincipalAppRoleWithLanguage(role)}}</mat-option>
|
<ng-container *ngFor="let role of getPrincipalAppRoleValues()">
|
||||||
|
<mat-option [value]="role" *ngIf="role!=3">{{getPrincipalAppRoleWithLanguage(role)}}</mat-option>
|
||||||
|
</ng-container>
|
||||||
</mat-select>
|
</mat-select>
|
||||||
<mat-error *ngIf="getFormControl('appRoles').hasError('required')">{{'GENERAL.VALIDATION.REQUIRED' | translate}}</mat-error>
|
<mat-error *ngIf="getFormControl('appRoles').hasError('required')">{{'GENERAL.VALIDATION.REQUIRED' | translate}}</mat-error>
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
|
|
|
@ -54,7 +54,7 @@
|
||||||
<div (click)="changeStep(0)" *ngIf="datasetInfoValid()" class="main-info" [ngClass]="{'active': this.step === 0}">0. {{'DMP-EDITOR.STEPPER.MAIN-INFO' | translate}} (<mat-icon class="done-icon">done</mat-icon>)</div>
|
<div (click)="changeStep(0)" *ngIf="datasetInfoValid()" class="main-info" [ngClass]="{'active': this.step === 0}">0. {{'DMP-EDITOR.STEPPER.MAIN-INFO' | translate}} (<mat-icon class="done-icon">done</mat-icon>)</div>
|
||||||
<div class="row toc-pane-container" #boundary (click)="changeStep(1)">
|
<div class="row toc-pane-container" #boundary (click)="changeStep(1)">
|
||||||
<div #spacer></div>
|
<div #spacer></div>
|
||||||
<table-of-contents [selectedFieldsetId]="fieldsetIdWithFocus" #table0fContents [showErrors]="showtocentriesErrors" [TOCENTRY_ID_PREFIX]="TOCENTRY_ID_PREFIX" [hasFocus]="step === 1" [formGroup]="formGroup" *ngIf="formGroup && formGroup.get('datasetProfileDefinition')" [links]="links" [boundary]="boundary" [spacer]="spacer" [isActive]="step !== 0" stickyThing (stepFound)="onStepFound($event)" (currentLinks)="getLinks($event)" [visibilityRules]="formGroup.get('datasetProfileDefinition').get('rules').value"></table-of-contents>
|
<table-of-contents [visibilityRulesService]="visRulesService" [selectedFieldsetId]="fieldsetIdWithFocus" #table0fContents [showErrors]="showtocentriesErrors" [TOCENTRY_ID_PREFIX]="TOCENTRY_ID_PREFIX" [hasFocus]="step === 1" [formGroup]="formGroup" *ngIf="formGroup && formGroup.get('datasetProfileDefinition')" [links]="links" [boundary]="boundary" [spacer]="spacer" [isActive]="step !== 0" stickyThing (stepFound)="onStepFound($event)" (currentLinks)="getLinks($event)" [visibilityRules]="formGroup.get('datasetProfileDefinition').get('rules').value"></table-of-contents>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -81,7 +81,7 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="col-auto form" id="dataset-editor-form">
|
<div class="col-auto form" id="dataset-editor-form">
|
||||||
<app-dataset-editor-component [hidden]="this.step !== 0" [formGroup]="formGroup" [dmpId]="formGroup.get('dmp').value.id" [availableProfiles]="formGroup.get('dmp').value.profiles" (formChanged)="formChanged()"></app-dataset-editor-component>
|
<app-dataset-editor-component [hidden]="this.step !== 0" [formGroup]="formGroup" [dmpId]="formGroup.get('dmp').value.id" [availableProfiles]="formGroup.get('dmp').value.profiles" (formChanged)="formChanged()"></app-dataset-editor-component>
|
||||||
<app-dataset-description [TOCENTRY_ID_PREFIX]="TOCENTRY_ID_PREFIX" [hidden]="this.step === 0" *ngIf="formGroup && formGroup.get('datasetProfileDefinition')" [form]="this.formGroup.get('datasetProfileDefinition')" [visibilityRules]="formGroup.get('datasetProfileDefinition').get('rules').value" [datasetProfileId]="formGroup.get('profile').value" [linkToScroll]="linkToScroll" (fieldsetFocusChange)="fieldsetIdWithFocus = $event"></app-dataset-description>
|
<app-dataset-description (visibilityRulesInstance)="visRulesService = $event" [TOCENTRY_ID_PREFIX]="TOCENTRY_ID_PREFIX" [hidden]="this.step === 0" *ngIf="formGroup && formGroup.get('datasetProfileDefinition')" [form]="this.formGroup.get('datasetProfileDefinition')" [visibilityRules]="formGroup.get('datasetProfileDefinition').get('rules').value" [datasetProfileId]="formGroup.get('profile').value" [linkToScroll]="linkToScroll" (fieldsetFocusChange)="fieldsetIdWithFocus = $event"></app-dataset-description>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
|
|
|
@ -46,6 +46,7 @@ import { DatasetWizardModel } from '@app/core/model/dataset/dataset-wizard';
|
||||||
import { MatomoService } from '@app/core/services/matomo/matomo-service';
|
import { MatomoService } from '@app/core/services/matomo/matomo-service';
|
||||||
import { HttpClient } from '@angular/common/http';
|
import { HttpClient } from '@angular/common/http';
|
||||||
import { ToCEntry, ToCEntryType } from '@app/ui/misc/dataset-description-form/dataset-description.component';
|
import { ToCEntry, ToCEntryType } from '@app/ui/misc/dataset-description-form/dataset-description.component';
|
||||||
|
import { VisibilityRulesService } from '@app/ui/misc/dataset-description-form/visibility-rules/visibility-rules.service';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-dataset-wizard-component',
|
selector: 'app-dataset-wizard-component',
|
||||||
|
@ -98,6 +99,7 @@ export class DatasetWizardComponent extends BaseComponent implements OnInit, IBr
|
||||||
datasetIsOnceSaved = false;
|
datasetIsOnceSaved = false;
|
||||||
|
|
||||||
fieldsetIdWithFocus:string;
|
fieldsetIdWithFocus:string;
|
||||||
|
visRulesService:VisibilityRulesService;
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
private datasetWizardService: DatasetWizardService,
|
private datasetWizardService: DatasetWizardService,
|
||||||
|
|
|
@ -8,6 +8,7 @@ import { LinkToScroll } from '@app/ui/misc/dataset-description-form/tableOfConte
|
||||||
import { VisibilityRulesService } from '@app/ui/misc/dataset-description-form/visibility-rules/visibility-rules.service';
|
import { VisibilityRulesService } from '@app/ui/misc/dataset-description-form/visibility-rules/visibility-rules.service';
|
||||||
import { BaseComponent } from '@common/base/base.component';
|
import { BaseComponent } from '@common/base/base.component';
|
||||||
import { debounceTime, takeUntil } from 'rxjs/operators';
|
import { debounceTime, takeUntil } from 'rxjs/operators';
|
||||||
|
import { VisibilityRuleSource } from './visibility-rules/models/visibility-rule-source';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-dataset-description',
|
selector: 'app-dataset-description',
|
||||||
|
@ -28,6 +29,7 @@ export class DatasetDescriptionComponent extends BaseComponent implements OnInit
|
||||||
@Input() form: FormGroup;
|
@Input() form: FormGroup;
|
||||||
|
|
||||||
@Input() TOCENTRY_ID_PREFIX="";
|
@Input() TOCENTRY_ID_PREFIX="";
|
||||||
|
@Output() visibilityRulesInstance = new EventEmitter<VisibilityRulesService>();
|
||||||
|
|
||||||
public hiddenEntriesIds:string[] = [];
|
public hiddenEntriesIds:string[] = [];
|
||||||
|
|
||||||
|
@ -40,6 +42,7 @@ export class DatasetDescriptionComponent extends BaseComponent implements OnInit
|
||||||
|
|
||||||
ngOnInit() {
|
ngOnInit() {
|
||||||
this.visibilityRulesService.buildVisibilityRules(this.visibilityRules, this.form);
|
this.visibilityRulesService.buildVisibilityRules(this.visibilityRules, this.form);
|
||||||
|
|
||||||
// if (this.form) {
|
// if (this.form) {
|
||||||
// this.form.valueChanges
|
// this.form.valueChanges
|
||||||
// .pipe(takeUntil(this._destroyed))
|
// .pipe(takeUntil(this._destroyed))
|
||||||
|
@ -47,6 +50,7 @@ export class DatasetDescriptionComponent extends BaseComponent implements OnInit
|
||||||
// this.formChanged.emit(val);
|
// this.formChanged.emit(val);
|
||||||
// });
|
// });
|
||||||
// }
|
// }
|
||||||
|
this.visibilityRulesInstance.emit(this.visibilityRulesService);
|
||||||
|
|
||||||
this.tocentries = this.getTocEntries();
|
this.tocentries = this.getTocEntries();
|
||||||
this.hiddenEntriesIds = this._findHiddenEntries(this.tocentries);
|
this.hiddenEntriesIds = this._findHiddenEntries(this.tocentries);
|
||||||
|
|
|
@ -64,11 +64,12 @@ export class TableOfContents extends BaseComponent implements OnInit, OnChanges
|
||||||
|
|
||||||
@Input() formGroup: FormGroup;
|
@Input() formGroup: FormGroup;
|
||||||
@Input() hasFocus: boolean = false;
|
@Input() hasFocus: boolean = false;
|
||||||
|
@Input() visibilityRulesService: VisibilityRulesService;
|
||||||
show: boolean = false;
|
show: boolean = false;
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
@Inject(DOCUMENT) private _document: Document,
|
@Inject(DOCUMENT) private _document: Document,
|
||||||
public visibilityRulesService: VisibilityRulesService
|
// public visibilityRulesService: VisibilityRulesService
|
||||||
) {
|
) {
|
||||||
super();
|
super();
|
||||||
}
|
}
|
||||||
|
@ -76,21 +77,23 @@ export class TableOfContents extends BaseComponent implements OnInit, OnChanges
|
||||||
|
|
||||||
ngOnInit(): void {
|
ngOnInit(): void {
|
||||||
|
|
||||||
this.visibilityRulesService.visibilityChange
|
// this.visibilityRulesService.visibilityChange
|
||||||
.pipe(takeUntil(this._destroyed))
|
// .pipe(takeUntil(this._destroyed))
|
||||||
.pipe(debounceTime(200))
|
// .pipe(debounceTime(200))
|
||||||
.subscribe(_=>{
|
// .subscribe(_=>{
|
||||||
if(this.hasFocus){
|
// if(this.hasFocus){
|
||||||
this._resetObserver();
|
// this._resetObserver();
|
||||||
this.hiddenEntries = this._findHiddenEntries(this.tocentries);
|
// this.hiddenEntries = this._findHiddenEntries(this.tocentries);
|
||||||
}
|
// }
|
||||||
})
|
// })
|
||||||
|
|
||||||
if(this.formGroup){
|
if(this.formGroup){
|
||||||
this.tocentries = this.getTocEntries(this.formGroup.get('datasetProfileDefinition'));
|
this.tocentries = this.getTocEntries(this.formGroup.get('datasetProfileDefinition'));
|
||||||
const fg = this.formGroup.get('datasetProfileDefinition');
|
const fg = this.formGroup.get('datasetProfileDefinition');
|
||||||
this.visibilityRulesService.buildVisibilityRules(this.visibilityRules, fg);
|
// this.visibilityRulesService.buildVisibilityRules(this.visibilityRules, fg);
|
||||||
this.hiddenEntries = this._findHiddenEntries(this.tocentries);
|
if(this.visibilityRulesService){
|
||||||
|
this.hiddenEntries = this._findHiddenEntries(this.tocentries);
|
||||||
|
}
|
||||||
|
|
||||||
}else{
|
}else{
|
||||||
|
|
||||||
|
@ -189,6 +192,7 @@ export class TableOfContents extends BaseComponent implements OnInit, OnChanges
|
||||||
return invisibleEntries;
|
return invisibleEntries;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private _visibilityRulesSubscription:Subscription;
|
||||||
ngOnChanges(changes: SimpleChanges) {
|
ngOnChanges(changes: SimpleChanges) {
|
||||||
|
|
||||||
if(this.selectedFieldsetId){
|
if(this.selectedFieldsetId){
|
||||||
|
@ -206,6 +210,25 @@ export class TableOfContents extends BaseComponent implements OnInit, OnChanges
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if('visibilityRulesService'){
|
||||||
|
if(this._visibilityRulesSubscription){
|
||||||
|
this._visibilityRulesSubscription.unsubscribe();
|
||||||
|
this._visibilityRulesSubscription = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!this.visibilityRulesService) return;
|
||||||
|
|
||||||
|
this._visibilityRulesSubscription = this.visibilityRulesService.visibilityChange
|
||||||
|
.pipe(takeUntil(this._destroyed))
|
||||||
|
.pipe(debounceTime(200))
|
||||||
|
.subscribe(_=>{
|
||||||
|
if(this.hasFocus){
|
||||||
|
this._resetObserver();
|
||||||
|
this.hiddenEntries = this._findHiddenEntries(this.tocentries);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
this.hiddenEntries = this._findHiddenEntries(this.tocentries);
|
||||||
|
}
|
||||||
// if (!this.isActive && this.links && this.links.length > 0) {
|
// if (!this.isActive && this.links && this.links.length > 0) {
|
||||||
// this.links.forEach(link => {
|
// this.links.forEach(link => {
|
||||||
// link.selected = false;
|
// link.selected = false;
|
||||||
|
|
Loading…
Reference in New Issue