diff options
-rw-r--r-- | ishtar_common/templates/blocks/JQueryAutocomplete.js | 21 | ||||
-rw-r--r-- | ishtar_common/widgets.py | 17 | ||||
-rw-r--r-- | scss/custom.scss | 5 |
3 files changed, 35 insertions, 8 deletions
diff --git a/ishtar_common/templates/blocks/JQueryAutocomplete.js b/ishtar_common/templates/blocks/JQueryAutocomplete.js index 32351b312..7cd0e2a60 100644 --- a/ishtar_common/templates/blocks/JQueryAutocomplete.js +++ b/ishtar_common/templates/blocks/JQueryAutocomplete.js @@ -11,6 +11,7 @@ $(function() { $('#id_{{field_id}}').change(); } else { $('#id_{{field_id}}').val(null); + $('#id_{{field_id}}').change(); } }, minLength: 2{% if options %}, @@ -21,6 +22,8 @@ $(function() { $(document).on("click", '#id_select_{{field_id}}', function(){ $('#id_{{field_id}}').val(null); $('#id_select_{{field_id}}').val(null); + $('#id_{{field_id}}-modify').addClass("disabled"); + $('#id_{{field_id}}').change(); }); $(document).on("click", '#id_{{field_id}}_previous_button', function(){ @@ -45,15 +48,31 @@ $(function() { $('#{{item_id}}').change(); {% endfor %}{% endif %} + {% if modify %} + {{safe_field_id}}_modify = function(){ + var current_val = $('#id_{{field_id}}').val(); + if (current_val){ + dt_qa_open('/modify-{{model_name}}/' + current_val + "/", + 'modal-dynamic-form-{{model_name}}'); + } + } + {% endif %} $('#id_{{field_id}}').change(function(){ $("#id_select_{{field_id}}").attr('title', $('#id_select_{{field_id}}').val()); - {% if detail %} var current_val = $('#id_{{field_id}}').val(); + {% if modify %} + if (current_val){ + $('#id_{{field_id}}-modify').removeClass("disabled"); + } + {% endif %} + {% if detail %} if (current_val){ var detail_url = "{{detail}}" + current_val + "/"; $.get(detail_url, function(data) { $("#id_{{field_id}}-detail").html(data); }); + } else { + $("#id_{{field_id}}-detail").html("..."); } {% endif %} diff --git a/ishtar_common/widgets.py b/ishtar_common/widgets.py index 904036deb..28bd9bdd9 100644 --- a/ishtar_common/widgets.py +++ b/ishtar_common/widgets.py @@ -653,7 +653,11 @@ class JQueryAutoComplete(forms.TextInput): dct = {'source': mark_safe(source), 'field_id': field_id, 'safe_field_id': field_id.replace("-", "_"), + "modify": self.modify, 'dynamic_limit': dynamic_limit} + if self.associated_model: + model_name = self.associated_model._meta.object_name.lower() + dct["model_name"] = model_name if self.detail: model_name = self.associated_model._meta.object_name.lower() url_detail = '/detail-{}/'.format(model_name) @@ -727,16 +731,15 @@ class JQueryAutoComplete(forms.TextInput): new += """<span class="input-group-append"> <span class="add-button input-group-text"><em>{}</em></span></span> """.format(self.tips) - if self.modify and len(values) == 1: - url_modify = 'modify-' + model_name - url_modify = reverse(url_modify, args=[attrs_select['id'], - values[0]]) + if self.modify: new += """ <span class="input-group-append"> - <a href="#" class="modify-button input-group-text" - onclick="dt_qa_open('{}', 'modal-dynamic-form-{}');"> + <a href="#" id="{}-modify" class="modify-button input-group-text" + onclick="{}_modify();"> <i class="fa fa-pencil"></i></a> - </span>""".format(url_modify, model_name, model_name) + </span>""".format( + attrs_hidden['id'], + name.replace("-", "_")) if self.new: limits = [] for k in self.limit: diff --git a/scss/custom.scss b/scss/custom.scss index 9e7fba25a..145cba658 100644 --- a/scss/custom.scss +++ b/scss/custom.scss @@ -320,6 +320,11 @@ div.dt-buttons{ cursor: not-allowed; } +a.disabled { + color: gray; + pointer-events: none; +} + .small-button{ padding: 0.1em 0.2em; } |