server/src/assets/js/mtdc-tracking-worker.js
author ymh <ymh.work@gmail.com>
Wed, 27 Jul 2016 15:26:23 +0200
changeset 112 2ec47574a371
parent 108 a7480ebe1f4d
permissions -rw-r--r--
improve tracking informations on id and add tracking for search
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
90
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
     1
/* globals operative _ Cookies $ */
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
     2
/* eslint no-console: 0 */
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
     3
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
     4
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
     5
(function(root) {
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
     6
    'use strict';
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
     7
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
     8
    if (typeof root.Mtdc !== 'object') {
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
     9
        root.Mtdc = {};
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
    10
    }
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
    11
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
    12
    var Mtdc = root.Mtdc;
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
    13
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
    14
112
2ec47574a371 improve tracking informations on id and add tracking for search
ymh <ymh.work@gmail.com>
parents: 108
diff changeset
    15
    Mtdc.TrackingWorker = function(renkan, opts){
2ec47574a371 improve tracking informations on id and add tracking for search
ymh <ymh.work@gmail.com>
parents: 108
diff changeset
    16
2ec47574a371 improve tracking informations on id and add tracking for search
ymh <ymh.work@gmail.com>
parents: 108
diff changeset
    17
        var options = _.defaults(opts, {
2ec47574a371 improve tracking informations on id and add tracking for search
ymh <ymh.work@gmail.com>
parents: 108
diff changeset
    18
            debounceDelay: 1000,
2ec47574a371 improve tracking informations on id and add tracking for search
ymh <ymh.work@gmail.com>
parents: 108
diff changeset
    19
            trackingUriTemplates: {
2ec47574a371 improve tracking informations on id and add tracking for search
ymh <ymh.work@gmail.com>
parents: 108
diff changeset
    20
                'renkan': 'urn:mtdc:renkan:renkan:${renkan_id}',
2ec47574a371 improve tracking informations on id and add tracking for search
ymh <ymh.work@gmail.com>
parents: 108
diff changeset
    21
                'node': 'urn:mtdc:renkan:node:${renkan_id}:${node_id}',
2ec47574a371 improve tracking informations on id and add tracking for search
ymh <ymh.work@gmail.com>
parents: 108
diff changeset
    22
                'edge': 'urn:mtdc:renkan:edge:${renkan_id}:${edge_id}',
2ec47574a371 improve tracking informations on id and add tracking for search
ymh <ymh.work@gmail.com>
parents: 108
diff changeset
    23
                'view': 'urn:mtdc:renkan:view:${renkan_id}:${view_id}'
2ec47574a371 improve tracking informations on id and add tracking for search
ymh <ymh.work@gmail.com>
parents: 108
diff changeset
    24
            }
2ec47574a371 improve tracking informations on id and add tracking for search
ymh <ymh.work@gmail.com>
parents: 108
diff changeset
    25
        });
90
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
    26
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
    27
        function _sendTrackingInfo() {
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
    28
            var trackingMessages = this.trackingMessages;
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
    29
            this.trackingMessages = [];
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
    30
            if(trackingMessages.length === 0) {
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
    31
                return;
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
    32
            }
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
    33
            $.ajax({
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
    34
                method: 'POST',
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
    35
                url: this.trackingUrl,
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
    36
                headers: {
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
    37
                    'X-CSRFToken': this.csrftoken
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
    38
                },
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
    39
                data: JSON.stringify(trackingMessages),
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
    40
                contentType: 'application/json'
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
    41
            }).fail(function(){
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
    42
                console.log('send tracking data failed', trackingMessages);
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
    43
            }); // this is fire and forget. Nothong to do on done
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
    44
        }
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
    45
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
    46
        var trackingWorker = {
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
    47
            trackingMessages: [],
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
    48
            currentUser: renkan.current_user,
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
    49
            renkan: renkan,
112
2ec47574a371 improve tracking informations on id and add tracking for search
ymh <ymh.work@gmail.com>
parents: 108
diff changeset
    50
            trackingUrl: options.trackingUrl,
2ec47574a371 improve tracking informations on id and add tracking for search
ymh <ymh.work@gmail.com>
parents: 108
diff changeset
    51
            trackingCloseUrl: options.trackingCloseUrl,
90
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
    52
            getUUID4 : function() {
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
    53
                return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
    54
                    var r = Math.random() * 16 | 0,
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
    55
                        v = c === 'x' ? r : (r & 0x3 | 0x8);
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
    56
                    return v.toString(16);
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
    57
                });
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
    58
            },
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
    59
            _init: function() {
112
2ec47574a371 improve tracking informations on id and add tracking for search
ymh <ymh.work@gmail.com>
parents: 108
diff changeset
    60
                this.sendTrackingInfo = _.debounce(_.bind(_sendTrackingInfo, this), options.debounceDelay);
90
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
    61
                this.csrftoken = Cookies.get('csrftoken');
112
2ec47574a371 improve tracking informations on id and add tracking for search
ymh <ymh.work@gmail.com>
parents: 108
diff changeset
    62
                this.registration = options.registration ? options.registration : this.getUUID4();
2ec47574a371 improve tracking informations on id and add tracking for search
ymh <ymh.work@gmail.com>
parents: 108
diff changeset
    63
                this.trackingUriTemplates = _.mapValues(options.trackingUriTemplates, _.template);
90
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
    64
                return this;
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
    65
            },
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
    66
            _pushTrackingMessage: function(msg) {
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
    67
                this.trackingMessages.push(msg);
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
    68
                this.sendTrackingInfo();
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
    69
            },
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
    70
            flushTrackingInfo() {
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
    71
                //this.sendTrackingInfo.flush();
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
    72
            },
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
    73
            _getBaseMsg: function(verb) {
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
    74
                var timestamp = new Date(),
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
    75
                    verbNode = {
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
    76
                        add: {
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
    77
                            id: 'http://activitystrea.ms/schema/1.0/create',
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
    78
                            display: { 'fr-FR': 'a créé' }
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
    79
                        },
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
    80
                        update: {
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
    81
                            id: 'http://activitystrea.ms/schema/1.0/update',
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
    82
                            display: { 'fr-FR': 'a modifié' }
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
    83
                        },
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
    84
                        delete: {
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
    85
                            id: 'http://activitystrea.ms/schema/1.0/delete',
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
    86
                            display: { 'fr-FR': 'a supprimé' }
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
    87
                        },
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
    88
                        move: {
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
    89
                            id: 'http://activitystrea.ms/schema/1.0/move',
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
    90
                            display: { 'fr-FR': 'a déplacé'}
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
    91
                        },
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
    92
                        close: {
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
    93
                            id: 'http://activitystrea.ms/schema/1.0/close',
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
    94
                            display: { 'fr-FR': 'a fermé'}
112
2ec47574a371 improve tracking informations on id and add tracking for search
ymh <ymh.work@gmail.com>
parents: 108
diff changeset
    95
                        },
2ec47574a371 improve tracking informations on id and add tracking for search
ymh <ymh.work@gmail.com>
parents: 108
diff changeset
    96
                        search: {
2ec47574a371 improve tracking informations on id and add tracking for search
ymh <ymh.work@gmail.com>
parents: 108
diff changeset
    97
                            id: 'http://activitystrea.ms/schema/1.0/search',
2ec47574a371 improve tracking informations on id and add tracking for search
ymh <ymh.work@gmail.com>
parents: 108
diff changeset
    98
                            display: { 'fr-FR': 'a cherché'}
90
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
    99
                        }
112
2ec47574a371 improve tracking informations on id and add tracking for search
ymh <ymh.work@gmail.com>
parents: 108
diff changeset
   100
90
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   101
                    }[verb];
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   102
                return {
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   103
                    actor: {
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   104
                        objectType: 'Agent',
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   105
                        name: this.currentUser,
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   106
                        account: {
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   107
                            homePage: 'https://www.metaeducation.fr/Utilisateurs/',
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   108
                            name: this.currentUser
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   109
                        }
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   110
                    },
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   111
                    verb: verbNode,
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   112
                    object: {
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   113
                        objectType: 'Activity'
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   114
                    },
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   115
                    context: {
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   116
                        registration: this.registration,
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   117
                        extensions: {
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   118
                            'http://liris.renkantracking.org/application': 'Outil carte mentale'
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   119
                        }
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   120
                    },
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   121
                    timestamp: timestamp.toISOString()
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   122
                };
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   123
            },
112
2ec47574a371 improve tracking informations on id and add tracking for search
ymh <ymh.work@gmail.com>
parents: 108
diff changeset
   124
            _getObjectUri: function(objectType, objectId) {
2ec47574a371 improve tracking informations on id and add tracking for search
ymh <ymh.work@gmail.com>
parents: 108
diff changeset
   125
                var template = this.trackingUriTemplates[objectType];
2ec47574a371 improve tracking informations on id and add tracking for search
ymh <ymh.work@gmail.com>
parents: 108
diff changeset
   126
                var templateParams = {'renkan_id': this.renkan.project.get('id')};
2ec47574a371 improve tracking informations on id and add tracking for search
ymh <ymh.work@gmail.com>
parents: 108
diff changeset
   127
                templateParams[objectType+'_id'] = objectId;
2ec47574a371 improve tracking informations on id and add tracking for search
ymh <ymh.work@gmail.com>
parents: 108
diff changeset
   128
                return template(templateParams);
90
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   129
            },
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   130
            _sendNodeMsg: function(verb, nodeData, changedData, previousData) {
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   131
                this._sendObjectMsg('node', 'http://www.w3.org/ns/activitystreams#Node', verb, nodeData, changedData, previousData);
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   132
            },
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   133
            _sendEdgeMsg: function(verb, nodeData, changedData, previousData) {
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   134
                this._sendObjectMsg('edge', 'http://www.w3.org/ns/activitystreams#Edge', verb, nodeData, changedData, previousData);
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   135
            },
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   136
            _sendViewMsg: function(verb, viewData, changedData, previousData) {
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   137
                this._sendObjectMsg('view', 'http://www.w3.org/ns/activitystreams#View', verb, viewData, changedData, previousData);
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   138
            },
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   139
            _sendObjectMsg: function(objectType, objectTypeUrl, verb, objData, changedData, previousData) {
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   140
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   141
                var msg = this._getBaseMsg(verb);
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   142
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   143
                msg.object = _.merge(msg.object, {
112
2ec47574a371 improve tracking informations on id and add tracking for search
ymh <ymh.work@gmail.com>
parents: 108
diff changeset
   144
                    id: this._getObjectUri(objectType, objData._id), //TODO full url ???
90
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   145
                    definition: {
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   146
                        name: {
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   147
                            'fr-FR': objData.title
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   148
                        },
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   149
                        description: {
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   150
                            'fr-FR': objData.description
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   151
                        },
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   152
                        type: objectTypeUrl,
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   153
                        extensions: {
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   154
                            'http://www.w3.org/ns/activitystreams#Data': objData,
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   155
                            'http://www.w3.org/ns/activitystreams#DataChanged': changedData, //this part are not sent if undefined
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   156
                            'http://www.w3.org/ns/activitystreams#DataPrevious': previousData //this part are not sent if undefined
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   157
                        }
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   158
                    }
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   159
                });
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   160
                msg.context = _.merge(msg.context, {
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   161
                    extensions: {
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   162
                        'http://liris.renkantracking.org/fromCreate': objData.origin
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   163
                    }
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   164
                });
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   165
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   166
                this._pushTrackingMessage(msg);
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   167
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   168
            },
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   169
            addNode: function(nodeData) {
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   170
                this._sendNodeMsg('add', nodeData);
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   171
            },
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   172
            deleteNode: function(nodeData) {
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   173
                this._sendNodeMsg('delete', nodeData);
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   174
            },
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   175
            updateNode: function(nodeData, changedData, previousData) {
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   176
                if('position' in changedData) {
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   177
                    this._sendNodeMsg('move', nodeData, { position: changedData['position']}, { position: previousData['position']});
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   178
                    delete changedData['position'];
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   179
                    delete previousData['position'];
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   180
                }
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   181
                if(_.isEmpty(changedData)) {
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   182
                    return;
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   183
                }
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   184
                this._sendNodeMsg('update', nodeData, changedData, previousData);
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   185
            },
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   186
            addEdge: function(edgeData) {
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   187
                this._sendEdgeMsg('add', edgeData);
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   188
            },
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   189
            deleteEdge: function(edgeData) {
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   190
                this._sendEdgeMsg('delete', edgeData);
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   191
            },
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   192
            updateEdge: function(edgeData, changedData, previousData) {
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   193
                this._sendEdgeMsg('update', edgeData, changedData, previousData);
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   194
            },
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   195
            addView: function(edgeData) {
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   196
                this._sendViewMsg('add', edgeData);
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   197
            },
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   198
            deleteView: function(edgeData) {
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   199
                this._sendViewMsg('delete', edgeData);
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   200
            },
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   201
            updateView: function(viewData, changedData, previousData) {
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   202
                this._sendViewMsg('update', viewData, changedData, previousData);
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   203
            },
112
2ec47574a371 improve tracking informations on id and add tracking for search
ymh <ymh.work@gmail.com>
parents: 108
diff changeset
   204
            searchProject: function(searchData) {
2ec47574a371 improve tracking informations on id and add tracking for search
ymh <ymh.work@gmail.com>
parents: 108
diff changeset
   205
                var msg = this._getBaseMsg('search');
2ec47574a371 improve tracking informations on id and add tracking for search
ymh <ymh.work@gmail.com>
parents: 108
diff changeset
   206
2ec47574a371 improve tracking informations on id and add tracking for search
ymh <ymh.work@gmail.com>
parents: 108
diff changeset
   207
                msg.object = _.merge(msg.object, {
2ec47574a371 improve tracking informations on id and add tracking for search
ymh <ymh.work@gmail.com>
parents: 108
diff changeset
   208
                    id: this._getObjectUri('renkan', this.renkan.project.get('id')),
2ec47574a371 improve tracking informations on id and add tracking for search
ymh <ymh.work@gmail.com>
parents: 108
diff changeset
   209
                    definition: {
2ec47574a371 improve tracking informations on id and add tracking for search
ymh <ymh.work@gmail.com>
parents: 108
diff changeset
   210
                        name: {
2ec47574a371 improve tracking informations on id and add tracking for search
ymh <ymh.work@gmail.com>
parents: 108
diff changeset
   211
                            'fr-FR': this.renkan.project.get('title')
2ec47574a371 improve tracking informations on id and add tracking for search
ymh <ymh.work@gmail.com>
parents: 108
diff changeset
   212
                        },
2ec47574a371 improve tracking informations on id and add tracking for search
ymh <ymh.work@gmail.com>
parents: 108
diff changeset
   213
                        type: 'http://www.w3.org/ns/activitystreams#Renkan',
2ec47574a371 improve tracking informations on id and add tracking for search
ymh <ymh.work@gmail.com>
parents: 108
diff changeset
   214
                        extensions: {
2ec47574a371 improve tracking informations on id and add tracking for search
ymh <ymh.work@gmail.com>
parents: 108
diff changeset
   215
                            'http://www.w3.org/ns/activitystreams#Data': searchData
2ec47574a371 improve tracking informations on id and add tracking for search
ymh <ymh.work@gmail.com>
parents: 108
diff changeset
   216
                        }
2ec47574a371 improve tracking informations on id and add tracking for search
ymh <ymh.work@gmail.com>
parents: 108
diff changeset
   217
                    }
2ec47574a371 improve tracking informations on id and add tracking for search
ymh <ymh.work@gmail.com>
parents: 108
diff changeset
   218
                });
2ec47574a371 improve tracking informations on id and add tracking for search
ymh <ymh.work@gmail.com>
parents: 108
diff changeset
   219
                this._pushTrackingMessage(msg);
2ec47574a371 improve tracking informations on id and add tracking for search
ymh <ymh.work@gmail.com>
parents: 108
diff changeset
   220
            },
90
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   221
            closeProject: function() {
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   222
                this.flushTrackingInfo();
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   223
                $.ajax({
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   224
                    method: 'POST',
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   225
                    url: this.trackingCloseUrl,
98
6ff1d74b4afe small change to call to close tracking api - revert async
ymh <ymh.work@gmail.com>
parents: 96
diff changeset
   226
                    async: false,
90
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   227
                    headers: {
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   228
                        'X-CSRFToken': this.csrftoken
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   229
                    },
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   230
                    data: {
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   231
                        'renkan_guid': this.renkan.project.get('id'),
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   232
                        'registration': this.registration
108
a7480ebe1f4d revert bad change for ajax call for close tracking form
ymh <ymh.work@gmail.com>
parents: 98
diff changeset
   233
                    }
90
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   234
                }).fail(function(){
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   235
                    console.log('send tracking data failed');
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   236
                }); // this is fire and forget. Nothong tpo do on failed
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   237
            }
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   238
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   239
        };
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   240
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   241
        return trackingWorker._init();
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   242
    };
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   243
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   244
00c9bb0f6f37 Add asset compilation step to transpile js files for older browser (adn Safari)
ymh <ymh.work@gmail.com>
parents:
diff changeset
   245
})(window);