/
address-edit.jinja
108 lines (102 loc) · 4.29 KB
/
address-edit.jinja
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
{% extends 'account-base.jinja' %}
{% from '_helpers.jinja' import render_field %}
{% block main %}
<section class="my-account">
<div class="container">
<div class="row">
<div class="col-md-10 col-md-offset-1">
{{ account_header(_('My Account / Edit Address'), 'address-book') }}
</div>
<div class="row">
<div class="row">
<h4 class="account-heading col-md-7 col-md-offset-1"> {{ _('Edit Address ') }}</h4>
</div>
<div class="row">
<div class="col-md-7 col-md-offset-1">
<form action="{{ url_for('party.address.edit_address', address=address) }}"
method="post" id="address" autocomplete="off">
{{ form.hidden_tag() }}
{{ render_field(form.name, class_="form-control") }}
{{ render_field(form.street, placeholder=_("Street address, P.O. box, company name, c/o"), class_="form-control", label_text= _('Address Line 1')) }}
{{ render_field(form.streetbis, placeholder=_("Apartment, suite, unit, building, floor, etc."), class_="form-control", label_text= _('Address Line 2')) }}
<div class="row">
<div class="col-md-6">
{{ render_field(form.city, class_="form-control") }}
</div>
<div class="col-md-6">
{{ render_field(form.zip, class_="form-control") }}
</div>
</div>
<div class="row">
<div class="col-md-6">
{{ render_field(form.country, class_="form-control")}}
</div>
{% set field = form.subdivision %}
<div class="form-group col-md-6">
<label for="{{ field.id }}">{{ _("State") }} *:</label>
<select name="{{ field.name }}" id="{{ field.id }}" selected_id="{{field.data}}" class="form-control">
</select>
{% if field.description %}
<br/><span class="help-block">{{ field.description }}</span>
{% endif %}
{% for error in field.errors %}
<br/><span class="help-block">{{ error }}</span>
{% endfor %}
</div>
</div>
<div class="row">
<div class="col-md-6">
{{ render_field(form.phone, class_="form-control") }}
</div>
</div>
<button href="" class="btn btn-warning btn-sm" type="submit">{{ _('Save Address') }}</button>
</form>
</div>
</div>
</div>
</div>
</div>
</section>
{% endblock main %}
{% block script_tags %}
{{ super() }}
<script src="{{ url_for('nereid.webshop.send_static_file', filename='js/jquery.validate.min.js') }}"></script>
<script type="text/javascript">
$(document).ready(function(){
// Register on change event
$("select#country").change(function(){
$("select#subdivision").html(''); // Clear options as soon as country change
$.getJSON("{{ url_for('nereid.website.subdivision_list') }}",
{country: $(this).val()}, function(data){
var options = '';
$.each(data.result, function(index, map){
options += '<option value="' + map.id + '" code="' + map.code + '">' + map.name + '</option>';
});
$("select#subdivision").html(options);
$("select#subdivision option[value='{{ form.subdivision.data }}']").attr('selected', true);
});
});
// Onload trigger the change as country comes packed with form
$("select#country").triggerHandler("change")
// Use client side validation on the form
$("form#address").validate({
errorElement: "span",
//wrapper: "li",
errorPlacement: function(error, element) {
error.addClass('help-block');
error.insertAfter(element);
},
highlight: function(element, errorClass) {
$(element).parents("div.form-group").addClass("has-error");
},
unhighlight: function(element, errorClass) {
$(element).parents("div.form-group").removeClass("has-error");
},
submitHandler: function(form) {
$("form#address button").button('loading');
form.submit();
}
});
});
</script>
{% endblock script_tags %}