feat: show only 1 of disable/enable actions in events context menu

This commit is contained in:
Nybkox
2025-01-07 14:29:17 +01:00
parent a8a5864ff0
commit 8c5e23f773

View File

@@ -93,7 +93,7 @@
submenu?: DbObjMenuItem[]; submenu?: DbObjMenuItem[];
} }
function createMenusCore(objectTypeField, driver): DbObjMenuItem[] { function createMenusCore(objectTypeField, driver, data): DbObjMenuItem[] {
switch (objectTypeField) { switch (objectTypeField) {
case 'tables': case 'tables':
return [ return [
@@ -387,20 +387,27 @@
...(driver?.getScriptTemplates?.('collections') || []), ...(driver?.getScriptTemplates?.('collections') || []),
]; ];
case 'schedulerEvents': case 'schedulerEvents':
return [ const menu: DbObjMenuItem[] = [
...defaultDatabaseObjectAppObjectActions['schedulerEvents'], ...defaultDatabaseObjectAppObjectActions['schedulerEvents'],
{ {
divider: true, divider: true,
}, },
{ ,
];
if (data?.status === 'ENABLED') {
menu.push({
label: 'Disable', label: 'Disable',
isDisableEvent: true, isDisableEvent: true,
}, });
{ } else {
menu.push({
label: 'Enable', label: 'Enable',
isEnableEvent: true, isEnableEvent: true,
}, });
]; }
return menu;
} }
} }
@@ -672,8 +679,8 @@
} }
} }
function createMenus(objectTypeField, driver): ReturnType<typeof createMenusCore> { function createMenus(objectTypeField, driver, data): ReturnType<typeof createMenusCore> {
return createMenusCore(objectTypeField, driver).filter(x => { return createMenusCore(objectTypeField, driver, data).filter(x => {
if (x.scriptTemplate) { if (x.scriptTemplate) {
return hasPermission(`dbops/sql-template/${x.scriptTemplate}`); return hasPermission(`dbops/sql-template/${x.scriptTemplate}`);
} }
@@ -890,7 +897,7 @@
const driver = findEngineDriver(data, getExtensions()); const driver = findEngineDriver(data, getExtensions());
const { objectTypeField } = data; const { objectTypeField } = data;
return createMenus(objectTypeField, driver) return createMenus(objectTypeField, driver, data)
.filter(x => x) .filter(x => x)
.map(menu => menuItemMapper(menu, data, connection)); .map(menu => menuItemMapper(menu, data, connection));
} }