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 | |
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.
-rw-r--r-- | ogcp/static/js/ogcp.js | 22 | ||||
-rw-r--r-- | ogcp/templates/actions/setup.html | 2 |
2 files changed, 16 insertions, 8 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() { diff --git a/ogcp/templates/actions/setup.html b/ogcp/templates/actions/setup.html index a2b382a..68aefe9 100644 --- a/ogcp/templates/actions/setup.html +++ b/ogcp/templates/actions/setup.html @@ -62,7 +62,7 @@ <td>{{ partition.size(class_="form-control") }}</td> <td>{{ partition.format_partition(class_="form-control") }}</td> <td> - <button class="btn btn-danger" onclick="RemovePartition(this)"> + <button class="btn btn-danger" type="button" onclick="RemovePartition(this)"> {{ _('Remove') }} </button> </td> |