Fixed false visible items in the agenda
The fix has to be reworked with #4671 and can be eliminated with #4639
This commit is contained in:
parent
ba9fcef5a1
commit
c860f45041
@ -50,7 +50,7 @@ export abstract class BaseFilterListService<V extends BaseViewModel> {
|
|||||||
/**
|
/**
|
||||||
* stores the currently used raw data to be used for the filter
|
* stores the currently used raw data to be used for the filter
|
||||||
*/
|
*/
|
||||||
private currentRawData: V[];
|
protected currentRawData: V[];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The currently used filters.
|
* The currently used filters.
|
||||||
@ -110,7 +110,7 @@ export abstract class BaseFilterListService<V extends BaseViewModel> {
|
|||||||
/**
|
/**
|
||||||
* Constructor.
|
* Constructor.
|
||||||
*/
|
*/
|
||||||
public constructor(private store: StorageService, private repo: BaseRepository<V, BaseModel>) {}
|
public constructor(protected store: StorageService, protected repo: BaseRepository<V, BaseModel>) {}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Initializes the filterService. Returns the filtered data as Observable
|
* Initializes the filterService. Returns the filtered data as Observable
|
||||||
@ -192,7 +192,7 @@ export abstract class BaseFilterListService<V extends BaseViewModel> {
|
|||||||
* check their match with current definitions and set the current filter
|
* check their match with current definitions and set the current filter
|
||||||
* @param definitions: Currently defined Filter definitions
|
* @param definitions: Currently defined Filter definitions
|
||||||
*/
|
*/
|
||||||
private loadStorageDefinition(definitions: OsFilter[]): void {
|
protected loadStorageDefinition(definitions: OsFilter[]): void {
|
||||||
if (!definitions || !definitions.length) {
|
if (!definitions || !definitions.length) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -250,7 +250,7 @@ export abstract class BaseFilterListService<V extends BaseViewModel> {
|
|||||||
/**
|
/**
|
||||||
* Takes an array of data and applies current filters
|
* Takes an array of data and applies current filters
|
||||||
*/
|
*/
|
||||||
private filterData(data: V[]): V[] {
|
protected filterData(data: V[]): V[] {
|
||||||
const filteredData = [];
|
const filteredData = [];
|
||||||
if (!data) {
|
if (!data) {
|
||||||
return filteredData;
|
return filteredData;
|
||||||
|
@ -1,11 +1,14 @@
|
|||||||
import { Injectable } from '@angular/core';
|
import { Injectable } from '@angular/core';
|
||||||
|
|
||||||
|
import { TranslateService } from '@ngx-translate/core';
|
||||||
|
import { Observable } from 'rxjs';
|
||||||
|
import { auditTime, map } from 'rxjs/operators';
|
||||||
|
|
||||||
import { BaseFilterListService, OsFilter, OsFilterOption } from 'app/core/ui-services/base-filter-list.service';
|
import { BaseFilterListService, OsFilter, OsFilterOption } from 'app/core/ui-services/base-filter-list.service';
|
||||||
import { itemVisibilityChoices } from 'app/shared/models/agenda/item';
|
import { itemVisibilityChoices } from 'app/shared/models/agenda/item';
|
||||||
import { ViewItem } from '../models/view-item';
|
import { ViewItem } from '../models/view-item';
|
||||||
import { StorageService } from 'app/core/core-services/storage.service';
|
import { StorageService } from 'app/core/core-services/storage.service';
|
||||||
import { ItemRepositoryService } from 'app/core/repositories/agenda/item-repository.service';
|
import { ItemRepositoryService } from 'app/core/repositories/agenda/item-repository.service';
|
||||||
import { TranslateService } from '@ngx-translate/core';
|
|
||||||
|
|
||||||
@Injectable({
|
@Injectable({
|
||||||
providedIn: 'root'
|
providedIn: 'root'
|
||||||
@ -41,6 +44,26 @@ export class AgendaFilterListService extends BaseFilterListService<ViewItem> {
|
|||||||
this.updateFilterDefinitions(this.filterOptions);
|
this.updateFilterDefinitions(this.filterOptions);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @override from base filter list service: Added custom filtering of items
|
||||||
|
* Initializes the filterService. Returns the filtered data as Observable
|
||||||
|
*/
|
||||||
|
public filter(): Observable<ViewItem[]> {
|
||||||
|
this.repo
|
||||||
|
.getViewModelListObservable()
|
||||||
|
.pipe(auditTime(10))
|
||||||
|
// Exclude items that are just there to provide a list of speakers. They have many
|
||||||
|
// restricted fields and must not be shown in the agenda!
|
||||||
|
.pipe(map(itemList => itemList.filter(item => item.type !== undefined)))
|
||||||
|
.subscribe(data => {
|
||||||
|
this.currentRawData = data;
|
||||||
|
this.filteredData = this.filterData(data);
|
||||||
|
this.filterDataOutput.next(this.filteredData);
|
||||||
|
});
|
||||||
|
this.loadStorageDefinition(this.filterDefinitions);
|
||||||
|
return this.filterDataOutput;
|
||||||
|
}
|
||||||
|
|
||||||
private createVisibilityFilterOptions(): OsFilterOption[] {
|
private createVisibilityFilterOptions(): OsFilterOption[] {
|
||||||
const options = [];
|
const options = [];
|
||||||
itemVisibilityChoices.forEach(choice => {
|
itemVisibilityChoices.forEach(choice => {
|
||||||
|
@ -2,13 +2,13 @@ import { MatTableDataSource, MatTable, MatSort, MatPaginator, MatSnackBar, PageE
|
|||||||
import { Title } from '@angular/platform-browser';
|
import { Title } from '@angular/platform-browser';
|
||||||
import { TranslateService } from '@ngx-translate/core';
|
import { TranslateService } from '@ngx-translate/core';
|
||||||
import { ViewChild, Type, OnDestroy } from '@angular/core';
|
import { ViewChild, Type, OnDestroy } from '@angular/core';
|
||||||
|
import { ActivatedRoute } from '@angular/router';
|
||||||
|
|
||||||
import { BaseViewComponent } from './base-view';
|
import { BaseViewComponent } from './base-view';
|
||||||
import { BaseViewModel } from './base-view-model';
|
import { BaseViewModel } from './base-view-model';
|
||||||
import { BaseSortListService } from 'app/core/ui-services/base-sort-list.service';
|
import { BaseSortListService } from 'app/core/ui-services/base-sort-list.service';
|
||||||
import { BaseFilterListService } from 'app/core/ui-services/base-filter-list.service';
|
import { BaseFilterListService } from 'app/core/ui-services/base-filter-list.service';
|
||||||
import { BaseModel } from 'app/shared/models/base/base-model';
|
import { BaseModel } from 'app/shared/models/base/base-model';
|
||||||
import { ActivatedRoute } from '@angular/router';
|
|
||||||
import { StorageService } from 'app/core/core-services/storage.service';
|
import { StorageService } from 'app/core/core-services/storage.service';
|
||||||
|
|
||||||
export abstract class ListViewBaseComponent<V extends BaseViewModel, M extends BaseModel> extends BaseViewComponent
|
export abstract class ListViewBaseComponent<V extends BaseViewModel, M extends BaseModel> extends BaseViewComponent
|
||||||
|
Loading…
Reference in New Issue
Block a user