Project

General

Profile

1

    
2
import { Filter, Value} from '../../searchPages/searchUtils/searchHelperClasses.class';
3
import { SearchFields, FieldDetails} from '../../utils/properties/searchFields';
4

    
5

    
6
export class RefineResultsUtils {
7

    
8

    
9
   public static parse (data, fields:string[], entityType:string, usedBy: string="search"):Filter[] {
10
         // var data = this.json.refineReuslts;
11

    
12
         var searchFields:SearchFields = new SearchFields();
13
         var filters:Filter[] = [];
14
         if(data && fields){
15
           for(let j=0; j<fields.length; j++) {
16

    
17
             var filter:Filter = new Filter();
18
             filter.title = searchFields.getFieldName(fields[j],entityType);
19
             filter.filterId = fields[j];
20
             filter.originalFilterId = fields[j];
21
             filter.filterType = searchFields.getFieldFilterType(fields[j], entityType, usedBy);
22
             filter.filterOperator = searchFields.getFieldOperator(fields[j]);
23
             //console.info("filter.title: "+filter.title+" filter.filterType: "+filter.filterType);
24

    
25
             let field = data[fields[j]];
26
             if(field){
27
               for(let i=0; i<field.length; i++) {
28
                 var value:Value = new Value();
29
                 value.name = field[i].name;
30
                 value.name =this.removePartAfterCharacters(value,"||");
31
                 value.number = field[i].count;
32
                 value.id = field[i].id;
33
                 if(RefineResultsUtils.includeValue(value)){
34
                   filter.values.push(value);
35
                 }
36

    
37

    
38
             }
39

    
40
               filters.push(filter);
41
           }
42
       }
43
     }
44
       return filters;
45
   }
46
   private static includeValue (field):boolean {
47
     if( field.name == "unidentified" || field.name == "Undetermined" ){
48
       return false;
49

    
50
     }
51
     return true;
52
   }
53
   private static removePartAfterCharacters(field, characters):string {
54
     if( field.name.indexOf(characters) !=-1){
55
       return field.name.split(characters)[0];
56

    
57
     }
58
     return field.name;
59
   }
60
   public static inParenthesisThePartAfterCharacters(field, characters):string {
61
     if( field.name.indexOf(characters) !=-1){
62
       return field.name.split(characters)[0]+" ("+field.name.split(characters)[1]+")";
63

    
64
     }
65
     return field.name;
66
   }
67
  public static keepPartAfterCharacters(name, characters):string {
68
    if( name.indexOf(characters) !=-1){
69
      return name.split(characters)[1];
70
    }
71
    return name;
72
  }
73
  }
(2-2/2)