Browse Source

Hide change button for disabled fields. (#876)

pull/878/head
Sebastian Stehle 4 years ago
committed by GitHub
parent
commit
b6a48cda31
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 2
      frontend/src/app/features/content/pages/content/editor/content-field.component.html
  2. 2
      frontend/src/app/features/content/pages/content/editor/content-field.component.scss
  3. 4
      frontend/src/app/features/content/pages/content/editor/content-field.component.ts
  4. 9
      frontend/src/app/shared/state/contents.forms-helpers.ts

2
frontend/src/app/features/content/pages/content/editor/content-field.component.html

@ -50,7 +50,7 @@
</div> </div>
<div class="col-6 col-right" *ngIf="formModelCompare && formCompare"> <div class="col-6 col-right" *ngIf="formModelCompare && formCompare">
<div class="copy-button-container"> <div class="copy-button-container" *ngIf="!(isDisabled | async)">
<button type="button" class="btn btn-primary btn-sm field-copy" (click)="copy()" *ngIf="isDifferent | async"> <button type="button" class="btn btn-primary btn-sm field-copy" (click)="copy()" *ngIf="isDifferent | async">
<i class="icon-arrow_back"></i> <i class="icon-arrow_back"></i>
</button> </button>

2
frontend/src/app/features/content/pages/content/editor/content-field.component.scss

@ -61,7 +61,7 @@
} }
&-copy { &-copy {
@include absolute($t: 1rem, $l: -1rem); @include absolute($t: 1rem, $l: -1.5rem);
z-index: 1000; z-index: 1000;
} }
} }

4
frontend/src/app/features/content/pages/content/editor/content-field.component.ts

@ -7,7 +7,7 @@
import { Component, EventEmitter, HostBinding, Input, OnChanges, Output, SimpleChanges } from '@angular/core'; import { Component, EventEmitter, HostBinding, Input, OnChanges, Output, SimpleChanges } from '@angular/core';
import { Observable } from 'rxjs'; import { Observable } from 'rxjs';
import { AppLanguageDto, AppsState, changed$, EditContentForm, FieldForm, invalid$, LocalStoreService, SchemaDto, Settings, TranslationsService } from '@app/shared'; import { AppLanguageDto, AppsState, changed$, disabled$, EditContentForm, FieldForm, invalid$, LocalStoreService, SchemaDto, Settings, TranslationsService } from '@app/shared';
@Component({ @Component({
selector: 'sqx-content-field[form][formContext][formLevel][formModel][language][languages][schema]', selector: 'sqx-content-field[form][formContext][formLevel][formModel][language][languages][schema]',
@ -52,6 +52,7 @@ export class ContentFieldComponent implements OnChanges {
public isDifferent?: Observable<boolean>; public isDifferent?: Observable<boolean>;
public isInvalid?: Observable<boolean>; public isInvalid?: Observable<boolean>;
public isDisabled?: Observable<boolean>;
@HostBinding('class') @HostBinding('class')
public get class() { public get class() {
@ -78,6 +79,7 @@ export class ContentFieldComponent implements OnChanges {
if (changes['formModel'] && this.formModel) { if (changes['formModel'] && this.formModel) {
this.isInvalid = invalid$(this.formModel.form); this.isInvalid = invalid$(this.formModel.form);
this.isDisabled = disabled$(this.formModel.form);
} }
if ((changes['formModel'] || changes['formModelCompare']) && this.formModelCompare) { if ((changes['formModel'] || changes['formModelCompare']) && this.formModelCompare) {

9
frontend/src/app/shared/state/contents.forms-helpers.ts

@ -120,18 +120,9 @@ export interface FormGlobals {
} }
export abstract class AbstractContentForm<T extends FieldDto, TForm extends AbstractControl> extends Hidden { export abstract class AbstractContentForm<T extends FieldDto, TForm extends AbstractControl> extends Hidden {
private readonly disabled$ = new BehaviorSubject<boolean>(false);
private readonly collapsed$ = new BehaviorSubject<boolean | null>(null); private readonly collapsed$ = new BehaviorSubject<boolean | null>(null);
private readonly ruleSet: CompiledRules; private readonly ruleSet: CompiledRules;
public get disabled() {
return this.disabled$.value;
}
public get disabledChanges(): Observable<boolean> {
return this.disabled$;
}
public get collapsed() { public get collapsed() {
return this.collapsed$.value; return this.collapsed$.value;
} }

Loading…
Cancel
Save