mirror of
https://github.com/DeNNiiInc/dbgate.git
synced 2026-04-30 04:33:57 +00:00
fixed problems with linked archives
This commit is contained in:
@@ -50,7 +50,7 @@ function buildMenu() {
|
|||||||
commandItem('new.sqliteDatabase'),
|
commandItem('new.sqliteDatabase'),
|
||||||
{ type: 'separator' },
|
{ type: 'separator' },
|
||||||
commandItem('file.open'),
|
commandItem('file.open'),
|
||||||
// commandItem('file.openArchive'),
|
commandItem('file.openArchive'),
|
||||||
{ type: 'separator' },
|
{ type: 'separator' },
|
||||||
commandItem('group.save'),
|
commandItem('group.save'),
|
||||||
commandItem('group.saveAs'),
|
commandItem('group.saveAs'),
|
||||||
|
|||||||
@@ -97,7 +97,8 @@ module.exports = {
|
|||||||
|
|
||||||
renameFolder_meta: 'post',
|
renameFolder_meta: 'post',
|
||||||
async renameFolder({ folder, newFolder }) {
|
async renameFolder({ folder, newFolder }) {
|
||||||
await fs.rename(path.join(resolveArchiveFolder(folder)), path.join(resolveArchiveFolder(newFolder)));
|
const uniqueName = await this.getNewArchiveFolder({ database: newFolder });
|
||||||
|
await fs.rename(path.join(archivedir(), folder), path.join(archivedir(), uniqueName));
|
||||||
socket.emitChanged(`archive-folders-changed`);
|
socket.emitChanged(`archive-folders-changed`);
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -140,11 +141,14 @@ module.exports = {
|
|||||||
},
|
},
|
||||||
|
|
||||||
async getNewArchiveFolder({ database }) {
|
async getNewArchiveFolder({ database }) {
|
||||||
|
const isLink = database.endsWith(database);
|
||||||
|
const name = isLink ? database.slice(0, -5) : database;
|
||||||
|
const suffix = isLink ? '.link' : '';
|
||||||
if (!(await fs.exists(path.join(archivedir(), database)))) return database;
|
if (!(await fs.exists(path.join(archivedir(), database)))) return database;
|
||||||
let index = 2;
|
let index = 2;
|
||||||
while (await fs.exists(path.join(archivedir(), `${database}${index}`))) {
|
while (await fs.exists(path.join(archivedir(), `${name}${index}${suffix}`))) {
|
||||||
index += 1;
|
index += 1;
|
||||||
}
|
}
|
||||||
return `${database}${index}`;
|
return `${name}${index}${suffix}`;
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -31,17 +31,21 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
const handleRename = () => {
|
const handleRename = () => {
|
||||||
|
const isLink = data.name.endsWith(data.name);
|
||||||
|
const name = isLink ? data.name.slice(0, -5) : data.name;
|
||||||
|
const suffix = isLink ? '.link' : '';
|
||||||
|
|
||||||
showModal(InputTextModal, {
|
showModal(InputTextModal, {
|
||||||
value: data.name,
|
value: name,
|
||||||
label: 'New folder name',
|
label: 'New folder name',
|
||||||
header: 'Rename folder',
|
header: 'Rename folder',
|
||||||
onConfirm: async newFolder => {
|
onConfirm: async newFolder => {
|
||||||
await axiosInstance.post('archive/rename-folder', {
|
await axiosInstance.post('archive/rename-folder', {
|
||||||
folder: data.name,
|
folder: data.name,
|
||||||
newFolder,
|
newFolder: newFolder + suffix,
|
||||||
});
|
});
|
||||||
if ($currentArchive == data.name) {
|
if ($currentArchive == data.name) {
|
||||||
$currentArchive = newFolder;
|
$currentArchive = newFolder + suffix;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -122,8 +126,8 @@ await dbgateApi.deployDb(${JSON.stringify(
|
|||||||
<AppObjectCore
|
<AppObjectCore
|
||||||
{...$$restProps}
|
{...$$restProps}
|
||||||
{data}
|
{data}
|
||||||
title={data.name}
|
title={data.name.endsWith('.link') ? data.name.slice(0, -5) : data.name}
|
||||||
icon="img archive-folder"
|
icon={data.name.endsWith('.link') ? 'img link' : 'img archive-folder'}
|
||||||
isBold={data.name == $currentArchive}
|
isBold={data.name == $currentArchive}
|
||||||
on:click={() => ($currentArchive = data.name)}
|
on:click={() => ($currentArchive = data.name)}
|
||||||
menu={createMenu}
|
menu={createMenu}
|
||||||
|
|||||||
@@ -252,12 +252,12 @@ if (electron) {
|
|||||||
onClick: openElectronFile,
|
onClick: openElectronFile,
|
||||||
});
|
});
|
||||||
|
|
||||||
// registerCommand({
|
registerCommand({
|
||||||
// id: 'file.openArchive',
|
id: 'file.openArchive',
|
||||||
// category: 'File',
|
category: 'File',
|
||||||
// name: 'Open DB Model/Archive',
|
name: 'Open DB Model/Archive',
|
||||||
// onClick: openArchiveFolder,
|
onClick: openArchiveFolder,
|
||||||
// });
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
registerCommand({
|
registerCommand({
|
||||||
|
|||||||
Reference in New Issue
Block a user