summaryrefslogtreecommitdiff
path: root/ishtar_common
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2018-05-31 19:24:28 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2018-05-31 19:24:28 +0200
commitf766f6a2a87b922ad367538c8436e185026c8ca1 (patch)
tree44312eee59680ac8674fa488fa1a17789ca2a3d3 /ishtar_common
parent255232a0186e5f8da1ec4ca32588ce84927b7640 (diff)
downloadIshtar-f766f6a2a87b922ad367538c8436e185026c8ca1.tar.bz2
Ishtar-f766f6a2a87b922ad367538c8436e185026c8ca1.zip
Widget: add a restore button on inadequate clean of a value
Diffstat (limited to 'ishtar_common')
-rw-r--r--ishtar_common/templates/blocks/JQueryAutocomplete.js7
-rw-r--r--ishtar_common/widgets.py41
2 files changed, 39 insertions, 9 deletions
diff --git a/ishtar_common/templates/blocks/JQueryAutocomplete.js b/ishtar_common/templates/blocks/JQueryAutocomplete.js
index 53a5e18ae..2d2bbad9d 100644
--- a/ishtar_common/templates/blocks/JQueryAutocomplete.js
+++ b/ishtar_common/templates/blocks/JQueryAutocomplete.js
@@ -23,6 +23,13 @@ $(function() {
$('#id_select_{{field_id}}').val(null);
});
+ $(document).on("click", '#id_{{field_id}}_previous_button', function(){
+ $('#id_{{field_id}}').val($('#id_{{field_id}}_previous').val());
+ $('#id_select_{{field_id}}').val(
+ $('#id_{{field_id}}_previous_label').html()
+ );
+ $('#id_{{field_id}}').change();
+ });
{% if dynamic_limit %}{% for item_id in dynamic_limit %}
$('#{{item_id}}').change(function(){
diff --git a/ishtar_common/widgets.py b/ishtar_common/widgets.py
index ca4036f4c..ec3f8b011 100644
--- a/ishtar_common/widgets.py
+++ b/ishtar_common/widgets.py
@@ -411,16 +411,39 @@ class JQueryAutoComplete(forms.TextInput):
new = u'<span class="input-group-append">'\
u'<a href="#" class="add-button input-group-text" '\
u'onclick="open_window(\'%s\');">+</a></span></div>' % url_new
- html += u"""<input%(attrs_select)s/>%(new)s\
-<input type="hidden"%(attrs_hidden)s/>\
+
+ old_value = ""
+ if 'value' in attrs_select and attrs_select['value']:
+ old_value = u"""<span class='previous-value'>
+ <em>{}</em> <span id="{}">{}</span>
+ <button class="btn btn-secondary small-button" type="button"
+ id="{}">
+ <i class="fa fa-refresh" aria-hidden="true"></i>
+ </button>
+</span>""".format(
+ _(u"Previous value:"),
+ attrs_hidden['id'] + u"_previous_label",
+ attrs_select['value'],
+ attrs_hidden['id'] + u"_previous_button",
+ )
+ attrs_hidden_previous = attrs_hidden.copy()
+ attrs_hidden_previous['name'] += u"_previous"
+ attrs_hidden_previous['id'] += u"_previous"
+ old_value += u"<input type='hidden'{}>".format(
+ flatatt(attrs_hidden_previous))
+
+ html += u"""
+<input{attrs_select}/>{new}\
+<input type="hidden"{attrs_hidden}/>\
+{old_value}
<script type="text/javascript"><!--//
- %(js)s//--></script>
- """ % {
- 'attrs_select': flatatt(attrs_select),
- 'attrs_hidden': flatatt(attrs_hidden),
- 'js': self.render_js(name),
- 'new': new
- }
+ {js}//--></script>
+ """.format(
+ old_value=old_value,
+ attrs_select=flatatt(attrs_select),
+ attrs_hidden=flatatt(attrs_hidden),
+ js=self.render_js(name), new=new
+ )
return html