diff --git a/src/c3nav/mapdata/models/geometry/level.py b/src/c3nav/mapdata/models/geometry/level.py index 7bb773fb..bda8b2a9 100644 --- a/src/c3nav/mapdata/models/geometry/level.py +++ b/src/c3nav/mapdata/models/geometry/level.py @@ -50,7 +50,9 @@ class LevelGeometryMixin(GeometryMixin): def details_display(self): result = super().details_display() - result['display'].insert(3, (str(_('Level')), {'slug': self.level.get_slug(), 'title': self.level.title})) + result['display'].insert(3, (str(_('Level')), {'id': self.level_id, + 'slug': self.level.get_slug(), + 'title': self.level.title})) return result @property diff --git a/src/c3nav/mapdata/models/geometry/space.py b/src/c3nav/mapdata/models/geometry/space.py index cd1fbedf..247ebf6b 100644 --- a/src/c3nav/mapdata/models/geometry/space.py +++ b/src/c3nav/mapdata/models/geometry/space.py @@ -55,7 +55,9 @@ class SpaceGeometryMixin(GeometryMixin): def details_display(self): result = super().details_display() - result['display'].insert(3, (str(_('Space')), {'slug': self.space.get_slug(), 'title': self.space.title})) + result['display'].insert(3, (str(_('Space')), {'id': self.space_id, + 'slug': self.space.get_slug(), + 'title': self.space.title})) return result def register_delete(self): diff --git a/src/c3nav/mapdata/models/locations.py b/src/c3nav/mapdata/models/locations.py index 41de27c8..2142bf0d 100644 --- a/src/c3nav/mapdata/models/locations.py +++ b/src/c3nav/mapdata/models/locations.py @@ -163,7 +163,7 @@ class SpecificLocation(Location, models.Model): for category, groups in sorted(groupcategories.items(), key=lambda item: item[0].priority): result['display'].insert(3, (category.title, tuple( - {'slug': group.get_slug(), 'title': group.title} + {'id': group.pk, 'slug': group.get_slug(), 'title': group.title} for group in sorted(groups, key=attrgetter('priority'), reverse=True) ))) diff --git a/src/c3nav/site/static/site/js/c3nav.js b/src/c3nav/site/static/site/js/c3nav.js index 86b70e11..df9a6741 100644 --- a/src/c3nav/site/static/site/js/c3nav.js +++ b/src/c3nav/site/static/site/js/c3nav.js @@ -61,15 +61,7 @@ c3nav = { }, state: {}, - toggle_details: function(details) { - c3nav._push_state({ - details: (details === undefined) ? !c3nav.state.details : details, - sidebar: true - }); - c3nav._sidebar_state_updated(c3nav.state); - c3nav.set_max_bounds(); - }, - update_state: function(routing, replace) { + update_state: function(routing, replace, details) { if (typeof routing !== "boolean") routing = c3nav.state.routing; var destination = $('#destination-input').data('location'), @@ -79,7 +71,7 @@ c3nav = { origin: origin, destination: destination, sidebar: true, - details: false + details: !!details }; c3nav._push_state(new_state, replace); @@ -110,25 +102,7 @@ c3nav = { c3nav._view = view; if (view === 'location' && state.details) { - var $location_details = $('#location-details'); - var location_id = state.destination.id; - if (parseInt($location_details.attr('data-id')) !== location_id) { - $location_details.addClass('loading').attr('data-id', location_id); - $.getJSON('/api/locations/'+state.destination.slug+'/display', function (data) { - if (parseInt($location_details.attr('data-id')) !== location_id) { - // loaded too late, information no longer needed - return; - } - var line, elem = $('