Просмотр исходного кода

Fixes #3943: Prevent rack elevation links from opening new tabs/windows

Jeremy Stretch 6 лет назад
Родитель
Сommit
0a1dd64b94
2 измененных файлов с 11 добавлено и 5 удалено
  1. 1 0
      docs/release-notes/version-2.7.md
  2. 10 5
      netbox/dcim/models/__init__.py

+ 1 - 0
docs/release-notes/version-2.7.md

@@ -3,6 +3,7 @@
 ## Bug Fixes
 
 * [#3941](https://github.com/netbox-community/netbox/issues/3941) - Fixed exception when attempting to assign IP to interface
+* [#3943](https://github.com/netbox-community/netbox/issues/3943) - Prevent rack elevation links from opening new tabs/windows
 * [#3944](https://github.com/netbox-community/netbox/issues/3944) - Fix AttributeError exception when viewing prefixes list
 
 ---

+ 10 - 5
netbox/dcim/models/__init__.py

@@ -390,7 +390,9 @@ class RackElevationHelperMixin:
         color = device.device_role.color
         link = drawing.add(
             drawing.a(
-                reverse('dcim:device', kwargs={'pk': device.pk}), fill='black'
+                href=reverse('dcim:device', kwargs={'pk': device.pk}),
+                target='_top',
+                fill='black'
             )
         )
         link.add(drawing.rect(start, end, fill='#{}'.format(color)))
@@ -405,10 +407,13 @@ class RackElevationHelperMixin:
     @staticmethod
     def _draw_empty(drawing, rack, start, end, text, id_, face_id, class_):
         link = drawing.add(
-            drawing.a('{}?{}'.format(
-                reverse('dcim:device_add'),
-                urlencode({'rack': rack.pk, 'site': rack.site.pk, 'face': face_id, 'position': id_})
-            ))
+            drawing.a(
+                href='{}?{}'.format(
+                    reverse('dcim:device_add'),
+                    urlencode({'rack': rack.pk, 'site': rack.site.pk, 'face': face_id, 'position': id_})
+                ),
+                target='_top'
+            )
         )
         link.add(drawing.rect(start, end, class_=class_))
         link.add(drawing.text("add device", insert=text, class_='add-device'))