[FIX] HORILLA_VIEWS: #855
This commit is contained in:
@@ -1082,6 +1082,7 @@ class HorillaFormView(FormView):
|
|||||||
context["form_class_path"] = self.form_class_path
|
context["form_class_path"] = self.form_class_path
|
||||||
context["view_id"] = self.view_id
|
context["view_id"] = self.view_id
|
||||||
context["hx_confirm"] = self.hx_confirm
|
context["hx_confirm"] = self.hx_confirm
|
||||||
|
context["hx_target"] = self.request.META.get("HTTP_HX_TARGET") or "this" # 855
|
||||||
pk = None
|
pk = None
|
||||||
if self.form.instance:
|
if self.form.instance:
|
||||||
pk = self.form.instance.pk
|
pk = self.form.instance.pk
|
||||||
|
|||||||
@@ -1,80 +1,76 @@
|
|||||||
{% load generic_template_filters %}
|
{% load generic_template_filters %}
|
||||||
<div id="{{view_id}}">
|
|
||||||
{% for field_tuple in dynamic_create_fields %}
|
|
||||||
<div
|
|
||||||
class="oh-modal"
|
|
||||||
id="dynamicModal{{field_tuple.0}}"
|
|
||||||
role="dialog"
|
|
||||||
aria-labelledby="dynamicModal{{field_tuple.0}}"
|
|
||||||
aria-hidden="true"
|
|
||||||
>
|
|
||||||
<div
|
|
||||||
class="oh-modal__dialog"
|
|
||||||
id="dynamicModal{{field_tuple.0}}Body"
|
|
||||||
></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{% endfor %}
|
|
||||||
<form id="{{view_id}}Form" hx-post="{{request.path}}?{{request.GET.urlencode}}" hx-encoding="multipart/form-data" hx-swap="outerHTML" {% if hx_confirm %} hx-confirm="{{hx_confirm}}" {% endif %}>{{form.structured}}</form>
|
|
||||||
{% for field_tuple in dynamic_create_fields %}
|
|
||||||
<div >
|
|
||||||
<script class="dynamic_{{field_tuple.0}}_scripts">
|
|
||||||
{{form.initial|get_item:field_tuple.0}}
|
|
||||||
$("#{{view_id}}Form [name={{field_tuple.0}}]").val({{form.initial|get_item:field_tuple.0|safe}}).change()
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<form
|
<div id="{{view_id}}">
|
||||||
hidden
|
{% for field_tuple in dynamic_create_fields %}
|
||||||
id="modalButton{{field_tuple.0}}Form"
|
<div class="oh-modal" id="dynamicModal{{field_tuple.0}}" role="dialog"
|
||||||
hx-get="/dynamic-path-{{field_tuple.0}}-{{request.session.session_key}}?dynamic_field={{field_tuple.0}}"
|
aria-labelledby="dynamicModal{{field_tuple.0}}" aria-hidden="true">
|
||||||
hx-target="#dynamicModal{{field_tuple.0}}Body"
|
<div class="oh-modal__dialog" id="dynamicModal{{field_tuple.0}}Body"></div>
|
||||||
>
|
</div>
|
||||||
<input type="text" name="dynamic_initial" data-dynamic-field="{{field_tuple.0}}">
|
|
||||||
<input type="text" name="view_id" value="{{view_id}}">
|
|
||||||
{% for field in field_tuple.2 %}
|
|
||||||
<input type="text" name="{{field}}">
|
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
<button
|
</div>
|
||||||
type="submit"
|
|
||||||
id="modalButton{{field_tuple.0}}"
|
<form id="{{view_id}}Form" hx-post="{{request.path}}?{{request.GET.urlencode}}" hx-target="#{{ hx_target }}"
|
||||||
onclick="$('#dynamicModal{{field_tuple.0}}').addClass('oh-modal--show');"
|
hx-encoding="multipart/form-data" {% if hx_target == "this" %} hx-swap="outerHTML" {% endif %}
|
||||||
>
|
{% if hx_confirm %} hx-confirm="{{hx_confirm}}" {% endif %}>
|
||||||
{{field_tuple.0}}
|
{{form.structured}}
|
||||||
</button>
|
</form>
|
||||||
</form>
|
|
||||||
<form hidden id="reload-field{{field_tuple.0}}{{view_id}}" hx-get="{% url "reload-field" %}?form_class_path={{form_class_path}}&dynamic_field={{field_tuple.0}}" hx-target="#dynamic_field_{{field_tuple.0}}">
|
{% for field_tuple in dynamic_create_fields %}
|
||||||
<input type="text" name="dynamic_initial" data-dynamic-field="{{field_tuple.0}}">
|
<div>
|
||||||
<input type="text" name="view_id" value="{{view_id}}">
|
<script class="dynamic_{{field_tuple.0}}_scripts">
|
||||||
<button class="reload-field" data-target="{{field_tuple.0}}">
|
{{ form.initial | get_item:field_tuple.0 }}
|
||||||
{{field_tuple.0}}
|
$("#{{view_id}}Form [name={{field_tuple.0}}]").val({{form.initial|get_item:field_tuple.0|safe}}).change()
|
||||||
</button>
|
</script>
|
||||||
</form>
|
|
||||||
<script class="dynamic_{{field_tuple.0}}_scripts">
|
<form hidden id="modalButton{{field_tuple.0}}Form"
|
||||||
$("#{{view_id}}Form [name={{field_tuple.0}}]").change(function (e) {
|
hx-get="/dynamic-path-{{field_tuple.0}}-{{request.session.session_key}}?dynamic_field={{field_tuple.0}}"
|
||||||
values = $(this).val();
|
hx-target="#dynamicModal{{field_tuple.0}}Body">
|
||||||
if (!values) {
|
<input type="text" name="dynamic_initial" data-dynamic-field="{{field_tuple.0}}">
|
||||||
values = ""
|
<input type="text" name="view_id" value="{{view_id}}">
|
||||||
}
|
{% for field in field_tuple.2 %}
|
||||||
if (values == "dynamic_create") {
|
<input type="text" name="{{field}}">
|
||||||
$("#modalButton{{field_tuple.0}}").click()
|
{% endfor %}
|
||||||
$(this).val("")
|
<button type="submit" id="modalButton{{field_tuple.0}}"
|
||||||
}else if (values.includes("dynamic_create")) {
|
onclick="$('#dynamicModal{{field_tuple.0}}').addClass('oh-modal--show');">
|
||||||
let index = values.indexOf("dynamic_create");
|
{{field_tuple.0}}
|
||||||
values.splice(index, 1);
|
</button>
|
||||||
$(this).val(values).change();
|
</form>
|
||||||
$("#modalButton{{field_tuple.0}}").parent().find('input[name=dynamic_initial]').val(values)
|
|
||||||
$("#reload-field{{field_tuple.0}}{{view_id}}").find('input[name=dynamic_initial]').val(values)
|
<form hidden id="reload-field{{field_tuple.0}}{{view_id}}" hx-target="#dynamic_field_{{field_tuple.0}}"
|
||||||
$("#modalButton{{field_tuple.0}}").click()
|
hx-get="{% url 'reload-field' %}?form_class_path={{form_class_path}}&dynamic_field={{field_tuple.0}}" >
|
||||||
}else if(values) {
|
<input type="text" name="dynamic_initial" data-dynamic-field="{{field_tuple.0}}">
|
||||||
$("#modalButton{{field_tuple.0}}").parent().find('input[name=dynamic_initial]').val(values)
|
<input type="text" name="view_id" value="{{view_id}}">
|
||||||
$("#reload-field{{field_tuple.0}}{{view_id}}").find('input[name=dynamic_initial]').val(values)
|
<button class="reload-field" data-target="{{field_tuple.0}}">
|
||||||
}
|
{{field_tuple.0}}
|
||||||
});
|
</button>
|
||||||
$("#reload-field{{field_tuple.0}}{{view_id}}").submit(function (e) {
|
</form>
|
||||||
e.preventDefault();
|
|
||||||
$(this).find("[name=dynamic_initial]").val();
|
<script class="dynamic_{{field_tuple.0}}_scripts">
|
||||||
});
|
$("#{{view_id}}Form [name={{field_tuple.0}}]").change(function (e) {
|
||||||
</script>
|
values = $(this).val();
|
||||||
</div>
|
if (!values) {
|
||||||
{% endfor %}
|
values = ""
|
||||||
|
}
|
||||||
|
if (values == "dynamic_create") {
|
||||||
|
$("#modalButton{{field_tuple.0}}").click()
|
||||||
|
$(this).val("")
|
||||||
|
} else if (values.includes("dynamic_create")) {
|
||||||
|
let index = values.indexOf("dynamic_create");
|
||||||
|
values.splice(index, 1);
|
||||||
|
$(this).val(values).change();
|
||||||
|
$("#modalButton{{field_tuple.0}}").parent().find('input[name=dynamic_initial]').val(values)
|
||||||
|
$("#reload-field{{field_tuple.0}}{{view_id}}").find('input[name=dynamic_initial]').val(values)
|
||||||
|
$("#modalButton{{field_tuple.0}}").click()
|
||||||
|
} else if (values) {
|
||||||
|
$("#modalButton{{field_tuple.0}}").parent().find('input[name=dynamic_initial]').val(values)
|
||||||
|
$("#reload-field{{field_tuple.0}}{{view_id}}").find('input[name=dynamic_initial]').val(values)
|
||||||
|
}
|
||||||
|
});
|
||||||
|
$("#reload-field{{field_tuple.0}}{{view_id}}").submit(function (e) {
|
||||||
|
e.preventDefault();
|
||||||
|
$(this).find("[name=dynamic_initial]").val();
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
</div>
|
||||||
|
{% endfor %}
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user