diff -r 8ee8c9ea2a9f -r cd85b780f4a5 js/playscreen.js
--- a/js/playscreen.js Thu Apr 04 17:44:59 2013 +0200
+++ b/js/playscreen.js Wed Apr 10 15:39:28 2013 +0200
@@ -4,6 +4,20 @@
var deltaT = new Date("Wed, 02 May 2012 19:00:00 +0000") / 1000 + adjust;
+function secsToString(seconds) {
+ var hours = Math.floor(seconds/3600),
+ minutes = Math.floor(seconds/60) % 60,
+ secs = Math.floor(seconds % 60);
+ function pad(n) {
+ var r = n.toString();
+ while (r.length < 2) {
+ r = "0" + r;
+ }
+ return r;
+ }
+ return (hours ? (hours + ":") : "") + pad(minutes) + ":" + pad(secs);
+}
+
function solrUrl(table, params) {
var u = "http://159.217.144.101:8050/sia-solr/" + table + "/select?" + $.param(params) + "&wt=json&json.wrf=?";
console.log(u);
@@ -12,6 +26,42 @@
function showData() {
+ data.chapters = [];
+
+ data.segments.forEach(function(segment, index) {
+ var topics = segment.topics.filter(function(t) {
+ return t.topic !== topicPoubelle;
+ }).map(function(t) {
+ return t.topic
+ });
+ var openchapters = data.chapters.filter(function(c) {
+ return c.open;
+ });
+ openchapters.forEach(function(c) {
+ var i = topics.indexOf(c.topic);
+ if (i == -1) {
+ c.open = false;
+ } else {
+ c.endMMSO = index;
+ c.endTime = segment.end;
+ topics.splice(i, 1);
+ }
+ });
+
+ if (topics.length) {
+ topics.forEach(function(t) {
+ data.chapters.push({
+ startMMSO: index,
+ endMMSO: index,
+ startTime: segment.start,
+ endTime: segment.end,
+ topic: t,
+ open: true
+ })
+ })
+ }
+ });
+
data.topiclabels.forEach(function(v) {
var words = _(v.words).map(function(v, k) {
return {
@@ -49,20 +99,6 @@
})
var ordertag = 0;
-
- function secsToString(seconds) {
- var hours = Math.floor(seconds/3600),
- minutes = Math.floor(seconds/60) % 60,
- secs = Math.floor(seconds % 60);
- function pad(n) {
- var r = n.toString();
- while (r.length < 2) {
- r = "0" + r;
- }
- return r;
- }
- return (hours ? (hours + ":") : "") + pad(minutes) + ":" + pad(secs);
- }
$(".duration").text(secsToString(data.duration));
@@ -120,10 +156,44 @@
return parseInt($(this).attr("data-topic-id"));
})
);
- for (var i = 0; i < data.segments.length; i++) {
- var mmso = data.segments[i];
- if (mmso.start >= player.currentTime && hasTopics(mmso, topics)) {
- player.setCurrentTime(mmso.start);
+ for (var i = 0; i < data.chapters.length; i++) {
+ var chap = data.chapters[i];
+ if (chap.startTime > player.currentTime && topics.indexOf(chap.topic) !== -1) {
+ player.setCurrentTime(chap.startTime);
+ throttledShowLocal();
+ return;
+ }
+ }
+ /* If next not found, loop around ! */
+ for (var i = 0; i < data.chapters.length; i++) {
+ var chap = data.chapters[i];
+ if (topics.indexOf(chap.topic) !== -1) {
+ player.setCurrentTime(chap.startTime);
+ throttledShowLocal();
+ return;
+ }
+ }
+ }
+
+ function goToPrev() {
+ var topics = Array.prototype.slice.call(
+ $(".topic.selected").map(function() {
+ return parseInt($(this).attr("data-topic-id"));
+ })
+ );
+ for (var i = data.chapters.length; i--;) {
+ var chap = data.chapters[i];
+ if (chap.startTime < (player.currentTime - 2) && topics.indexOf(chap.topic) !== -1) {
+ player.setCurrentTime(chap.startTime);
+ throttledShowLocal();
+ return;
+ }
+ }
+ /* If previous not found, loop around ! */
+ for (var i = data.chapters.length; i--;) {
+ var chap = data.chapters[i];
+ if (topics.indexOf(chap.topic) !== -1) {
+ player.setCurrentTime(chap.startTime);
throttledShowLocal();
return;
}
@@ -502,7 +572,9 @@
+ '<% if (show_link) { %><% } %>'
+ '<% if (show_link) { %><% } %>'
+ '
<% if (show_link) { %><% } %>' - + '@<%- data.from_user_name %>:<% if (show_link) { %><% } %> <%= htext %>
'), + + '@<%- data.from_user_name %>:<% if (show_link) { %><% } %> <%= htext %>' + + '<% if (show_time) { %><%- secsToString(timestamp) %>
<% } %>' + + ''), callnum = 0, tweetstructure = {}, requestedtweets = {}, @@ -563,6 +635,12 @@ var randtweets = data.randomtweets.filter(function(tw) { return (tw.timestamp > (localpos - localduration / 2)) && (tw.timestamp < (localpos + localduration / 2)) }); + if (selectedWord) { + var rx = new RegExp(selectedWord.replace(/(\W)/gm,'\\$1'),'im'); + randtweets = randtweets.filter(function(tw) { + return rx.test(tw.data.text); + }); + } var mod = Math.ceil(randtweets.length / 8); randtweets = randtweets.filter(function(v,k) { return !(k % mod); @@ -585,6 +663,7 @@ tweetstoshow.forEach(function(tw) { tw.show_link = true; + tw.show_time = false; }); tweetstoshow.sort(function(a, b) { @@ -755,10 +834,10 @@ player.duration = data.duration; player.on("play", function() { - $(".play-button").html("▐ ▌"); + $(".play-button").attr("title","Pause").addClass("playing"); }); player.on("pause", function() { - $(".play-button").text("▶"); + $(".play-button").attr("title","Lecture").removeClass("playing"); }); player.on("timeupdate", function(t) { playTime.text(secsToString(t)); @@ -779,10 +858,19 @@ } else { player.pause(); } + return false; }); - $(".next-button").click(goToNext); + $(".next-button").click(function() { + goToNext(); + return false; + }); + $(".prev-button").click(function() { + goToPrev(); + return false; + }); + $(".topics-block").on("mouseenter", ".topic", function() { var el = $(this); el.addClass("hover"); @@ -922,7 +1010,8 @@ weight: 0, data: tweet, htext: _(tweet.text).escape(), - show_link: false + show_link: false, + show_time: true }); },""); $(".user-tweets").show();