annot-server/webapp/templates/annotviz.html
author ymh <ymh.work@gmail.com>
Thu, 22 Jan 2015 07:04:42 +0100
changeset 108 082b64a5c699
child 110 e4f0c105090d
permissions -rw-r--r--
add vizualizations to server
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
108
082b64a5c699 add vizualizations to server
ymh <ymh.work@gmail.com>
parents:
diff changeset
     1
<html>
082b64a5c699 add vizualizations to server
ymh <ymh.work@gmail.com>
parents:
diff changeset
     2
<head>
082b64a5c699 add vizualizations to server
ymh <ymh.work@gmail.com>
parents:
diff changeset
     3
    <meta charset="UTF-8">
082b64a5c699 add vizualizations to server
ymh <ymh.work@gmail.com>
parents:
diff changeset
     4
    <title>Piano Roll {{event.label}}</title>
082b64a5c699 add vizualizations to server
ymh <ymh.work@gmail.com>
parents:
diff changeset
     5
    <link href="{{ config['STATIC_URL'] }}/css/annotviz.min.css" rel="stylesheet">
082b64a5c699 add vizualizations to server
ymh <ymh.work@gmail.com>
parents:
diff changeset
     6
</head>
082b64a5c699 add vizualizations to server
ymh <ymh.work@gmail.com>
parents:
diff changeset
     7
<body>
082b64a5c699 add vizualizations to server
ymh <ymh.work@gmail.com>
parents:
diff changeset
     8
    <h1>Piano Roll {{event.label}}</h1>
082b64a5c699 add vizualizations to server
ymh <ymh.work@gmail.com>
parents:
diff changeset
     9
    <noscript>You must enable JavaScript</noscript>
082b64a5c699 add vizualizations to server
ymh <ymh.work@gmail.com>
parents:
diff changeset
    10
    <div id="canvasContainer"></div>
082b64a5c699 add vizualizations to server
ymh <ymh.work@gmail.com>
parents:
diff changeset
    11
    <p>
082b64a5c699 add vizualizations to server
ymh <ymh.work@gmail.com>
parents:
diff changeset
    12
        <a href="#" onclick="stop(); return false;">stop intervals</a> -
082b64a5c699 add vizualizations to server
ymh <ymh.work@gmail.com>
parents:
diff changeset
    13
        <a href="#" onclick="start(); return false;">start intervals</a> -
082b64a5c699 add vizualizations to server
ymh <ymh.work@gmail.com>
parents:
diff changeset
    14
        temps écoulé : <span id="timeStarted"></span>
082b64a5c699 add vizualizations to server
ymh <ymh.work@gmail.com>
parents:
diff changeset
    15
    </p>
082b64a5c699 add vizualizations to server
ymh <ymh.work@gmail.com>
parents:
diff changeset
    16
    <pre id="log"></pre>
082b64a5c699 add vizualizations to server
ymh <ymh.work@gmail.com>
parents:
diff changeset
    17
    <script src="{{ config['STATIC_URL'] }}/js/libs-annotviz.min.js"></script>
082b64a5c699 add vizualizations to server
ymh <ymh.work@gmail.com>
parents:
diff changeset
    18
    <script src="{{ config['STATIC_URL'] }}/js/annotviz.min.js"></script>
082b64a5c699 add vizualizations to server
ymh <ymh.work@gmail.com>
parents:
diff changeset
    19
    <script>
082b64a5c699 add vizualizations to server
ymh <ymh.work@gmail.com>
parents:
diff changeset
    20
082b64a5c699 add vizualizations to server
ymh <ymh.work@gmail.com>
parents:
diff changeset
    21
    var PIXI = require('pixi');
082b64a5c699 add vizualizations to server
ymh <ymh.work@gmail.com>
parents:
diff changeset
    22
    var annotCategories = [];
082b64a5c699 add vizualizations to server
ymh <ymh.work@gmail.com>
parents:
diff changeset
    23
082b64a5c699 add vizualizations to server
ymh <ymh.work@gmail.com>
parents:
diff changeset
    24
    function colorToHex(input) {
082b64a5c699 add vizualizations to server
ymh <ymh.work@gmail.com>
parents:
diff changeset
    25
        if (input.substring(0, 1) === '#') {
082b64a5c699 add vizualizations to server
ymh <ymh.work@gmail.com>
parents:
diff changeset
    26
            return input;
082b64a5c699 add vizualizations to server
ymh <ymh.work@gmail.com>
parents:
diff changeset
    27
        }
082b64a5c699 add vizualizations to server
ymh <ymh.work@gmail.com>
parents:
diff changeset
    28
        else {
082b64a5c699 add vizualizations to server
ymh <ymh.work@gmail.com>
parents:
diff changeset
    29
            var m = input.match(/^rgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)$/i);
082b64a5c699 add vizualizations to server
ymh <ymh.work@gmail.com>
parents:
diff changeset
    30
            var r = m[1], g=[2], b=[3];
082b64a5c699 add vizualizations to server
ymh <ymh.work@gmail.com>
parents:
diff changeset
    31
            return "#" + ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1);
082b64a5c699 add vizualizations to server
ymh <ymh.work@gmail.com>
parents:
diff changeset
    32
        }
082b64a5c699 add vizualizations to server
ymh <ymh.work@gmail.com>
parents:
diff changeset
    33
    }
082b64a5c699 add vizualizations to server
ymh <ymh.work@gmail.com>
parents:
diff changeset
    34
082b64a5c699 add vizualizations to server
ymh <ymh.work@gmail.com>
parents:
diff changeset
    35
    function getAnnotCategories(ecode, serverUrl) {
082b64a5c699 add vizualizations to server
ymh <ymh.work@gmail.com>
parents:
diff changeset
    36
082b64a5c699 add vizualizations to server
ymh <ymh.work@gmail.com>
parents:
diff changeset
    37
        var url = serverUrl+"/p/api/v1/event/" + ecode;
082b64a5c699 add vizualizations to server
ymh <ymh.work@gmail.com>
parents:
diff changeset
    38
082b64a5c699 add vizualizations to server
ymh <ymh.work@gmail.com>
parents:
diff changeset
    39
        var jsonLoader = new PIXI.JsonLoader(url, true);
082b64a5c699 add vizualizations to server
ymh <ymh.work@gmail.com>
parents:
diff changeset
    40
        jsonLoader.on('loaded', function(res) {
082b64a5c699 add vizualizations to server
ymh <ymh.work@gmail.com>
parents:
diff changeset
    41
            var data = res.target.json;
082b64a5c699 add vizualizations to server
ymh <ymh.work@gmail.com>
parents:
diff changeset
    42
082b64a5c699 add vizualizations to server
ymh <ymh.work@gmail.com>
parents:
diff changeset
    43
            while(annotCategories.length > 0) {
082b64a5c699 add vizualizations to server
ymh <ymh.work@gmail.com>
parents:
diff changeset
    44
                annotCategories.pop();
082b64a5c699 add vizualizations to server
ymh <ymh.work@gmail.com>
parents:
diff changeset
    45
            }
082b64a5c699 add vizualizations to server
ymh <ymh.work@gmail.com>
parents:
diff changeset
    46
082b64a5c699 add vizualizations to server
ymh <ymh.work@gmail.com>
parents:
diff changeset
    47
            data.sessions.forEach(function(session) {
082b64a5c699 add vizualizations to server
ymh <ymh.work@gmail.com>
parents:
diff changeset
    48
                var annotCat = {
082b64a5c699 add vizualizations to server
ymh <ymh.work@gmail.com>
parents:
diff changeset
    49
                    ts: session.start_ts === null ? new Date(0) : Date.parse(session.start_ts),
082b64a5c699 add vizualizations to server
ymh <ymh.work@gmail.com>
parents:
diff changeset
    50
                    colors: {}
082b64a5c699 add vizualizations to server
ymh <ymh.work@gmail.com>
parents:
diff changeset
    51
                }
082b64a5c699 add vizualizations to server
ymh <ymh.work@gmail.com>
parents:
diff changeset
    52
                var categoriesJson = session.categories_json;
082b64a5c699 add vizualizations to server
ymh <ymh.work@gmail.com>
parents:
diff changeset
    53
                annotCat.order = categoriesJson.order;
082b64a5c699 add vizualizations to server
ymh <ymh.work@gmail.com>
parents:
diff changeset
    54
                categoriesJson.categories.forEach(function(cat) {
082b64a5c699 add vizualizations to server
ymh <ymh.work@gmail.com>
parents:
diff changeset
    55
                    annotCat.colors[cat.code] = colorToHex(cat.color);
082b64a5c699 add vizualizations to server
ymh <ymh.work@gmail.com>
parents:
diff changeset
    56
                });
082b64a5c699 add vizualizations to server
ymh <ymh.work@gmail.com>
parents:
diff changeset
    57
                annotCat.defaultColor = categoriesJson.defaultColor || "#536991";
082b64a5c699 add vizualizations to server
ymh <ymh.work@gmail.com>
parents:
diff changeset
    58
                annotCategories.push(annotCat);
082b64a5c699 add vizualizations to server
ymh <ymh.work@gmail.com>
parents:
diff changeset
    59
            });
082b64a5c699 add vizualizations to server
ymh <ymh.work@gmail.com>
parents:
diff changeset
    60
            console.log(annotCategories);
082b64a5c699 add vizualizations to server
ymh <ymh.work@gmail.com>
parents:
diff changeset
    61
        });
082b64a5c699 add vizualizations to server
ymh <ymh.work@gmail.com>
parents:
diff changeset
    62
082b64a5c699 add vizualizations to server
ymh <ymh.work@gmail.com>
parents:
diff changeset
    63
        jsonLoader.load();
082b64a5c699 add vizualizations to server
ymh <ymh.work@gmail.com>
parents:
diff changeset
    64
    }
082b64a5c699 add vizualizations to server
ymh <ymh.work@gmail.com>
parents:
diff changeset
    65
082b64a5c699 add vizualizations to server
ymh <ymh.work@gmail.com>
parents:
diff changeset
    66
082b64a5c699 add vizualizations to server
ymh <ymh.work@gmail.com>
parents:
diff changeset
    67
082b64a5c699 add vizualizations to server
ymh <ymh.work@gmail.com>
parents:
diff changeset
    68
    var pianorollChannel  = 'PIANOROLL';
082b64a5c699 add vizualizations to server
ymh <ymh.work@gmail.com>
parents:
diff changeset
    69
    var annotationChannel = 'ANNOT';
082b64a5c699 add vizualizations to server
ymh <ymh.work@gmail.com>
parents:
diff changeset
    70
    var eventCode = '{{event.code}}';
082b64a5c699 add vizualizations to server
ymh <ymh.work@gmail.com>
parents:
diff changeset
    71
    getAnnotCategories(eventCode, 'http://' + window.location.hostname + ':8080');
082b64a5c699 add vizualizations to server
ymh <ymh.work@gmail.com>
parents:
diff changeset
    72
    var wsUri = 'ws://' + window.location.hostname + ':8090/broadcast';
082b64a5c699 add vizualizations to server
ymh <ymh.work@gmail.com>
parents:
diff changeset
    73
082b64a5c699 add vizualizations to server
ymh <ymh.work@gmail.com>
parents:
diff changeset
    74
    wsUriPianoroll = wsUri + '?channel=' + pianorollChannel + '&event_code=' + eventCode;
082b64a5c699 add vizualizations to server
ymh <ymh.work@gmail.com>
parents:
diff changeset
    75
    wsUriAnnotation = wsUri + '?channel=' + annotationChannel + '&event_code=' + eventCode;
082b64a5c699 add vizualizations to server
ymh <ymh.work@gmail.com>
parents:
diff changeset
    76
082b64a5c699 add vizualizations to server
ymh <ymh.work@gmail.com>
parents:
diff changeset
    77
    var logger = new annotviz.ConsoleLogger(true);
082b64a5c699 add vizualizations to server
ymh <ymh.work@gmail.com>
parents:
diff changeset
    78
082b64a5c699 add vizualizations to server
ymh <ymh.work@gmail.com>
parents:
diff changeset
    79
    var stageView = new annotviz.StageView({
082b64a5c699 add vizualizations to server
ymh <ymh.work@gmail.com>
parents:
diff changeset
    80
        logger: logger
082b64a5c699 add vizualizations to server
ymh <ymh.work@gmail.com>
parents:
diff changeset
    81
    });
082b64a5c699 add vizualizations to server
ymh <ymh.work@gmail.com>
parents:
diff changeset
    82
082b64a5c699 add vizualizations to server
ymh <ymh.work@gmail.com>
parents:
diff changeset
    83
082b64a5c699 add vizualizations to server
ymh <ymh.work@gmail.com>
parents:
diff changeset
    84
    var annotsvizview = new annotviz.AnnotsVizView({
082b64a5c699 add vizualizations to server
ymh <ymh.work@gmail.com>
parents:
diff changeset
    85
        logger: logger,
082b64a5c699 add vizualizations to server
ymh <ymh.work@gmail.com>
parents:
diff changeset
    86
        stageView: stageView,
082b64a5c699 add vizualizations to server
ymh <ymh.work@gmail.com>
parents:
diff changeset
    87
        wsPianoroll: new annotviz.WsWrapper(wsUriPianoroll, logger),
082b64a5c699 add vizualizations to server
ymh <ymh.work@gmail.com>
parents:
diff changeset
    88
        wsAnnot: new annotviz.WsWrapper(wsUriAnnotation, logger),
082b64a5c699 add vizualizations to server
ymh <ymh.work@gmail.com>
parents:
diff changeset
    89
    });
082b64a5c699 add vizualizations to server
ymh <ymh.work@gmail.com>
parents:
diff changeset
    90
082b64a5c699 add vizualizations to server
ymh <ymh.work@gmail.com>
parents:
diff changeset
    91
082b64a5c699 add vizualizations to server
ymh <ymh.work@gmail.com>
parents:
diff changeset
    92
    function stop() {
082b64a5c699 add vizualizations to server
ymh <ymh.work@gmail.com>
parents:
diff changeset
    93
        stageView.stop();
082b64a5c699 add vizualizations to server
ymh <ymh.work@gmail.com>
parents:
diff changeset
    94
    }
082b64a5c699 add vizualizations to server
ymh <ymh.work@gmail.com>
parents:
diff changeset
    95
    function start() {
082b64a5c699 add vizualizations to server
ymh <ymh.work@gmail.com>
parents:
diff changeset
    96
        stageView.start();
082b64a5c699 add vizualizations to server
ymh <ymh.work@gmail.com>
parents:
diff changeset
    97
    }
082b64a5c699 add vizualizations to server
ymh <ymh.work@gmail.com>
parents:
diff changeset
    98
082b64a5c699 add vizualizations to server
ymh <ymh.work@gmail.com>
parents:
diff changeset
    99
    window.onload = function() {
082b64a5c699 add vizualizations to server
ymh <ymh.work@gmail.com>
parents:
diff changeset
   100
        stageView.init();
082b64a5c699 add vizualizations to server
ymh <ymh.work@gmail.com>
parents:
diff changeset
   101
        start();
082b64a5c699 add vizualizations to server
ymh <ymh.work@gmail.com>
parents:
diff changeset
   102
    }
082b64a5c699 add vizualizations to server
ymh <ymh.work@gmail.com>
parents:
diff changeset
   103
</script>
082b64a5c699 add vizualizations to server
ymh <ymh.work@gmail.com>
parents:
diff changeset
   104
</body>
082b64a5c699 add vizualizations to server
ymh <ymh.work@gmail.com>
parents:
diff changeset
   105
</html>