js/startscreen.js
author veltr
Fri, 22 Mar 2013 17:54:46 +0100
changeset 13 3ba18138e37e
parent 12 81a8bb1d872a
child 14 3aa6b9963de0
permissions -rw-r--r--
Removed Tagcloud
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
11
9833f3e24105 Added video player
veltr
parents: 7
diff changeset
     1
var topicPoubelle = -13;
5
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
     2
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
     3
function showData() {
1
1f574d93e195 First tests
veltr
parents:
diff changeset
     4
    
5
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
     5
    var ordertag = 0;
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
     6
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
     7
    function secsToString(seconds) {
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
     8
        var hours = Math.floor(seconds/3600),
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
     9
            minutes = Math.floor(seconds/60) % 60,
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
    10
            secs = Math.floor(seconds % 60);
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
    11
        function pad(n) {
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
    12
            var r = n.toString();
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
    13
            while (r.length < 2) {
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
    14
                r = "0" + r;
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
    15
            }
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
    16
            return r;
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
    17
        }
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
    18
        return (hours ? (hours + ":") : "") + pad(minutes) + ":" + pad(secs);
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
    19
    }
1
1f574d93e195 First tests
veltr
parents:
diff changeset
    20
    
5
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
    21
    $(".duration").text(secsToString(data.duration));
13
3ba18138e37e Removed Tagcloud
veltr
parents: 12
diff changeset
    22
  
5
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
    23
    var nmmso = data.segments.length;
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
    24
    
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
    25
    data.topics.forEach(function(topic) {
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
    26
        topic.score = 0;
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
    27
        topic.weights = [];
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
    28
        for (var i = 0; i < nmmso; i++) {
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
    29
            topic.weights.push(0);
2
0d947d167ec5 More tests
veltr
parents: 1
diff changeset
    30
        }
5
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
    31
    });
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
    32
    
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
    33
    data.segments.forEach(function(mmso, i) {
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
    34
        mmso.topics.forEach(function(t) {
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
    35
            data.topics[t.topic].weights[i] = t.weight;
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
    36
            data.topics[t.topic].score += t.weight;
2
0d947d167ec5 More tests
veltr
parents: 1
diff changeset
    37
        });
5
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
    38
        mmso.tweet_rate = mmso.tweet_count / mmso.duration; 
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
    39
    });
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
    40
    
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
    41
    var sortedTopics = data.topics.filter(function(t) {
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
    42
        return t.index !== topicPoubelle;
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
    43
    }).sort(function(a,b) {
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
    44
        return b.score - a.score;
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
    45
    });
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
    46
    
13
3ba18138e37e Removed Tagcloud
veltr
parents: 12
diff changeset
    47
    var selectedWords = [], searchString = "", topicscache = {};
3ba18138e37e Removed Tagcloud
veltr
parents: 12
diff changeset
    48
    
3ba18138e37e Removed Tagcloud
veltr
parents: 12
diff changeset
    49
    function showTopicsForWord(word) {
3ba18138e37e Removed Tagcloud
veltr
parents: 12
diff changeset
    50
    	var topicweights = topicscache[word];
3ba18138e37e Removed Tagcloud
veltr
parents: 12
diff changeset
    51
    	var topiclist = data.topics.filter(function(topic) {
3ba18138e37e Removed Tagcloud
veltr
parents: 12
diff changeset
    52
            return topicweights[topic.index] > .01 && topic.index !== topicPoubelle;
3ba18138e37e Removed Tagcloud
veltr
parents: 12
diff changeset
    53
        });
3ba18138e37e Removed Tagcloud
veltr
parents: 12
diff changeset
    54
        topiclist.sort(function(a,b) {
3ba18138e37e Removed Tagcloud
veltr
parents: 12
diff changeset
    55
            return topicweights[b.index] - topicweights[b.index]
3ba18138e37e Removed Tagcloud
veltr
parents: 12
diff changeset
    56
        });
3ba18138e37e Removed Tagcloud
veltr
parents: 12
diff changeset
    57
        showTopics(topiclist);
3ba18138e37e Removed Tagcloud
veltr
parents: 12
diff changeset
    58
    }
5
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
    59
    
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
    60
    function wordFilter() {
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
    61
        searchString = $(".keyword-search").val() || "",
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
    62
        selectedWords = [];
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
    63
        if (searchString.length) {
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
    64
            selectedWords.push(searchString);
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
    65
        }
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
    66
        if (selectedWords.length) {
13
3ba18138e37e Removed Tagcloud
veltr
parents: 12
diff changeset
    67
        	var k = selectedWords.join(",");
3ba18138e37e Removed Tagcloud
veltr
parents: 12
diff changeset
    68
        	if (typeof topicscache[k] === "undefined") {
3ba18138e37e Removed Tagcloud
veltr
parents: 12
diff changeset
    69
        		TopicsBean.topicsForKeywords(k,{
3ba18138e37e Removed Tagcloud
veltr
parents: 12
diff changeset
    70
	                callback: function(topicweights) {
3ba18138e37e Removed Tagcloud
veltr
parents: 12
diff changeset
    71
	                    topicscache[k] = topicweights;
3ba18138e37e Removed Tagcloud
veltr
parents: 12
diff changeset
    72
	                    showTopicsForWord(k);
3ba18138e37e Removed Tagcloud
veltr
parents: 12
diff changeset
    73
	                }
3ba18138e37e Removed Tagcloud
veltr
parents: 12
diff changeset
    74
	            });
3ba18138e37e Removed Tagcloud
veltr
parents: 12
diff changeset
    75
        	} else {
3ba18138e37e Removed Tagcloud
veltr
parents: 12
diff changeset
    76
        		showTopicsForWord(k);
3ba18138e37e Removed Tagcloud
veltr
parents: 12
diff changeset
    77
        	}
3ba18138e37e Removed Tagcloud
veltr
parents: 12
diff changeset
    78
            
5
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
    79
        } else {
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
    80
            showTopics(sortedTopics);
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
    81
        }
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
    82
    }
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
    83
    
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
    84
    function showTopics(topiclist) {
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
    85
        var topicHtmls = ["", "", ""];
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
    86
        if (searchString.length) {
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
    87
            var searchStringRx = new RegExp('(' + searchString.replace(/(\W)/g,'\\$1') + ')', "gim");
2
0d947d167ec5 More tests
veltr
parents: 1
diff changeset
    88
        }
5
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
    89
        var replaceRx = new RegExp('(' + selectedWords.map(function(w) {
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
    90
            return w.replace(/(\W)/g,'\\$1')
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
    91
        }).join("|") + ')', "gim");
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
    92
        topiclist.forEach(function(topic,i) {
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
    93
            var wordsToShow = topic.words.slice(0,8),
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
    94
                max = wordsToShow[0].weight,
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
    95
                min = Math.min(wordsToShow[wordsToShow.length - 1].weight, max - .01),
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
    96
                scale = 10 / (max - min);
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
    97
            var li = '<li class="shadow-block topic" data-topic-id="'
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
    98
                + topic.index
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
    99
                + '" data-timestamp="999999"><ul class="topic-words">'
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   100
                + wordsToShow.reduce(function(memwords, word) {
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   101
                    return memwords
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   102
                        + '<li style="font-size: '
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   103
                        + ( 10 + scale * (word.weight - min) )
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   104
                        + 'px;">'
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   105
                        + ( selectedWords.length
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   106
                            ? word.word.replace(replaceRx,'<span class="highlight">$1</span>')
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   107
                            : word.word )
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   108
                        + '</li>';
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   109
                },"")
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   110
                + '</ul></li>';
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   111
            topicHtmls[i % 3] += li;
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   112
        });
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   113
        var tb = $(".topics-block");
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   114
        tb.html(topicHtmls.reduce(function(mem,html) {
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   115
           return mem + '<ul class="topic-column">' + html + '</ul>' 
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   116
        },""));
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   117
        tb.css("top",0);
1
1f574d93e195 First tests
veltr
parents:
diff changeset
   118
        
5
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   119
        showTopicViz();
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   120
    }
13
3ba18138e37e Removed Tagcloud
veltr
parents: 12
diff changeset
   121
    
3ba18138e37e Removed Tagcloud
veltr
parents: 12
diff changeset
   122
    var allwords = [];
5
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   123
    
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   124
    data.topics.forEach(function(topic) {
6
14dd1980b0b9 MMSO Caching
veltr
parents: 5
diff changeset
   125
        topic.words.forEach(function(topicword) {
14dd1980b0b9 MMSO Caching
veltr
parents: 5
diff changeset
   126
        	topicword.word.split(" ").filter(function(w) {
14dd1980b0b9 MMSO Caching
veltr
parents: 5
diff changeset
   127
        		return w.length > 2;
14dd1980b0b9 MMSO Caching
veltr
parents: 5
diff changeset
   128
        	}).forEach(function(w) {
13
3ba18138e37e Removed Tagcloud
veltr
parents: 12
diff changeset
   129
        		allwords.push(w);
6
14dd1980b0b9 MMSO Caching
veltr
parents: 5
diff changeset
   130
        	});
5
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   131
        });
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   132
    });
13
3ba18138e37e Removed Tagcloud
veltr
parents: 12
diff changeset
   133
        
6
14dd1980b0b9 MMSO Caching
veltr
parents: 5
diff changeset
   134
    data.topwords.forEach(function(v, k) {
14dd1980b0b9 MMSO Caching
veltr
parents: 5
diff changeset
   135
    	v.split(" ").filter(function(w) {
14dd1980b0b9 MMSO Caching
veltr
parents: 5
diff changeset
   136
    		return w.length > 2;
14dd1980b0b9 MMSO Caching
veltr
parents: 5
diff changeset
   137
    	}).forEach(function(w) {
13
3ba18138e37e Removed Tagcloud
veltr
parents: 12
diff changeset
   138
    		allwords.push(w);
6
14dd1980b0b9 MMSO Caching
veltr
parents: 5
diff changeset
   139
    	});
5
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   140
    });
13
3ba18138e37e Removed Tagcloud
veltr
parents: 12
diff changeset
   141
        
3ba18138e37e Removed Tagcloud
veltr
parents: 12
diff changeset
   142
    var allwords = _(allwords).uniq();
3ba18138e37e Removed Tagcloud
veltr
parents: 12
diff changeset
   143
        
5
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   144
    allwords.sort();
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   145
    
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   146
    $(".keyword-search").autocomplete({
7
a2d5b669f663 new data access method
veltr
parents: 6
diff changeset
   147
        source: allwords,
a2d5b669f663 new data access method
veltr
parents: 6
diff changeset
   148
        change: function() {
13
3ba18138e37e Removed Tagcloud
veltr
parents: 12
diff changeset
   149
        	window.setTimeout(wordFilter,0);
7
a2d5b669f663 new data access method
veltr
parents: 6
diff changeset
   150
        }
5
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   151
    }).on("keyup change paste", wordFilter);
6
14dd1980b0b9 MMSO Caching
veltr
parents: 5
diff changeset
   152
// */
5
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   153
    
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   154
    function showTopicViz() {
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   155
        var selectedBlocks = $(".topic.selected, .topic.hover"),
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   156
            sbl = selectedBlocks.length,
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   157
            topicBlocks = $(".topic");
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   158
        if (!sbl && topicBlocks.length < sortedTopics.length) {
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   159
            selectedBlocks = topicBlocks;
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   160
            sbl = selectedBlocks.length;
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   161
        }
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   162
        var topicsAndColors = [];
7
a2d5b669f663 new data access method
veltr
parents: 6
diff changeset
   163
        selectedBlocks.each(function() {
5
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   164
            var el = $(this),
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   165
                topicid = parseInt(el.attr("data-topic-id"));
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   166
            topicsAndColors.push({
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   167
                "$": el,
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   168
                timestamp: parseInt(el.attr("data-timestamp")),
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   169
                hovered: el.hasClass("hover"),
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   170
                id: topicid,
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   171
                topic: data.topics[topicid]
4
26a901771957 Black Background
veltr
parents: 3
diff changeset
   172
            });
5
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   173
        });
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   174
        topicsAndColors.sort(function(a,b) {
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   175
           return ( a.timestamp - b.timestamp ) || ( a.id - b.id );
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   176
        });
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   177
        topicBlocks.css("background","");
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   178
        topicsAndColors.forEach(function(topic, i) {
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   179
            topic.color = topic.hovered ? "#ffff00" : colorset[i % colorset.length];
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   180
            topic.$.css("background", topic.color);
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   181
        });
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   182
        
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   183
        for (var i = 0; i < nmmso; i++) {
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   184
            var opacity = 0,
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   185
                rgb = [0,0,0];
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   186
            topicsAndColors.forEach(function(topic) {
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   187
                var c = Raphael.getRGB(topic.color),
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   188
                    o = topic.topic.weights[i];
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   189
                rgb[0] += c.r * o;
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   190
                rgb[1] += c.g * o;
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   191
                rgb[2] += c.b * o;
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   192
                opacity += o;
4
26a901771957 Black Background
veltr
parents: 3
diff changeset
   193
            });
5
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   194
            if (opacity) {
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   195
                color = Raphael.rgb.apply(Raphael, rgb.map(function(c) {
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   196
                    return c/opacity;
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   197
                }));
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   198
                segmentrects[i].show();
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   199
                segmentrects[i].attr({
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   200
                    fill: color,
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   201
                    opacity: .5 + .5 * opacity
4
26a901771957 Black Background
veltr
parents: 3
diff changeset
   202
                });
5
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   203
            } else {
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   204
                segmentrects[i].hide();
1
1f574d93e195 First tests
veltr
parents:
diff changeset
   205
            }
2
0d947d167ec5 More tests
veltr
parents: 1
diff changeset
   206
        }
0d947d167ec5 More tests
veltr
parents: 1
diff changeset
   207
        
12
81a8bb1d872a ipad bugfixes
veltr
parents: 11
diff changeset
   208
        var hash = "#visibletopics="
7
a2d5b669f663 new data access method
veltr
parents: 6
diff changeset
   209
        	+ Array.prototype.join.call($(".topic:visible").map(function(){return $(this).attr("data-topic-id")}))
a2d5b669f663 new data access method
veltr
parents: 6
diff changeset
   210
        	+ "&selectedtopics="
a2d5b669f663 new data access method
veltr
parents: 6
diff changeset
   211
        	+ Array.prototype.slice.call(topicsAndColors.map(function(t){return t.id}))
a2d5b669f663 new data access method
veltr
parents: 6
diff changeset
   212
        	+ "&keywords="
a2d5b669f663 new data access method
veltr
parents: 6
diff changeset
   213
        	+ selectedWords.map(function(w) {
a2d5b669f663 new data access method
veltr
parents: 6
diff changeset
   214
        		return encodeURIComponent(w);
a2d5b669f663 new data access method
veltr
parents: 6
diff changeset
   215
        	}).join(",");
a2d5b669f663 new data access method
veltr
parents: 6
diff changeset
   216
        	
12
81a8bb1d872a ipad bugfixes
veltr
parents: 11
diff changeset
   217
    	document.querySelector(".play-button").hash = hash;
7
a2d5b669f663 new data access method
veltr
parents: 6
diff changeset
   218
        
5
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   219
    }
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   220
    
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   221
    var jqsvg = $(".start-svg");
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   222
        paper = new Raphael(jqsvg[0]),
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   223
        ph = jqsvg.height(),
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   224
        pw = jqsvg.width(),
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   225
        yscale = (ph - 20) / data.duration,
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   226
        mx = Math.max.apply(Math, data.minutes.map(function(s) { return s.count})),
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   227
        xscale = (pw - 50)/mx;
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   228
    
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   229
    var segmentrects = data.segments.map(function(mmso) {
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   230
        var rect = paper.rect(0, yscale * mmso.start, pw - 50, 1+yscale * mmso.duration);
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   231
        rect.attr({stroke: "none"});
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   232
        return rect;
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   233
    });
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   234
    
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   235
    var d = "M" + data.minutes.map(function(s) {
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   236
            var x = xscale * s.count;
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   237
            return x
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   238
                + ","
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   239
                + yscale * (s.from + 20)
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   240
                + "L"
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   241
                + x
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   242
                + ","
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   243
                + yscale * (s.from + 40);
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   244
        }).join("L");
2
0d947d167ec5 More tests
veltr
parents: 1
diff changeset
   245
        
5
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   246
    paper.path(d).attr({
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   247
        "stroke-width": 4,
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   248
        "stroke": "#000000",
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   249
        opacity: .5
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   250
    });
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   251
    paper.path(d).attr({
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   252
        "stroke-width": 1,
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   253
        "stroke": "#ffffff"
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   254
    });
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   255
    
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   256
    for (var i=0; i < data.duration; i += 1800) {
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   257
        var y = yscale * i;
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   258
        paper.path("M0," + y + "L" + pw + "," + y).attr({
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   259
            stroke: "#666"
4
26a901771957 Black Background
veltr
parents: 3
diff changeset
   260
        });
5
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   261
        paper.text(pw - 2, y + 6, secsToString(i)).attr({
4
26a901771957 Black Background
veltr
parents: 3
diff changeset
   262
            "text-anchor": "end",
26a901771957 Black Background
veltr
parents: 3
diff changeset
   263
            "fill": "#ffffff"
26a901771957 Black Background
veltr
parents: 3
diff changeset
   264
        });
5
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   265
    }
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   266
    paper.text(pw-2, ph-14, secsToString(data.duration)).attr({
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   267
        "text-anchor": "end",
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   268
        "fill": "#ffffff"
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   269
    });
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   270
    paper.path("M0," + (ph-20) + "L" + pw + "," + (ph-20)).attr({
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   271
        stroke: "#666"
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   272
    });
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   273
    paper.text(0, ph - 14,"tweets/min.").attr({
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   274
        "text-anchor": "start",
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   275
        "fill": "#ffffff"
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   276
    });
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   277
    
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   278
    for (var k = 2; k < 6; k++) {
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   279
        var x = xscale * k * 1000;
4
26a901771957 Black Background
veltr
parents: 3
diff changeset
   280
        paper.path("M" + x + ",0L" + x + "," + (ph - 10)).attr({
26a901771957 Black Background
veltr
parents: 3
diff changeset
   281
            stroke: "#666"
26a901771957 Black Background
veltr
parents: 3
diff changeset
   282
        });
26a901771957 Black Background
veltr
parents: 3
diff changeset
   283
        
5
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   284
        paper.text(x-2, ph - 14,k+"k").attr({
4
26a901771957 Black Background
veltr
parents: 3
diff changeset
   285
            "fill": "#ffffff"
2
0d947d167ec5 More tests
veltr
parents: 1
diff changeset
   286
        });
5
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   287
    }
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   288
    
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   289
    wordFilter();
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   290
    
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   291
    $(".topics-block").on("mouseenter", ".topic", function() {
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   292
        var el = $(this);
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   293
        el.addClass("hover");
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   294
        showTopicViz();
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   295
    }).on("mouseleave", ".topic", function() {
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   296
        $(this).removeClass("hover");
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   297
        showTopicViz();
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   298
    }).on("click", ".topic", function() {
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   299
        var el = $(this);
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   300
        $(this).toggleClass("selected");
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   301
        el.attr("data-timestamp", el.hasClass("selected") ? ++ordertag : 999999);
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   302
        showTopicViz();
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   303
    });
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   304
}
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   305
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   306
var data = { duration: 10200, topics: [] },
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   307
    colorset = ["#E41A1C", "#377EB8", "#4DAF4A", "#984EA3", "#FF7F00", "#A65628", "#F781BF"];
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   308
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   309
$(function() {
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   310
    
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   311
    $(".topics-block").draggable({axis:"y"});
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   312
    
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   313
    var loadedSteps = 0,
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   314
        stepsToFullyLoaded = 0;
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   315
    
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   316
    function checkIfLoaded() {
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   317
        loadedSteps++;
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   318
        if (loadedSteps >= stepsToFullyLoaded) {
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   319
            setTimeout(showData,0);
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   320
        }
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   321
    }
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   322
    
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   323
    function loadJson(url, propname, callback) {
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   324
        stepsToFullyLoaded++;
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   325
        $.getJSON(url, function(d) {
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   326
            if (callback) {
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   327
                var res = callback(d);
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   328
            } else {
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   329
                var res = d;
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   330
            }
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   331
            if (propname) {
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   332
                data[propname] = res;
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   333
            }
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   334
            checkIfLoaded();
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   335
        });
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   336
    }
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   337
    
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   338
    function solrUrl(table, params) {
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   339
        return "http://159.217.144.101:8050/sia-solr/" + table + "/select?" + $.param(params) + "&wt=json&json.wrf=?";
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   340
    }
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   341
    
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   342
    function loadFromTopicsBean(method, propname, args, callback) {
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   343
        stepsToFullyLoaded++;
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   344
        var arg = args || [],
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   345
            cb = function(d) {
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   346
                if (callback) {
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   347
                    var res = callback(d);
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   348
                } else {
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   349
                    var res = d;
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   350
                }
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   351
                if (propname) {
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   352
                    data[propname] = res;
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   353
                }
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   354
                checkIfLoaded();
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   355
            }
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   356
        arg.push({callback: cb});
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   357
        TopicsBean[method].apply(TopicsBean,arg);
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   358
    }
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   359
    
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   360
    loadJson("data/minutes.json", "minutes");
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   361
    
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   362
    loadJson(
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   363
        solrUrl("MMSO", {q: "*:*", fl: "topic*,MMSO_id,multimediaSegment", rows: 250 }),
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   364
        "segments",
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   365
        function(d) {
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   366
            return d.response.docs.map(function(mmso) {
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   367
                var tc = mmso.multimediaSegment.match(/\d+/g),
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   368
                    start = parseInt(tc[0]),
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   369
                    end = parseInt(tc[1]),
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   370
                    topics = [];
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   371
                for (var k in mmso) {
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   372
                    if (k.substr(0,5) === "topic" && mmso[k] > .01) {
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   373
                        topics.push({
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   374
                            topic: parseInt(k.substr(5)),
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   375
                            weight: mmso[k]
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   376
                        })
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   377
                    }
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   378
                }
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   379
                topics.sort(function(a,b) {
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   380
                    return b.weight - a.weight;
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   381
                });
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   382
/*                topics = topics.filter(function(t) {
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   383
                    return t.topic !== topicPoubelle
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   384
                }).slice(0,1);
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   385
                topics[0].weight = 1; */
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   386
                return {
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   387
                    id: mmso.MMSO_id,
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   388
                    start: start,
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   389
                    end: end,
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   390
                    duration: end - start,
6
14dd1980b0b9 MMSO Caching
veltr
parents: 5
diff changeset
   391
                    topics: topics
5
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   392
                }
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   393
            }).sort(function(a,b) {
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   394
                return a.start - b.start;
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   395
            });
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   396
        })
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   397
    
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   398
    dwr.engine.setTimeout(60000);
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   399
    TopicsBean._path = "http://159.217.144.101:8050/sia-solr/dwr";
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   400
    
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   401
    loadFromTopicsBean("getTopicsNumber",false,false,function(topic_count) {
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   402
        for (var i = 0; i < topic_count; i++) {
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   403
            data.topics.push(null);
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   404
        }
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   405
        data.topics.forEach(function(v, k) {
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   406
            loadFromTopicsBean("getTopicDistribution",false,[k, 50, false],function(topic) {
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   407
                var words = topic.match(/[^=,{]+=0.\d{0,8}/g);
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   408
                data.topics[k] = {
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   409
                    index: k,
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   410
                    words: words.map(function(w) {
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   411
                        var parts = w.split("=");
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   412
                        return {
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   413
                            word: parts[0].trim(),
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   414
                            weight: parseFloat(parts[1])
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   415
                        }
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   416
                    })
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   417
                }
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   418
            });
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   419
            
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   420
        });
2
0d947d167ec5 More tests
veltr
parents: 1
diff changeset
   421
        
1
1f574d93e195 First tests
veltr
parents:
diff changeset
   422
    });
5
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   423
    
6
14dd1980b0b9 MMSO Caching
veltr
parents: 5
diff changeset
   424
    loadFromTopicsBean("getTopWords","topwords",[200]);
5
490e4d1b6fee started work on "play" screen
veltr
parents: 4
diff changeset
   425
    
1
1f574d93e195 First tests
veltr
parents:
diff changeset
   426
});