mistercrunch closed pull request #4090: Using TextAreaControl for WHERE and
HAVING clause section
URL: https://github.com/apache/incubator-superset/pull/4090
This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:
As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):
diff --git
a/superset/assets/javascripts/explore/components/controls/TextAreaControl.jsx
b/superset/assets/javascripts/explore/components/controls/TextAreaControl.jsx
index bf789b6b14..47b5454f4c 100644
---
a/superset/assets/javascripts/explore/components/controls/TextAreaControl.jsx
+++
b/superset/assets/javascripts/explore/components/controls/TextAreaControl.jsx
@@ -22,6 +22,9 @@ const propTypes = {
value: PropTypes.string,
height: PropTypes.number,
language: PropTypes.oneOf([null, 'json', 'html', 'sql', 'markdown']),
+ minLines: PropTypes.number,
+ maxLines: PropTypes.number,
+ offerEditInModal: PropTypes.bool,
};
const defaultProps = {
@@ -30,6 +33,9 @@ const defaultProps = {
onChange: () => {},
value: '',
height: 250,
+ minLines: 10,
+ maxLines: 10,
+ offerEditInModal: true,
};
export default class TextAreaControl extends React.Component {
@@ -46,8 +52,8 @@ export default class TextAreaControl extends React.Component {
mode={this.props.language}
theme="textmate"
style={{ border: '1px solid #CCC' }}
- minLines={inModal ? 40 : 10}
- maxLines={inModal ? 1000 : 10}
+ minLines={inModal ? 40 : this.props.minLines}
+ maxLines={inModal ? 1000 : this.props.maxLines}
onChange={this.onAceChange.bind(this)}
width="100%"
editorProps={{ $blockScrolling: true }}
@@ -73,16 +79,17 @@ export default class TextAreaControl extends
React.Component {
<div>
{controlHeader}
{this.renderEditor()}
- <ModalTrigger
- bsSize="large"
- modalTitle={controlHeader}
- triggerNode={
- <Button bsSize="small" className="m-t-5">
- {t('Edit')} <strong>{this.props.language}</strong> {t('in
modal')}
- </Button>
- }
- modalBody={this.renderEditor(true)}
- />
+ {this.props.offerEditInModal &&
+ <ModalTrigger
+ bsSize="large"
+ modalTitle={controlHeader}
+ triggerNode={
+ <Button bsSize="small" className="m-t-5">
+ {t('Edit')} <strong>{this.props.language}</strong> {t('in
modal')}
+ </Button>
+ }
+ modalBody={this.renderEditor(true)}
+ />}
</div>
);
}
diff --git a/superset/assets/javascripts/explore/stores/controls.jsx
b/superset/assets/javascripts/explore/stores/controls.jsx
index 006a1b49e3..5c18b4dacf 100644
--- a/superset/assets/javascripts/explore/stores/controls.jsx
+++ b/superset/assets/javascripts/explore/stores/controls.jsx
@@ -910,9 +910,13 @@ export const controls = {
},
where: {
- type: 'TextControl',
+ type: 'TextAreaControl',
label: t('Custom WHERE clause'),
default: '',
+ language: 'sql',
+ minLines: 2,
+ maxLines: 10,
+ offerEditInModal: false,
description: t('The text in this box gets included in your query\'s WHERE
' +
'clause, as an AND to other criteria. You can include ' +
'complex expression, parenthesis and anything else ' +
@@ -920,9 +924,13 @@ export const controls = {
},
having: {
- type: 'TextControl',
+ type: 'TextAreaControl',
label: t('Custom HAVING clause'),
default: '',
+ language: 'sql',
+ minLines: 2,
+ maxLines: 10,
+ offerEditInModal: false,
description: t('The text in this box gets included in your query\'s HAVING
' +
'clause, as an AND to other criteria. You can include ' +
'complex expression, parenthesis and anything else ' +
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
With regards,
Apache Git Services