--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/annot-server/webapp/templates/annotviz.html Thu Jan 22 07:04:42 2015 +0100
@@ -0,0 +1,105 @@
+<html>
+<head>
+ <meta charset="UTF-8">
+ <title>Piano Roll {{event.label}}</title>
+ <link href="{{ config['STATIC_URL'] }}/css/annotviz.min.css" rel="stylesheet">
+</head>
+<body>
+ <h1>Piano Roll {{event.label}}</h1>
+ <noscript>You must enable JavaScript</noscript>
+ <div id="canvasContainer"></div>
+ <p>
+ <a href="#" onclick="stop(); return false;">stop intervals</a> -
+ <a href="#" onclick="start(); return false;">start intervals</a> -
+ temps écoulé : <span id="timeStarted"></span>
+ </p>
+ <pre id="log"></pre>
+ <script src="{{ config['STATIC_URL'] }}/js/libs-annotviz.min.js"></script>
+ <script src="{{ config['STATIC_URL'] }}/js/annotviz.min.js"></script>
+ <script>
+
+ var PIXI = require('pixi');
+ var annotCategories = [];
+
+ function colorToHex(input) {
+ if (input.substring(0, 1) === '#') {
+ return input;
+ }
+ else {
+ var m = input.match(/^rgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)$/i);
+ var r = m[1], g=[2], b=[3];
+ return "#" + ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1);
+ }
+ }
+
+ function getAnnotCategories(ecode, serverUrl) {
+
+ var url = serverUrl+"/p/api/v1/event/" + ecode;
+
+ var jsonLoader = new PIXI.JsonLoader(url, true);
+ jsonLoader.on('loaded', function(res) {
+ var data = res.target.json;
+
+ while(annotCategories.length > 0) {
+ annotCategories.pop();
+ }
+
+ data.sessions.forEach(function(session) {
+ var annotCat = {
+ ts: session.start_ts === null ? new Date(0) : Date.parse(session.start_ts),
+ colors: {}
+ }
+ var categoriesJson = session.categories_json;
+ annotCat.order = categoriesJson.order;
+ categoriesJson.categories.forEach(function(cat) {
+ annotCat.colors[cat.code] = colorToHex(cat.color);
+ });
+ annotCat.defaultColor = categoriesJson.defaultColor || "#536991";
+ annotCategories.push(annotCat);
+ });
+ console.log(annotCategories);
+ });
+
+ jsonLoader.load();
+ }
+
+
+
+ var pianorollChannel = 'PIANOROLL';
+ var annotationChannel = 'ANNOT';
+ var eventCode = '{{event.code}}';
+ getAnnotCategories(eventCode, 'http://' + window.location.hostname + ':8080');
+ var wsUri = 'ws://' + window.location.hostname + ':8090/broadcast';
+
+ wsUriPianoroll = wsUri + '?channel=' + pianorollChannel + '&event_code=' + eventCode;
+ wsUriAnnotation = wsUri + '?channel=' + annotationChannel + '&event_code=' + eventCode;
+
+ var logger = new annotviz.ConsoleLogger(true);
+
+ var stageView = new annotviz.StageView({
+ logger: logger
+ });
+
+
+ var annotsvizview = new annotviz.AnnotsVizView({
+ logger: logger,
+ stageView: stageView,
+ wsPianoroll: new annotviz.WsWrapper(wsUriPianoroll, logger),
+ wsAnnot: new annotviz.WsWrapper(wsUriAnnotation, logger),
+ });
+
+
+ function stop() {
+ stageView.stop();
+ }
+ function start() {
+ stageView.start();
+ }
+
+ window.onload = function() {
+ stageView.init();
+ start();
+ }
+</script>
+</body>
+</html>