author | ymh <ymh.work@gmail.com> |
Thu, 22 Jan 2015 03:23:08 +0100 | |
changeset 107 | 6d41506f9482 |
parent 84 | d7c5bffdd2d8 |
child 109 | 8546e2181a73 |
permissions | -rw-r--r-- |
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 |
|
107 | 38 |
function parseColor(input) { |
39 |
var m = input.match(/^rgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)$/i); |
|
40 |
if( m) return [m[1],m[2],m[3]]; |
|
41 |
else throw new Error("Colour "+input+" could not be parsed."); |
|
42 |
} |
|
43 |
||
44 |
function rgbToHex(r, g, b) { |
|
45 |
return "#" + ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1); |
|
46 |
} |
|
47 |
||
84
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
48 |
$scope.data = dataModel.data; |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
49 |
|
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
50 |
var process_categories = function(data) { |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
51 |
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
|
52 |
var cats = []; |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
53 |
var nbCat = data.categories.length; |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
54 |
for(var i=0;i<nbCat;i++){ |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
55 |
cats.push(data.categories[i].label); |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
56 |
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
|
57 |
var nbSubCat = data.categories[i].subcategories.length; |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
58 |
for(var j=0;j<nbSubCat;j++){ |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
59 |
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
|
60 |
} |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
61 |
} |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
62 |
} |
107 | 63 |
if(typeof data.autocomplete === 'undefined' || data.autocomplete.length === 0) { |
64 |
$scope.allCatLabels = cats; |
|
65 |
} |
|
66 |
else { |
|
67 |
$scope.allCatLabels = data.autocomplete; |
|
68 |
} |
|
84
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 |
}; |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
71 |
|
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
72 |
if (typeof dataModel.data.$promise !== 'undefined') { |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
73 |
dataModel.data.$promise.then(process_categories); |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
74 |
} |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
75 |
else { |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
76 |
process_categories(dataModel.data); |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
77 |
} |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
78 |
|
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
79 |
$scope.selectedlevel = false; |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
80 |
|
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
81 |
$scope.currentInterval = false; |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
82 |
$scope.showSuccessAlert = false; |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
83 |
$scope.showAlertDiv = false; |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
84 |
function showAlert(m, success){ |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
85 |
$scope.alertMessage = m; |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
86 |
$scope.showSuccessAlert = success; |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
87 |
$scope.showAlertDiv = true; |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
88 |
if(!$scope.$$phase) { |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
89 |
$scope.$apply(); |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
90 |
} |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
91 |
if($scope.currentInterval){ |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
92 |
$interval.cancel($scope.currentInterval); |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
93 |
$scope.currentInterval = false; |
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 |
$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
|
96 |
} |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
97 |
$scope.annotPile = []; |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
98 |
|
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 |
|
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
101 |
// Socket management |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
102 |
var sock = null; |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
103 |
var ellog = null; |
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 |
ellog = document.getElementById('log'); |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
106 |
function log(m) { |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
107 |
if(ellog){ |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
108 |
ellog.innerHTML += m + '\n'; |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
109 |
ellog.scrollTop = ellog.scrollHeight; |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
110 |
} |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
111 |
} |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
112 |
|
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
113 |
var wsuri; |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
114 |
if (window.location.protocol === 'file:') { |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
115 |
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
|
116 |
} else { |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
117 |
wsuri = 'ws://' + window.location.hostname + ':8090/annot'; |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
118 |
} |
107 | 119 |
|
84
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
120 |
var eventCode = context.event_code; |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
121 |
if(typeof eventCode==='undefined' || eventCode===''){ |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
122 |
eventCode = $location.search().event; |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
123 |
if(typeof eventCode==='undefined' || eventCode===''){ |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
124 |
eventCode = getURLParameter('event'); |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
125 |
if(typeof eventCode==='undefined' || eventCode===''){ |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
126 |
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
|
127 |
return; |
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 |
} |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
130 |
} |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
131 |
wsuri = wsuri + '?event=' + eventCode; |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
132 |
|
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
133 |
if ('WebSocket' in window) { |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
134 |
sock = new WebSocket(wsuri); |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
135 |
} else if ('MozWebSocket' in window) { |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
136 |
sock = new window.MozWebSocket(wsuri); |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
137 |
} else { |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
138 |
if(context.logging===true){ |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
139 |
log('Browser does not support WebSocket!'); |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
140 |
} |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
141 |
window.location = 'http://autobahn.ws/unsupportedbrowser'; |
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 |
if (sock) { |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
145 |
sock.onopen = function() { |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
146 |
if(context.logging===true){ |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
147 |
log('Connected to ' + wsuri); |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
148 |
} |
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 |
|
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
151 |
sock.onclose = function(e) { |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
152 |
if(context.logging===true){ |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
153 |
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
|
154 |
} |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
155 |
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
|
156 |
sock = null; |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
157 |
}; |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
158 |
|
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
159 |
sock.onmessage = function(e) { |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
160 |
var data_json = JSON.parse(e.data); |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
161 |
//console.log('1', data_json); |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
162 |
if(context.logging){ |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
163 |
log('Got message: ' + e.data); |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
164 |
} |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
165 |
//showAlert('Annotation bien reçue.', true); |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
166 |
//console.log('2 message', $scope.annotPile.length); |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
167 |
if($scope.annotPile.length>0){ |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
168 |
var c = $scope.annotPile.shift(); |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
169 |
//console.log('3 message', c); |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
170 |
//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
|
171 |
var ok = data_json.status==='OK'; |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
172 |
var i; |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
173 |
if(c===false){ |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
174 |
//showAlert('Annotation envoyée.', true); |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
175 |
$scope.sendBtnSuccess = ok; |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
176 |
$scope.sendBtnError = !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); $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
|
178 |
} |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
179 |
else{ |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
180 |
c.sendSuccess = ok; |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
181 |
c.sendError = !ok; |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
182 |
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
|
183 |
} |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
184 |
if(!$scope.$$phase) { |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
185 |
$scope.$apply(); |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
186 |
} |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
187 |
} |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
188 |
}; |
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 |
|
107 | 191 |
$scope.sendFreeAnnotation = function(label, text) { |
192 |
$scope.sendAnnotation(label, window.S(label).slugify().s, label, text, $scope.data.defaultColor || "#536991"); |
|
193 |
}; |
|
194 |
||
195 |
$scope.sendAnnotation = function(label, code, freeLabel, freetext, color, c){ |
|
196 |
||
84
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
197 |
if($scope.username==='' || typeof $scope.username==='undefined'){ |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
198 |
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
|
199 |
return; |
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 |
if(label==='' || typeof label==='undefined'){ |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
202 |
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
|
203 |
return; |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
204 |
} |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
205 |
// Send query |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
206 |
if (sock) { |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
207 |
if(typeof code==='undefined' || code===''){ |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
208 |
code = window.S(label).slugify().s; |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
209 |
} |
107 | 210 |
|
211 |
var hexc; |
|
212 |
if(color.substring(0, 4) === 'rgb(') { |
|
213 |
var rgbc = parseColor(color); |
|
214 |
hexc = rgbToHex(rgbc[0],rgbc[1], rgbc[2]); |
|
215 |
} |
|
216 |
else { |
|
217 |
hexc = color; |
|
218 |
} |
|
219 |
||
220 |
||
84
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
221 |
var new_annot = { |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
222 |
category: {code: code, label: label}, |
107 | 223 |
text: freetext, |
224 |
color: hexc, |
|
84
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
225 |
user : $scope.username |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
226 |
}; |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
227 |
sock.send(JSON.stringify(new_annot)); |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
228 |
if(context.logging===true){ |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
229 |
log('Sent: ' + JSON.stringify(new_annot)); |
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 |
if(typeof c==='undefined'){ |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
232 |
$scope.annotPile.push(false); |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
233 |
} |
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 |
$scope.annotPile.push(c); |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
236 |
} |
107 | 237 |
$scope.catText = ""; |
238 |
$scope.catLabel = ""; |
|
84
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
239 |
} else { |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
240 |
showAlert('La socket ne fonctionne pas.', false); |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
241 |
if(context.logging===true){ |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
242 |
log('Not connected.'); |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
243 |
} |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
244 |
} |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
245 |
}; |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
246 |
|
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
247 |
// Interface management |
107 | 248 |
$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
|
249 |
if(typeof c==='undefined'){ |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
250 |
$scope.returnVisStyle = {visibility:'hidden'}; |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
251 |
$scope.selectedlevel = false; |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
252 |
return; |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
253 |
} |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
254 |
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
|
255 |
$scope.selectedlevel = c.subcategories; |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
256 |
$scope.returnVisStyle = {visibility:'show'}; |
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 |
else{ |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
259 |
// Send query |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
260 |
//console.log('send ntm', c); |
107 | 261 |
$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
|
262 |
} |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
263 |
}; |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
264 |
|
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
265 |
}); |
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
266 |
|
d7c5bffdd2d8
rework on pianoroll: extract in own app + "browserify"
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
267 |
})(); |