You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@superset.apache.org by hu...@apache.org on 2021/01/29 17:49:53 UTC
[superset] branch master updated: refactor: change Windows new tab
shortcut to ctrl + q (#12772)
This is an automated email from the ASF dual-hosted git repository.
hugh pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/superset.git
The following commit(s) were added to refs/heads/master by this push:
new 8bc5c40 refactor: change Windows new tab shortcut to ctrl + q (#12772)
8bc5c40 is described below
commit 8bc5c40eab13ee7808cd9924e0837d2bcf318b19
Author: Lyndsi Kay Williams <55...@users.noreply.github.com>
AuthorDate: Fri Jan 29 11:49:13 2021 -0600
refactor: change Windows new tab shortcut to ctrl + q (#12772)
---
superset-frontend/src/SqlLab/components/SqlEditor.jsx | 5 ++++-
.../src/SqlLab/components/TabbedSqlEditors.jsx | 14 +++++++++++++-
superset-frontend/src/utils/common.js | 14 ++++++++++++++
3 files changed, 31 insertions(+), 2 deletions(-)
diff --git a/superset-frontend/src/SqlLab/components/SqlEditor.jsx b/superset-frontend/src/SqlLab/components/SqlEditor.jsx
index ce68a2b..34bcc2d 100644
--- a/superset-frontend/src/SqlLab/components/SqlEditor.jsx
+++ b/superset-frontend/src/SqlLab/components/SqlEditor.jsx
@@ -43,6 +43,7 @@ import {
Input,
} from 'src/common/components';
import Icon from 'src/components/Icon';
+import { detectOS } from 'src/utils/common';
import {
addQueryEditor,
CtasEnum,
@@ -278,6 +279,8 @@ class SqlEditor extends React.PureComponent {
}
getHotkeyConfig() {
+ // Get the user's OS
+ const userOS = detectOS();
return [
{
name: 'runQuery1',
@@ -301,7 +304,7 @@ class SqlEditor extends React.PureComponent {
},
{
name: 'newTab',
- key: 'ctrl+t',
+ key: userOS === 'Windows' ? 'ctrl+q' : 'ctrl+t',
descr: t('New tab'),
func: () => {
this.props.addQueryEditor({
diff --git a/superset-frontend/src/SqlLab/components/TabbedSqlEditors.jsx b/superset-frontend/src/SqlLab/components/TabbedSqlEditors.jsx
index ce5c23f..028954b 100644
--- a/superset-frontend/src/SqlLab/components/TabbedSqlEditors.jsx
+++ b/superset-frontend/src/SqlLab/components/TabbedSqlEditors.jsx
@@ -29,6 +29,7 @@ import { isFeatureEnabled, FeatureFlag } from 'src/featureFlags';
import { areArraysShallowEqual } from 'src/reduxUtils';
import { Tooltip } from 'src/common/components/Tooltip';
+import { detectOS } from 'src/utils/common';
import * as Actions from '../actions/sqlLab';
import SqlEditor from './SqlEditor';
import TabStatusIcon from './TabStatusIcon';
@@ -69,6 +70,9 @@ const TabTitle = styled.span`
text-transform: none;
`;
+// Get the user's OS
+const userOS = detectOS();
+
class TabbedSqlEditors extends React.PureComponent {
constructor(props) {
super(props);
@@ -411,7 +415,15 @@ class TabbedSqlEditors extends React.PureComponent {
hideAdd={this.props.offline}
onEdit={this.handleEdit}
addIcon={
- <Tooltip id="add-tab" placement="bottom" title="New tab (Ctrl + t)">
+ <Tooltip
+ id="add-tab"
+ placement="bottom"
+ title={
+ userOS === 'Windows'
+ ? t('New tab (Ctrl + q)')
+ : t('New tab (Ctrl + t)')
+ }
+ >
<i data-test="add-tab-icon" className="fa fa-plus-circle" />
</Tooltip>
}
diff --git a/superset-frontend/src/utils/common.js b/superset-frontend/src/utils/common.js
index 2753c02..b14848b 100644
--- a/superset-frontend/src/utils/common.js
+++ b/superset-frontend/src/utils/common.js
@@ -137,3 +137,17 @@ export function applyFormattingToTabularData(data) {
}
export const noOp = () => undefined;
+
+// Detects the user's OS through the browser
+export const detectOS = () => {
+ const { appVersion } = navigator;
+
+ // Leveraging this condition because of stackOverflow
+ // https://stackoverflow.com/questions/11219582/how-to-detect-my-browser-version-and-operating-system-using-javascript
+ if (appVersion.includes('Win')) return 'Windows';
+ if (appVersion.includes('Mac')) return 'MacOS';
+ if (appVersion.includes('X11')) return 'UNIX';
+ if (appVersion.includes('Linux')) return 'Linux';
+
+ return 'Unknown OS';
+};