From c9df2828b028d9be2ec81acab4660a7143429656 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Laura=20Kl=C3=BCnder?= Date: Wed, 25 Dec 2019 12:37:20 +0100 Subject: [PATCH] front-end ui to launch location randomizer --- src/c3nav/settings.py | 4 ++++ src/c3nav/site/static/site/css/c3nav.scss | 13 ++++++++++++- src/c3nav/site/static/site/js/c3nav.js | 3 +++ src/c3nav/site/templates/site/map.html | 3 ++- src/c3nav/site/views.py | 3 +++ 5 files changed, 24 insertions(+), 2 deletions(-) diff --git a/src/c3nav/settings.py b/src/c3nav/settings.py index 2f8ec8a6..4c07cff3 100644 --- a/src/c3nav/settings.py +++ b/src/c3nav/settings.py @@ -66,6 +66,10 @@ PUBLIC_EDITOR = config.getboolean('c3nav', 'editor', fallback=True) PUBLIC_BASE_MAPDATA = config.getboolean('c3nav', 'public_base_mapdata', fallback=False) AUTO_PROCESS_UPDATES = config.getboolean('c3nav', 'auto_process_updates', fallback=True) +RANDOM_LOCATION_GROUPS = config.get('c3nav', 'random_location_groups', fallback=None) +if RANDOM_LOCATION_GROUPS: + RANDOM_LOCATION_GROUPS = tuple(int(i) for i in RANDOM_LOCATION_GROUPS.split(',')) + if config.has_option('django', 'secret'): SECRET_KEY = config.get('django', 'secret') else: diff --git a/src/c3nav/site/static/site/css/c3nav.scss b/src/c3nav/site/static/site/css/c3nav.scss index 57008dc7..f907916c 100644 --- a/src/c3nav/site/static/site/css/c3nav.scss +++ b/src/c3nav/site/static/site/css/c3nav.scss @@ -671,7 +671,18 @@ main.show-options #resultswrapper #route-options { font-size: 35px; top: 5px; } -.locationinput:not(.empty) button.locate, .locationinput.empty button.clear { +main:not([data-random-location-groups]) button.random { + display: none; +} +#search button.random { + right: 45px; + color: lighten($color-icon-light, 18%); + &:hover { + color: lighten($color-icon-light, 8%); + } +} +.locationinput:not(.empty) button.locate, .locationinput.empty button.clear, +main[data-view^=route] button.random, .locationinput:not(.empty) button.random { -webkit-transform: scale(0.7); -ms-transform: scale(0.7); transform: scale(0.7); diff --git a/src/c3nav/site/static/site/js/c3nav.js b/src/c3nav/site/static/site/js/c3nav.js index defc0d4a..2632a3ef 100644 --- a/src/c3nav/site/static/site/js/c3nav.js +++ b/src/c3nav/site/static/site/js/c3nav.js @@ -155,6 +155,8 @@ c3nav = { c3nav.ssids = $main.is('[data-ssids]') ? JSON.parse($main.attr('data-ssids')) : null; + c3nav.random_location_groups = $main.is('[data-random-location-groups]') ? $main.attr('data-random-location-groups').split(',') : null; + history.replaceState(state, window.location.path); c3nav.load_state(state, true); c3nav.update_map_locations(); @@ -865,6 +867,7 @@ c3nav = { .on('keydown', c3nav._locationinput_keydown); $('.locationinput .clear').on('click', c3nav._locationinput_clear); $('.locationinput .locate').on('click', c3nav._locationinput_locate); + $('.locationinput .random').on('click', c3nav._modal_link_click); $('.leaflet-control-user-location a').on('click', c3nav._goto_user_location_click).dblclick(function(e) { e.stopPropagation(); }); $('#autocomplete').on('mouseover', '.location', c3nav._locationinput_hover_suggestion) .on('click', '.location', c3nav._locationinput_click_suggestion); diff --git a/src/c3nav/site/templates/site/map.html b/src/c3nav/site/templates/site/map.html index 041d9faa..c6b41c8e 100644 --- a/src/c3nav/site/templates/site/map.html +++ b/src/c3nav/site/templates/site/map.html @@ -4,7 +4,7 @@ {% load i18n %} {% block content %} -
+
{% if not request.mobileclient %}
{% if not embed %} @@ -108,6 +108,7 @@ place + diff --git a/src/c3nav/site/views.py b/src/c3nav/site/views.py index 5f09b948..a3f9a159 100644 --- a/src/c3nav/site/views.py +++ b/src/c3nav/site/views.py @@ -136,6 +136,9 @@ def map_index(request, mode=None, slug=None, slug2=None, details=None, options=N 'initial_bounds': json.dumps(initial_bounds, separators=(',', ':')) if initial_bounds else None, 'last_site_update': json.dumps(SiteUpdate.last_update()), 'ssids': json.dumps(settings.WIFI_SSIDS, separators=(',', ':')) if settings.WIFI_SSIDS else None, + 'random_location_groups': ( + ','.join(str(i) for i in settings.RANDOM_LOCATION_GROUPS) if settings.RANDOM_LOCATION_GROUPS else None + ), 'editor': can_access_editor(request), 'embed': bool(embed), }