annot-server/static/js/app.js
author rougeronj
Thu, 22 Jan 2015 09:26:43 +0100
changeset 111 a7b72620d227
parent 84 d7c5bffdd2d8
child 107 6d41506f9482
permissions -rw-r--r--
Add variable "wait". When this variable set, the annotsroll wait ignore some annotations, and wait before printing an otherone so there is no superposition. Can be passed as an options
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(
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    34
                    (new RegExp(name + '=' + '(.+?)(&|$)').exec(location.search)||[,null])[1]
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
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    38
            $scope.data = dataModel.data;
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    39
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    40
            var process_categories = function(data) {
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    41
                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
    42
                    var cats = [];
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    43
                    var nbCat = data.categories.length;
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    44
                    for(var i=0;i<nbCat;i++){
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    45
                        cats.push(data.categories[i].label);
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    46
                        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
    47
                            var nbSubCat = data.categories[i].subcategories.length;
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    48
                            for(var j=0;j<nbSubCat;j++){
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    49
                                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
    50
                            }
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    51
                        }
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    52
                    }
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    53
                    $scope.allCatLabels = cats;
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    54
                }
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
            if (typeof dataModel.data.$promise !== 'undefined') {
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    58
                dataModel.data.$promise.then(process_categories);
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    59
            }
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    60
            else {
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    61
                process_categories(dataModel.data);
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    62
            }
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    63
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    64
            $scope.selectedlevel = false;
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
            $scope.currentInterval = false;
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    67
            $scope.showSuccessAlert = false;
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    68
            $scope.showAlertDiv = false;
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    69
            function showAlert(m, success){
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    70
                $scope.alertMessage = m;
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    71
                $scope.showSuccessAlert = success;
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    72
                $scope.showAlertDiv = true;
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    73
                if(!$scope.$$phase) {
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    74
                    $scope.$apply();
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
                if($scope.currentInterval){
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    77
                    $interval.cancel($scope.currentInterval);
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    78
                    $scope.currentInterval = false;
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    79
                }
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    80
                $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
    81
            }
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    82
            $scope.annotPile = [];
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    83
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    84
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
            // Socket management
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    87
            var sock = null;
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    88
            var ellog = null;
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
            ellog = document.getElementById('log');
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    91
            function log(m) {
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    92
                if(ellog){
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    93
                    ellog.innerHTML += m + '\n';
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    94
                    ellog.scrollTop = ellog.scrollHeight;
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
            }
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    97
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    98
            var wsuri;
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
    99
            if (window.location.protocol === 'file:') {
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   100
                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
   101
            } else {
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   102
                wsuri = 'ws://' + window.location.hostname + ':8090/annot';
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   103
            }
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   104
            
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   105
            var eventCode = context.event_code;
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   106
            if(typeof eventCode==='undefined' || eventCode===''){
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   107
                eventCode = $location.search().event;
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   108
                if(typeof eventCode==='undefined' || eventCode===''){
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   109
                    eventCode = getURLParameter('event');
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   110
                    if(typeof eventCode==='undefined' || eventCode===''){
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   111
                        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
   112
                        return;
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   113
                    }
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   114
                }
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   115
            }
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   116
            wsuri = wsuri + '?event=' + eventCode;
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   117
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   118
            if ('WebSocket' in window) {
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   119
                sock = new WebSocket(wsuri);
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   120
            } else if ('MozWebSocket' in window) {
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   121
                sock = new window.MozWebSocket(wsuri);
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   122
            } else {
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   123
                if(context.logging===true){
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   124
                    log('Browser does not support WebSocket!');
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
                window.location = 'http://autobahn.ws/unsupportedbrowser';
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
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   129
            if (sock) {
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   130
                sock.onopen = function() {
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   131
                    if(context.logging===true){
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   132
                        log('Connected to ' + wsuri);
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   133
                    }
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   134
                };
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
                sock.onclose = function(e) {
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   137
                    if(context.logging===true){
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   138
                        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
   139
                    }
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   140
                    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
   141
                    sock = null;
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   142
                };
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
                sock.onmessage = function(e) {
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   145
                    var data_json = JSON.parse(e.data);
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   146
                    //console.log('1', data_json);
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   147
                    if(context.logging){
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   148
                        log('Got message: ' + e.data);
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('Annotation bien reçue.', true);
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   151
                    //console.log('2 message', $scope.annotPile.length);
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   152
                    if($scope.annotPile.length>0){
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   153
                        var c = $scope.annotPile.shift();
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   154
                        //console.log('3 message', c);
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   155
                        //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
   156
                        var ok = data_json.status==='OK';
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   157
                        var i;
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   158
                        if(c===false){
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   159
                            //showAlert('Annotation envoyée.', true);
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   160
                            $scope.sendBtnSuccess = ok;
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   161
                            $scope.sendBtnError = !ok;
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   162
                            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
   163
                        }
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   164
                        else{
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   165
                            c.sendSuccess = ok;
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   166
                            c.sendError = !ok;
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   167
                            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
   168
                        }
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   169
                        if(!$scope.$$phase) {
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   170
                            $scope.$apply();
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   171
                        }
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   172
                    }
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
            }
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   175
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   176
            $scope.sendAnnotation = function(label, code, c){
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   177
                if($scope.username==='' || typeof $scope.username==='undefined'){
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   178
                    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
   179
                    return;
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   180
                }
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   181
                if(label==='' || typeof label==='undefined'){
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   182
                    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
   183
                    return;
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
                // Send query
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   186
                if (sock) {
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   187
                    if(typeof code==='undefined' || code===''){
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   188
                        code = window.S(label).slugify().s;
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   189
                    }
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   190
                    var new_annot = {
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   191
                            category: {code: code, label: label},
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   192
                            user : $scope.username
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   193
                    };
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   194
                    sock.send(JSON.stringify(new_annot));
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   195
                    if(context.logging===true){
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   196
                        log('Sent: ' + JSON.stringify(new_annot));
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   197
                    }
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   198
                    if(typeof c==='undefined'){
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   199
                        $scope.annotPile.push(false);
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   200
                    }
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   201
                    else{
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   202
                        $scope.annotPile.push(c);
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   203
                    }
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   204
                } else {
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   205
                    showAlert('La socket ne fonctionne pas.', false);
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   206
                    if(context.logging===true){
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   207
                        log('Not connected.');
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   208
                    }
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   209
                }
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   210
            };
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   211
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   212
            // Interface management
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   213
            $scope.selectLevel = function(label, code, c){
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   214
                if(typeof c==='undefined'){
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   215
                    $scope.returnVisStyle = {visibility:'hidden'};
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   216
                    $scope.selectedlevel = false;
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   217
                    return;
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   218
                }
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   219
                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
   220
                    $scope.selectedlevel = c.subcategories;
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   221
                    $scope.returnVisStyle = {visibility:'show'};
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   222
                }
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   223
                else{
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   224
                    // Send query
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   225
                    //console.log('send ntm', c);
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   226
                    $scope.sendAnnotation(label, code, c);
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   227
                }
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
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   230
        });
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   231
d7c5bffdd2d8 rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff changeset
   232
})();