multipleDependent.html 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. {% load rapid_crud %}
  2. <div id="formset_{{ formset.prefix }}">
  3. {{ formset.management_form }}
  4. <style scoped>
  5. .rapid-singledependent{
  6. border-width: 1px;
  7. border-radius: 10px;
  8. border-style: solid;
  9. padding: 1em;
  10. }
  11. .deleted *:not(.toggle-remove){
  12. text-decoration: line-through;
  13. }
  14. .included-dependent-checkbox{
  15. display: none;
  16. }
  17. </style>
  18. <div id="forms-for-{{ formset.prefix }}">
  19. {% for form in formset %}
  20. <div class="rapid-singledependent {{ formset.prefix }} form">
  21. <input type="checkbox" class="includes_{{ formset.prefix }} included-dependent-checkbox"
  22. name="includes_{{ form.prefix }}" checked>
  23. {{ form.as_p }}
  24. <input type="button" value="Remover" class="toggle-remove">
  25. </div>
  26. {% endfor %}
  27. </div>
  28. <input type="button" value="Adicionar" id="add-form-in-{{ formset.prefix }}">
  29. <script>
  30. $("#formset_{{ formset.prefix }}").on("change", "input.includes{{ formset.prefix }}", function(){
  31. $(this).parent().toggleClass("deleted");
  32. });
  33. $("#add-form-in-{{ formset.prefix }}").click(function(){
  34. var formcount = $("#forms-for-{{ formset.prefix }}").children("div").length;
  35. $("#id_{{ formset.prefix }}-TOTAL_FORMS").val(formcount + 1);
  36. var empty = "<div class=\"rapid-singledependent {{ formset.prefix }} form\">\n<input type=\"checkbox\" class=\"includes_{{ formset.prefix }} included-dependent-checkbox\" name=\"includes_{{ formset.prefix }}-__prefix__\" checked=\"true\">\n{{ formset.empty_form.as_p|jsstr }}\n<input type=\"button\" value=\"Apagar\" id=\"toggle-remove\">\n<\div>";
  37. $("#forms-for-{{ formset.prefix }}").append(empty.replace(/__prefix__/g, formcount));
  38. });
  39. $("#forms-for-{{ formset.prefix }} .included-dependent-checkbox").change(function(){
  40. $(this).parent().toggleClass("deleted");
  41. });
  42. $("#forms-for-{{ formset.prefix }} .toggle-remove").click(function(){
  43. var box = $(this).parent().children(".included-dependent-checkbox")
  44. var vis = box.prop("checked");
  45. box.prop("checked", !vis);
  46. box.parent().toggleClass("deleted");
  47. if(vis)
  48. $(this).prop("value", "Incluir");
  49. else
  50. $(this).prop("value", "Remover");
  51. });
  52. </script>
  53. </div>