diff --git a/netbox/project-static/js/tableconfig.js b/netbox/project-static/js/tableconfig.js
index 29b5e46d5..8f4692ea4 100644
--- a/netbox/project-static/js/tableconfig.js
+++ b/netbox/project-static/js/tableconfig.js
@@ -1,4 +1,9 @@
$(document).ready(function() {
+ $('form.userconfigform input.reset').click(function(event) {
+ // Deselect all columns when the reset button is clicked
+ $('select[name="columns"]').val([]);
+ });
+
$('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 1033a8244..e8fcf7dfe 100644
--- a/netbox/templates/utilities/templatetags/table_config_form.html
+++ b/netbox/templates/utilities/templatetags/table_config_form.html
@@ -17,8 +17,8 @@
-
-
+
+
diff --git a/netbox/utilities/forms/forms.py b/netbox/utilities/forms/forms.py
index 47be72eea..f259f6b6d 100644
--- a/netbox/utilities/forms/forms.py
+++ b/netbox/utilities/forms/forms.py
@@ -161,6 +161,7 @@ class TableConfigForm(BootstrapMixin, forms.Form):
"""
columns = forms.MultipleChoiceField(
choices=[],
+ required=False,
widget=forms.SelectMultiple(
attrs={'size': 10}
),
diff --git a/netbox/utilities/tables.py b/netbox/utilities/tables.py
index 496f65dba..dfd175345 100644
--- a/netbox/utilities/tables.py
+++ b/netbox/utilities/tables.py
@@ -41,7 +41,7 @@ class BaseTable(tables.Table):
# Apply custom column ordering for user
if user is not None and not isinstance(user, AnonymousUser):
columns = user.config.get(f"tables.{self.__class__.__name__}.columns")
- if columns is not None:
+ if columns:
pk = self.base_columns.pop('pk', None)
actions = self.base_columns.pop('actions', None)