]> git.parisson.com Git - mezzo.git/commitdiff
[Vertigo M&C] : improve js
authorEmilie <zawadzki@ircam.fr>
Thu, 16 Mar 2017 12:11:32 +0000 (13:11 +0100)
committerEmilie <zawadzki@ircam.fr>
Thu, 16 Mar 2017 12:11:32 +0000 (13:11 +0100)
app/themes/base/static/src/js/modules/live-streaming-counter.js
app/themes/base/templates/includes/footer_scripts.html
bower.json

index 576897bb98fd942bc0d3eeaff9b8e094e06562bd..5f3933a9bc897db1500fad9e8190f343eee659dd 100644 (file)
@@ -34,15 +34,13 @@ function cleanCounter() {
 
 function CountDownTimer(json_event, curr_event_index, id, video_id/*, video_url*/)
     {
-        //console.log("json_event.length", Object.keys(json_event).length);
-        //console.log("curr_event_index", curr_event_index);
         if (Object.keys(json_event).length <= curr_event_index) {
             return ;
         }
 
-        var curr_event = json_event[curr_event_index];
-        var begin = new Date(curr_event.begin);
-        var end = new Date(curr_event.end);
+        var curr_event;
+        var begin;
+        var end;
 
         var _second = 1000;
         var _minute = _second * 60;
@@ -52,11 +50,18 @@ function CountDownTimer(json_event, curr_event_index, id, video_id/*, video_url*
         var distance_out = 1;
         var distance_in = 1;
 
-        function showRemaining() {
-            var now = new Date();
-            var distance_out = begin - now;
-            //console.log("distance_out", distance_out)
+        function init() {
+            if (curr_event_index < Object.keys(json_event).length ) {
+                curr_event = json_event[curr_event_index];
+                begin = moment(new Date(curr_event.begin));
+                end = moment(new Date(curr_event.end)).add(0, 'm');
+                clearInterval(timer);
+            }
+        }
 
+        function showRemaining() {
+            var now = moment(new Date());
+            var distance_out = begin.diff(now);
             if (distance_out < 0) {
                 //clearInterval(timer);
                 // $('#countdown-title').html('<br /><br />');
@@ -69,59 +74,49 @@ function CountDownTimer(json_event, curr_event_index, id, video_id/*, video_url*
                 //return;
             }
 
-            $('#countdown-title').html('Prochain évènement :<br><br/><strong>'+ curr_event.title +'</strong><br/><br/> Retransmission dans :');
-
-            var days = Math.floor(distance_out / _day);
-            var hours = Math.floor((distance_out % _day) / _hour);
-            var minutes = Math.floor((distance_out % _hour) / _minute);
-            var seconds = Math.floor((distance_out % _minute) / _second);
-
-            document.getElementById(id).innerHTML = days + 'jours ';
-            document.getElementById(id).innerHTML += hours + 'hrs ';
-            document.getElementById(id).innerHTML += minutes + 'mins ';
-            document.getElementById(id).innerHTML += seconds + 'secs';
-
+            updateDisplay(distance_out);
         }
 
         function hideRemaining() {
-            var now = new Date();
-            var distance_in = end - now;
-            //console.log("distance_in", distance_in)
-
+            var now = moment(new Date());
+            var distance_in = end.diff(now);
             if (distance_in < 0) {
-                nextEvent()
-                distance_in = end - now;
+                nextEvent();
+                distance_out = begin.diff(now);
+                updateDisplay(distance_out);
                 $('.countdown-overlay').show()
             }
         }
 
         function nextEvent() {
             curr_event_index++;
-            if (shouldStreamingStop()) {
-                curr_event = json_event[curr_event_index]
-                begin = new Date(curr_event.begin);
-                end = new Date(curr_event.end);
-            }
+            init();
         }
 
-        function shouldStreamingStop() {
-            var bool = true;
-            if (json_event.length - 1 < curr_event_index) {
-                clearInterval(timer);
-                bool = false;
-            }
-            return bool;
-        }
+        function updateDisplay(time_remaining) {
+
+            $('#countdown-title').html('Prochain évènement :<br><br/><strong>'+ curr_event.title+'</strong><br/><br/> Retransmission dans :');
 
+            var days = Math.floor(time_remaining / _day);
+            var hours = Math.floor((time_remaining % _day) / _hour);
+            var minutes = Math.floor((time_remaining % _hour) / _minute);
+            var seconds = Math.floor((time_remaining % _minute) / _second);
+
+            document.getElementById(id).innerHTML = days + 'jours ';
+            document.getElementById(id).innerHTML += hours + 'hrs ';
+            document.getElementById(id).innerHTML += minutes + 'mins ';
+            document.getElementById(id).innerHTML +=  seconds + 'secs';
+        }
 
-        // calculer le diff avec le prochain évènement
-        // réactiver le countdown
+        // initialize
+        init();
 
+        // out of event
         if (distance_out > 0) {
             timer = setInterval(showRemaining, 1000);
         }
 
-        //console.log("distance_in", distance_in)
+        // meanwhile an event
         if (distance_in > 0) {
             timer = setInterval(hideRemaining, 1000);
         }
index cbe83ecd9912e6bb26cc568692751a8878069b76..5645958f7de3dd58c1006785d5bcc4a2c772e30c 100644 (file)
@@ -14,6 +14,7 @@
     <script src="{% static "vendors/audiojs/audiojs/audio.js" %}"></script>
     <script src="{% static "vendors/jquery_lazyload/jquery.lazyload.js" %}"></script>
     <script src="{% static "vendors/waypoints/lib/jquery.waypoints.js" %}"></script>
+    <script src="{% static "vendors/moment/moment.js" %}"></script>
     <script src="{% static "js/water.js" %}"></script>
     <script src="{% static "js/index.min.js" %}"></script>
 {% block extra_js %}{% endblock %}
index 70000d744a625e146cd5a8114068fd7716726c4d..4627acc1465ea549f198a776be813d027937b01c 100644 (file)
@@ -29,6 +29,7 @@
     "video.js": "^5.12.5",
     "videojs-playlist": "^2.4.0",
     "jquery_lazyload": "jquery.lazyload#^1.9.7",
-    "waypoints": "^4.0.1"
+    "waypoints": "^4.0.1",
+    "moment": "*"
   }
 }