diff --git a/docs/release-notes/version-2.11.md b/docs/release-notes/version-2.11.md index 0fbbb2f9c..3bf3b2fbc 100644 --- a/docs/release-notes/version-2.11.md +++ b/docs/release-notes/version-2.11.md @@ -4,6 +4,7 @@ ### Enhancements (from Beta) +* [#6088](https://github.com/netbox-community/netbox/issues/6088) - Improved table configuration form * [#6097](https://github.com/netbox-community/netbox/issues/6097) - Redirect old slug-based object views * [#6109](https://github.com/netbox-community/netbox/issues/6109) - Add device counts to locations table * [#6121](https://github.com/netbox-community/netbox/issues/6121) - Extend parent interface assignment to VM interfaces diff --git a/netbox/netbox/views/generic.py b/netbox/netbox/views/generic.py index dadd97b98..8f713fa63 100644 --- a/netbox/netbox/views/generic.py +++ b/netbox/netbox/views/generic.py @@ -182,7 +182,7 @@ class ObjectListView(ObjectPermissionRequiredMixin, View): if request.GET.get('export') == 'table': exclude_columns = {'pk'} exclude_columns.update({ - col for col in table.base_columns if col not in table.visible_columns + name for name, _ in table.available_columns }) exporter = TableExport( export_format=TableExport.CSV, diff --git a/netbox/project-static/js/tableconfig.js b/netbox/project-static/js/tableconfig.js index 8f4692ea4..6851d2e8c 100644 --- a/netbox/project-static/js/tableconfig.js +++ b/netbox/project-static/js/tableconfig.js @@ -1,9 +1,27 @@ $(document).ready(function() { - $('form.userconfigform input.reset').click(function(event) { - // Deselect all columns when the reset button is clicked + + // Select or reset table columns + $('#save_tableconfig').click(function(event) { + $('select[name="columns"] option').attr("selected", "selected"); + }); + $('#reset_tableconfig').click(function(event) { $('select[name="columns"]').val([]); }); + // Swap columns between available and selected lists + $('#add_columns').click(function(e) { + let selected_columns = $('#id_available_columns option:selected'); + $('#id_columns').append($(selected_columns).clone()); + $(selected_columns).remove(); + e.preventDefault(); + }); + $('#remove_columns').click(function(e) { + let selected_columns = $('#id_columns option:selected'); + $('#id_available_columns').append($(selected_columns).clone()); + $(selected_columns).remove(); + e.preventDefault(); + }); + $('form.userconfigform').submit(function(event) { event.preventDefault(); diff --git a/netbox/templates/utilities/templatetags/table_config_form.html b/netbox/templates/utilities/templatetags/table_config_form.html index c92adaee1..65397c18d 100644 --- a/netbox/templates/utilities/templatetags/table_config_form.html +++ b/netbox/templates/utilities/templatetags/table_config_form.html @@ -8,17 +8,23 @@