diff options
author | Javier Hernandez <jhernandez@soleta.eu> | 2023-12-11 11:40:12 +0100 |
---|---|---|
committer | OpenGnSys Support Team <soporte-og@soleta.eu> | 2023-12-11 11:43:42 +0100 |
commit | cc5c0105dbf11bfffd6f439181326a841bbeb27d (patch) | |
tree | 8a4d8c1d9a29f7b4525572642a897b670628afa8 /ogcp/static/js/ogcp.js | |
parent | ddfaae0ef6b38195f3330431101e8fed9e4a50f5 (diff) |
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.
Diffstat (limited to 'ogcp/static/js/ogcp.js')
-rw-r--r-- | ogcp/static/js/ogcp.js | 22 |
1 files changed, 15 insertions, 7 deletions
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() { |