mirror of
https://github.com/Fabio286/antares.git
synced 2025-06-05 21:59:22 +02:00
feat: copy row as SQL INSERT
This commit is contained in:
@ -315,7 +315,7 @@ const downloadTable = (format: 'csv' | 'json') => {
|
|||||||
exportRows({
|
exportRows({
|
||||||
type: format,
|
type: format,
|
||||||
content: sortedResults.value,
|
content: sortedResults.value,
|
||||||
filename: 'processes'
|
table: 'processes'
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -131,6 +131,7 @@ import * as moment from 'moment';
|
|||||||
import { useI18n } from 'vue-i18n';
|
import { useI18n } from 'vue-i18n';
|
||||||
import { TableField, QueryResult } from 'common/interfaces/antares';
|
import { TableField, QueryResult } from 'common/interfaces/antares';
|
||||||
import { TableUpdateParams } from 'common/interfaces/tableApis';
|
import { TableUpdateParams } from 'common/interfaces/tableApis';
|
||||||
|
import { jsonToSqlInsert } from 'common/libs/sqlUtils';
|
||||||
|
|
||||||
const { t } = useI18n();
|
const { t } = useI18n();
|
||||||
|
|
||||||
@ -413,11 +414,22 @@ const copyCell = () => {
|
|||||||
navigator.clipboard.writeText(valueToCopy);
|
navigator.clipboard.writeText(valueToCopy);
|
||||||
};
|
};
|
||||||
|
|
||||||
const copyRow = () => {
|
const copyRow = (format: string) => {
|
||||||
const row = localResults.value.find((row: any) => selectedRows.value.includes(row._antares_id));
|
const row = localResults.value.find((row: any) => selectedRows.value.includes(row._antares_id));
|
||||||
const rowToCopy = JSON.parse(JSON.stringify(row));
|
const rowToCopy = JSON.parse(JSON.stringify(row));
|
||||||
delete rowToCopy._antares_id;
|
delete rowToCopy._antares_id;
|
||||||
navigator.clipboard.writeText(JSON.stringify(rowToCopy));
|
if (format === 'json')
|
||||||
|
navigator.clipboard.writeText(JSON.stringify(rowToCopy));
|
||||||
|
else if (format === 'sql') {
|
||||||
|
navigator.clipboard.writeText(jsonToSqlInsert({
|
||||||
|
json: rowToCopy,
|
||||||
|
client: workspaceClient.value,
|
||||||
|
fields: fieldsObj.value as {
|
||||||
|
[key: string]: {type: string; datePrecision: number};
|
||||||
|
},
|
||||||
|
table: getTable(resultsetIndex.value)
|
||||||
|
}));
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const duplicateRow = () => {
|
const duplicateRow = () => {
|
||||||
|
@ -19,10 +19,19 @@
|
|||||||
<div
|
<div
|
||||||
v-if="selectedRows.length === 1"
|
v-if="selectedRows.length === 1"
|
||||||
class="context-element"
|
class="context-element"
|
||||||
@click="copyRow"
|
@click="copyRow('json')"
|
||||||
>
|
>
|
||||||
<span class="d-flex">
|
<span class="d-flex">
|
||||||
<i class="mdi mdi-18px mdi-table-row text-light pr-1" /> {{ t('word.row', 1) }}
|
<i class="mdi mdi-18px mdi-table-row text-light pr-1" /> {{ t('word.row', 1) }} (JSON)
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
v-if="selectedRows.length === 1"
|
||||||
|
class="context-element"
|
||||||
|
@click="copyRow('sql')"
|
||||||
|
>
|
||||||
|
<span class="d-flex">
|
||||||
|
<i class="mdi mdi-18px mdi-table-row text-light pr-1" /> {{ t('word.row', 1) }} (SQL INSERT)
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -98,8 +107,8 @@ const copyCell = () => {
|
|||||||
closeContext();
|
closeContext();
|
||||||
};
|
};
|
||||||
|
|
||||||
const copyRow = () => {
|
const copyRow = (format: string) => {
|
||||||
emit('copy-row');
|
emit('copy-row', format);
|
||||||
closeContext();
|
closeContext();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user