From 340b9e330f6ddf08afd1500aa0b17d9a0152d152 Mon Sep 17 00:00:00 2001 From: Jim Driessen Date: Mon, 4 Sep 2017 15:34:16 +0200 Subject: [PATCH] Update time only instead of rendering the whole queue every second. --- marietje/marietje/static/js/queue.js | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/marietje/marietje/static/js/queue.js b/marietje/marietje/static/js/queue.js index c8d349d..337dbf4 100644 --- a/marietje/marietje/static/js/queue.js +++ b/marietje/marietje/static/js/queue.js @@ -158,7 +158,7 @@ function updateTime() if (secondsLeft >= 0) { $('.currentsong .time-left').text(secondsLeft.secondsToHHMMSS()); - renderQueue(secondsLeft + timestamp, timestamp); + refreshSeconds(secondsLeft + timestamp, timestamp); } // Refresh every ten seconds, or if the song has ended in the last ten @@ -173,7 +173,6 @@ function renderQueue(playNextAt, now) { $('.queuebody').empty(); var timeToPlay = playNextAt - now; - var firstSongInQueue = true; $.each(queue, function (id, song) { var requestedBy = song.requested_by; var canDelete = song.can_move_down || canMoveSongs; @@ -238,6 +237,19 @@ function refreshQueue() }); } +function refreshSeconds(playNextAt, now) +{ + if(!showTimeToPlay) { + return; + } + var timeToPlay = playNextAt - now; + times = $('.plays-at'); + $.each(queue, function (id, song) { + $(times[id]).text(timeToPlay < 0 ? '' : timeToPlay.secondsToHHMMSS()); + timeToPlay += parseInt(song.song.duration); + }); +} + function getSongs() { var all = $('#search-all').val();