f16215a65f07403ad0fe5ae818d6ec044460e94f
[working/Evergreen.git] / Open-ILS / src / eg2 / src / app / staff / catalog / result / facets.component.ts
1 import {Component, OnInit, Input} from '@angular/core';
2 import {CatalogService} from '@eg/share/catalog/catalog.service';
3 import {CatalogSearchContext, FacetFilter} from '@eg/share/catalog/search-context';
4 import {StaffCatalogService} from '../catalog.service';
5
6 export const FACET_CONFIG = {
7     display: [
8         {facetClass : 'author',  facetOrder : ['personal', 'corporate']},
9         {facetClass : 'subject', facetOrder : ['topic']},
10         {facetClass : 'identifier', facetOrder : ['genre']},
11         {facetClass : 'series',  facetOrder : ['seriestitle']},
12         {facetClass : 'subject', facetOrder : ['name', 'geographic']}
13     ],
14     displayCount : 5
15 };
16
17 @Component({
18   selector: 'eg-catalog-result-facets',
19   templateUrl: 'facets.component.html'
20 })
21 export class ResultFacetsComponent implements OnInit {
22
23     searchContext: CatalogSearchContext;
24     facetConfig: any;
25
26     constructor(
27         private cat: CatalogService,
28         private staffCat: StaffCatalogService
29     ) {
30         this.facetConfig = FACET_CONFIG;
31     }
32
33     ngOnInit() {
34         this.searchContext = this.staffCat.searchContext;
35     }
36
37     facetIsApplied(cls: string, name: string, value: string): boolean {
38         return this.searchContext.termSearch.hasFacet(new FacetFilter(cls, name, value));
39     }
40
41     applyFacet(cls: string, name: string, value: string): void {
42         this.searchContext.termSearch.toggleFacet(new FacetFilter(cls, name, value));
43         this.searchContext.pager.offset = 0;
44         this.staffCat.search();
45     }
46 }
47
48