From 9065667ddf702daf76364855e9de0f5de0a9d06b Mon Sep 17 00:00:00 2001 From: Arthur Date: Wed, 23 Apr 2025 10:28:26 -0700 Subject: [PATCH] 16238 map custom-link button colors to tabler --- netbox/extras/templatetags/custom_links.py | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/netbox/extras/templatetags/custom_links.py b/netbox/extras/templatetags/custom_links.py index 4aeaaa6b1..afb5937fd 100644 --- a/netbox/extras/templatetags/custom_links.py +++ b/netbox/extras/templatetags/custom_links.py @@ -3,6 +3,7 @@ from django.utils.html import escape from django.utils.safestring import mark_safe from core.models import ObjectType +from extras.choices import CustomLinkButtonClassChoices from extras.models import CustomLink from netbox.choices import ButtonColorChoices @@ -29,6 +30,22 @@ GROUP_BUTTON = """ GROUP_LINK = '
  • {}
  • \n' +def map_button_class(button_color): + if button_color == ButtonColorChoices.DEFAULT: + return 'outline-secondary' + elif button_color == ButtonColorChoices.WHITE: + return 'light' + elif button_color == ButtonColorChoices.BLACK: + return 'dark' + elif button_color == ButtonColorChoices.GRAY or button_color == ButtonColorChoices.GREY: + return 'secondary' + elif button_color == CustomLinkButtonClassChoices.LINK: + # note: using ghost-secondary as ghost-dark doesn't display in dark mode + # with current tabler version. + return 'ghost-secondary' + return button_color + + @register.simple_tag(takes_context=True) def custom_links(context, obj): """ @@ -64,7 +81,7 @@ def custom_links(context, obj): try: if rendered := cl.render(link_context): template_code += LINK_BUTTON.format( - rendered['link'], rendered['link_target'], button_class, rendered['text'] + rendered['link'], rendered['link_target'], map_button_class(button_class), rendered['text'] ) except Exception as e: template_code += f'' \ @@ -89,7 +106,7 @@ def custom_links(context, obj): if links_rendered: template_code += GROUP_BUTTON.format( - links[0].button_class, escape(group), ''.join(links_rendered) + map_button_class(links[0].button_class), escape(group), ''.join(links_rendered) ) return mark_safe(template_code)