summaryrefslogtreecommitdiffstats
path: root/catalog-ui/src/app/models/home-filter.ts
blob: 2aa509b3d8bfbf913e4c286119654cb7d16583b2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import { IEntityFilterObject, ISearchFilter } from "app/ng2/pipes/entity-filter.pipe";

export interface IHomeFilterParams {
    'filter.term': string;
    'filter.distributed': string;
    'filter.status': string
}


export class HomeFilter implements IEntityFilterObject{
    selectedStatuses: Array<string>;
    distributed: Array<string>;
    search: ISearchFilter;

    constructor(params = {}) {
        this.search = { filterTerm : params['filter.term'] || "" };
        this.selectedStatuses = params['filter.status']? params['filter.status'].split(',') : [];
        this.distributed = params['filter.distributed']? params['filter.distributed'].split(',') : []
        
    }

    public toUrlParam = ():IHomeFilterParams => {
        return {
            'filter.term': this.search.filterTerm,
            'filter.distributed': this.distributed && this.distributed.join(',') || null,
            'filter.status': this.selectedStatuses && this.selectedStatuses.join(',') || null
        };
    }

}