From bf1f5ea3de23a62eca4f823474119e4c15270738 Mon Sep 17 00:00:00 2001 From: Maxime Beauchemin Date: Tue, 11 Oct 2016 15:50:36 -0700 Subject: [PATCH] [sqllab] use encodeURIComponent for copy query URL (#1317) had to bump babel-preset-airbnb for object-rest-spread to work in my env. Change the menu icon, text and tooltip to clarify the usage --- .../javascripts/SqlLab/components/CopyQueryTabUrl.jsx | 9 +++++---- .../assets/javascripts/components/CopyToClipboard.jsx | 9 ++++----- caravel/assets/package.json | 2 +- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/caravel/assets/javascripts/SqlLab/components/CopyQueryTabUrl.jsx b/caravel/assets/javascripts/SqlLab/components/CopyQueryTabUrl.jsx index 13957e2c22..e1bfcc091f 100644 --- a/caravel/assets/javascripts/SqlLab/components/CopyQueryTabUrl.jsx +++ b/caravel/assets/javascripts/SqlLab/components/CopyQueryTabUrl.jsx @@ -27,10 +27,10 @@ export default class CopyQueryTabUrl extends React.Component { const params = []; const qe = this.props.qe; if (qe.dbId) params.push('dbid=' + qe.dbId); - if (qe.title) params.push('title=' + qe.title); - if (qe.schema) params.push('schema=' + qe.schema); + if (qe.title) params.push('title=' + encodeURIComponent(qe.title)); + if (qe.schema) params.push('schema=' + encodeURIComponent(qe.schema)); if (qe.autorun) params.push('autorun=' + qe.autorun); - if (qe.sql) params.push('sql=' + qe.sql); + if (qe.sql) params.push('sql=' + encodeURIComponent(qe.sql)); const queryString = params.join('&'); const queryLink = this.state.cleanUri + '?' + queryString; @@ -43,7 +43,8 @@ export default class CopyQueryTabUrl extends React.Component { copy query} + copyNode={share query} + tooltipText="copy URL to clipboard" shouldShowText={false} /> ); diff --git a/caravel/assets/javascripts/components/CopyToClipboard.jsx b/caravel/assets/javascripts/components/CopyToClipboard.jsx index 367306e31b..5330f8de7a 100644 --- a/caravel/assets/javascripts/components/CopyToClipboard.jsx +++ b/caravel/assets/javascripts/components/CopyToClipboard.jsx @@ -7,6 +7,7 @@ const propTypes = { shouldShowText: PropTypes.bool, text: PropTypes.string.isRequired, inMenu: PropTypes.bool, + tooltipText: PropTypes.string, }; const defaultProps = { @@ -14,6 +15,7 @@ const defaultProps = { onCopyEnd: () => {}, shouldShowText: true, inMenu: false, + tooltipText: 'Copy to clipboard', }; export default class CopyToClipboard extends React.Component { @@ -64,13 +66,10 @@ export default class CopyToClipboard extends React.Component { } tooltipText() { - let tooltipText; if (this.state.hasCopied) { - tooltipText = 'Copied!'; - } else { - tooltipText = 'Copy text'; + return 'Copied!'; } - return tooltipText; + return this.props.tooltipText; } renderLink() { diff --git a/caravel/assets/package.json b/caravel/assets/package.json index 3ce6e77656..5ea806a219 100644 --- a/caravel/assets/package.json +++ b/caravel/assets/package.json @@ -92,7 +92,7 @@ "babel": "^6.3.26", "babel-core": "^6.10.4", "babel-loader": "^6.2.4", - "babel-preset-airbnb": "^2.0.0", + "babel-preset-airbnb": "^2.1.1", "babel-preset-react": "^6.11.1", "chai": "^3.5.0", "codeclimate-test-reporter": "^0.3.3",