Merge pull request #5352 from tsiegleauq/speaker-list-change-detection
Manual cd for list of speakers
This commit is contained in:
commit
3e19840b08
@ -1,4 +1,4 @@
|
|||||||
import { ChangeDetectionStrategy, Component, OnInit, ViewChild } from '@angular/core';
|
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnInit, ViewChild } from '@angular/core';
|
||||||
import { FormControl, FormGroup } from '@angular/forms';
|
import { FormControl, FormGroup } from '@angular/forms';
|
||||||
import { MatSnackBar } from '@angular/material/snack-bar';
|
import { MatSnackBar } from '@angular/material/snack-bar';
|
||||||
import { Title } from '@angular/platform-browser';
|
import { Title } from '@angular/platform-browser';
|
||||||
@ -167,7 +167,8 @@ export class ListOfSpeakersComponent extends BaseViewComponent implements OnInit
|
|||||||
private collectionStringMapper: CollectionStringMapperService,
|
private collectionStringMapper: CollectionStringMapperService,
|
||||||
private currentListOfSpeakersSlideService: CurrentListOfSpeakersSlideService,
|
private currentListOfSpeakersSlideService: CurrentListOfSpeakersSlideService,
|
||||||
private config: ConfigService,
|
private config: ConfigService,
|
||||||
private viewport: ViewportService
|
private viewport: ViewportService,
|
||||||
|
private cd: ChangeDetectorRef
|
||||||
) {
|
) {
|
||||||
super(title, translate, snackBar);
|
super(title, translate, snackBar);
|
||||||
this.addSpeakerForm = new FormGroup({ user_id: new FormControl() });
|
this.addSpeakerForm = new FormGroup({ user_id: new FormControl() });
|
||||||
@ -200,30 +201,27 @@ export class ListOfSpeakersComponent extends BaseViewComponent implements OnInit
|
|||||||
this.setListOfSpeakersId(id);
|
this.setListOfSpeakersId(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
// load and observe users
|
|
||||||
this.subscriptions.push(
|
this.subscriptions.push(
|
||||||
/* List of eligible users */
|
// Observe the user list
|
||||||
this.userRepository.getViewModelListObservable().subscribe(users => {
|
this.userRepository.getViewModelListObservable().subscribe(users => {
|
||||||
this.users.next(users);
|
this.users.next(users);
|
||||||
this.filterUsers();
|
this.filterUsers();
|
||||||
})
|
this.cd.markForCheck();
|
||||||
);
|
}),
|
||||||
this.subscriptions.push(
|
// ovserve changes to the add-speaker form
|
||||||
// detect changes in the form
|
|
||||||
this.addSpeakerForm.valueChanges.subscribe(formResult => {
|
this.addSpeakerForm.valueChanges.subscribe(formResult => {
|
||||||
// resetting a form triggers a form.next(null) - check if user_id
|
// resetting a form triggers a form.next(null) - check if user_id
|
||||||
if (formResult && formResult.user_id) {
|
if (formResult && formResult.user_id) {
|
||||||
this.addNewSpeaker(formResult.user_id);
|
this.addNewSpeaker(formResult.user_id);
|
||||||
}
|
}
|
||||||
})
|
}),
|
||||||
);
|
// observe changes to the viewport
|
||||||
|
this.viewport.isMobileSubject.subscribe(isMobile => this.checkSortMode(isMobile)),
|
||||||
this.subscriptions.push(this.viewport.isMobileSubject.subscribe(isMobile => this.checkSortMode(isMobile)));
|
// observe changes the agenda_present_speakers_only config
|
||||||
|
|
||||||
this.subscriptions.push(
|
|
||||||
this.config.get('agenda_present_speakers_only').subscribe(() => {
|
this.config.get('agenda_present_speakers_only').subscribe(() => {
|
||||||
this.filterUsers();
|
this.filterUsers();
|
||||||
}),
|
}),
|
||||||
|
// observe changes to the agenda_show_first_contribution config
|
||||||
this.config.get<boolean>('agenda_show_first_contribution').subscribe(show => {
|
this.config.get<boolean>('agenda_show_first_contribution').subscribe(show => {
|
||||||
this.showFistContributionHint = show;
|
this.showFistContributionHint = show;
|
||||||
})
|
})
|
||||||
|
Loading…
Reference in New Issue
Block a user