Skip to content
Merged

3988 #4035

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<form>
<ng-container *ngFor="let item of fields">
<div *ngIf="!item.hide" class="form-field-container">
<div *ngIf="!item.hide && !item.notCorrespondCondition" class="form-field-container">
<div *ngIf="!item.isArray && !item.isRef" class="form-field">
<div class="label-field">{{item.description}}</div>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,32 @@ export class SchemaFormViewComponent implements OnInit {

constructor(private ipfs: IPFSService, private changeDetector: ChangeDetectorRef) { }


ngOnInit(): void {
if (this.fields !== undefined) {
for (const item of this.fields) {
if (item.conditions) {
for (const condition of item.conditions) {
const values = this.values ? this.values[item.name] : {};
const ifField = item.fields.find((f: any) => f.name === condition.ifCondition.field.name);
const currentConditionValue = values && values[ifField.name];
if (!currentConditionValue) {
continue;
}
if (currentConditionValue !== condition.ifCondition.fieldValue) {
for (const field of condition.thenFields) {
const thenField = item.fields.find((f: any) => f.name === field.name);
thenField.notCorrespondCondition = true;
}
} else {
for (const field of condition.thenFields) {
const thenField = item.fields.find((f: any) => f.name === field.name);
thenField.notCorrespondCondition = false;
}
}
}
}
}
}
}

isBooleanView(item: boolean | any): string {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ export class FiltersAddonBlock {
}

private previousState: { [key: string]: any } = {};
private previousFilters: { [key: string]: any } = {};

/**
* Block state
Expand Down Expand Up @@ -113,15 +114,20 @@ export class FiltersAddonBlock {
}

async resetFilters(user: PolicyUser): Promise<void> {
const ref = PolicyComponentsUtils.GetBlockRef<IPolicyAddonBlock>(this);
if (this.previousState[user.id]) {
this.state[user.id] = this.previousState[user.id];
delete this.previousState[user.id];
}
if (this.previousFilters[user.id]) {
ref.filters[user.id] = this.previousFilters[user.id];
delete this.previousFilters[user.id];
}
}

async setFiltersStrict(user: PolicyUser, data: any) {
const ref = PolicyComponentsUtils.GetBlockRef<IPolicyAddonBlock>(this);
this.previousState[user.id] = this.state[user.id];
this.previousState[user.id] = {...this.state[user.id]};
const filter: any = {};
if (!data) {
throw new BlockActionError(`filter value is unknown`, ref.blockType, ref.uuid)
Expand All @@ -142,7 +148,9 @@ export class FiltersAddonBlock {
}
blockState.lastValue = value;
this.state[user.id] = blockState;

}
this.previousFilters[user.id] = {...ref.filters[user.id]};
ref.setFilters(filter, user);
}

Expand Down