Project

General

Profile

1 61381 k.triantaf
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
             filter.radioValue = "";
24
             //console.info("filter.title: "+filter.title+" filter.filterType: "+filter.filterType);
25
26
             let field = data[fields[j]];
27
             if(field){
28
               for(let i=0; i<field.length; i++) {
29
                 var value:Value = new Value();
30
                 value.name = field[i].name;
31
                 value.name =this.removePartAfterCharacters(value,"||");
32
                 value.number = field[i].count;
33
                 value.id = field[i].id;
34
                 if(RefineResultsUtils.includeValue(value)){
35
                   filter.values.push(value);
36
                 }
37
38
39
             }
40
41
               filters.push(filter);
42
           }
43
       }
44
     }
45
       return filters;
46
   }
47
   private static includeValue (field):boolean {
48
     if( !field || !field.name || field.name == "unidentified" || field.name == "Undetermined" ){
49
       return false;
50
51
     }
52
     return true;
53
   }
54
   private static removePartAfterCharacters(field, characters):string {
55
     if( field.name.indexOf(characters) !=-1){
56
       return field.name.split(characters)[0];
57
58
     }
59
     return field.name;
60
   }
61
   public static inParenthesisThePartAfterCharacters(field, characters):string {
62
     if( field.name.indexOf(characters) !=-1){
63
       return field.name.split(characters)[0]+" ("+field.name.split(characters)[1]+")";
64
65
     }
66
     return field.name;
67
   }
68
  public static keepPartAfterCharacters(name, characters):string {
69
    if( name.indexOf(characters) !=-1){
70
      return name.split(characters)[1];
71
    }
72
    return name;
73
  }
74
  }