From b39b1b5e15587a72b255554f471c90417dabb6b0 Mon Sep 17 00:00:00 2001 From: Ran Byron Date: Tue, 5 Mar 2019 11:52:09 +0200 Subject: [PATCH 1/5] Name help text for date range only --- .../EditParameterSettingsDialog.jsx | 30 ++++++++++++++++--- 1 file changed, 26 insertions(+), 4 deletions(-) diff --git a/client/app/components/EditParameterSettingsDialog.jsx b/client/app/components/EditParameterSettingsDialog.jsx index 27f4770689..af1da0de8e 100644 --- a/client/app/components/EditParameterSettingsDialog.jsx +++ b/client/app/components/EditParameterSettingsDialog.jsx @@ -1,4 +1,5 @@ -import { includes, words, capitalize, clone, isNull } from 'lodash'; + +import { includes, startsWith, words, capitalize, clone, isNull } from 'lodash'; import React, { useState, useEffect } from 'react'; import PropTypes from 'prop-types'; import Modal from 'antd/lib/modal'; @@ -18,8 +19,16 @@ function getDefaultTitle(text) { return capitalize(words(text).join(' ')); // humanize } -function NameInput({ name, onChange, existingNames, setValidation }) { - let helpText = `This is what will be added to your query editor {{ ${name} }}`; +function isTypeDate(type) { + return startsWith('date', type) && !isTypeDateRange(type); +} + +function isTypeDateRange(type) { + return startsWith('date-range', type); +} + +function NameInput({ name, type, onChange, existingNames, setValidation }) { + let helpText = ''; let validateStatus = ''; if (!name) { @@ -30,6 +39,16 @@ function NameInput({ name, onChange, existingNames, setValidation }) { setValidation(false); validateStatus = 'error'; } else { + if (isTypeDateRange(type)) { + helpText = ( + + Appears in query as {' '} + + {`{{${name}.start}} {{${name}.end}}`} + + + ); + } setValidation(true); } @@ -51,6 +70,7 @@ NameInput.propTypes = { onChange: PropTypes.func.isRequired, existingNames: PropTypes.arrayOf(PropTypes.string).isRequired, setValidation: PropTypes.func.isRequired, + type: PropTypes.string.isRequired, }; function EditParameterSettingsDialog(props) { @@ -107,6 +127,7 @@ function EditParameterSettingsDialog(props) { onOk={onConfirm} okText={isNew ? 'Add Parameter' : null} okButtonProps={{ disabled: !isFulfilled() }} + width={600} >
{isNew && ( @@ -115,6 +136,7 @@ function EditParameterSettingsDialog(props) { onChange={name => setParam({ ...param, name })} setValidation={setIsNameValid} existingNames={props.existingParams} + type={param.type} /> )} @@ -143,7 +165,7 @@ function EditParameterSettingsDialog(props) { - {includes(['date', 'datetime-local', 'datetime-with-seconds'], param.type) && ( + {isTypeDate(param.type) && ( Date: Tue, 5 Mar 2019 12:15:15 +0200 Subject: [PATCH 2/5] Autofocus on name input --- client/app/components/EditParameterSettingsDialog.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/app/components/EditParameterSettingsDialog.jsx b/client/app/components/EditParameterSettingsDialog.jsx index af1da0de8e..12000044b7 100644 --- a/client/app/components/EditParameterSettingsDialog.jsx +++ b/client/app/components/EditParameterSettingsDialog.jsx @@ -60,7 +60,7 @@ function NameInput({ name, type, onChange, existingNames, setValidation }) { validateStatus={validateStatus} {...formItemProps} > - onChange(e.target.value)} /> + onChange(e.target.value)} autoFocus /> ); } From d0e8623d6c6aa9d72b6f1368b782a4690a2966ec Mon Sep 17 00:00:00 2001 From: Ran Byron Date: Tue, 5 Mar 2019 12:24:45 +0200 Subject: [PATCH 3/5] Form acts on enter key --- .../components/EditParameterSettingsDialog.jsx | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/client/app/components/EditParameterSettingsDialog.jsx b/client/app/components/EditParameterSettingsDialog.jsx index 12000044b7..1ebc3c89a2 100644 --- a/client/app/components/EditParameterSettingsDialog.jsx +++ b/client/app/components/EditParameterSettingsDialog.jsx @@ -5,6 +5,7 @@ import PropTypes from 'prop-types'; import Modal from 'antd/lib/modal'; import Form from 'antd/lib/form'; import Checkbox from 'antd/lib/checkbox'; +import Button from 'antd/lib/button'; import Select from 'antd/lib/select'; import Input from 'antd/lib/input'; import Divider from 'antd/lib/divider'; @@ -109,7 +110,7 @@ function EditParameterSettingsDialog(props) { return true; } - function onConfirm() { + function onConfirm(e) { // update title to default if (!param.title) { // forced to do this cause param won't update in time for save @@ -118,18 +119,24 @@ function EditParameterSettingsDialog(props) { } props.dialog.close(param); + + e.preventDefault(); // stops form redirect } return ( Cancel + ), ( + + )]} > - + {isNew && ( Date: Wed, 6 Mar 2019 08:21:48 +0200 Subject: [PATCH 4/5] Fixed range check --- client/app/components/EditParameterSettingsDialog.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/app/components/EditParameterSettingsDialog.jsx b/client/app/components/EditParameterSettingsDialog.jsx index 1ebc3c89a2..2f981b0e39 100644 --- a/client/app/components/EditParameterSettingsDialog.jsx +++ b/client/app/components/EditParameterSettingsDialog.jsx @@ -25,7 +25,7 @@ function isTypeDate(type) { } function isTypeDateRange(type) { - return startsWith('date-range', type); + return /-range/.test(type); } function NameInput({ name, type, onChange, existingNames, setValidation }) { From 7d6e0d8f8c86265aa9e06c481a3be4cbf5cd6f04 Mon Sep 17 00:00:00 2001 From: Ran Byron Date: Wed, 6 Mar 2019 09:24:50 +0200 Subject: [PATCH 5/5] Fixed startsWith --- client/app/components/EditParameterSettingsDialog.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/app/components/EditParameterSettingsDialog.jsx b/client/app/components/EditParameterSettingsDialog.jsx index 2f981b0e39..01b0504156 100644 --- a/client/app/components/EditParameterSettingsDialog.jsx +++ b/client/app/components/EditParameterSettingsDialog.jsx @@ -21,7 +21,7 @@ function getDefaultTitle(text) { } function isTypeDate(type) { - return startsWith('date', type) && !isTypeDateRange(type); + return startsWith(type, 'date') && !isTypeDateRange(type); } function isTypeDateRange(type) {