annot-server/static/js/app.js
author rougeronj
Fri, 17 Apr 2015 11:28:31 +0200
changeset 159 f2e4641681f6
parent 116 61d4a6610ba4
permissions -rw-r--r--
Add 'keyword' attribute to new_annot and gulp copy server
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
84
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
     1
(function(){
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
     2
    'use strict';
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
     3
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
     4
    angular.module('mons', [ 'ngResource', 'ngRoute', 'autocomplete' ])
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
     5
        .config(function($routeProvider) {
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
     6
            $routeProvider.
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
     7
                when('/', {
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
     8
                    controller: 'homeCtrl'
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
     9
               }).
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    10
               otherwise({
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    11
                   redirectTo: '/'
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    12
               });
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    13
        })
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    14
        .config(function($logProvider){
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    15
            $logProvider.debugEnabled(true);
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    16
        })
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    17
        .service('dataApi', function($resource, context) {
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    18
            //console.log('dataApi',$resource, context);
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    19
            this.dataResource = $resource(context.urls.dataUrl);
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    20
        })
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    21
        .service('dataModel', function(dataApi, context) {
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    22
            //console.log('dataModel',this,dataApi);
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    23
            if(typeof context.categories_json !== 'undefined' && context.categories_json) {
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    24
                this.data = JSON.parse(context.categories_json);
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    25
            }
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    26
            else {
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    27
                this.data = dataApi.dataResource.get();
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    28
            }
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    29
        })
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    30
        .controller('homeCtrl', function($scope, $location, dataModel, context, $interval){
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    31
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    32
            function getURLParameter(name) {
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    33
                return decodeURI(
159
f2e4641681f6 Add 'keyword' attribute to new_annot and gulp copy server
rougeronj
parents: 116
diff changeset
    34
                    (new RegExp(name + '=' + '(.+?)(&|$)').exec(location.search)||[null,])[1]
84
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    35
                );
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    36
            }
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    37
109
8546e2181a73 correct color codes sent by client
ymh <ymh.work@gmail.com>
parents: 107
diff changeset
    38
            function colorToHex(c) {
8546e2181a73 correct color codes sent by client
ymh <ymh.work@gmail.com>
parents: 107
diff changeset
    39
                var m = /rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)/.exec(c);
8546e2181a73 correct color codes sent by client
ymh <ymh.work@gmail.com>
parents: 107
diff changeset
    40
                return m ? '#' + (1 << 24 | m[1] << 16 | m[2] << 8 | m[3]).toString(16).substr(1) : c;
107
6d41506f9482 correct annotation client
ymh <ymh.work@gmail.com>
parents: 84
diff changeset
    41
            }
6d41506f9482 correct annotation client
ymh <ymh.work@gmail.com>
parents: 84
diff changeset
    42
84
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    43
            $scope.data = dataModel.data;
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    44
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    45
            var process_categories = function(data) {
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    46
                if(typeof data.categories!=='undefined' && data.categories.length>0){
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    47
                    var cats = [];
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    48
                    var nbCat = data.categories.length;
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    49
                    for(var i=0;i<nbCat;i++){
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    50
                        cats.push(data.categories[i].label);
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    51
                        if(typeof data.categories[i].subcategories!=='undefined' && data.categories[i].subcategories.length>0){
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    52
                            var nbSubCat = data.categories[i].subcategories.length;
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    53
                            for(var j=0;j<nbSubCat;j++){
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    54
                                cats.push(data.categories[i].subcategories[j].label);
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    55
                            }
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    56
                        }
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    57
                    }
107
6d41506f9482 correct annotation client
ymh <ymh.work@gmail.com>
parents: 84
diff changeset
    58
                    if(typeof data.autocomplete === 'undefined' || data.autocomplete.length === 0) {
6d41506f9482 correct annotation client
ymh <ymh.work@gmail.com>
parents: 84
diff changeset
    59
                        $scope.allCatLabels = cats;
6d41506f9482 correct annotation client
ymh <ymh.work@gmail.com>
parents: 84
diff changeset
    60
                    }
6d41506f9482 correct annotation client
ymh <ymh.work@gmail.com>
parents: 84
diff changeset
    61
                    else {
6d41506f9482 correct annotation client
ymh <ymh.work@gmail.com>
parents: 84
diff changeset
    62
                        $scope.allCatLabels = data.autocomplete;
6d41506f9482 correct annotation client
ymh <ymh.work@gmail.com>
parents: 84
diff changeset
    63
                    }
84
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    64
                }
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    65
            };
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    66
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    67
            if (typeof dataModel.data.$promise !== 'undefined') {
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    68
                dataModel.data.$promise.then(process_categories);
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    69
            }
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    70
            else {
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    71
                process_categories(dataModel.data);
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    72
            }
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    73
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    74
            $scope.selectedlevel = false;
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    75
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    76
            $scope.currentInterval = false;
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    77
            $scope.showSuccessAlert = false;
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    78
            $scope.showAlertDiv = false;
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    79
            function showAlert(m, success){
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    80
                $scope.alertMessage = m;
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    81
                $scope.showSuccessAlert = success;
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    82
                $scope.showAlertDiv = true;
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    83
                if(!$scope.$$phase) {
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    84
                    $scope.$apply();
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    85
                }
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    86
                if($scope.currentInterval){
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    87
                    $interval.cancel($scope.currentInterval);
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    88
                    $scope.currentInterval = false;
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    89
                }
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    90
                $scope.currentInterval = $interval(function(){ $interval.cancel($scope.currentInterval); $scope.showAlertDiv = false; }, 2000, 1);
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    91
            }
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    92
            $scope.annotPile = [];
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    93
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    94
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    95
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    96
            // Socket management
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    97
            var sock = null;
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    98
            var ellog = null;
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    99
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   100
            ellog = document.getElementById('log');
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   101
            function log(m) {
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   102
                if(ellog){
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   103
                    ellog.innerHTML += m + '\n';
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   104
                    ellog.scrollTop = ellog.scrollHeight;
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   105
                }
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   106
            }
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   107
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   108
            var wsuri;
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   109
            if (window.location.protocol === 'file:') {
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   110
                wsuri = 'ws://127.0.0.1:8090/annot';
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   111
            } else {
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   112
                wsuri = 'ws://' + window.location.hostname + ':8090/annot';
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   113
            }
107
6d41506f9482 correct annotation client
ymh <ymh.work@gmail.com>
parents: 84
diff changeset
   114
84
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   115
            var eventCode = context.event_code;
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   116
            if(typeof eventCode==='undefined' || eventCode===''){
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   117
                eventCode = $location.search().event;
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   118
                if(typeof eventCode==='undefined' || eventCode===''){
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   119
                    eventCode = getURLParameter('event');
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   120
                    if(typeof eventCode==='undefined' || eventCode===''){
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   121
                        alert('le code de l\'événement doit être indiqué dans un paramètre de template u dans l\'url selon ?event=CODE_EVENEMENT.');
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   122
                        return;
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   123
                    }
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   124
                }
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   125
            }
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   126
            wsuri = wsuri + '?event=' + eventCode;
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   127
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   128
            if ('WebSocket' in window) {
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   129
                sock = new WebSocket(wsuri);
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   130
            } else if ('MozWebSocket' in window) {
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   131
                sock = new window.MozWebSocket(wsuri);
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   132
            } else {
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   133
                if(context.logging===true){
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   134
                    log('Browser does not support WebSocket!');
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   135
                }
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   136
                window.location = 'http://autobahn.ws/unsupportedbrowser';
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   137
            }
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   138
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   139
            if (sock) {
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   140
                sock.onopen = function() {
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   141
                    if(context.logging===true){
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   142
                        log('Connected to ' + wsuri);
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   143
                    }
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   144
                };
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   145
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   146
                sock.onclose = function(e) {
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   147
                    if(context.logging===true){
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   148
                        log('Connection closed (wasClean = ' + e.wasClean + ', code = ' + e.code + ', reason = ' + e.reason + ')');
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   149
                    }
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   150
                    showAlert('Communication interrompue : la socket vient de se fermer.', false);
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   151
                    sock = null;
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   152
                };
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   153
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   154
                sock.onmessage = function(e) {
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   155
                    var data_json = JSON.parse(e.data);
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   156
                    //console.log('1', data_json);
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   157
                    if(context.logging){
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   158
                        log('Got message: ' + e.data);
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   159
                    }
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   160
                    //showAlert('Annotation bien reçue.', true);
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   161
                    //console.log('2 message', $scope.annotPile.length);
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   162
                    if($scope.annotPile.length>0){
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   163
                        var c = $scope.annotPile.shift();
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   164
                        //console.log('3 message', c);
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   165
                        //console.log('2',data_json.status,data_json.status==='OK');
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   166
                        var ok = data_json.status==='OK';
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   167
                        var i;
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   168
                        if(c===false){
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   169
                            //showAlert('Annotation envoyée.', true);
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   170
                            $scope.sendBtnSuccess = ok;
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   171
                            $scope.sendBtnError = !ok;
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   172
                            i = $interval(function(){ $interval.cancel(i); $scope.sendBtnSuccess = false; $scope.sendBtnError = false; }, 2000, 1);
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   173
                        }
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   174
                        else{
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   175
                            c.sendSuccess = ok;
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   176
                            c.sendError = !ok;
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   177
                            i = $interval(function(){ $interval.cancel(i); c.sendSuccess = false; c.sendError = false; }, 2000, 1);
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   178
                        }
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   179
                        if(!$scope.$$phase) {
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   180
                            $scope.$apply();
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   181
                        }
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   182
                    }
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   183
                };
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   184
            }
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   185
107
6d41506f9482 correct annotation client
ymh <ymh.work@gmail.com>
parents: 84
diff changeset
   186
            $scope.sendFreeAnnotation = function(label, text) {
6d41506f9482 correct annotation client
ymh <ymh.work@gmail.com>
parents: 84
diff changeset
   187
                $scope.sendAnnotation(label, window.S(label).slugify().s, label, text, $scope.data.defaultColor || "#536991");
6d41506f9482 correct annotation client
ymh <ymh.work@gmail.com>
parents: 84
diff changeset
   188
            };
6d41506f9482 correct annotation client
ymh <ymh.work@gmail.com>
parents: 84
diff changeset
   189
6d41506f9482 correct annotation client
ymh <ymh.work@gmail.com>
parents: 84
diff changeset
   190
            $scope.sendAnnotation = function(label, code, freeLabel, freetext, color, c){
6d41506f9482 correct annotation client
ymh <ymh.work@gmail.com>
parents: 84
diff changeset
   191
84
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   192
                if($scope.username==='' || typeof $scope.username==='undefined'){
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   193
                    showAlert('Vous devez indiquer un nom d\'utilisateur.', false);
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   194
                    return;
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   195
                }
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   196
                if(label==='' || typeof label==='undefined'){
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   197
                    showAlert('Vous devez indiquer un nom de catégorie.', false);
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   198
                    return;
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   199
                }
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   200
                // Send query
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   201
                if (sock) {
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   202
                    if(typeof code==='undefined' || code===''){
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   203
                        code = window.S(label).slugify().s;
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   204
                    }
107
6d41506f9482 correct annotation client
ymh <ymh.work@gmail.com>
parents: 84
diff changeset
   205
6d41506f9482 correct annotation client
ymh <ymh.work@gmail.com>
parents: 84
diff changeset
   206
                    var hexc;
6d41506f9482 correct annotation client
ymh <ymh.work@gmail.com>
parents: 84
diff changeset
   207
                    if(color.substring(0, 4) === 'rgb(') {
109
8546e2181a73 correct color codes sent by client
ymh <ymh.work@gmail.com>
parents: 107
diff changeset
   208
                        hexc = colorToHex(color);
107
6d41506f9482 correct annotation client
ymh <ymh.work@gmail.com>
parents: 84
diff changeset
   209
                    }
6d41506f9482 correct annotation client
ymh <ymh.work@gmail.com>
parents: 84
diff changeset
   210
                    else {
6d41506f9482 correct annotation client
ymh <ymh.work@gmail.com>
parents: 84
diff changeset
   211
                        hexc = color;
6d41506f9482 correct annotation client
ymh <ymh.work@gmail.com>
parents: 84
diff changeset
   212
                    }
6d41506f9482 correct annotation client
ymh <ymh.work@gmail.com>
parents: 84
diff changeset
   213
6d41506f9482 correct annotation client
ymh <ymh.work@gmail.com>
parents: 84
diff changeset
   214
84
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   215
                    var new_annot = {
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   216
                            category: {code: code, label: label},
159
f2e4641681f6 Add 'keyword' attribute to new_annot and gulp copy server
rougeronj
parents: 116
diff changeset
   217
                            keyword: freeLabel,
107
6d41506f9482 correct annotation client
ymh <ymh.work@gmail.com>
parents: 84
diff changeset
   218
                            text: freetext,
6d41506f9482 correct annotation client
ymh <ymh.work@gmail.com>
parents: 84
diff changeset
   219
                            color: hexc,
84
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   220
                            user : $scope.username
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   221
                    };
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   222
                    sock.send(JSON.stringify(new_annot));
116
61d4a6610ba4 change category by keyword
ymh <ymh.work@gmail.com>
parents: 109
diff changeset
   223
                 if(context.logging===true){
84
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   224
                        log('Sent: ' + JSON.stringify(new_annot));
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   225
                    }
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   226
                    if(typeof c==='undefined'){
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   227
                        $scope.annotPile.push(false);
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   228
                    }
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   229
                    else{
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   230
                        $scope.annotPile.push(c);
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   231
                    }
107
6d41506f9482 correct annotation client
ymh <ymh.work@gmail.com>
parents: 84
diff changeset
   232
                    $scope.catText = "";
6d41506f9482 correct annotation client
ymh <ymh.work@gmail.com>
parents: 84
diff changeset
   233
                    $scope.catLabel = "";
84
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   234
                } else {
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   235
                    showAlert('La socket ne fonctionne pas.', false);
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   236
                    if(context.logging===true){
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   237
                        log('Not connected.');
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   238
                    }
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   239
                }
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   240
            };
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   241
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   242
            // Interface management
107
6d41506f9482 correct annotation client
ymh <ymh.work@gmail.com>
parents: 84
diff changeset
   243
            $scope.selectLevel = function(label, code, freelabel, freetext, color, c){
84
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   244
                if(typeof c==='undefined'){
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   245
                    $scope.returnVisStyle = {visibility:'hidden'};
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   246
                    $scope.selectedlevel = false;
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   247
                    return;
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   248
                }
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   249
                if(typeof c.subcategories!=='undefined' && c.subcategories.length>0){
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   250
                    $scope.selectedlevel = c.subcategories;
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   251
                    $scope.returnVisStyle = {visibility:'show'};
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   252
                }
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   253
                else{
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   254
                    // Send query
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   255
                    //console.log('send ntm', c);
107
6d41506f9482 correct annotation client
ymh <ymh.work@gmail.com>
parents: 84
diff changeset
   256
                    $scope.sendAnnotation(label, code, freelabel, freetext, color, c);
84
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   257
                }
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   258
            };
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   259
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   260
        });
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   261
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   262
})();