diff --git a/netbox/dcim/tables/devices.py b/netbox/dcim/tables/devices.py index 173b1db49..994b6f7f1 100644 --- a/netbox/dcim/tables/devices.py +++ b/netbox/dcim/tables/devices.py @@ -258,7 +258,8 @@ class DeviceConsolePortTable(ConsolePortTable): actions = ButtonsColumn( model=ConsolePort, buttons=('edit', 'delete'), - prepend_template=CONSOLEPORT_BUTTONS + prepend_template=CONSOLEPORT_BUTTONS, + return_url_extra='%23tab_consoleports' ) class Meta(DeviceComponentTable.Meta): @@ -290,7 +291,8 @@ class DeviceConsoleServerPortTable(ConsoleServerPortTable): actions = ButtonsColumn( model=ConsoleServerPort, buttons=('edit', 'delete'), - prepend_template=CONSOLESERVERPORT_BUTTONS + prepend_template=CONSOLESERVERPORT_BUTTONS, + return_url_extra='%23tab_consoleserverports' ) class Meta(DeviceComponentTable.Meta): @@ -325,7 +327,8 @@ class DevicePowerPortTable(PowerPortTable): actions = ButtonsColumn( model=PowerPort, buttons=('edit', 'delete'), - prepend_template=POWERPORT_BUTTONS + prepend_template=POWERPORT_BUTTONS, + return_url_extra='%23tab_powerports' ) class Meta(DeviceComponentTable.Meta): @@ -367,7 +370,8 @@ class DevicePowerOutletTable(PowerOutletTable): actions = ButtonsColumn( model=PowerOutlet, buttons=('edit', 'delete'), - prepend_template=POWEROUTLET_BUTTONS + prepend_template=POWEROUTLET_BUTTONS, + return_url_extra='%23tab_poweroutlets' ) class Meta(DeviceComponentTable.Meta): @@ -426,7 +430,8 @@ class DeviceInterfaceTable(InterfaceTable): actions = ButtonsColumn( model=Interface, buttons=('edit', 'delete'), - prepend_template=INTERFACE_BUTTONS + prepend_template=INTERFACE_BUTTONS, + return_url_extra='%23tab_interfaces' ) class Meta(DeviceComponentTable.Meta): @@ -472,7 +477,8 @@ class DeviceFrontPortTable(FrontPortTable): actions = ButtonsColumn( model=FrontPort, buttons=('edit', 'delete'), - prepend_template=FRONTPORT_BUTTONS + prepend_template=FRONTPORT_BUTTONS, + return_url_extra='%23tab_frontports' ) class Meta(DeviceComponentTable.Meta): @@ -509,7 +515,8 @@ class DeviceRearPortTable(RearPortTable): actions = ButtonsColumn( model=RearPort, buttons=('edit', 'delete'), - prepend_template=REARPORT_BUTTONS + prepend_template=REARPORT_BUTTONS, + return_url_extra='%23tab_rearports' ) class Meta(DeviceComponentTable.Meta): @@ -550,7 +557,8 @@ class DeviceDeviceBayTable(DeviceBayTable): actions = ButtonsColumn( model=DeviceBay, buttons=('edit', 'delete'), - prepend_template=DEVICEBAY_BUTTONS + prepend_template=DEVICEBAY_BUTTONS, + return_url_extra='%23tab_devicebays' ) class Meta(DeviceComponentTable.Meta): @@ -589,7 +597,8 @@ class DeviceInventoryItemTable(InventoryItemTable): ) actions = ButtonsColumn( model=InventoryItem, - buttons=('edit', 'delete') + buttons=('edit', 'delete'), + return_url_extra='%23tab_inventoryitems' ) class Meta(DeviceComponentTable.Meta): diff --git a/netbox/dcim/tables/template_code.py b/netbox/dcim/tables/template_code.py index b173ee6c1..043caa2bd 100644 --- a/netbox/dcim/tables/template_code.py +++ b/netbox/dcim/tables/template_code.py @@ -98,9 +98,9 @@ CONSOLEPORT_BUTTONS = """ {% endif %} @@ -116,9 +116,9 @@ CONSOLESERVERPORT_BUTTONS = """ {% endif %} @@ -134,8 +134,8 @@ POWERPORT_BUTTONS = """ {% endif %} @@ -146,7 +146,7 @@ POWEROUTLET_BUTTONS = """ {% include 'dcim/inc/cable_toggle_buttons.html' with cable=record.cable %} {% elif perms.dcim.add_cable %} - + {% endif %} @@ -154,7 +154,7 @@ POWEROUTLET_BUTTONS = """ INTERFACE_BUTTONS = """ {% if perms.ipam.add_ipaddress %} - + {% endif %} @@ -167,10 +167,10 @@ INTERFACE_BUTTONS = """ {% endif %} @@ -186,12 +186,12 @@ FRONTPORT_BUTTONS = """ {% endif %} @@ -207,10 +207,10 @@ REARPORT_BUTTONS = """ {% endif %} @@ -219,11 +219,11 @@ REARPORT_BUTTONS = """ DEVICEBAY_BUTTONS = """ {% if perms.dcim.change_devicebay %} {% if record.installed_device %} - + {% else %} - + {% endif %} diff --git a/netbox/dcim/views.py b/netbox/dcim/views.py index da101af7f..f9563de4d 100644 --- a/netbox/dcim/views.py +++ b/netbox/dcim/views.py @@ -1747,7 +1747,7 @@ class DeviceBayPopulateView(ObjectEditView): return render(request, 'dcim/devicebay_populate.html', { 'device_bay': device_bay, 'form': form, - 'return_url': reverse('dcim:device', kwargs={'pk': device_bay.device.pk}), + 'return_url': self.get_return_url(request, device_bay), }) def post(self, request, pk): @@ -1765,7 +1765,7 @@ class DeviceBayPopulateView(ObjectEditView): return render(request, 'dcim/devicebay_populate.html', { 'device_bay': device_bay, 'form': form, - 'return_url': reverse('dcim:device', kwargs={'pk': device_bay.device.pk}), + 'return_url': self.get_return_url(request, device_bay), }) @@ -1773,18 +1773,16 @@ class DeviceBayDepopulateView(ObjectEditView): queryset = DeviceBay.objects.all() def get(self, request, pk): - device_bay = get_object_or_404(self.queryset, pk=pk) form = ConfirmationForm() return render(request, 'dcim/devicebay_depopulate.html', { 'device_bay': device_bay, 'form': form, - 'return_url': reverse('dcim:device', kwargs={'pk': device_bay.device.pk}), + 'return_url': self.get_return_url(request, device_bay), }) def post(self, request, pk): - device_bay = get_object_or_404(self.queryset, pk=pk) form = ConfirmationForm(request.POST) @@ -1800,7 +1798,7 @@ class DeviceBayDepopulateView(ObjectEditView): return render(request, 'dcim/devicebay_depopulate.html', { 'device_bay': device_bay, 'form': form, - 'return_url': reverse('dcim:device', kwargs={'pk': device_bay.device.pk}), + 'return_url': self.get_return_url(request, device_bay), }) diff --git a/netbox/templates/dcim/device.html b/netbox/templates/dcim/device.html index 5687bc774..b3cab28db 100644 --- a/netbox/templates/dcim/device.html +++ b/netbox/templates/dcim/device.html @@ -873,7 +873,7 @@ var prefix = "tab_"; if (hash) { $('.nav-pills a[href="'+hash.replace(prefix,"")+'"]').tab('show'); } -$('.nav-tabs a').on('shown.bs.tab', function (e) { +$('.nav-pills a').on('shown.bs.tab', function (e) { window.location.hash = e.target.hash.replace("#", "#" + prefix); });