Project

General

Profile

1
import {Injectable} from '@angular/core';
2
import {Http, Response, Headers, RequestOptions, URLSearchParams} from '@angular/http';
3
import {Observable}     from 'rxjs/Observable';
4
import 'rxjs/add/observable/of';
5
import 'rxjs/add/operator/do';
6
import 'rxjs/add/operator/share';
7
import {Location} from '@angular/common';
8

    
9
import {StringUtils} from '../string-utils.class';
10
import {EnvProperties} from '../properties/env-properties';
11

    
12

    
13
@Injectable()
14
export class PiwikService {
15
    private piwikbaseUrl:string = "";
16
    constructor(private http: Http, private location: Location ) {}
17

    
18
    trackView (properties:EnvProperties, title, siteId = null):any {
19

    
20
      var ua = this.getUserAgent();
21
      var referrer = this.getReferrer();
22
      console.log("Piwik - id: " + siteId);
23

    
24
      if(typeof location !== 'undefined'){
25
            var url = properties.piwikBaseUrl+((siteId!=null)?siteId:properties.piwikSiteId)+"&rec=1&url="+StringUtils.URIEncode(location.href)+"&action_name="+StringUtils.URIEncode(title)+
26
            ((ua != null && ua.length > 0)?('&ua='+StringUtils.URIEncode(ua)):'')+
27
            ((referrer != null && referrer.length > 0)?('&urlref='+StringUtils.URIEncode(referrer)):'');
28
            console.log("Piwik - View: " + url);
29
            // return Observable.of(new Object()).mapTo(true); // for testing
30
            return this.http.get( url);
31
                          // .do(request => console.info("Piwik request completed" ));
32

    
33
      }
34
    }
35
    trackDownload (properties:EnvProperties, downloadURL, siteId = null):any {
36
      var ua = this.getUserAgent();
37
      var referrer = this.getReferrer();
38
      var url = properties.piwikBaseUrl+((siteId!=null)?siteId:properties.piwikSiteId)+"&rec=1&url="+StringUtils.URIEncode(downloadURL)+"&download="+StringUtils.URIEncode(downloadURL)+
39
      ((ua != null && ua.length > 0)?('&ua='+StringUtils.URIEncode(ua)):'')+
40
      ((referrer != null && referrer.length > 0)?('&urlref='+StringUtils.URIEncode(referrer)):'');
41
      console.log("Piwik - trackDownload: "+url);
42

    
43
      return this.http.get( url)
44
                    .do(request => console.info("Piwik request completed" ));
45

    
46
    }
47
    private getUserAgent(){
48
      if (typeof navigator !== 'undefined') {
49
        console.log("navigator.userAgent:" + navigator.userAgent);
50
        return navigator.userAgent;
51

    
52
      }else{
53
        return null;
54
      }
55
    }
56
    private getReferrer(){
57
      var referrer = "";
58
      if (typeof document !== 'undefined') {
59
        console.log("document.referrer:" + document.referrer);
60
        referrer = document.referrer;
61

    
62
      }
63
      if((referrer == null || referrer.length == 0)&&typeof localStorage !== 'undefined'){
64

    
65
          referrer =localStorage.getItem('previousRoute');
66
       }
67
       return referrer;
68
    }
69
    parse(data:any){
70
    }
71

    
72
}
(1-1/3)