From ea482da0dc1ddf4cc35a8816d3fb091f89fc8c88 Mon Sep 17 00:00:00 2001 From: Seth Call Date: Fri, 20 Feb 2015 10:01:11 -0600 Subject: [PATCH] * VRFS-2808 - prevent duplicate attempt to open recording --- .../javascripts/dialog/localRecordingsDialog.js | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/web/app/assets/javascripts/dialog/localRecordingsDialog.js b/web/app/assets/javascripts/dialog/localRecordingsDialog.js index d08911d7c..10fdae9a1 100644 --- a/web/app/assets/javascripts/dialog/localRecordingsDialog.js +++ b/web/app/assets/javascripts/dialog/localRecordingsDialog.js @@ -7,6 +7,7 @@ var rest = context.JK.Rest(); var showing = false; var perPage = 10; + var openingRecording = false; function tbody() { return $('#local-recordings-dialog table.local-recordings tbody'); @@ -22,6 +23,7 @@ function beforeShow() { + openingRecording = false; emptyList(); resetPagination(); showing = true; @@ -89,6 +91,12 @@ function registerStaticEvents() { $('#local-recordings-dialog table.local-recordings tbody').on('click', 'tr', function(e) { + if(openingRecording) { + // prevent double-click spam + logger.debug("localRecordingDialog: ignoring duplicate open attempt") + return false; + } + var localState = $(this).attr('data-local-state'); if(localState == 'MISSING') { @@ -109,6 +117,8 @@ { var claimedRecording = $(this).data('server-model'); + openingRecording = true; + // tell the server we are about to start a recording rest.startPlayClaimedRecording({id: context.JK.CurrentSessionModel.id(), claimed_recording_id: claimedRecording.id}) .done(function(response) { @@ -146,6 +156,9 @@ app.notifyServerError(jqXHR, "Unable to Open Recording For Playback"); }) + .always(function() { + openingRecording = false; + }) }