mirror of
https://github.com/nottinghamtec/PyRIGS.git
synced 2026-01-24 08:52:15 +00:00
Updates to AJAX forms and adding autofill function to the event form when adding things via AJAX
This commit is contained in:
@@ -34,7 +34,6 @@
|
|||||||
$(document).ready(function () {
|
$(document).ready(function () {
|
||||||
{% if not object.pk and not form.errors %}
|
{% if not object.pk and not form.errors %}
|
||||||
|
|
||||||
|
|
||||||
$('.form-hws').slideUp(function () {
|
$('.form-hws').slideUp(function () {
|
||||||
$('.form-is_rig').slideUp();
|
$('.form-is_rig').slideUp();
|
||||||
});
|
});
|
||||||
@@ -111,11 +110,9 @@
|
|||||||
data-target="{{ form.person.id_for_label }}"/>
|
data-target="{{ form.person.id_for_label }}"/>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-xs-3 align-right">
|
<div class="col-xs-3 align-right">
|
||||||
<button type="button" class="btn btn-default"
|
<a href="{% url 'person_create' %}" class="btn btn-default modal-href" data-target="#{{ form.person.id_for_label }}">
|
||||||
data-url="{#% url invoiceitem_add object.pk %#}"
|
|
||||||
data-toggle="modal" data-target="#itemModal">
|
|
||||||
<span class="glyphicon glyphicon-plus"></span>
|
<span class="glyphicon glyphicon-plus"></span>
|
||||||
</button>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -138,11 +135,9 @@
|
|||||||
data-target="{{ form.organisation.id_for_label }}"/>
|
data-target="{{ form.organisation.id_for_label }}"/>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-xs-3 align-right">
|
<div class="col-xs-3 align-right">
|
||||||
<button type="button" class="btn btn-default"
|
<a href="{% url 'organisation_create' %}" class="btn btn-default modal-href" data-target="#{{ form.organisation.id_for_label }}">
|
||||||
data-url="{#% url invoiceitem_add object.pk %#}"
|
|
||||||
data-toggle="modal" data-target="#itemModal">
|
|
||||||
<span class="glyphicon glyphicon-plus"></span>
|
<span class="glyphicon glyphicon-plus"></span>
|
||||||
</button>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -199,11 +194,9 @@
|
|||||||
data-target="{{ form.venue.id_for_label }}"/>
|
data-target="{{ form.venue.id_for_label }}"/>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-xs-3 align-right">
|
<div class="col-xs-3 align-right">
|
||||||
<button type="button" class="btn btn-default"
|
<a href="{% url 'venue_create' %}" class="btn btn-default modal-href" data-target="#{{ form.venue.id_for_label }}">
|
||||||
data-url="{#% url invoiceitem_add object.pk %#}"
|
|
||||||
data-toggle="modal" data-target="#itemModal">
|
|
||||||
<span class="glyphicon glyphicon-plus"></span>
|
<span class="glyphicon glyphicon-plus"></span>
|
||||||
</button>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
<div class="col-sm-offset-1 col-sm-10">
|
<div class="col-sm-offset-1 col-sm-10">
|
||||||
<h3>{{ object.pk|yesno:"Edit,Add" }} Organisation</h3>
|
<h3>{{ object.pk|yesno:"Edit,Add" }} Organisation</h3>
|
||||||
|
|
||||||
<form action="{{ form.action }}" method="post" class="form-horizontal">{% csrf_token %}
|
<form action="{{ form.action|default:request.path }}" method="post" class="form-horizontal">{% csrf_token %}
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-6">
|
<div class="col-md-6">
|
||||||
{% include 'form_errors.html' %}
|
{% include 'form_errors.html' %}
|
||||||
|
|||||||
@@ -7,10 +7,10 @@
|
|||||||
<div class="col-sm-offset-1 col-sm-10">
|
<div class="col-sm-offset-1 col-sm-10">
|
||||||
<h3>{{ object.pk|yesno:"Edit,Add" }} Person</h3>
|
<h3>{{ object.pk|yesno:"Edit,Add" }} Person</h3>
|
||||||
|
|
||||||
<form action="{{ form.action }}" method="post" class="form-horizontal">{% csrf_token %}
|
<form action="{{ form.action|default:request.path }}" method="post" class="form-horizontal">{% csrf_token %}
|
||||||
<div class="row">
|
<div class="row">
|
||||||
|
{% include 'form_errors.html' %}
|
||||||
<div class="col-md-6">
|
<div class="col-md-6">
|
||||||
{% include 'form_errors.html' %}
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="{{ form.name.id_for_label }}"
|
<label for="{{ form.name.id_for_label }}"
|
||||||
class="col-sm-2 control-label">{{ form.name.label }}</label>
|
class="col-sm-2 control-label">{{ form.name.label }}</label>
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
<div class="col-sm-offset-1 col-sm-10">
|
<div class="col-sm-offset-1 col-sm-10">
|
||||||
<h3>{{ object.pk|yesno:"Edit,Add" }} Venue</h3>
|
<h3>{{ object.pk|yesno:"Edit,Add" }} Venue</h3>
|
||||||
|
|
||||||
<form action="{{ form.action }}" method="post" class="form-horizontal">{% csrf_token %}
|
<form action="{{ form.action|default:request.path }}" method="post" class="form-horizontal">{% csrf_token %}
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-6">
|
<div class="col-md-6">
|
||||||
{% include 'form_errors.html' %}
|
{% include 'form_errors.html' %}
|
||||||
|
|||||||
@@ -69,18 +69,28 @@ class PersonCreate(generic.CreateView):
|
|||||||
model = models.Person
|
model = models.Person
|
||||||
|
|
||||||
def get_success_url(self):
|
def get_success_url(self):
|
||||||
return reverse_lazy('person_detail', kwargs={
|
if self.request.is_ajax():
|
||||||
'pk': self.object.pk,
|
url = reverse_lazy('closemodal')
|
||||||
})
|
messages.info(self.request, "modalobject="+serializers.serialize("json", [self.object]))
|
||||||
|
else:
|
||||||
|
url = reverse_lazy('person_detail', kwargs={
|
||||||
|
'pk': self.object.pk,
|
||||||
|
})
|
||||||
|
return url
|
||||||
|
|
||||||
|
|
||||||
class PersonUpdate(generic.UpdateView):
|
class PersonUpdate(generic.UpdateView):
|
||||||
model = models.Person
|
model = models.Person
|
||||||
|
|
||||||
def get_success_url(self):
|
def get_success_url(self):
|
||||||
return reverse_lazy('person_detail', kwargs={
|
if self.request.is_ajax():
|
||||||
'pk': self.object.pk,
|
url = reverse_lazy('closemodal')
|
||||||
})
|
messages.info(self.request, "modalobject="+serializers.serialize("json", [self.object]))
|
||||||
|
else:
|
||||||
|
url = reverse_lazy('person_detail', kwargs={
|
||||||
|
'pk': self.object.pk,
|
||||||
|
})
|
||||||
|
return url
|
||||||
|
|
||||||
|
|
||||||
class OrganisationList(generic.ListView):
|
class OrganisationList(generic.ListView):
|
||||||
@@ -107,18 +117,28 @@ class OrganisationCreate(generic.CreateView):
|
|||||||
model = models.Organisation
|
model = models.Organisation
|
||||||
|
|
||||||
def get_success_url(self):
|
def get_success_url(self):
|
||||||
return reverse_lazy('organisation_detail', kwargs={
|
if self.request.is_ajax():
|
||||||
'pk': self.object.pk,
|
url = reverse_lazy('closemodal')
|
||||||
})
|
messages.info(self.request, "modalobject="+serializers.serialize("json", [self.object]))
|
||||||
|
else:
|
||||||
|
url = reverse_lazy('organisation_detail', kwargs={
|
||||||
|
'pk': self.object.pk,
|
||||||
|
})
|
||||||
|
return url
|
||||||
|
|
||||||
|
|
||||||
class OrganisationUpdate(generic.UpdateView):
|
class OrganisationUpdate(generic.UpdateView):
|
||||||
model = models.Organisation
|
model = models.Organisation
|
||||||
|
|
||||||
def get_success_url(self):
|
def get_success_url(self):
|
||||||
return reverse_lazy('organisation_detail', kwargs={
|
if self.request.is_ajax():
|
||||||
'pk': self.object.pk,
|
url = reverse_lazy('closemodal')
|
||||||
})
|
messages.info(self.request, "modalobject="+serializers.serialize("json", [self.object]))
|
||||||
|
else:
|
||||||
|
url = reverse_lazy('organisation_detail', kwargs={
|
||||||
|
'pk': self.object.pk,
|
||||||
|
})
|
||||||
|
return url
|
||||||
|
|
||||||
|
|
||||||
class VenueList(generic.ListView):
|
class VenueList(generic.ListView):
|
||||||
@@ -145,18 +165,28 @@ class VenueCreate(generic.CreateView):
|
|||||||
model = models.Venue
|
model = models.Venue
|
||||||
|
|
||||||
def get_success_url(self):
|
def get_success_url(self):
|
||||||
return reverse_lazy('venue_detail', kwargs={
|
if self.request.is_ajax():
|
||||||
'pk': self.object.pk,
|
url = reverse_lazy('closemodal')
|
||||||
})
|
messages.info(self.request, "modalobject="+serializers.serialize("json", [self.object]))
|
||||||
|
else:
|
||||||
|
url = reverse_lazy('venue_detail', kwargs={
|
||||||
|
'pk': self.object.pk,
|
||||||
|
})
|
||||||
|
return url
|
||||||
|
|
||||||
|
|
||||||
class VenueUpdate(generic.UpdateView):
|
class VenueUpdate(generic.UpdateView):
|
||||||
model = models.Venue
|
model = models.Venue
|
||||||
|
|
||||||
def get_success_url(self):
|
def get_success_url(self):
|
||||||
return reverse_lazy('venue_detail', kwargs={
|
if self.request.is_ajax():
|
||||||
'pk': self.object.pk,
|
url = reverse_lazy('closemodal')
|
||||||
})
|
messages.info(self.request, "modalobject="+serializers.serialize("json", [self.object]))
|
||||||
|
else:
|
||||||
|
url = reverse_lazy('venue_detail', kwargs={
|
||||||
|
'pk': self.object.pk,
|
||||||
|
})
|
||||||
|
return url
|
||||||
|
|
||||||
|
|
||||||
class SecureAPIRequest(generic.View):
|
class SecureAPIRequest(generic.View):
|
||||||
@@ -189,7 +219,9 @@ class SecureAPIRequest(generic.View):
|
|||||||
|
|
||||||
# Response format where applicable
|
# Response format where applicable
|
||||||
format = request.GET.get('format', 'json')
|
format = request.GET.get('format', 'json')
|
||||||
fields = request.GET.get('fields', None).split(',')
|
fields = request.GET.get('fields', None)
|
||||||
|
if fields:
|
||||||
|
fields = fields.split(",")
|
||||||
|
|
||||||
# Supply data for one record
|
# Supply data for one record
|
||||||
if pk:
|
if pk:
|
||||||
|
|||||||
@@ -138,9 +138,17 @@
|
|||||||
jQuery(document).ready(function () {
|
jQuery(document).ready(function () {
|
||||||
jQuery(document).on('click', '.modal-href', function (e) {
|
jQuery(document).on('click', '.modal-href', function (e) {
|
||||||
e.preventDefault()
|
e.preventDefault()
|
||||||
|
modaltarget = jQuery(this).data('target')
|
||||||
|
modalobject = "";
|
||||||
jQuery('#modal').load(jQuery(this).attr('href'), function (e) {
|
jQuery('#modal').load(jQuery(this).attr('href'), function (e) {
|
||||||
jQuery('#modal').modal();
|
jQuery('#modal').modal();
|
||||||
});
|
});
|
||||||
|
jQuery('#modal').on('hide.bs.modal', function(e) {
|
||||||
|
if(modaltarget != "" && modalobject != "") {
|
||||||
|
jQuery(modaltarget).val(modalobject[0]['pk']);
|
||||||
|
jQuery(modaltarget+'-input').val(modalobject[0]['fields']['name']);
|
||||||
|
}
|
||||||
|
})
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<div class="modal-dialog">
|
<div class="modal-dialog modal-lg">
|
||||||
<div class="modal-content">
|
<div class="modal-content">
|
||||||
<div class="modal-header">
|
<div class="modal-header">
|
||||||
<button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button>
|
<button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button>
|
||||||
@@ -10,5 +10,16 @@
|
|||||||
<div class="modal-footer">
|
<div class="modal-footer">
|
||||||
{% block footer %}{% endblock %}
|
{% block footer %}{% endblock %}
|
||||||
</div>
|
</div>
|
||||||
|
<script>
|
||||||
|
$('.modal-content form').on('submit', function(e) {
|
||||||
|
e.preventDefault();
|
||||||
|
data = $(this).serialize();
|
||||||
|
action = $(this).attr('action');
|
||||||
|
console.log(action)
|
||||||
|
$.post(action, data, function(resp) {
|
||||||
|
$('#modal').html(resp);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
</script>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
Reference in New Issue
Block a user