diff --git a/mopidy_musicbox_webclient/static/js/controls.js b/mopidy_musicbox_webclient/static/js/controls.js index ebcf675..496b295 100644 --- a/mopidy_musicbox_webclient/static/js/controls.js +++ b/mopidy_musicbox_webclient/static/js/controls.js @@ -360,13 +360,18 @@ function doSingle() { * Use a timer to prevent looping of commands * ***********************************************/ function doSeekPos(value) { - if (mopidy) { - mopidy.playback.seek({'time_position': Math.round(value)}); + if (!positionChanging) { + positionChanging = value; + mopidy.playback.seek({'time_position': Math.round(value)}).then( function() { + positionChanging = null; + });; } } function setPosition(pos) { - setProgressTimer(pos); + if (!positionChanging && $("#trackslider").val() != pos) { + setProgressTimer(pos); + } } /*********************************************** diff --git a/mopidy_musicbox_webclient/static/js/functionsvars.js b/mopidy_musicbox_webclient/static/js/functionsvars.js index cc66126..9d8767b 100644 --- a/mopidy_musicbox_webclient/static/js/functionsvars.js +++ b/mopidy_musicbox_webclient/static/js/functionsvars.js @@ -14,7 +14,9 @@ var consume; var single; var mute; var volumeChanging; -var volumeSliding; +var volumeSliding = false; + +var positionChanging; var initgui = true; var popupData = {}; diff --git a/mopidy_musicbox_webclient/static/js/gui.js b/mopidy_musicbox_webclient/static/js/gui.js index d63323e..4407819 100644 --- a/mopidy_musicbox_webclient/static/js/gui.js +++ b/mopidy_musicbox_webclient/static/js/gui.js @@ -569,8 +569,15 @@ $(document).ready(function(event) { event.stopImmediatePropagation(); } } ); - $( "#trackslider" ).on( "slidestart", function() { progressTimer.stop(); } ); - $( "#trackslider" ).on( "slidestop", function() { doSeekPos( $(this).val() ); } ); + $( "#trackslider" ).on( "slidestart", function() { + progressTimer.stop(); + $( "#trackslider" ).on( "change", function() { updatePosition( $(this).val() ); } ); + } ); + + $( "#trackslider" ).on( "slidestop", function() { + $( "#trackslider" ).off( "change"); + doSeekPos( $(this).val() ); + } ); $( "#volumeslider" ).on( "slidestart", function() { volumeSliding = true; } ); $( "#volumeslider" ).on( "slidestop", function() { volumeSliding = false; } ); diff --git a/mopidy_musicbox_webclient/static/js/progress_timer.js b/mopidy_musicbox_webclient/static/js/progress_timer.js index b715aa1..c9239ef 100644 --- a/mopidy_musicbox_webclient/static/js/progress_timer.js +++ b/mopidy_musicbox_webclient/static/js/progress_timer.js @@ -112,7 +112,7 @@ function format(milliseconds) { if (milliseconds === Infinity) { return '(n/a)'; } else if (milliseconds == 0) { - return ''; + return '0:00'; } var seconds = Math.floor(milliseconds / 1000); @@ -160,6 +160,10 @@ function setProgressTimer(pos) { } } +function updatePosition(pos) { + positionNode.nodeValue = format(pos); +} + function startProgressTimer() { reset(); progressTimer.start();