mirror of
https://github.com/DeNNiiInc/dbgate.git
synced 2026-04-23 21:56:00 +00:00
show sort in perspective deisgner and tree
This commit is contained in:
@@ -5,12 +5,13 @@
|
||||
PerspectiveConfig,
|
||||
perspectiveNodesHaveStructure,
|
||||
} from 'dbgate-datalib';
|
||||
import _ from 'lodash';
|
||||
import _, { findIndex } from 'lodash';
|
||||
import { tick } from 'svelte';
|
||||
import runCommand from '../commands/runCommand';
|
||||
|
||||
import Designer from '../designer/Designer.svelte';
|
||||
import QueryDesignerReference from '../designer/QueryDesignerReference.svelte';
|
||||
import { addToPerspectiveSort, clearPerspectiveSort, setPerspectiveSort } from './perspectiveMenu';
|
||||
|
||||
export let config: PerspectiveConfig;
|
||||
export let dbInfos: MultipleDatabaseInfo;
|
||||
@@ -130,6 +131,30 @@
|
||||
referenceMenu: ({ designer, reference, onChangeReference, onRemoveReference }) => {
|
||||
return [{ text: 'Remove', onClick: () => onRemoveReference(reference) }];
|
||||
},
|
||||
columnMenu: ({ designer, designerId, column, foreignKey }) => {
|
||||
return [
|
||||
{
|
||||
text: 'Sort ascending',
|
||||
onClick: () => onChange(cfg => setPerspectiveSort(cfg, designerId, column.columnName, 'ASC')),
|
||||
},
|
||||
{
|
||||
text: 'Sort descending',
|
||||
onClick: () => onChange(cfg => setPerspectiveSort(cfg, designerId, column.columnName, 'DESC')),
|
||||
},
|
||||
{
|
||||
text: 'Add to sort ascending',
|
||||
onClick: () => onChange(cfg => addToPerspectiveSort(cfg, designerId, column.columnName, 'ASC')),
|
||||
},
|
||||
{
|
||||
text: 'Add to sort descending',
|
||||
onClick: () => onChange(cfg => addToPerspectiveSort(cfg, designerId, column.columnName, 'DESC')),
|
||||
},
|
||||
{
|
||||
text: 'Clear sort criteria',
|
||||
onClick: () => onChange(cfg => clearPerspectiveSort(cfg, designerId)),
|
||||
},
|
||||
];
|
||||
},
|
||||
createReferenceText: reference => (reference.isAutoGenerated ? 'FK' : 'Custom'),
|
||||
isColumnChecked: (designerId, columnName) => {
|
||||
return config.nodes.find(x => x.designerId == designerId)?.checkedColumns?.includes(columnName);
|
||||
@@ -163,6 +188,13 @@
|
||||
),
|
||||
}));
|
||||
},
|
||||
getSortOrderProps: (designerId, columnName) => {
|
||||
const sort = config.nodes.find(x => x.designerId == designerId)?.sort;
|
||||
const order = sort?.find(x => x.columnName == columnName)?.order;
|
||||
if (!order) return null;
|
||||
const orderIndex = sort.length > 1 ? _.findIndex(sort, x => x.columnName == columnName) : -1;
|
||||
return { order, orderIndex };
|
||||
},
|
||||
}}
|
||||
referenceComponent={QueryDesignerReference}
|
||||
value={createDesignerModel(config, dbInfos)}
|
||||
|
||||
Reference in New Issue
Block a user