diff options
Diffstat (limited to 'catalog-ui/src/app/models/home-filter.ts')
-rw-r--r-- | catalog-ui/src/app/models/home-filter.ts | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/catalog-ui/src/app/models/home-filter.ts b/catalog-ui/src/app/models/home-filter.ts new file mode 100644 index 0000000000..2aa509b3d8 --- /dev/null +++ b/catalog-ui/src/app/models/home-filter.ts @@ -0,0 +1,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 + }; + } + +}
\ No newline at end of file |