--- a/css/startscreen.css Fri Mar 22 17:03:53 2013 +0100
+++ b/css/startscreen.css Fri Mar 22 17:54:46 2013 +0100
@@ -59,41 +59,13 @@
float: left; background: #333333; /*box-shadow: 1px 1px 2px #000;*/ margin: 0 8px 8px 0;
}
-.description-block {
- width: 240px; height: 166px; margin-left: 8px;
-}
-
-.description-block p {
- margin: 8px; font-size: 12px;
-}
-
-.topwords-block {
- width: 748px; height: 154px; overflow: hidden; padding: 6px;
-}
-
-.topwords-list {
-
-}
-
-.topwords-list li, .topic-words li {
+.topic-words li {
display: inline-block; color: #fff; padding: 0 6px; margin-right: 3px;
font-size: 14px; line-height: 26px;
}
-.topwords-block li {
- cursor: pointer;
-}
-
-.topwords-block li:hover, .topwords-block li.selected, .topic-words li.selected {
- color: #000000; background: #FFFFFF;
-}
-
-.topwords-block li.selected:hover {
- background: #999; color: #fff;
-}
-
.start-bottom {
- position: absolute; top: 256px; bottom: 0; overflow: hidden; width: 100%;
+ position: absolute; top: 82px; bottom: 0; overflow: hidden; width: 100%;
}
.start-dataviz {
--- a/js/startscreen.js Fri Mar 22 17:03:53 2013 +0100
+++ b/js/startscreen.js Fri Mar 22 17:54:46 2013 +0100
@@ -19,12 +19,7 @@
}
$(".duration").text(secsToString(data.duration));
-
- $(".topwords-list").on("click", "li", function() {
- var el = $(this).toggleClass("selected");
- wordFilter();
- });
-
+
var nmmso = data.segments.length;
data.topics.forEach(function(topic) {
@@ -49,52 +44,38 @@
return b.score - a.score;
});
- var selectedWords = [], searchString = "";
+ var selectedWords = [], searchString = "", topicscache = {};
+
+ function showTopicsForWord(word) {
+ var topicweights = topicscache[word];
+ var topiclist = data.topics.filter(function(topic) {
+ return topicweights[topic.index] > .01 && topic.index !== topicPoubelle;
+ });
+ topiclist.sort(function(a,b) {
+ return topicweights[b.index] - topicweights[b.index]
+ });
+ showTopics(topiclist);
+ }
function wordFilter() {
- var selectedLis = $(".topwords-list li.selected");
searchString = $(".keyword-search").val() || "",
selectedWords = [];
if (searchString.length) {
selectedWords.push(searchString);
}
- selectedLis.each(function() {
- selectedWords.push($(this).text().trim());
- });
if (selectedWords.length) {
- /*
- var topiclist = data.topics.filter(function(topic) {
- if (topic.index === topicPoubelle) {
- return false;
- }
- var found = false,
- relevance = 0;
- var foundWords = selectedWords.map(function() { return false });
- topic.words.forEach(function(topicword) {
- selectedWords.forEach(function(selectedword, k) {
- if (topicword.word.search(selectedword) !== -1) {
- found = true;
- relevance += (.5 + topicword.weight);
- }
- });
- });
- topic.relevance = relevance;
- return found;
- }).sort(function(a,b) {
- return b.relevance - a.relevance;
- });
- */
- TopicsBean.topicsForKeywords(selectedWords.join(","),{
- callback: function(topicweights) {
- var topiclist = data.topics.filter(function(topic) {
- return topicweights[topic.index] > .01 && topic.index !== topicPoubelle;
- });
- topiclist.sort(function(a,b) {
- return topicweights[b.index] - topicweights[b.index]
- });
- showTopics(topiclist);
- }
- });
+ var k = selectedWords.join(",");
+ if (typeof topicscache[k] === "undefined") {
+ TopicsBean.topicsForKeywords(k,{
+ callback: function(topicweights) {
+ topicscache[k] = topicweights;
+ showTopicsForWord(k);
+ }
+ });
+ } else {
+ showTopicsForWord(k);
+ }
+
} else {
showTopics(sortedTopics);
}
@@ -104,15 +85,6 @@
var topicHtmls = ["", "", ""];
if (searchString.length) {
var searchStringRx = new RegExp('(' + searchString.replace(/(\W)/g,'\\$1') + ')', "gim");
- $(".topwords-list li").each(function() {
- var el = $(this);
- el.html(el.text().replace(searchStringRx,'<span class="highlight">$1</span>'));
- });
- } else {
- $(".topwords-list li").each(function() {
- var el = $(this);
- el.text(el.text());
- });
}
var replaceRx = new RegExp('(' + selectedWords.map(function(w) {
return w.replace(/(\W)/g,'\\$1')
@@ -146,90 +118,38 @@
showTopicViz();
}
-/*
- var topwords = [], globwords = {};
-
- data.topics.forEach(function(topic) {
- topic.words.forEach(function(word) {
- globwords[word.word] = word.weight + (globwords[word.word] || 0)
- });
- })
-
- for (var w in globwords) {
- topwords.push({
- word : w,
- weight : globwords[w]
- });
- }
- topwords.sort(function(a, b) {
- return b.weight - a.weight;
- });
-
- $(".keyword-search").autocomplete({
- source: topwords.map(function(w) { return w.word })
- }).on("keyup change paste", wordFilter);
- */
-// /*
- var globwords = {};
+
+ var allwords = [];
data.topics.forEach(function(topic) {
topic.words.forEach(function(topicword) {
topicword.word.split(" ").filter(function(w) {
return w.length > 2;
}).forEach(function(w) {
- globwords[w] = 2 * topicword.weight + (globwords[w] || 0)
+ allwords.push(w);
});
});
});
-
- var ntw = data.topwords.length;
-
+
data.topwords.forEach(function(v, k) {
- var weight = (ntw - k)/ntw;
v.split(" ").filter(function(w) {
return w.length > 2;
}).forEach(function(w) {
- globwords[w] = weight + (globwords[w] || 0)
+ allwords.push(w);
});
});
-
- delete globwords.des;
-
- var allwords = _(globwords).keys(),
- topwords = _(globwords).map(function(v, k) {
- return {
- word: k,
- weight: v
- }
- });
-
- topwords.sort(function(a,b) {
- return b.weight - a.weight
- });
-
+
+ var allwords = _(allwords).uniq();
+
allwords.sort();
$(".keyword-search").autocomplete({
source: allwords,
change: function() {
- window.setInterval(wordFilter,0);
+ window.setTimeout(wordFilter,0);
}
}).on("keyup change paste", wordFilter);
// */
-
- var wordsToShow = topwords.slice(0,80),
- max = wordsToShow[0].weight,
- min = Math.min(wordsToShow[wordsToShow.length - 1].weight, max - .01),
- scale = 10 / (max - min);
-
- $(".topwords-list").html(wordsToShow.reduce(function(mem, d) {
- return mem
- + '<li style="font-size: '
- + ( 10 + scale * (d.weight - min) )
- + 'px;">'
- + d.word
- + '</li>'
- },""));
function showTopicViz() {
var selectedBlocks = $(".topic.selected, .topic.hover"),
--- a/startscreen-frame.html Fri Mar 22 17:03:53 2013 +0100
+++ b/startscreen-frame.html Fri Mar 22 17:54:46 2013 +0100
@@ -38,15 +38,6 @@
</div>
</div>
- <div class="start-second-line">
- <div class="shadow-block description-block">
- <p>Description de la vidéo du débat ici</p>
- </div>
- <div class="topwords-block shadow-block">
- <ul class="topwords-list"></ul>
- </div>
- </div>
-
<div class="start-bottom">
<div class="start-dataviz">
<div class="start-svg"></div>
--- a/startscreen.html Fri Mar 22 17:03:53 2013 +0100
+++ b/startscreen.html Fri Mar 22 17:54:46 2013 +0100
@@ -38,15 +38,6 @@
</div>
</div>
- <div class="start-second-line">
- <div class="shadow-block description-block">
- <p>Description de la vidéo du débat ici</p>
- </div>
- <div class="topwords-block shadow-block">
- <ul class="topwords-list"></ul>
- </div>
- </div>
-
<div class="start-bottom">
<div class="start-dataviz">
<div class="start-svg"></div>