From 944adb95ba29bf241fa9a0af9a80734f3afbb3e3 Mon Sep 17 00:00:00 2001 From: deecay Date: Sun, 15 Dec 2019 03:07:09 +0900 Subject: [PATCH] Map: add tooltip and popup templating (#4443) --- .../assets/less/inc/visualizations/map.less | 5 ++ .../map/Editor/FormatSettings.jsx | 71 +++++++++++++++++++ client/app/visualizations/map/Editor/index.js | 2 + client/app/visualizations/map/getOptions.js | 8 +++ client/app/visualizations/map/initMap.js | 36 ++++++++-- 5 files changed, 115 insertions(+), 7 deletions(-) create mode 100644 client/app/visualizations/map/Editor/FormatSettings.jsx diff --git a/client/app/assets/less/inc/visualizations/map.less b/client/app/assets/less/inc/visualizations/map.less index 85d6c49d32..58407e4964 100644 --- a/client/app/assets/less/inc/visualizations/map.less +++ b/client/app/assets/less/inc/visualizations/map.less @@ -7,3 +7,8 @@ z-index: 0; } } + +.leaflet-popup-content img { + max-width: 100%; + height: auto; +} diff --git a/client/app/visualizations/map/Editor/FormatSettings.jsx b/client/app/visualizations/map/Editor/FormatSettings.jsx new file mode 100644 index 0000000000..5766c86a9a --- /dev/null +++ b/client/app/visualizations/map/Editor/FormatSettings.jsx @@ -0,0 +1,71 @@ +import React from "react"; +import { useDebouncedCallback } from "use-debounce"; +import { Section, Input, Checkbox, TextArea, ContextHelp } from "@/components/visualizations/editor"; +import { EditorPropTypes } from "@/visualizations"; + +function TemplateFormatHint() { + // eslint-disable-line react/prop-types + return ( + +
+ All query result columns can be referenced using {"{{ column_name }}"} syntax. +
+
Leave this field empty to use default template.
+
+ ); +} + +export default function FormatSettings({ options, onOptionsChange }) { + const [onOptionsChangeDebounced] = useDebouncedCallback(onOptionsChange, 200); + + const templateFormatHint = ; + + return ( +
+
+ onOptionsChange({ tooltip: { enabled: event.target.checked } })}> + Show tooltip + +
+ +
+ Tooltip template {templateFormatHint}} + className="w-100" + data-test="Map.Editor.TooltipTemplate" + disabled={!options.tooltip.enabled} + placeholder="Default template" + defaultValue={options.tooltip.template} + onChange={event => onOptionsChangeDebounced({ tooltip: { template: event.target.value } })} + /> +
+ +
+ onOptionsChange({ popup: { enabled: event.target.checked } })}> + Show popup + +
+ +
+