1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
|
{% load i18n l10n %}
<div id='person-form'>
<form id='dyn-form-person' method='post'>
{% csrf_token %}
{% for hidden_field in form.hidden_fields %}{{hidden_field}}{% endfor %}
<input type='hidden' name='hidden_person_pk' id='hidden_person_pk' value='{{object.pk|unlocalize}}'/>
<input type='hidden' name='hidden_person_lbl' id='hidden_person_lbl' value="{{object}}"/>
<table class='person'>
<caption>{% trans "Identification" %}</caption>
<tr>
<th><label>{{form.title.label}}</label></th>
<td>{{form.title}}</td>
</tr>
<tr>
<th><label>{{form.name.label}}</label></th>
<td>{{form.name}}</td>
</tr>
<tr>
<th><label>{{form.surname.label}}</label></th>
<td>{{form.surname}}</td>
</tr>
</table>
<table class='person-address'>
<caption>{% trans "Contact informations" %}</caption>
<tr>
<th><label>{{form.address.label}}</label></th>
<td>{{form.address}}</td>
</tr>
<tr>
<th><label>{{form.address_complement.label}}</label></th>
<td>{{form.address_complement}}</td>
</tr>
<tr>
<th><label>{{form.postal_code.label}}</label></th>
<td>{{form.postal_code}}</td>
</tr>
<tr>
<th><label>{{form.town.label}}</label></th>
<td>{{form.town}}</td>
</tr>
</table>
<div>
<input type='submit' id='btn-modify-person' value="{% trans "Modify"%}"/>
<input type='submit' id='btn-new-person' value="{% trans "New"%}"/>
<input type='submit' id='btn-save-person' value="{% trans "Save"%}"/>
<input type='submit' id='btn-cancel-person' value="{% trans "Cancel"%}"/>
</div>
</form>
</div>
<script type="text/javascript">{% localize off %}
$(function() {
// person_save_callback and person_new_callback must have been defined
disable_person = function(){
$("#person-form :input[type='text'], #person-form textarea, #person-form select").prop("disabled", true);
$("#btn-save-person").hide();
$("#btn-cancel-person").hide();
$("#btn-modify-person").show();
$("#btn-new-person").show();
$("#person-form").removeClass('selected');
}
enable_person = function(){
$("#person-form :input[type='text'], #person-form textarea, #person-form select").prop("disabled", false);
$("#btn-save-person").show();
$("#btn-cancel-person").show();
$("#btn-modify-person").hide();
$("#btn-new-person").hide();
$("#person-form").addClass('selected');
}
disable_person();
var submit_url;
$("#btn-modify-person").on('click', function(){
{% if object %}submit_url = "{% url 'person_edit' object.pk %}";
{% else %}submit_url = "{% url 'person_create' %}";{% endif %}
enable_person();
return false;
});
$("#btn-new-person").on('click', function(){
submit_url = "{% url 'person_create' %}";
$("#person-form").find("input[type=text], textarea").val("");
enable_person();
person_new_callback();
return false;
});
$("#btn-cancel-person").on('click', function(){
person_save_callback($('#hidden_person_pk').val(),
$('#hidden_person_lbl').val());
disable_person();
return false;
});
$("#btn-save-person").on('click', function(){
var form = $("#dyn-form-person");
$.ajax({
url: submit_url,
type: 'post',
data: form.serialize(),
dataType: 'html',
success: function(data) {
$("#person-form").parent().html(data);
person_save_callback($('#hidden_person_pk').val(),
$('#hidden_person_lbl').val());
disable_person();
return false;
}
});
return false;
});
});
{% endlocalize %}</script>
|