Change admin settings tab for maps
- Rename map settings keys - Add fields for latitude, longitude and zoom - Add a callout message on how to enable map feature
This commit is contained in:
@@ -4,6 +4,7 @@ class Admin::SettingsController < Admin::BaseController
|
||||
all_settings = Setting.all.group_by { |setting| setting.type }
|
||||
@configuration_settings = all_settings["configuration"]
|
||||
@feature_settings = all_settings["feature"]
|
||||
@map_configuration_settings = all_settings["map"]
|
||||
end
|
||||
|
||||
def update
|
||||
@@ -13,9 +14,9 @@ class Admin::SettingsController < Admin::BaseController
|
||||
end
|
||||
|
||||
def update_map
|
||||
Setting["map_latitude"] = params[:latitude].to_f
|
||||
Setting["map_longitude"] = params[:longitude].to_f
|
||||
Setting["map_zoom"] = params[:zoom].to_i
|
||||
Setting["map.latitude"] = params[:latitude].to_f
|
||||
Setting["map.longitude"] = params[:longitude].to_f
|
||||
Setting["map.zoom"] = params[:zoom].to_i
|
||||
redirect_to admin_settings_path, notice: t("admin.settings.index.map.flash.update")
|
||||
end
|
||||
|
||||
|
||||
@@ -5,15 +5,15 @@ module MapLocationsHelper
|
||||
end
|
||||
|
||||
def map_location_latitude(map_location)
|
||||
map_location.present? && map_location.latitude.present? ? map_location.latitude : Setting["map_latitude"]
|
||||
map_location.present? && map_location.latitude.present? ? map_location.latitude : Setting["map.latitude"]
|
||||
end
|
||||
|
||||
def map_location_longitude(map_location)
|
||||
map_location.present? && map_location.longitude.present? ? map_location.longitude : Setting["map_longitude"]
|
||||
map_location.present? && map_location.longitude.present? ? map_location.longitude : Setting["map.longitude"]
|
||||
end
|
||||
|
||||
def map_location_zoom(map_location)
|
||||
map_location.present? && map_location.zoom.present? ? map_location.zoom : Setting["map_zoom"]
|
||||
map_location.present? && map_location.zoom.present? ? map_location.zoom : Setting["map.zoom"]
|
||||
end
|
||||
|
||||
def map_location_input_id(prefix, attribute)
|
||||
|
||||
@@ -1,8 +1,13 @@
|
||||
<% if feature?(:map) %>
|
||||
<h2><%= t("admin.settings.index.map.title") %></h2>
|
||||
|
||||
<%= render "settings_table", settings: @map_configuration_settings %>
|
||||
|
||||
<p><%= t("admin.settings.index.map.help") %></p>
|
||||
|
||||
<%= render "map_form" %>
|
||||
<% else %>
|
||||
<h3>No map to show.</h3>
|
||||
<div class="callout primary">
|
||||
<%= t("admin.settings.index.map.how_to_enable") %>
|
||||
</div>
|
||||
<% end %>
|
||||
@@ -2,14 +2,14 @@
|
||||
<div class="small-12 column">
|
||||
<div id="admin-map" class="map"
|
||||
data-map
|
||||
data-map-center-latitude="<%= Setting["map_latitude"] %>"
|
||||
data-map-center-longitude="<%= Setting["map_longitude"] %>"
|
||||
data-map-zoom="<%= Setting["map_zoom"] %>"
|
||||
data-map-center-latitude="<%= Setting["map.latitude"] %>"
|
||||
data-map-center-longitude="<%= Setting["map.longitude"] %>"
|
||||
data-map-zoom="<%= Setting["map.zoom"] %>"
|
||||
data-map-tiles-provider="<%= Rails.application.secrets.map_tiles_provider %>"
|
||||
data-map-tiles-provider-attribution="<%= Rails.application.secrets.map_tiles_provider_attribution %>"
|
||||
data-marker-editable="true"
|
||||
data-marker-latitude="<%= Setting["map_latitude"] %>"
|
||||
data-marker-longitude="<%= Setting["map_longitude"] %>"
|
||||
data-marker-latitude="<%= Setting["map.latitude"] %>"
|
||||
data-marker-longitude="<%= Setting["map.longitude"] %>"
|
||||
data-latitude-input-selector="#latitude"
|
||||
data-longitude-input-selector="#longitude"
|
||||
data-zoom-input-selector="#zoom">
|
||||
@@ -17,9 +17,9 @@
|
||||
|
||||
<%= form_tag admin_update_map_path, method: :put, id: "map-form" do |f| %>
|
||||
|
||||
<%= hidden_field_tag :latitude, Setting["map_latitude"] %>
|
||||
<%= hidden_field_tag :longitude, Setting["map_longitude"] %>
|
||||
<%= hidden_field_tag :zoom, Setting["map_zoom"] %>
|
||||
<%= hidden_field_tag :latitude, Setting["map.latitude"] %>
|
||||
<%= hidden_field_tag :longitude, Setting["map.longitude"] %>
|
||||
<%= hidden_field_tag :zoom, Setting["map.zoom"] %>
|
||||
|
||||
<div class="small-12 medium-6 large-4 margin-top">
|
||||
<%= submit_tag t("admin.settings.index.map.form.submit"),
|
||||
|
||||
@@ -1188,6 +1188,7 @@ en:
|
||||
update: Map configuration updated succesfully.
|
||||
form:
|
||||
submit: Update
|
||||
how_to_enable: 'To show the map to users you must enable "Proposals and budget investments geolocation" on "Features" tab.'
|
||||
setting: Feature
|
||||
setting_actions: Actions
|
||||
setting_name: Setting
|
||||
|
||||
@@ -52,12 +52,6 @@ en:
|
||||
related_content_score_threshold_description: "According to the rating of votes in a related content, hides content that users mark as unrelated"
|
||||
hot_score_period_in_days: "Period (days) used by the filter 'most active'"
|
||||
hot_score_period_in_days_description: "The filter 'most active' used in multiple sections will be based on the votes during the last X days"
|
||||
map_latitude: "Latitude"
|
||||
map_latitude_description: "Latitude to show the map position"
|
||||
map_longitude: "Longitude"
|
||||
map_longitude_description: "Longitude to show the position of the map"
|
||||
map_zoom: "Zoom"
|
||||
map_zoom_description: "Zoom to show the map position"
|
||||
mailer_from_name: "Sender email name"
|
||||
mailer_from_name_description: "This name will appear as sender name in emails sent from the application"
|
||||
mailer_from_address: "Sender email address"
|
||||
@@ -124,3 +118,10 @@ en:
|
||||
public_stats_description: "Display public stats in the Administration panel"
|
||||
help_page: "Help page"
|
||||
help_page_description: 'Displays a Help menu that contains a page with an info section about each enabled feature. Also custom pages and menus can be created in the "Custom pages" and "Custom content blocks" sections'
|
||||
map:
|
||||
latitude: "Latitude"
|
||||
latitude_description: "Latitude to show the map position"
|
||||
longitude: "Longitude"
|
||||
longitude_description: "Longitude to show the position of the map"
|
||||
zoom: "Zoom"
|
||||
zoom_description: "Zoom to show the map position"
|
||||
|
||||
@@ -1187,6 +1187,7 @@ es:
|
||||
update: La configuración del mapa se ha guardado correctamente.
|
||||
form:
|
||||
submit: Actualizar
|
||||
how_to_enable: 'Para mostrar el mapa a los usuarios se debe de activar "Geolocalización de propuestas y proyectos de gasto" en la pestaña "Funcionalidades".'
|
||||
setting: Funcionalidad
|
||||
setting_actions: Acciones
|
||||
setting_name: Configuración
|
||||
|
||||
@@ -52,12 +52,6 @@ es:
|
||||
related_content_score_threshold_description: "Según la puntuación de votos en un contenido relacionado, oculta el contenido que los usuarios marquen como no relacionado"
|
||||
hot_score_period_in_days: "Periodo (días) usado para el filtro 'Más Activos'"
|
||||
hot_score_period_in_days_description: "El filtro 'Más Activos' usado en diferentes secciones se basará en los votos de los últimos X días"
|
||||
map_latitude: "Latitud"
|
||||
map_latitude_description: "Latitud para mostrar la posición del mapa"
|
||||
map_longitude: "Longitud"
|
||||
map_longitude_description: "Longitud para mostrar la posición del mapa"
|
||||
map_zoom: "Zoom"
|
||||
map_zoom_description: "Zoom para mostrar la posición del mapa"
|
||||
mailer_from_name: "Nombre email remitente"
|
||||
mailer_from_name_description: "Este nombre aparecerá como nombre del remitente en los emails enviados desde la aplicación"
|
||||
mailer_from_address: "Dirección email remitente"
|
||||
@@ -124,3 +118,10 @@ es:
|
||||
public_stats_description: "Muestra las estadísticas públicas en el panel de Administración"
|
||||
help_page: "Página de ayuda"
|
||||
help_page_description: 'Muestra un menú Ayuda que contiene una página con una sección de información sobre cada funcionalidad habilitada. También se pueden crear páginas y menús personalizados en las secciones "Personalizar páginas" y "Personalizar bloques"'
|
||||
map:
|
||||
latitude: "Latitud"
|
||||
latitude_description: "Latitud para mostrar la posición del mapa"
|
||||
longitude: "Longitud"
|
||||
longitude_description: "Longitud para mostrar la posición del mapa"
|
||||
zoom: "Zoom"
|
||||
zoom_description: "Zoom para mostrar la posición del mapa"
|
||||
|
||||
@@ -151,9 +151,9 @@ end
|
||||
section "Geolocating Investments" do
|
||||
Budget.find_each do |budget|
|
||||
budget.investments.each do |investment|
|
||||
MapLocation.create(latitude: Setting["map_latitude"].to_f + rand(-10..10)/100.to_f,
|
||||
longitude: Setting["map_longitude"].to_f + rand(-10..10)/100.to_f,
|
||||
zoom: Setting["map_zoom"],
|
||||
MapLocation.create(latitude: Setting["map.latitude"].to_f + rand(-10..10)/100.to_f,
|
||||
longitude: Setting["map.longitude"].to_f + rand(-10..10)/100.to_f,
|
||||
zoom: Setting["map.zoom"],
|
||||
investment_id: investment.id)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -59,9 +59,9 @@ section "Creating Settings" do
|
||||
"transparent and democratic government")
|
||||
Setting.create(key: "meta_keywords", value: "citizen participation, open government")
|
||||
Setting.create(key: "min_age_to_participate", value: "16")
|
||||
Setting.create(key: "map_latitude", value: 40.41)
|
||||
Setting.create(key: "map_longitude", value: -3.7)
|
||||
Setting.create(key: "map_zoom", value: 10)
|
||||
Setting.create(key: "map.latitude", value: 40.4332002)
|
||||
Setting.create(key: "map.longitude", value: -3.7009591)
|
||||
Setting.create(key: "map.zoom", value: 10)
|
||||
Setting.create(key: "featured_proposals_number", value: 3)
|
||||
Setting.create(key: "proposal_notification_minimum_interval_in_days", value: 0)
|
||||
Setting.create(key: "direct_message_max_per_day", value: 3)
|
||||
|
||||
@@ -106,9 +106,9 @@ Setting["min_age_to_participate"] = 16
|
||||
Setting["featured_proposals_number"] = 3
|
||||
|
||||
# City map feature default configuration (Greenwich)
|
||||
Setting["map_latitude"] = 51.48
|
||||
Setting["map_longitude"] = 0.0
|
||||
Setting["map_zoom"] = 10
|
||||
Setting["map.latitude"] = 51.48
|
||||
Setting["map.longitude"] = 0.0
|
||||
Setting["map.zoom"] = 10
|
||||
|
||||
# Related content
|
||||
Setting["related_content_score_threshold"] = -0.3
|
||||
|
||||
@@ -37,6 +37,9 @@ feature "Admin settings" do
|
||||
visit admin_settings_path
|
||||
find("#map-tab").click
|
||||
|
||||
expect(page).to have_content 'To show the map to users you must enable ' \
|
||||
'"Proposals and budget investments geolocation" ' \
|
||||
'on "Features" tab.'
|
||||
expect(page).not_to have_css("#admin-map")
|
||||
end
|
||||
|
||||
@@ -48,6 +51,9 @@ feature "Admin settings" do
|
||||
find("#map-tab").click
|
||||
|
||||
expect(page).to have_css("#admin-map")
|
||||
expect(page).not_to have_content 'To show the map to users you must enable ' \
|
||||
'"Proposals and budget investments geolocation" ' \
|
||||
'on "Features" tab.'
|
||||
end
|
||||
|
||||
scenario "Should show successful notice" do
|
||||
|
||||
Reference in New Issue
Block a user