From cc5c0105dbf11bfffd6f439181326a841bbeb27d Mon Sep 17 00:00:00 2001 From: Javier Hernandez Date: Mon, 11 Dec 2023 11:40:12 +0100 Subject: ogcp.js: Fix bug when adding a new partition Fix a bug that made the 'add a new partition' button unusable if all partitions (rows) were deleted. The reason for this bug was that the AddPartition() function would add a new partition by cloning an already present html row element. This would fail if no more rows were present in the table. The solution implemented checks, previous to delete a partition, if it is the last partition. If it is, then, instead of removing the whole row, it just empties it. Html button element needs to contain 'type="button"' attribute for this to work. Otherwise, default action for the button is submit and it would redirect after clicking. --- ogcp/static/js/ogcp.js | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) (limited to 'ogcp/static/js/ogcp.js') diff --git a/ogcp/static/js/ogcp.js b/ogcp/static/js/ogcp.js index 0ac67fe..3c53035 100644 --- a/ogcp/static/js/ogcp.js +++ b/ogcp/static/js/ogcp.js @@ -300,15 +300,23 @@ function AddPartition(evt) { function RemovePartition(evt) { const target = $(evt).parent().parent(); const table = target.parent(); - target.remove(); - // Reassign rows ids - table.find('tr').each(function(index) { - $(this).find('.form-control').each(function() { - const id = $(this).attr('id').replace(/(.*)-(\d{1,4})-(.*)/, `$1-${index}-$3`); - $(this).attr('name', id).attr('id', id); + if (table[0].children.length > 1) { + target.remove(); + // Reassign rows ids + table.find('tr').each(function(index) { + $(this).find('.form-control').each(function() { + const id = $(this).attr('id').replace(/(.*)-(\d{1,4})-(.*)/, `$1-${index}-$3`); + $(this).attr('name', id).attr('id', id); + }); }); - }); + } else { + table.find('tr').each(function(index) { + $(this).find('.form-control').each(function() { + $(this).val('').removeAttr("checked"); + }); + }); + } } function checkImageServer() { -- cgit v1.2.3-18-g5258