js/startscreen-fake.js
author veltr
Mon, 04 Feb 2013 18:54:17 +0100
changeset 1 1f574d93e195
child 2 0d947d167ec5
permissions -rw-r--r--
First tests
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1
1f574d93e195 First tests
veltr
parents:
diff changeset
     1
$(function() {
1f574d93e195 First tests
veltr
parents:
diff changeset
     2
    
1f574d93e195 First tests
veltr
parents:
diff changeset
     3
    var colorset = ["#1f77b4 ", "#aec7e8 ", "#ff7f0e ", "#ffbb78 ", "#2ca02c ", "#98df8a ", "#d62728 ", "#ff9896 ", "#9467bd ", "#c5b0d5 ", "#8c564b ", "#c49c94 ", "#e377c2 ", "#f7b6d2 ", "#7f7f7f ", "#c7c7c7 ", "#bcbd22 ", "#dbdb8d ", "#17becf ", "#9edae5"]
1f574d93e195 First tests
veltr
parents:
diff changeset
     4
    
1f574d93e195 First tests
veltr
parents:
diff changeset
     5
    $.getJSON("fakedata/data.json", function(data) {
1f574d93e195 First tests
veltr
parents:
diff changeset
     6
        $(".topwords-block").html(data.top_words.reduce(function(mem, d) {
1f574d93e195 First tests
veltr
parents:
diff changeset
     7
            return mem + '<li>' + d.word + '</li>'
1f574d93e195 First tests
veltr
parents:
diff changeset
     8
        },""));
1f574d93e195 First tests
veltr
parents:
diff changeset
     9
        
1f574d93e195 First tests
veltr
parents:
diff changeset
    10
        var nmmso = data.segments.length;
1f574d93e195 First tests
veltr
parents:
diff changeset
    11
        
1f574d93e195 First tests
veltr
parents:
diff changeset
    12
        data.topics.forEach(function(topic) {
1f574d93e195 First tests
veltr
parents:
diff changeset
    13
            topic.score = 0;
1f574d93e195 First tests
veltr
parents:
diff changeset
    14
            topic.curve = [];
1f574d93e195 First tests
veltr
parents:
diff changeset
    15
            for (var i = 0; i < nmmso; i++) {
1f574d93e195 First tests
veltr
parents:
diff changeset
    16
                topic.curve.push(0);
1f574d93e195 First tests
veltr
parents:
diff changeset
    17
            }
1f574d93e195 First tests
veltr
parents:
diff changeset
    18
        });
1f574d93e195 First tests
veltr
parents:
diff changeset
    19
        
1f574d93e195 First tests
veltr
parents:
diff changeset
    20
        data.segments.forEach(function(mmso, i) {
1f574d93e195 First tests
veltr
parents:
diff changeset
    21
            mmso.topics.forEach(function(t) {
1f574d93e195 First tests
veltr
parents:
diff changeset
    22
                var score = t.weight * mmso.tweet_count;
1f574d93e195 First tests
veltr
parents:
diff changeset
    23
                data.topics[t.topic].curve[i] = score;
1f574d93e195 First tests
veltr
parents:
diff changeset
    24
                data.topics[t.topic].score += score;
1f574d93e195 First tests
veltr
parents:
diff changeset
    25
            });
1f574d93e195 First tests
veltr
parents:
diff changeset
    26
        });
1f574d93e195 First tests
veltr
parents:
diff changeset
    27
        
1f574d93e195 First tests
veltr
parents:
diff changeset
    28
        data.topics = data.topics.sort(function(a,b) {
1f574d93e195 First tests
veltr
parents:
diff changeset
    29
            return b.score - a.score;
1f574d93e195 First tests
veltr
parents:
diff changeset
    30
        });
1f574d93e195 First tests
veltr
parents:
diff changeset
    31
        
1f574d93e195 First tests
veltr
parents:
diff changeset
    32
        var topicHtmls = ["", "", ""]
1f574d93e195 First tests
veltr
parents:
diff changeset
    33
        
1f574d93e195 First tests
veltr
parents:
diff changeset
    34
        data.topics.forEach(function(topic,i) {
1f574d93e195 First tests
veltr
parents:
diff changeset
    35
            var li = '<li class="shadow-block topic" style="background:'
1f574d93e195 First tests
veltr
parents:
diff changeset
    36
                + colorset[topic.index % colorset.length]
1f574d93e195 First tests
veltr
parents:
diff changeset
    37
                + '" data-topic-id="'
1f574d93e195 First tests
veltr
parents:
diff changeset
    38
                + topic.index
1f574d93e195 First tests
veltr
parents:
diff changeset
    39
                + '"><ul class="topic-words">'
1f574d93e195 First tests
veltr
parents:
diff changeset
    40
                + topic.words.reduce(function(memwords, word) {
1f574d93e195 First tests
veltr
parents:
diff changeset
    41
                    return memwords + '<li>' + word.word + '</li>';
1f574d93e195 First tests
veltr
parents:
diff changeset
    42
                },"")
1f574d93e195 First tests
veltr
parents:
diff changeset
    43
                + '</ul></li>';
1f574d93e195 First tests
veltr
parents:
diff changeset
    44
            topicHtmls[i % 3] += li;
1f574d93e195 First tests
veltr
parents:
diff changeset
    45
        });
1f574d93e195 First tests
veltr
parents:
diff changeset
    46
        console.log(topicHtmls);
1f574d93e195 First tests
veltr
parents:
diff changeset
    47
        $(".topics-block").html(topicHtmls.reduce(function(mem,html) {
1f574d93e195 First tests
veltr
parents:
diff changeset
    48
           return mem + '<ul class="topic-column">' + html + '</ul>' 
1f574d93e195 First tests
veltr
parents:
diff changeset
    49
        },""));
1f574d93e195 First tests
veltr
parents:
diff changeset
    50
        
1f574d93e195 First tests
veltr
parents:
diff changeset
    51
        $(".topic").mouseenter(function() {
1f574d93e195 First tests
veltr
parents:
diff changeset
    52
            var datavizheight = $(".start-dataviz").height(),
1f574d93e195 First tests
veltr
parents:
diff changeset
    53
                scale = datavizheight / data.duration,
1f574d93e195 First tests
veltr
parents:
diff changeset
    54
                topicid = parseInt($(this).attr("data-topic-id")),
1f574d93e195 First tests
veltr
parents:
diff changeset
    55
                topic;
1f574d93e195 First tests
veltr
parents:
diff changeset
    56
            for (var i = 0; i < data.topics.length; i++) {
1f574d93e195 First tests
veltr
parents:
diff changeset
    57
                if (data.topics[i].index == topicid) {
1f574d93e195 First tests
veltr
parents:
diff changeset
    58
                    topic = data.topics[i];
1f574d93e195 First tests
veltr
parents:
diff changeset
    59
                    break;
1f574d93e195 First tests
veltr
parents:
diff changeset
    60
                }
1f574d93e195 First tests
veltr
parents:
diff changeset
    61
            }
1f574d93e195 First tests
veltr
parents:
diff changeset
    62
            if (!topic) {
1f574d93e195 First tests
veltr
parents:
diff changeset
    63
                return;
1f574d93e195 First tests
veltr
parents:
diff changeset
    64
            }
1f574d93e195 First tests
veltr
parents:
diff changeset
    65
            var color = colorset[topicid % colorset.length];
1f574d93e195 First tests
veltr
parents:
diff changeset
    66
            $(".start-dataviz").html(topic.curve.reduce(function(mem, c, i) {
1f574d93e195 First tests
veltr
parents:
diff changeset
    67
                if (!c) {
1f574d93e195 First tests
veltr
parents:
diff changeset
    68
                    return mem;
1f574d93e195 First tests
veltr
parents:
diff changeset
    69
                } else {
1f574d93e195 First tests
veltr
parents:
diff changeset
    70
                    var mmso = data.segments[i];
1f574d93e195 First tests
veltr
parents:
diff changeset
    71
                    return mem + '<div style="position: absolute; background: '
1f574d93e195 First tests
veltr
parents:
diff changeset
    72
                        + color
1f574d93e195 First tests
veltr
parents:
diff changeset
    73
                        +'; opacity: '
1f574d93e195 First tests
veltr
parents:
diff changeset
    74
                        + c
1f574d93e195 First tests
veltr
parents:
diff changeset
    75
                        +'; left: 0; ; top: '
1f574d93e195 First tests
veltr
parents:
diff changeset
    76
                        + scale * mmso.start
1f574d93e195 First tests
veltr
parents:
diff changeset
    77
                        +'px; height: '
1f574d93e195 First tests
veltr
parents:
diff changeset
    78
                        + scale * mmso.duration
1f574d93e195 First tests
veltr
parents:
diff changeset
    79
                        +'px; width: 266px"></div>'
1f574d93e195 First tests
veltr
parents:
diff changeset
    80
                }
1f574d93e195 First tests
veltr
parents:
diff changeset
    81
            },""));
1f574d93e195 First tests
veltr
parents:
diff changeset
    82
        })//.mouseleave(function() {$(".start-dataviz").empty(); });
1f574d93e195 First tests
veltr
parents:
diff changeset
    83
        
1f574d93e195 First tests
veltr
parents:
diff changeset
    84
    });
1f574d93e195 First tests
veltr
parents:
diff changeset
    85
});