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>
|
||||
</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="full-width basic-info-input">
|
||||
<table class="col-12 user-table">
|
||||
|
@ -212,7 +212,7 @@
|
|||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div> -->
|
||||
<!-- <div class="col-12">
|
||||
<button mat-button class="full-width" (click)="addPage()"
|
||||
[disabled]="viewOnly">{{'DATASET-PROFILE-EDITOR.ACTIONS.NEXT' | translate}}</button>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<form class="row user-role-editor" [formGroup]="formGroup" (ngSubmit)="formSubmit()">
|
||||
<div *ngIf="!this.nowEditing"class="roles col">
|
||||
<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}">
|
||||
{{getPrincipalAppRoleWithLanguage(role)}}
|
||||
</span>
|
||||
|
@ -10,7 +10,9 @@
|
|||
</div>
|
||||
<mat-form-field *ngIf="this.nowEditing" class="select-role roles-width-180 col-auto">
|
||||
<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-error *ngIf="getFormControl('appRoles').hasError('required')">{{'GENERAL.VALIDATION.REQUIRED' | translate}}</mat-error>
|
||||
</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 class="row toc-pane-container" #boundary (click)="changeStep(1)">
|
||||
<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>
|
||||
|
@ -81,7 +81,7 @@
|
|||
</div>
|
||||
<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-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>
|
||||
</form>
|
||||
|
|
|
@ -46,6 +46,7 @@ import { DatasetWizardModel } from '@app/core/model/dataset/dataset-wizard';
|
|||
import { MatomoService } from '@app/core/services/matomo/matomo-service';
|
||||
import { HttpClient } from '@angular/common/http';
|
||||
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({
|
||||
selector: 'app-dataset-wizard-component',
|
||||
|
@ -98,6 +99,7 @@ export class DatasetWizardComponent extends BaseComponent implements OnInit, IBr
|
|||
datasetIsOnceSaved = false;
|
||||
|
||||
fieldsetIdWithFocus:string;
|
||||
visRulesService:VisibilityRulesService;
|
||||
|
||||
constructor(
|
||||
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 { BaseComponent } from '@common/base/base.component';
|
||||
import { debounceTime, takeUntil } from 'rxjs/operators';
|
||||
import { VisibilityRuleSource } from './visibility-rules/models/visibility-rule-source';
|
||||
|
||||
@Component({
|
||||
selector: 'app-dataset-description',
|
||||
|
@ -28,6 +29,7 @@ export class DatasetDescriptionComponent extends BaseComponent implements OnInit
|
|||
@Input() form: FormGroup;
|
||||
|
||||
@Input() TOCENTRY_ID_PREFIX="";
|
||||
@Output() visibilityRulesInstance = new EventEmitter<VisibilityRulesService>();
|
||||
|
||||
public hiddenEntriesIds:string[] = [];
|
||||
|
||||
|
@ -40,6 +42,7 @@ export class DatasetDescriptionComponent extends BaseComponent implements OnInit
|
|||
|
||||
ngOnInit() {
|
||||
this.visibilityRulesService.buildVisibilityRules(this.visibilityRules, this.form);
|
||||
|
||||
// if (this.form) {
|
||||
// this.form.valueChanges
|
||||
// .pipe(takeUntil(this._destroyed))
|
||||
|
@ -47,6 +50,7 @@ export class DatasetDescriptionComponent extends BaseComponent implements OnInit
|
|||
// this.formChanged.emit(val);
|
||||
// });
|
||||
// }
|
||||
this.visibilityRulesInstance.emit(this.visibilityRulesService);
|
||||
|
||||
this.tocentries = this.getTocEntries();
|
||||
this.hiddenEntriesIds = this._findHiddenEntries(this.tocentries);
|
||||
|
|
|
@ -64,11 +64,12 @@ export class TableOfContents extends BaseComponent implements OnInit, OnChanges
|
|||
|
||||
@Input() formGroup: FormGroup;
|
||||
@Input() hasFocus: boolean = false;
|
||||
@Input() visibilityRulesService: VisibilityRulesService;
|
||||
show: boolean = false;
|
||||
|
||||
constructor(
|
||||
@Inject(DOCUMENT) private _document: Document,
|
||||
public visibilityRulesService: VisibilityRulesService
|
||||
// public visibilityRulesService: VisibilityRulesService
|
||||
) {
|
||||
super();
|
||||
}
|
||||
|
@ -76,21 +77,23 @@ export class TableOfContents extends BaseComponent implements OnInit, OnChanges
|
|||
|
||||
ngOnInit(): void {
|
||||
|
||||
this.visibilityRulesService.visibilityChange
|
||||
.pipe(takeUntil(this._destroyed))
|
||||
.pipe(debounceTime(200))
|
||||
.subscribe(_=>{
|
||||
if(this.hasFocus){
|
||||
this._resetObserver();
|
||||
this.hiddenEntries = this._findHiddenEntries(this.tocentries);
|
||||
}
|
||||
})
|
||||
// this.visibilityRulesService.visibilityChange
|
||||
// .pipe(takeUntil(this._destroyed))
|
||||
// .pipe(debounceTime(200))
|
||||
// .subscribe(_=>{
|
||||
// if(this.hasFocus){
|
||||
// this._resetObserver();
|
||||
// this.hiddenEntries = this._findHiddenEntries(this.tocentries);
|
||||
// }
|
||||
// })
|
||||
|
||||
if(this.formGroup){
|
||||
this.tocentries = this.getTocEntries(this.formGroup.get('datasetProfileDefinition'));
|
||||
const fg = this.formGroup.get('datasetProfileDefinition');
|
||||
this.visibilityRulesService.buildVisibilityRules(this.visibilityRules, fg);
|
||||
// this.visibilityRulesService.buildVisibilityRules(this.visibilityRules, fg);
|
||||
if(this.visibilityRulesService){
|
||||
this.hiddenEntries = this._findHiddenEntries(this.tocentries);
|
||||
}
|
||||
|
||||
}else{
|
||||
|
||||
|
@ -189,6 +192,7 @@ export class TableOfContents extends BaseComponent implements OnInit, OnChanges
|
|||
return invisibleEntries;
|
||||
}
|
||||
|
||||
private _visibilityRulesSubscription:Subscription;
|
||||
ngOnChanges(changes: SimpleChanges) {
|
||||
|
||||
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) {
|
||||
// this.links.forEach(link => {
|
||||
// link.selected = false;
|
||||
|
|
Loading…
Reference in New Issue