32 lines
1.8 KiB
HTML
32 lines
1.8 KiB
HTML
{% load i18n %}
|
|
{% with widget_value=widget.value|stringformat:'s' %}
|
|
<div class="colour-or-text-input">
|
|
{% spaceless %}
|
|
<span id="{{ widget.name }}-joined-buttons" class="gadjo-joined-buttons">
|
|
<button data-mode="color" aria-pressed="{% if widget.value is None or widget_value|slice:":1" == '#' %}true{% else %}false{% endif %}" role="button">{% trans "Fixed" %}</button>
|
|
<button data-mode="text" aria-pressed="{% if widget.value != None and widget_value|slice:":1" != '#' %}true{% else %}false{% endif %}" role="button">{% trans "Variable" %}</button>
|
|
</span>
|
|
{% endspaceless %}
|
|
<input id="{{ widget.name }}-input" {% if widget.value is None or widget_value|slice:":1" == '#' %}type="color"{% else %}type="text"{% endif %} name="{{ widget.name }}"{% if widget.value != None %} value="{{ widget_value }}"{% endif %}{% include "django/forms/widgets/attrs.html" %}>
|
|
</div>
|
|
{% endwith %}
|
|
<script>
|
|
$(function() {
|
|
$('#{{ widget.name }}-joined-buttons button').on('click', function() {
|
|
var $current_mode = $('#{{ widget.name }}-joined-buttons button[aria-pressed=true]');
|
|
$current_mode.data('previous-value', $('#{{ widget.name }}-input').val());
|
|
if ($(this).is('[aria-pressed=true]')) {
|
|
$('#{{ widget.name }}-joined-buttons button').attr('aria-pressed', 'true');
|
|
$(this).attr('aria-pressed', 'false');
|
|
} else {
|
|
$('#{{ widget.name }}-joined-buttons button').attr('aria-pressed', 'false');
|
|
$(this).attr('aria-pressed', 'true');
|
|
}
|
|
var $new_mode = $('#{{ widget.name }}-joined-buttons button[aria-pressed=true]');
|
|
var mode = $new_mode.data('mode');
|
|
$('#{{ widget.name }}-input').prop('type', mode).val($new_mode.data('previous-value'));
|
|
return false;
|
|
});
|
|
});
|
|
</script>
|