summaryrefslogtreecommitdiff
path: root/ishtar_common/templates/ishtar/person_form.html
blob: 10a49cd524ab749766b05984e66e57e7884da3dd (plain)
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 %}
<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}}'/>
<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"><!--//
$(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;
    });


});
//--></script>