Skip to content
Snippets Groups Projects
Commit 8f0f8a65 authored by jojohoch's avatar jojohoch
Browse files

[editor] Add enableReHide to section

parent b779a6fa
No related branches found
No related tags found
No related merge requests found
...@@ -24,6 +24,7 @@ export class Section { ...@@ -24,6 +24,7 @@ export class Section {
gridRowSizes: { value: number; unit: string }[] = [{ value: 1, unit: 'fr' }]; gridRowSizes: { value: number; unit: string }[] = [{ value: 1, unit: 'fr' }];
visibilityDelay: number = 0; visibilityDelay: number = 0;
animatedVisibility: boolean = false; animatedVisibility: boolean = false;
enableReHide: boolean = false;
visibilityRules: VisibilityRule[] = []; visibilityRules: VisibilityRule[] = [];
constructor(blueprint?: Record<string, any>) { constructor(blueprint?: Record<string, any>) {
...@@ -37,6 +38,7 @@ export class Section { ...@@ -37,6 +38,7 @@ export class Section {
if (sanitizedBlueprint.gridRowSizes !== undefined) this.gridRowSizes = sanitizedBlueprint.gridRowSizes; if (sanitizedBlueprint.gridRowSizes !== undefined) this.gridRowSizes = sanitizedBlueprint.gridRowSizes;
if (sanitizedBlueprint.visibilityDelay) this.visibilityDelay = sanitizedBlueprint.visibilityDelay; if (sanitizedBlueprint.visibilityDelay) this.visibilityDelay = sanitizedBlueprint.visibilityDelay;
if (sanitizedBlueprint.animatedVisibility) this.animatedVisibility = sanitizedBlueprint.animatedVisibility; if (sanitizedBlueprint.animatedVisibility) this.animatedVisibility = sanitizedBlueprint.animatedVisibility;
if (sanitizedBlueprint.enableReHide) this.enableReHide = sanitizedBlueprint.enableReHide;
if (sanitizedBlueprint.visibilityRules) { if (sanitizedBlueprint.visibilityRules) {
this.visibilityRules = sanitizedBlueprint.visibilityRules this.visibilityRules = sanitizedBlueprint.visibilityRules
.map(rule => new VisibilityRule(rule.id, rule.operator, rule.value)); .map(rule => new VisibilityRule(rule.id, rule.operator, rule.value));
......
...@@ -325,13 +325,15 @@ export class SectionMenuComponent implements OnDestroy { ...@@ -325,13 +325,15 @@ export class SectionMenuComponent implements OnDestroy {
this.section.visibilityRules, this.section.visibilityRules,
this.getControlIds(), this.getControlIds(),
this.section.visibilityDelay, this.section.visibilityDelay,
this.section.animatedVisibility this.section.animatedVisibility,
this.section.enableReHide
) )
.subscribe(visibilityConfig => { .subscribe(visibilityConfig => {
if (visibilityConfig) { if (visibilityConfig) {
this.updateModel('visibilityRules', visibilityConfig.visibilityRules); this.updateModel('visibilityRules', visibilityConfig.visibilityRules);
this.updateModel('visibilityDelay', visibilityConfig.visibilityDelay); this.updateModel('visibilityDelay', visibilityConfig.visibilityDelay);
this.updateModel('animatedVisibility', visibilityConfig.animatedVisibility); this.updateModel('animatedVisibility', visibilityConfig.animatedVisibility);
this.updateModel('enableReHide', visibilityConfig.enableReHide);
} }
}); });
} }
......
...@@ -11,15 +11,22 @@ ...@@ -11,15 +11,22 @@
</div> </div>
<div *ngIf="visibilityRules.length" <div *ngIf="visibilityRules.length"
class="fx-row-start-stretch fx-gap-10"> class="fx-row-start-stretch fx-gap-10">
<mat-form-field > <mat-checkbox
class="fixed-size-field"
[(ngModel)]="enableReHide">
{{'section.enableReHide' | translate}}
</mat-checkbox>
<mat-form-field class="fixed-size-field">
<mat-label>{{'section.visibilityDelay' | translate}}</mat-label> <mat-label>{{'section.visibilityDelay' | translate}}</mat-label>
<input matInput <input matInput
type="number" type="number"
step="1000" step="1000"
[disabled]="enableReHide"
[placeholder]="'section.visibilityDelay' | translate" [placeholder]="'section.visibilityDelay' | translate"
[(ngModel)]="visibilityDelay"> [(ngModel)]="visibilityDelay">
</mat-form-field> </mat-form-field>
<mat-checkbox <mat-checkbox
[disabled]="enableReHide"
[(ngModel)]="animatedVisibility"> [(ngModel)]="animatedVisibility">
{{'section.animatedVisibility' | translate}} {{'section.animatedVisibility' | translate}}
</mat-checkbox> </mat-checkbox>
......
.fixed-size-field {
width: 212px;
min-width: 212px;
}
...@@ -3,13 +3,15 @@ import { VisibilityRule } from 'common/models/visibility-rule'; ...@@ -3,13 +3,15 @@ import { VisibilityRule } from 'common/models/visibility-rule';
import { MAT_DIALOG_DATA } from '@angular/material/dialog'; import { MAT_DIALOG_DATA } from '@angular/material/dialog';
@Component({ @Component({
templateUrl: './visibility-rules-dialog.component.html' templateUrl: './visibility-rules-dialog.component.html',
styleUrls: ['./visibility-rules-dialog.component.scss']
}) })
export class VisibilityRulesDialogComponent { export class VisibilityRulesDialogComponent {
visibilityRules!: VisibilityRule[]; visibilityRules!: VisibilityRule[];
controlIds!: string[]; controlIds!: string[];
visibilityDelay!: number; visibilityDelay!: number;
animatedVisibility!: boolean; animatedVisibility!: boolean;
enableReHide!: boolean;
constructor( constructor(
@Inject(MAT_DIALOG_DATA) private data: { @Inject(MAT_DIALOG_DATA) private data: {
...@@ -17,11 +19,13 @@ export class VisibilityRulesDialogComponent { ...@@ -17,11 +19,13 @@ export class VisibilityRulesDialogComponent {
visibilityDelay: number, visibilityDelay: number,
animatedVisibility: boolean, animatedVisibility: boolean,
controlIds: string[], controlIds: string[],
enableReHide: boolean,
} }
) { ) {
this.visibilityRules = [...data.visibilityRules]; this.visibilityRules = [...data.visibilityRules];
this.visibilityDelay = data.visibilityDelay; this.visibilityDelay = data.visibilityDelay;
this.animatedVisibility = data.animatedVisibility; this.animatedVisibility = data.animatedVisibility;
this.enableReHide = data.enableReHide;
this.controlIds = data.controlIds; this.controlIds = data.controlIds;
} }
......
...@@ -136,15 +136,22 @@ export class DialogService { ...@@ -136,15 +136,22 @@ export class DialogService {
showVisibilityRulesDialog(visibilityRules: VisibilityRule[], showVisibilityRulesDialog(visibilityRules: VisibilityRule[],
controlIds: string[], controlIds: string[],
visibilityDelay: number, visibilityDelay: number,
animatedVisibility: boolean animatedVisibility: boolean,
): Observable<{ visibilityRules: VisibilityRule[], visibilityDelay: number, animatedVisibility: boolean }> { enableReHide: boolean
): Observable<{
visibilityRules: VisibilityRule[],
visibilityDelay: number,
animatedVisibility: boolean,
enableReHide: boolean
}> {
const dialogRef = this.dialog const dialogRef = this.dialog
.open(VisibilityRulesDialogComponent, { .open(VisibilityRulesDialogComponent, {
data: { data: {
visibilityRules, visibilityRules,
controlIds, controlIds,
visibilityDelay, visibilityDelay,
animatedVisibility animatedVisibility,
enableReHide
}, },
autoFocus: false autoFocus: false
}); });
......
...@@ -39,6 +39,7 @@ ...@@ -39,6 +39,7 @@
"manageVisibilityRules": "Sichtbarkeit verwalten", "manageVisibilityRules": "Sichtbarkeit verwalten",
"animatedVisibility": "Scrollen beim Anzeigen", "animatedVisibility": "Scrollen beim Anzeigen",
"visibilityDelay": "Verzögerung der Anzeige", "visibilityDelay": "Verzögerung der Anzeige",
"enableReHide": "Erneutes Ausblenden erlauben",
"controlId": "Statusvariable/Element-ID", "controlId": "Statusvariable/Element-ID",
"operator": "Operator", "operator": "Operator",
"addElementsOrStateVariables": "Bitte zuerst Elemente oder Statusvariablen anlegen", "addElementsOrStateVariables": "Bitte zuerst Elemente oder Statusvariablen anlegen",
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment