From d90ca1b934a9988c7bc6123c98cb3539edccc317 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matej=20Zrim=C5=A1ek?= Date: Wed, 2 Aug 2017 16:49:53 +0200 Subject: [PATCH] Fixed slow exporting of repositories - JS listeners which triggered function responsible for providing export data was bound more than once. [SCI-1481] --- .../repositories/repository_datatable.js | 23 +++++++++++-------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/app/assets/javascripts/repositories/repository_datatable.js b/app/assets/javascripts/repositories/repository_datatable.js index be818201a..f868deffb 100644 --- a/app/assets/javascripts/repositories/repository_datatable.js +++ b/app/assets/javascripts/repositories/repository_datatable.js @@ -728,21 +728,26 @@ var RepositoryDatatable = (function(global) { if (rowsSelected.length === 1) { $('#editRepositoryRecord').prop('disabled', false); $('#editRepositoryRecord').removeClass('disabled'); + + // If we switched from 2 selections to 1, then this is not needed + var events = $._data($('#exportRepositoriesButton').get(0), 'events'); + if (!events || !events.click) { + $('#exportRepositoriesButton').removeClass('disabled'); + $('#exportRepositoriesButton').prop('disabled', false); + $('#exportRepositoriesButton').on('click', function() { + $('#exportRepositoryModal').modal('show'); + }); + $('#export-repositories').on('click', function() { + animateSpinner(null, true); + $('#form-export').submit(); + }); + } } else { $('#editRepositoryRecord').prop('disabled', true); $('#editRepositoryRecord').addClass('disabled'); } $('#deleteRepositoryRecordsButton').prop('disabled', false); $('#deleteRepositoryRecordsButton').removeClass('disabled'); - $('#exportRepositoriesButton').removeClass('disabled'); - $('#exportRepositoriesButton').prop('disabled', false); - $('#exportRepositoriesButton').on('click', function() { - $('#exportRepositoryModal').modal('show'); - }); - $('#export-repositories').on('click', function() { - animateSpinner(null, true); - $('#form-export').submit(); - }); $('#assignRepositoryRecords').removeClass('disabled'); $('#assignRepositoryRecords').prop('disabled', false); $('#unassignRepositoryRecords').removeClass('disabled');