mirror of
https://github.com/DeNNiiInc/dbgate.git
synced 2026-04-18 03:16:01 +00:00
SYNC: Handle error when saving to team files
This commit is contained in:
committed by
Diflow
parent
67ee130a9e
commit
5553e3cd8d
@@ -115,7 +115,7 @@ registerCommand({
|
|||||||
toolbar: true,
|
toolbar: true,
|
||||||
icon: 'icon new-connection',
|
icon: 'icon new-connection',
|
||||||
toolbarName: __t('command.new.connection', { defaultMessage: 'Add connection' }),
|
toolbarName: __t('command.new.connection', { defaultMessage: 'Add connection' }),
|
||||||
category: __t('command.new', { defaultMessage: 'New'}),
|
category: __t('command.new', { defaultMessage: 'New' }),
|
||||||
toolbarOrder: 1,
|
toolbarOrder: 1,
|
||||||
name: __t('command.new.connection', { defaultMessage: 'Connection' }),
|
name: __t('command.new.connection', { defaultMessage: 'Connection' }),
|
||||||
testEnabled: () => !getCurrentConfig()?.runAsPortal && !getCurrentConfig()?.storageDatabase,
|
testEnabled: () => !getCurrentConfig()?.runAsPortal && !getCurrentConfig()?.storageDatabase,
|
||||||
@@ -561,7 +561,10 @@ registerCommand({
|
|||||||
testEnabled: () => true,
|
testEnabled: () => true,
|
||||||
onClick: () => {
|
onClick: () => {
|
||||||
showModal(ConfirmModal, {
|
showModal(ConfirmModal, {
|
||||||
message: _t('command.file.resetLayoutConfirm', { defaultMessage: 'Really reset layout data? All opened tabs, settings and layout data will be lost. Connections and saved files will be preserved. After this, restart DbGate for applying changes.' }),
|
message: _t('command.file.resetLayoutConfirm', {
|
||||||
|
defaultMessage:
|
||||||
|
'Really reset layout data? All opened tabs, settings and layout data will be lost. Connections and saved files will be preserved. After this, restart DbGate for applying changes.',
|
||||||
|
}),
|
||||||
onConfirm: async () => {
|
onConfirm: async () => {
|
||||||
await apiCall('config/delete-settings');
|
await apiCall('config/delete-settings');
|
||||||
localStorage.clear();
|
localStorage.clear();
|
||||||
@@ -665,7 +668,9 @@ registerCommand({
|
|||||||
'currentArchive',
|
'currentArchive',
|
||||||
];
|
];
|
||||||
for (const key of keys) removeLocalStorage(key);
|
for (const key of keys) removeLocalStorage(key);
|
||||||
showSnackbarSuccess(_t('command.view.restart', { defaultMessage: 'Restart DbGate (or reload on web) for applying changes' }));
|
showSnackbarSuccess(
|
||||||
|
_t('command.view.restart', { defaultMessage: 'Restart DbGate (or reload on web) for applying changes' })
|
||||||
|
);
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -799,7 +804,9 @@ registerCommand({
|
|||||||
registerCommand({
|
registerCommand({
|
||||||
id: 'file.exit',
|
id: 'file.exit',
|
||||||
category: __t('command.file', { defaultMessage: 'File' }),
|
category: __t('command.file', { defaultMessage: 'File' }),
|
||||||
name: isMac() ? __t('command.file.quit', { defaultMessage: 'Quit' }) : __t('command.file.exit', { defaultMessage: 'Exit' }),
|
name: isMac()
|
||||||
|
? __t('command.file.quit', { defaultMessage: 'Quit' })
|
||||||
|
: __t('command.file.exit', { defaultMessage: 'Exit' }),
|
||||||
// keyText: isMac() ? 'Command+Q' : null,
|
// keyText: isMac() ? 'Command+Q' : null,
|
||||||
testEnabled: () => getElectron() != null,
|
testEnabled: () => getElectron() != null,
|
||||||
onClick: () => getElectron().send('quit-app'),
|
onClick: () => getElectron().send('quit-app'),
|
||||||
@@ -862,6 +869,7 @@ export function registerFileCommands({
|
|||||||
undoRedo = false,
|
undoRedo = false,
|
||||||
executeAdditionalCondition = null,
|
executeAdditionalCondition = null,
|
||||||
copyPaste = false,
|
copyPaste = false,
|
||||||
|
defaultTeamFolder = false,
|
||||||
}) {
|
}) {
|
||||||
if (save) {
|
if (save) {
|
||||||
registerCommand({
|
registerCommand({
|
||||||
@@ -874,7 +882,7 @@ export function registerFileCommands({
|
|||||||
toolbar: true,
|
toolbar: true,
|
||||||
isRelatedToTab: true,
|
isRelatedToTab: true,
|
||||||
testEnabled: () => getCurrentEditor() != null,
|
testEnabled: () => getCurrentEditor() != null,
|
||||||
onClick: () => saveTabFile(getCurrentEditor(), 'save', folder, format, fileExtension),
|
onClick: () => saveTabFile(getCurrentEditor(), 'save', folder, format, fileExtension, defaultTeamFolder),
|
||||||
});
|
});
|
||||||
registerCommand({
|
registerCommand({
|
||||||
id: idPrefix + '.saveAs',
|
id: idPrefix + '.saveAs',
|
||||||
@@ -882,14 +890,14 @@ export function registerFileCommands({
|
|||||||
category,
|
category,
|
||||||
name: __t('command.saveAs', { defaultMessage: 'Save As' }),
|
name: __t('command.saveAs', { defaultMessage: 'Save As' }),
|
||||||
testEnabled: () => getCurrentEditor() != null,
|
testEnabled: () => getCurrentEditor() != null,
|
||||||
onClick: () => saveTabFile(getCurrentEditor(), 'save-as', folder, format, fileExtension),
|
onClick: () => saveTabFile(getCurrentEditor(), 'save-as', folder, format, fileExtension, defaultTeamFolder),
|
||||||
});
|
});
|
||||||
registerCommand({
|
registerCommand({
|
||||||
id: idPrefix + '.saveToDisk',
|
id: idPrefix + '.saveToDisk',
|
||||||
category,
|
category,
|
||||||
name: __t('command.saveToDisk', { defaultMessage: 'Save to disk' }),
|
name: __t('command.saveToDisk', { defaultMessage: 'Save to disk' }),
|
||||||
testEnabled: () => getCurrentEditor() != null && getElectron() != null,
|
testEnabled: () => getCurrentEditor() != null && getElectron() != null,
|
||||||
onClick: () => saveTabFile(getCurrentEditor(), 'save-to-disk', folder, format, fileExtension),
|
onClick: () => saveTabFile(getCurrentEditor(), 'save-to-disk', folder, format, fileExtension, defaultTeamFolder),
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -14,6 +14,8 @@
|
|||||||
import { closeCurrentModal, showModal } from './modalTools';
|
import { closeCurrentModal, showModal } from './modalTools';
|
||||||
import FormCloudFolderSelect from '../forms/FormCloudFolderSelect.svelte';
|
import FormCloudFolderSelect from '../forms/FormCloudFolderSelect.svelte';
|
||||||
import FormCheckboxField from '../forms/FormCheckboxField.svelte';
|
import FormCheckboxField from '../forms/FormCheckboxField.svelte';
|
||||||
|
import { useConfig } from '../utility/metadataLoaders';
|
||||||
|
import { showSnackbarError } from '../utility/snackbar';
|
||||||
|
|
||||||
export let data;
|
export let data;
|
||||||
export let name;
|
export let name;
|
||||||
@@ -24,26 +26,37 @@
|
|||||||
export let onSave = undefined;
|
export let onSave = undefined;
|
||||||
export let folid;
|
export let folid;
|
||||||
export let skipLocal = false;
|
export let skipLocal = false;
|
||||||
|
export let defaultTeamFolder = false;
|
||||||
// export let cntid;
|
// export let cntid;
|
||||||
|
|
||||||
const values = writable({ name, cloudFolder: folid ?? '__local' });
|
const configValue = useConfig();
|
||||||
|
|
||||||
|
const values = writable({
|
||||||
|
name,
|
||||||
|
cloudFolder: folid ?? '__local',
|
||||||
|
saveToTeamFolder: !!(getCurrentConfig()?.storageDatabase && defaultTeamFolder),
|
||||||
|
});
|
||||||
|
|
||||||
const electron = getElectron();
|
const electron = getElectron();
|
||||||
|
|
||||||
const handleSubmit = async e => {
|
const handleSubmit = async e => {
|
||||||
const { name, cloudFolder } = e.detail;
|
const { name, cloudFolder } = e.detail;
|
||||||
if ($values['saveToTeamFolder']) {
|
if ($values['saveToTeamFolder']) {
|
||||||
const { teamFileId } = await apiCall('team-files/create-new', { fileType: folder, file: name, data });
|
const resp = await apiCall('team-files/create-new', { fileType: folder, file: name, data });
|
||||||
closeCurrentModal();
|
if (resp.apiErrorMessage) {
|
||||||
if (onSave) {
|
showSnackbarError(resp.apiErrorMessage);
|
||||||
onSave(name, {
|
} else if (resp.teamFileId) {
|
||||||
savedFile: name,
|
closeCurrentModal();
|
||||||
savedFolder: folder,
|
if (onSave) {
|
||||||
savedFilePath: null,
|
onSave(name, {
|
||||||
savedCloudFolderId: null,
|
savedFile: name,
|
||||||
savedCloudContentId: null,
|
savedFolder: folder,
|
||||||
savedTeamFileId: teamFileId,
|
savedFilePath: null,
|
||||||
});
|
savedCloudFolderId: null,
|
||||||
|
savedCloudContentId: null,
|
||||||
|
savedTeamFileId: resp.teamFileId,
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else if (cloudFolder === '__local') {
|
} else if (cloudFolder === '__local') {
|
||||||
await apiCall('files/save', { folder, file: name, data, format });
|
await apiCall('files/save', { folder, file: name, data, format });
|
||||||
@@ -124,7 +137,7 @@
|
|||||||
]}
|
]}
|
||||||
/>
|
/>
|
||||||
{/if}
|
{/if}
|
||||||
{#if getCurrentConfig().storageDatabase}
|
{#if $configValue?.storageDatabase}
|
||||||
<FormCheckboxField label="Save to team folder" name="saveToTeamFolder" />
|
<FormCheckboxField label="Save to team folder" name="saveToTeamFolder" />
|
||||||
{/if}
|
{/if}
|
||||||
|
|
||||||
|
|||||||
@@ -8,6 +8,7 @@
|
|||||||
folder: 'diagrams',
|
folder: 'diagrams',
|
||||||
format: 'json',
|
format: 'json',
|
||||||
fileExtension: 'diagram',
|
fileExtension: 'diagram',
|
||||||
|
defaultTeamFolder: true,
|
||||||
|
|
||||||
undoRedo: true,
|
undoRedo: true,
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ import getElectron from './getElectron';
|
|||||||
// return derived(editorStore, editor => editor != null);
|
// return derived(editorStore, editor => editor != null);
|
||||||
// }
|
// }
|
||||||
|
|
||||||
export default async function saveTabFile(editor, saveMode, folder, format, fileExtension) {
|
export default async function saveTabFile(editor, saveMode, folder, format, fileExtension, defaultTeamFolder) {
|
||||||
const tabs = get(openedTabs);
|
const tabs = get(openedTabs);
|
||||||
const tabid = editor.activator.tabid;
|
const tabid = editor.activator.tabid;
|
||||||
const data = editor.getData();
|
const data = editor.getData();
|
||||||
@@ -94,6 +94,7 @@ export default async function saveTabFile(editor, saveMode, folder, format, file
|
|||||||
filePath: savedFilePath,
|
filePath: savedFilePath,
|
||||||
onSave,
|
onSave,
|
||||||
folid: savedCloudFolderId,
|
folid: savedCloudFolderId,
|
||||||
|
defaultTeamFolder,
|
||||||
// cntid: savedCloudContentId,
|
// cntid: savedCloudContentId,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user