Add a setting for reset button (@jsayles)

This commit is contained in:
Florent Lebreton
2014-11-26 19:19:03 +01:00
parent 51005db0ca
commit 337a8f9a08
5 changed files with 19 additions and 3 deletions

View File

@@ -101,6 +101,7 @@ Available settings are:
* ``JSIGNATURE_DECOR_COLOR`` (decor-color) * ``JSIGNATURE_DECOR_COLOR`` (decor-color)
* ``JSIGNATURE_LINE_WIDTH`` (lineWidth) * ``JSIGNATURE_LINE_WIDTH`` (lineWidth)
* ``JSIGNATURE_UNDO_BUTTON`` (UndoButton) * ``JSIGNATURE_UNDO_BUTTON`` (UndoButton)
* ``JSIGNATURE_RESET_BUTTON`` (ResetButton)
================== ==================
IN YOUR MODELS IN YOUR MODELS

View File

@@ -14,6 +14,8 @@ JSIGNATURE_LINE_WIDTH = getattr(
settings, 'JSIGNATURE_LINE_WIDTH', 0) settings, 'JSIGNATURE_LINE_WIDTH', 0)
JSIGNATURE_UNDO_BUTTON = getattr( JSIGNATURE_UNDO_BUTTON = getattr(
settings, 'JSIGNATURE_UNDO_BUTTON', False) settings, 'JSIGNATURE_UNDO_BUTTON', False)
JSIGNATURE_RESET_BUTTON = getattr(
settings, 'JSIGNATURE_RESET_BUTTON', True)
JSIGNATURE_DEFAULT_CONFIG = { JSIGNATURE_DEFAULT_CONFIG = {
'width': JSIGNATURE_WIDTH, 'width': JSIGNATURE_WIDTH,
@@ -23,4 +25,5 @@ JSIGNATURE_DEFAULT_CONFIG = {
'decor-color': JSIGNATURE_DECOR_COLOR, 'decor-color': JSIGNATURE_DECOR_COLOR,
'lineWidth': JSIGNATURE_LINE_WIDTH, 'lineWidth': JSIGNATURE_LINE_WIDTH,
'UndoButton': JSIGNATURE_UNDO_BUTTON, 'UndoButton': JSIGNATURE_UNDO_BUTTON,
'ResetButton': JSIGNATURE_RESET_BUTTON,
} }

View File

@@ -1,8 +1,10 @@
<div class='jsign-wrapper'> <div class='jsign-wrapper'>
{{ hidden }} {{ hidden }}
<div id='{{ jsign_id }}' <div id='{{ jsign_id }}'
data-config='{{ config }}' data-config='{{ js_config }}'
data-initial-value='{{ value }}' data-initial-value='{{ value }}'
class='jsign-container'></div> class='jsign-container'></div>
<input type='button' value='{{ reset_btn_text }}' class="btn"> {% if config.ResetButton %}
<input type='button' value='{{ reset_btn_text }}' class="btn">
{% endif %}
</div> </div>

View File

@@ -63,3 +63,12 @@ class JSignatureWidgetTest(SimpleTestCase):
# Almost useless :/ # Almost useless :/
self.assertEqual(1, len(pq('.jsign-wrapper', output))) self.assertEqual(1, len(pq('.jsign-wrapper', output)))
self.assertEqual(1, len(pq('[type=hidden]', output))) self.assertEqual(1, len(pq('[type=hidden]', output)))
def test_render_reset_button(self):
w = JSignatureWidget(jsignature_attrs={'ResetButton': True})
output = w.render(name='foo', value=None)
self.assertEqual(1, len(pq('[type=button]', output)))
w = JSignatureWidget(jsignature_attrs={'ResetButton': False})
output = w.render(name='foo', value=None)
self.assertEqual(0, len(pq('[type=button]', output)))

View File

@@ -71,7 +71,8 @@ class JSignatureWidget(HiddenInput):
'hidden': super(JSignatureWidget, self).render(name, value, attrs), 'hidden': super(JSignatureWidget, self).render(name, value, attrs),
'jsign_id': jsign_id, 'jsign_id': jsign_id,
'reset_btn_text': _('Reset'), 'reset_btn_text': _('Reset'),
'config': mark_safe(json.dumps(jsignature_config)), 'config': jsignature_config,
'js_config': mark_safe(json.dumps(jsignature_config)),
'value': mark_safe(value), 'value': mark_safe(value),
} }
out = render_to_string('jsignature/widget.html', context) out = render_to_string('jsignature/widget.html', context)