Introduce SelectSpeedWidget

This commit is contained in:
Jeremy Stretch 2021-02-25 11:47:26 -05:00
parent 3208c8317d
commit 992657cbe0
3 changed files with 34 additions and 0 deletions

View File

@ -103,6 +103,12 @@ $(document).ready(function() {
return data.text; return data.text;
} }
// Speed selector
$("a.set_speed").click(function(e) {
e.preventDefault();
$("#id_" + $(this).attr("target")).val($(this).attr("data"));
});
// Color Picker // Color Picker
$('.netbox-select2-color-picker').select2({ $('.netbox-select2-color-picker').select2({
allowClear: true, allowClear: true,

View File

@ -16,6 +16,7 @@ __all__ = (
'DatePicker', 'DatePicker',
'DateTimePicker', 'DateTimePicker',
'NumericArrayField', 'NumericArrayField',
'SelectSpeedWidget',
'SelectWithDisabled', 'SelectWithDisabled',
'SelectWithPK', 'SelectWithPK',
'SlugWidget', 'SlugWidget',
@ -111,6 +112,13 @@ class ContentTypeSelect(StaticSelect2):
option_template_name = 'widgets/select_contenttype.html' 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): class NumericArrayField(SimpleArrayField):
def to_python(self, value): def to_python(self, value):

View File

@ -0,0 +1,20 @@
<div class="input-group">
{% include 'django/forms/widgets/number.html' %}
<span class="input-group-btn">
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">
<span class="caret"></span>
</button>
<ul class="dropdown-menu dropdown-menu-right">
<li><a href="#" target="{{ widget.name }}" data="10000" class="set_speed">10 Mbps</a></li>
<li><a href="#" target="{{ widget.name }}" data="100000" class="set_speed">100 Mbps</a></li>
<li><a href="#" target="{{ widget.name }}" data="1000000" class="set_speed">1 Gbps</a></li>
<li><a href="#" target="{{ widget.name }}" data="10000000" class="set_speed">10 Gbps</a></li>
<li><a href="#" target="{{ widget.name }}" data="25000000" class="set_speed">25 Gbps</a></li>
<li><a href="#" target="{{ widget.name }}" data="40000000" class="set_speed">40 Gbps</a></li>
<li><a href="#" target="{{ widget.name }}" data="100000000" class="set_speed">100 Gbps</a></li>
<li class="divider"></li>
<li><a href="#" target="{{ widget.name }}" data="1544" class="set_speed">T1 (1.544 Mbps)</a></li>
<li><a href="#" target="{{ widget.name }}" data="2048" class="set_speed">E1 (2.048 Mbps)</a></li>
</ul>
</span>
</div>