summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJavier Hernandez <jhernandez@soleta.eu>2023-12-11 11:40:12 +0100
committerOpenGnSys Support Team <soporte-og@soleta.eu>2023-12-11 11:43:42 +0100
commitcc5c0105dbf11bfffd6f439181326a841bbeb27d (patch)
tree8a4d8c1d9a29f7b4525572642a897b670628afa8
parentddfaae0ef6b38195f3330431101e8fed9e4a50f5 (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.js22
-rw-r--r--ogcp/templates/actions/setup.html2
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>