mirror of
https://github.com/DeNNiiInc/dbgate.git
synced 2026-05-03 08:13:57 +00:00
save using ctrl+s
This commit is contained in:
@@ -89,13 +89,7 @@ export default function ChartEditor({ data, config, setConfig, sql, conid, datab
|
|||||||
{/* <option value="bubble">Bubble</option>
|
{/* <option value="bubble">Bubble</option>
|
||||||
<option value="scatter">Scatter</option> */}
|
<option value="scatter">Scatter</option> */}
|
||||||
</FormSelectField>
|
</FormSelectField>
|
||||||
<FormSelectField label="Color set" name="colorSeed">
|
<FormTextField label="Color set" name="colorSeed" />
|
||||||
<option value="a">1</option>
|
|
||||||
<option value="2">2</option>
|
|
||||||
<option value="3">3</option>
|
|
||||||
<option value="4">4</option>
|
|
||||||
<option value="5">5</option>
|
|
||||||
</FormSelectField>
|
|
||||||
<FormSelectField label="Truncate from" name="truncateFrom">
|
<FormSelectField label="Truncate from" name="truncateFrom">
|
||||||
<option value="begin">Begin</option>
|
<option value="begin">Begin</option>
|
||||||
<option value="end">End (most recent data for datetime)</option>
|
<option value="end">End (most recent data for datetime)</option>
|
||||||
|
|||||||
@@ -66,7 +66,7 @@ export default function DataChart({ data }) {
|
|||||||
key={`${values.chartType}|${containerWidth}|${containerHeight}`}
|
key={`${values.chartType}|${containerWidth}|${containerHeight}`}
|
||||||
width={containerWidth}
|
width={containerWidth}
|
||||||
height={containerHeight}
|
height={containerHeight}
|
||||||
data={createChartData(data, labelColumn, dataColumns, values.colorSeed || 1, values.chartType)}
|
data={createChartData(data, labelColumn, dataColumns, values.colorSeed || '5', values.chartType)}
|
||||||
type={values.chartType}
|
type={values.chartType}
|
||||||
/>
|
/>
|
||||||
</ChartWrapper>
|
</ChartWrapper>
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ export default function SaveFileModal({ data, folder, format, modalState, name,
|
|||||||
<ModalHeader modalState={modalState}>Save file</ModalHeader>
|
<ModalHeader modalState={modalState}>Save file</ModalHeader>
|
||||||
<FormProvider initialValues={{ name }}>
|
<FormProvider initialValues={{ name }}>
|
||||||
<ModalContent>
|
<ModalContent>
|
||||||
<FormTextField label="File name" name="name" />
|
<FormTextField label="File name" name="name" focused/>
|
||||||
</ModalContent>
|
</ModalContent>
|
||||||
<ModalFooter>
|
<ModalFooter>
|
||||||
<FormSubmit value="Save" onClick={handleSubmit} />
|
<FormSubmit value="Save" onClick={handleSubmit} />
|
||||||
|
|||||||
@@ -1,15 +1,35 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
import { changeTab } from '../utility/common';
|
import { changeTab } from '../utility/common';
|
||||||
import { useOpenedTabs, useSetOpenedTabs } from '../utility/globalState';
|
import { useOpenedTabs, useSetOpenedTabs } from '../utility/globalState';
|
||||||
|
import keycodes from '../utility/keycodes';
|
||||||
import SaveFileModal from './SaveFileModal';
|
import SaveFileModal from './SaveFileModal';
|
||||||
|
|
||||||
export default function SaveTabModal({ data, folder, format, modalState, tabid }) {
|
export default function SaveTabModal({ data, folder, format, modalState, tabid, tabVisible }) {
|
||||||
const setOpenedTabs = useSetOpenedTabs();
|
const setOpenedTabs = useSetOpenedTabs();
|
||||||
const openedTabs = useOpenedTabs();
|
const openedTabs = useOpenedTabs();
|
||||||
|
|
||||||
const name = openedTabs.find((x) => x.tabid == tabid).title;
|
const name = openedTabs.find((x) => x.tabid == tabid).title;
|
||||||
const onSave = (name) => changeTab(tabid, setOpenedTabs, (tab) => ({ ...tab, title: name }));
|
const onSave = (name) => changeTab(tabid, setOpenedTabs, (tab) => ({ ...tab, title: name }));
|
||||||
|
|
||||||
|
const handleKeyboard = React.useCallback(
|
||||||
|
(e) => {
|
||||||
|
if (e.keyCode == keycodes.s && e.ctrlKey) {
|
||||||
|
e.preventDefault();
|
||||||
|
modalState.open();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
[modalState]
|
||||||
|
);
|
||||||
|
|
||||||
|
React.useEffect(() => {
|
||||||
|
if (tabVisible) {
|
||||||
|
document.addEventListener('keydown', handleKeyboard);
|
||||||
|
return () => {
|
||||||
|
document.removeEventListener('keydown', handleKeyboard);
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}, [tabVisible, handleKeyboard]);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<SaveFileModal data={data} folder={folder} format={format} modalState={modalState} name={name} onSave={onSave} />
|
<SaveFileModal data={data} folder={folder} format={format} modalState={modalState} name={name} onSave={onSave} />
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -61,6 +61,7 @@ export default function ChartTab({ tabVisible, toolbarPortalRef, conid, database
|
|||||||
/>
|
/>
|
||||||
<SaveTabModal
|
<SaveTabModal
|
||||||
modalState={saveFileModalState}
|
modalState={saveFileModalState}
|
||||||
|
tabVisible={tabVisible}
|
||||||
data={modelState.value}
|
data={modelState.value}
|
||||||
format="json"
|
format="json"
|
||||||
folder="charts"
|
folder="charts"
|
||||||
|
|||||||
@@ -165,7 +165,14 @@ export default function QueryTab({ tabid, conid, database, initialArgs, tabVisib
|
|||||||
/>,
|
/>,
|
||||||
toolbarPortalRef.current
|
toolbarPortalRef.current
|
||||||
)}
|
)}
|
||||||
<SaveTabModal modalState={saveFileModalState} data={editorData} format="text" folder="sql" tabid={tabid} />
|
<SaveTabModal
|
||||||
|
modalState={saveFileModalState}
|
||||||
|
tabVisible={tabVisible}
|
||||||
|
data={editorData}
|
||||||
|
format="text"
|
||||||
|
folder="sql"
|
||||||
|
tabid={tabid}
|
||||||
|
/>
|
||||||
</>
|
</>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -124,7 +124,14 @@ export default function ShellTab({ tabid, tabVisible, toolbarPortalRef, ...other
|
|||||||
/>,
|
/>,
|
||||||
toolbarPortalRef.current
|
toolbarPortalRef.current
|
||||||
)}
|
)}
|
||||||
<SaveTabModal modalState={saveFileModalState} data={editorData} format="text" folder="shell" tabid={tabid} />
|
<SaveTabModal
|
||||||
|
modalState={saveFileModalState}
|
||||||
|
tabVisible={tabVisible}
|
||||||
|
data={editorData}
|
||||||
|
format="text"
|
||||||
|
folder="shell"
|
||||||
|
tabid={tabid}
|
||||||
|
/>
|
||||||
</>
|
</>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user