Browse Source

UI: trendz settings fixes

pull/13301/head
yuliaklochai 1 year ago
parent
commit
f6bb9be780
  1. 23
      ui-ngx/src/app/modules/home/pages/admin/trendz-settings.component.ts

23
ui-ngx/src/app/modules/home/pages/admin/trendz-settings.component.ts

@ -14,15 +14,14 @@
/// limitations under the License. /// limitations under the License.
/// ///
import { Component, OnInit } from '@angular/core'; import { Component, OnInit, DestroyRef } from '@angular/core';
import { PageComponent } from '@shared/components/page.component'; import { PageComponent } from '@shared/components/page.component';
import { HasConfirmForm } from '@core/guards/confirm-on-exit.guard'; import { HasConfirmForm } from '@core/guards/confirm-on-exit.guard';
import { select, Store } from '@ngrx/store';
import { AppState } from '@core/core.state';
import { FormBuilder, FormGroup, Validators } from '@angular/forms'; import { FormBuilder, FormGroup, Validators } from '@angular/forms';
import { TrendzSettingsService } from '@core/http/trendz-settings.service'; import { TrendzSettingsService } from '@core/http/trendz-settings.service';
import { TrendzSettings } from '@shared/models/trendz-settings.models'; import { TrendzSettings } from '@shared/models/trendz-settings.models';
import { isDefinedAndNotNull } from '@core/utils'; import { isDefinedAndNotNull } from '@core/utils';
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
@Component({ @Component({
selector: 'tb-trendz-settings', selector: 'tb-trendz-settings',
@ -33,10 +32,10 @@ export class TrendzSettingsComponent extends PageComponent implements OnInit, Ha
trendzSettingsForm: FormGroup; trendzSettingsForm: FormGroup;
constructor(protected store: Store<AppState>, constructor(private fb: FormBuilder,
private fb: FormBuilder, private trendzSettingsService: TrendzSettingsService,
private trendzSettingsService: TrendzSettingsService) { private destroyRef: DestroyRef) {
super(store); super();
} }
ngOnInit() { ngOnInit() {
@ -50,26 +49,26 @@ export class TrendzSettingsComponent extends PageComponent implements OnInit, Ha
}); });
this.trendzSettingsForm.get('isTrendzEnabled').valueChanges this.trendzSettingsForm.get('isTrendzEnabled').valueChanges
.pipe(takeUntilDestroyed(this.destroyRef))
.subscribe((enabled: boolean) => this.toggleUrlRequired(enabled)); .subscribe((enabled: boolean) => this.toggleUrlRequired(enabled));
} }
toggleUrlRequired(enabled: boolean) { toggleUrlRequired(enabled: boolean) {
const trendzUrlControl = this.trendzSettingsForm.get('trendzUrl')!; const trendzUrlControl = this.trendzSettingsForm.get('trendzUrl')!;
const validators = [Validators.pattern(/^(https?:\/\/)[^\s/$.?#].[^\s]*$/i)];
if (enabled) { if (enabled) {
validators.push(Validators.required); trendzUrlControl.addValidators(Validators.required);
} else {
trendzUrlControl.removeValidators(Validators.required);
} }
trendzUrlControl.setValidators(validators);
trendzUrlControl.updateValueAndValidity(); trendzUrlControl.updateValueAndValidity();
} }
setTrendzSettings(trendzSettings: TrendzSettings) { setTrendzSettings(trendzSettings: TrendzSettings) {
this.trendzSettingsForm.reset({ this.trendzSettingsForm.reset({
trendzUrl: trendzSettings?.baseUrl, trendzUrl: trendzSettings?.baseUrl,
isTrendzEnabled: isDefinedAndNotNull(trendzSettings?.enabled) ? isTrendzEnabled: trendzSettings?.enabled ?? false
trendzSettings?.enabled : false
}); });
this.toggleUrlRequired(this.trendzSettingsForm.get('isTrendzEnabled').value); this.toggleUrlRequired(this.trendzSettingsForm.get('isTrendzEnabled').value);

Loading…
Cancel
Save