add feature: swap locations
This commit is contained in:
parent
2ee8b8a8e1
commit
13883e91a6
2 changed files with 44 additions and 0 deletions
|
@ -50,6 +50,7 @@ c3nav = {
|
|||
$('.locationselect .close-map').click(c3nav._locationselect_close_map);
|
||||
$('.locationselect .level-selector a').click(c3nav._locationselect_click_level);
|
||||
$('.locationselect .map-container').on('click', 'img', c3nav._locationselect_click_image);
|
||||
$('.location-group .swap').click(c3nav.swap_locations);
|
||||
$('#route-from-here').click(c3nav._click_route_from_here);
|
||||
$('#route-to-here').click(c3nav._click_route_to_here);
|
||||
|
||||
|
@ -74,6 +75,37 @@ c3nav = {
|
|||
window.onpopstate = c3nav._onpopstate;
|
||||
},
|
||||
|
||||
swap_locations: function(e) {
|
||||
e.preventDefault();
|
||||
var origin_select = $('.origin-select');
|
||||
var destination_select = $('.destination-select');
|
||||
var has_orig = origin_select.is('.selected');
|
||||
var has_dest = destination_select.is('.selected');
|
||||
|
||||
var orig_id = '',
|
||||
orig_html = '',
|
||||
dest_id = '',
|
||||
dest_html = '';
|
||||
|
||||
if (has_orig) {
|
||||
orig_id = origin_select.find('.id-field').val();
|
||||
orig_html = origin_select.find('.locationselect-selected .location').html();
|
||||
}
|
||||
if (has_dest) {
|
||||
dest_id = destination_select.find('.id-field').val();
|
||||
dest_html = destination_select.find('.locationselect-selected .location').html();
|
||||
destination_select.toggleClass('selected', has_orig);
|
||||
destination_select.find('.id_field').val(orig_id);
|
||||
destination_select.find('.locationselect-selected .location').html(orig_html);
|
||||
}
|
||||
if (has_orig) {
|
||||
origin_select.toggleClass('selected', has_dest);
|
||||
origin_select.find('.id_field').val(dest_id);
|
||||
origin_select.find('.locationselect-selected .location').html(dest_html);
|
||||
}
|
||||
|
||||
|
||||
},
|
||||
_locationselect_reset: function(e) {
|
||||
e.preventDefault();
|
||||
var location_group = $(this).closest('.location-group');
|
||||
|
|
|
@ -2,6 +2,18 @@
|
|||
<div class="col-md-{% if name == 'location' %}12{% else %}6{% endif %} location-group {{ name }}-select{% if location %} selected{% endif %}{% if active_field == name and map_level %} map{% endif %}">
|
||||
<div class="form-group{% if search == name and not search_results %} has-error{% endif %}" data-name="{{ name }}">
|
||||
<label for="{{ name }}_input">{{ heading }}</label>
|
||||
{% if name == 'destination' %}
|
||||
{% if origin %}
|
||||
{% if destination %}
|
||||
<a class="swap pull-right" href="{% url 'site.route' origin=destination.location_id destination=origin.location_id %}">{% trans 'swap' %}</a>
|
||||
{% else %}
|
||||
<a class="swap pull-right" href="{% url 'site.destination' destination=origin.location_id %}">{% trans 'swap' %}</a>
|
||||
{% endif %}
|
||||
{% elif destination %}
|
||||
<a class="swap pull-right" href="{% url 'site.origin' destination=destination.location_id %}">{% trans 'swap' %}</a>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
||||
<div class="locationselect">
|
||||
<div class="locationselect-input">
|
||||
{% if search == name and search_results %}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue