mirror of
https://github.com/DeNNiiInc/dbgate.git
synced 2026-05-01 09:44:00 +00:00
save profiler output to archive
This commit is contained in:
@@ -5,6 +5,7 @@ const { archivedir, clearArchiveLinksCache, resolveArchiveFolder } = require('..
|
|||||||
const socket = require('../utility/socket');
|
const socket = require('../utility/socket');
|
||||||
const { saveFreeTableData } = require('../utility/freeTableStorage');
|
const { saveFreeTableData } = require('../utility/freeTableStorage');
|
||||||
const loadFilesRecursive = require('../utility/loadFilesRecursive');
|
const loadFilesRecursive = require('../utility/loadFilesRecursive');
|
||||||
|
const getJslFileName = require('../utility/getJslFileName');
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
folders_meta: true,
|
folders_meta: true,
|
||||||
@@ -150,6 +151,15 @@ module.exports = {
|
|||||||
return true;
|
return true;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
saveJslData_meta: true,
|
||||||
|
async saveJslData({ folder, file, jslid }) {
|
||||||
|
const source = getJslFileName(jslid);
|
||||||
|
const target = path.join(resolveArchiveFolder(folder), `${file}.jsonl`);
|
||||||
|
await fs.copyFile(source, target);
|
||||||
|
socket.emitChanged(`archive-files-changed-${folder}`);
|
||||||
|
return true;
|
||||||
|
},
|
||||||
|
|
||||||
async getNewArchiveFolder({ database }) {
|
async getNewArchiveFolder({ database }) {
|
||||||
const isLink = database.endsWith(database);
|
const isLink = database.endsWith(database);
|
||||||
const name = isLink ? database.slice(0, -5) : database;
|
const name = isLink ? database.slice(0, -5) : database;
|
||||||
|
|||||||
@@ -20,6 +20,15 @@
|
|||||||
testEnabled: () => getCurrentEditor()?.isProfiling(),
|
testEnabled: () => getCurrentEditor()?.isProfiling(),
|
||||||
onClick: () => getCurrentEditor().stopProfiling(),
|
onClick: () => getCurrentEditor().stopProfiling(),
|
||||||
});
|
});
|
||||||
|
|
||||||
|
registerCommand({
|
||||||
|
id: 'profiler.save',
|
||||||
|
category: 'Profiler',
|
||||||
|
name: 'Save',
|
||||||
|
icon: 'icon save',
|
||||||
|
testEnabled: () => getCurrentEditor()?.saveEnabled(),
|
||||||
|
onClick: () => getCurrentEditor().save(),
|
||||||
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
@@ -32,6 +41,9 @@
|
|||||||
import JslDataGrid from '../datagrid/JslDataGrid.svelte';
|
import JslDataGrid from '../datagrid/JslDataGrid.svelte';
|
||||||
import ErrorInfo from '../elements/ErrorInfo.svelte';
|
import ErrorInfo from '../elements/ErrorInfo.svelte';
|
||||||
import VerticalSplitter from '../elements/VerticalSplitter.svelte';
|
import VerticalSplitter from '../elements/VerticalSplitter.svelte';
|
||||||
|
import { showModal } from '../modals/modalTools';
|
||||||
|
import SaveArchiveModal from '../modals/SaveArchiveModal.svelte';
|
||||||
|
import { currentArchive, selectedWidget } from '../stores';
|
||||||
import { apiCall } from '../utility/api';
|
import { apiCall } from '../utility/api';
|
||||||
import createActivator, { getActiveComponent } from '../utility/createActivator';
|
import createActivator, { getActiveComponent } from '../utility/createActivator';
|
||||||
|
|
||||||
@@ -91,6 +103,24 @@
|
|||||||
|
|
||||||
invalidateCommands();
|
invalidateCommands();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function saveEnabled() {
|
||||||
|
return !!jslid;
|
||||||
|
}
|
||||||
|
|
||||||
|
async function doSave(folder, file) {
|
||||||
|
await apiCall('archive/save-jsl-data', { folder, file, jslid });
|
||||||
|
currentArchive.set(folder);
|
||||||
|
selectedWidget.set('archive');
|
||||||
|
}
|
||||||
|
|
||||||
|
export function save() {
|
||||||
|
showModal(SaveArchiveModal, {
|
||||||
|
// folder: archiveFolder,
|
||||||
|
// file: archiveFile,
|
||||||
|
onSave: doSave,
|
||||||
|
});
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<ToolStripContainer>
|
<ToolStripContainer>
|
||||||
@@ -111,5 +141,6 @@
|
|||||||
<svelte:fragment slot="toolstrip">
|
<svelte:fragment slot="toolstrip">
|
||||||
<ToolStripCommandButton command="profiler.start" />
|
<ToolStripCommandButton command="profiler.start" />
|
||||||
<ToolStripCommandButton command="profiler.stop" />
|
<ToolStripCommandButton command="profiler.stop" />
|
||||||
|
<ToolStripCommandButton command="profiler.save" />
|
||||||
</svelte:fragment>
|
</svelte:fragment>
|
||||||
</ToolStripContainer>
|
</ToolStripContainer>
|
||||||
|
|||||||
Reference in New Issue
Block a user