Skip to content

Commit

Permalink
Deletion of dynamically generated form processing logic, bug fix
Browse files Browse the repository at this point in the history
  • Loading branch information
LeeHanYeong committed Aug 4, 2020
1 parent 8f409f3 commit 5d95717
Show file tree
Hide file tree
Showing 4 changed files with 299 additions and 265 deletions.
55 changes: 16 additions & 39 deletions django_quill/templates/django_quill/widget.html
Original file line number Diff line number Diff line change
Expand Up @@ -3,46 +3,23 @@
<div id="quill-{{ id }}" class="django-quill-widget" data-config="{{ config }}" data-type="django-quill"></div>
<input id="quill-input-{{ id }}" name="{{ name }}" type="hidden">
<script>
{% if "__prefix__" in id %}
$(document).on('DOMNodeInserted', function(e){
var node = $(e.target);
if(node.find('#quill-{{ id }}').length > 0){
var totalFormsInput = $('input[id="' + "{{ id }}".replace(/__prefix__.*/g, "TOTAL_FORMS") + '"]')
var totalForms = totalFormsInput.val();

var targetDiv = $('#quill-{{ id }}');
targetDiv.prop('id', targetDiv.attr('id').replace(/__prefix__/g, totalForms));
var targetDivId = targetDiv.prop('id')

var targetInput = $('#quill-input-{{ id }}');
targetInput.prop('id', targetInput.attr('id').replace(/__prefix__/g, totalForms));
var targetInputId = targetInput.prop('id')

totalFormsInput.val(totalForms + 1);

(function () {
var wrapper = new QuillWrapper(targetDivId, targetInputId, JSON.parse('{{ config|safe }}'));
{% if quill and quill.delta %}
var contents = JSON.parse('{{ quill.delta|safe|escapejs }}');
wrapper.quill.setContents(contents);
{% elif value %}
var value = JSON.parse('{{ value|safe|escapejs }}');
wrapper.quill.setContents(JSON.parse(value['delta']));
{% endif %}
})();
}
});
{% else %}
(function () {
var wrapper = new QuillWrapper("quill-{{ id }}", "quill-input-{{ id }}", JSON.parse('{{ config|safe }}'));
{% if quill and quill.delta %}
var contents = JSON.parse('{{ quill.delta|safe|escapejs }}');
wrapper.quill.setContents(contents);
{% elif value %}
(function () {
var wrapper = new QuillWrapper('quill-{{ id }}', 'quill-input-{{ id }}', JSON.parse('{{ config|safe }}'));
{% if quill and quill.delta %}
// try django_quill/quill.py/Quill instance
var contents = JSON.parse('{{ quill.delta|safe|escapejs }}');
wrapper.quill.setContents(contents);
{% elif value %}
// try Parsing value as JSON
try {
var value = JSON.parse('{{ value|safe|escapejs }}');
wrapper.quill.setContents(JSON.parse(value['delta']));
{% endif %}
})();
{% endif %}
}
// When a parsing error occurs, the contents are regarded as HTML and the contents of the editor are filled.
catch (e) {
wrapper.quill.clipboard.dangerouslyPasteHTML(0, '{{ value|safe }}')
}
{% endif %}
})();
</script>
</div>
Loading

0 comments on commit 5d95717

Please # to comment.