diff --git a/netbox/project-static/js/forms.js b/netbox/project-static/js/forms.js index 0feb7fc2f..f189adc1b 100644 --- a/netbox/project-static/js/forms.js +++ b/netbox/project-static/js/forms.js @@ -103,6 +103,12 @@ $(document).ready(function() { return data.text; } + // Speed selector + $("a.set_speed").click(function(e) { + e.preventDefault(); + $("#id_" + $(this).attr("target")).val($(this).attr("data")); + }); + // Color Picker $('.netbox-select2-color-picker').select2({ allowClear: true, diff --git a/netbox/utilities/forms/widgets.py b/netbox/utilities/forms/widgets.py index 1c456c74c..11418fd42 100644 --- a/netbox/utilities/forms/widgets.py +++ b/netbox/utilities/forms/widgets.py @@ -16,6 +16,7 @@ __all__ = ( 'DatePicker', 'DateTimePicker', 'NumericArrayField', + 'SelectSpeedWidget', 'SelectWithDisabled', 'SelectWithPK', 'SlugWidget', @@ -111,6 +112,13 @@ class ContentTypeSelect(StaticSelect2): option_template_name = 'widgets/select_contenttype.html' +class SelectSpeedWidget(forms.NumberInput): + """ + Speed field with dropdown selections for convenience. + """ + template_name = 'widgets/select_speed.html' + + class NumericArrayField(SimpleArrayField): def to_python(self, value): diff --git a/netbox/utilities/templates/widgets/select_speed.html b/netbox/utilities/templates/widgets/select_speed.html new file mode 100644 index 000000000..8e259ca8d --- /dev/null +++ b/netbox/utilities/templates/widgets/select_speed.html @@ -0,0 +1,20 @@ +
+ {% include 'django/forms/widgets/number.html' %} + + + + +