feat: add scheduler events to ui

This commit is contained in:
Nybkox
2025-01-02 14:38:01 +01:00
parent 903297a1e9
commit 891fb15290
5 changed files with 80 additions and 6 deletions

View File

@@ -42,6 +42,7 @@
functions: 'img function',
queries: 'img query-data',
triggers: 'icon trigger',
schedulerEvents: 'icon scheduler-event',
};
const defaultTabs = {
@@ -87,6 +88,8 @@
isDropCollection?: boolean;
isRenameCollection?: boolean;
isDuplicateCollection?: boolean;
isDisableEvent?: boolean;
isEnableEvent?: boolean;
submenu?: DbObjMenuItem[];
}
@@ -383,6 +386,21 @@
},
...(driver?.getScriptTemplates?.('collections') || []),
];
case 'schedulerEvents':
return [
...defaultDatabaseObjectAppObjectActions['schedulerEvents'],
{
divider: true,
},
{
label: 'Disable',
isDisableEvent: true,
},
{
label: 'Enable',
isEnableEvent: true,
},
];
}
}
@@ -479,6 +497,36 @@
x => x.schemaName == data.schemaName && x.pureName == data.pureName
);
});
} else if (menu.isDisableEvent) {
const { conid, database, disableSql } = data;
const driver = await getDriver();
const dmp = driver.createDumper();
dmp.put(disableSql);
const sql = dmp.s;
showModal(ConfirmSqlModal, {
sql,
onConfirm: async () => {
saveScriptToDatabase({ conid, database }, sql);
},
engine: driver.engine,
});
} else if (menu.isEnableEvent) {
const { conid, database, enableSql } = data;
const driver = await getDriver();
const dmp = driver.createDumper();
dmp.put(enableSql);
const sql = dmp.s;
showModal(ConfirmSqlModal, {
sql,
onConfirm: async () => {
saveScriptToDatabase({ conid, database }, sql);
},
engine: driver.engine,
});
} else if (menu.isTruncate) {
const { conid, database } = data;
const driver = await getDriver();
@@ -939,6 +987,15 @@
if (data.objectTypeField === 'triggers') {
res.push(`${data.tableName}, ${data.triggerTiming?.toLowerCase() ?? ''} ${data.eventType?.toLowerCase() ?? ''}`);
}
if (data.objectTypeField == 'schedulerEvents') {
if (data.eventType == 'RECURRING') {
res.push(`${data.status}, ${data.eventType}, ${data.intervalValue} ${data.intervalField}`);
} else {
res.push(`${data.status}, ${data.eventType}, ${data.executeAt}`);
}
}
if (data.objectComment) {
res.push(data.objectComment);
}