From f155e3c3d50107ba38d36415cc2746ab1992f6d6 Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Fri, 9 Feb 2024 13:29:12 -0500 Subject: [PATCH] Merge disabled_indicator into option_attrs --- netbox/dcim/forms/connections.py | 12 +++++++++--- netbox/dcim/forms/model_forms.py | 2 +- netbox/project-static/dist/netbox.js | Bin 375547 -> 375641 bytes netbox/project-static/dist/netbox.js.map | Bin 340579 -> 340643 bytes .../src/select/classes/dynamicTomSelect.ts | 4 ++++ netbox/project-static/src/select/dynamic.ts | 4 ---- netbox/utilities/forms/fields/dynamic.py | 9 +++++---- netbox/wireless/forms/model_forms.py | 8 ++++++-- 8 files changed, 25 insertions(+), 14 deletions(-) diff --git a/netbox/dcim/forms/connections.py b/netbox/dcim/forms/connections.py index 854c5ebed..a7e59fa34 100644 --- a/netbox/dcim/forms/connections.py +++ b/netbox/dcim/forms/connections.py @@ -30,7 +30,9 @@ def get_cable_form(a_type, b_type): attrs[f'{cable_end}_terminations'] = DynamicModelMultipleChoiceField( queryset=term_cls.objects.all(), label=term_cls._meta.verbose_name.title(), - disabled_indicator='_occupied', + option_attrs={ + 'disabled': '_occupied', + }, query_params={ 'device_id': f'$termination_{cable_end}_device', 'kind': 'physical', # Exclude virtual interfaces @@ -52,7 +54,9 @@ def get_cable_form(a_type, b_type): attrs[f'{cable_end}_terminations'] = DynamicModelMultipleChoiceField( queryset=term_cls.objects.all(), label=_('Power Feed'), - disabled_indicator='_occupied', + option_attrs={ + 'disabled': '_occupied', + }, query_params={ 'power_panel_id': f'$termination_{cable_end}_powerpanel', } @@ -72,7 +76,9 @@ def get_cable_form(a_type, b_type): attrs[f'{cable_end}_terminations'] = DynamicModelMultipleChoiceField( queryset=term_cls.objects.all(), label=_('Side'), - disabled_indicator='_occupied', + option_attrs={ + 'disabled': '_occupied', + }, query_params={ 'circuit_id': f'$termination_{cable_end}_circuit', } diff --git a/netbox/dcim/forms/model_forms.py b/netbox/dcim/forms/model_forms.py index fdb5f1d5a..50840c580 100644 --- a/netbox/dcim/forms/model_forms.py +++ b/netbox/dcim/forms/model_forms.py @@ -426,7 +426,7 @@ class DeviceForm(TenancyForm, NetBoxModelForm): widget=APISelect( api_url='/api/dcim/racks/{{rack}}/elevation/', attrs={ - 'disabled-indicator': 'device', + 'ts-disabled-field': 'device', 'data-dynamic-params': '[{"fieldName":"face","queryParam":"face"}]' }, ) diff --git a/netbox/project-static/dist/netbox.js b/netbox/project-static/dist/netbox.js index 74efd8d8a352ffa02f511f22800077764e312c32..377984e076f9ad7d114937c89aeb331d1810f57c 100644 GIT binary patch delta 133 zcmezURqWFEiAj*I8ri;6O(dMQ>HVvvnaE}ICgC;64TTD7FEiAj*wu`s3^ssGz(94p}Wu1~)oS2l8n&Ot3nv-IcnW>ka xTH;tzQk0ogT9T@v1e4ay%uC5kPAthUQqrucDa+4HQ7~wCo58Z(Z3e5bG631iCFuYF diff --git a/netbox/project-static/dist/netbox.js.map b/netbox/project-static/dist/netbox.js.map index 87126f95cf91a48e35fb5a472334e41c21890a55..958e00566cdd7ab879eccc2cc3befa968bf1d5f8 100644 GIT binary patch delta 144 zcmaF-L}c+(k%kt=7N!>FEi4<1wUZqk)17p@9UZ-Od>tKqbrKyN6LpH6939J{qQQ=i z!8*x~&UtRzR~fUUv+8;3c!E@ewWK>aI!A%{{yIQ)$vW=HGOmVBI_}#=ELj$?F&b~* YYR~eCk;y%2`cX#~M rV?jY>EJr~>Pb^_UL18R)LP0@!LM%@~M>Ry31wsTt0WY^lLIhm!>9rdZ diff --git a/netbox/project-static/src/select/classes/dynamicTomSelect.ts b/netbox/project-static/src/select/classes/dynamicTomSelect.ts index 3e821c4b8..96677f580 100644 --- a/netbox/project-static/src/select/classes/dynamicTomSelect.ts +++ b/netbox/project-static/src/select/classes/dynamicTomSelect.ts @@ -34,6 +34,7 @@ export class DynamicTomSelect extends TomSelect { // Override any field names set as widget attributes this.valueField = this.input.getAttribute('ts-value-field') || this.settings.valueField; this.labelField = this.input.getAttribute('ts-label-field') || this.settings.labelField; + this.disabledField = this.input.getAttribute('ts-disabled-field') || this.settings.disabledField; this.parentField = this.input.getAttribute('ts-parent-field') || null; this.depthField = this.input.getAttribute('ts-depth-field') || '_depth'; this.descriptionField = this.input.getAttribute('ts-description-field') || 'description'; @@ -155,6 +156,9 @@ export class DynamicTomSelect extends TomSelect { let parent: Dict = data[this.parentField] as Dict; option['parent'] = parent[this.labelField]; } + if (data[this.disabledField]) { + option['disabled'] = data[this.disabledField]; + } return option } diff --git a/netbox/project-static/src/select/dynamic.ts b/netbox/project-static/src/select/dynamic.ts index 187093d4f..d0233ab20 100644 --- a/netbox/project-static/src/select/dynamic.ts +++ b/netbox/project-static/src/select/dynamic.ts @@ -49,10 +49,6 @@ export function initDynamicSelects(): void { // Disable local search (search is performed on the backend) searchField: [], - // Reference the disabled-indicator attr on the