(etke.cc-exclusive) Server Actions page (#457)

* WIP: add scheduler commands

* refactor scheduler commands page

* WIP on CRUD for ScheduledCommands

* more refactoring, finish CRUD On scheduled pages

* Add info text about Scheduler service

* Finish recurring commands add/edit

* add more texts

* fix server status behavior on not-loaded-yet state; adjust texts; lint fixes

* add link to the help pages in the commands palette

* Move Commands Panel to ServerSchedulesPage

* Rename Server Schedules to Server Actions

* more texts, a bit changed visual of the actions page, lint fix

* add docs

* fix tests

* Add UTC label to scheduled command create/edit
This commit is contained in:
Borislav Pantaleev
2025-04-11 12:41:47 +03:00
committed by GitHub
parent e2d3c0792b
commit 0832c43d76
28 changed files with 1235 additions and 62 deletions

View File

@@ -0,0 +1,29 @@
import { useState, useEffect } from "react";
import { useDataProvider } from "react-admin";
import { useAppContext } from "../../../Context";
import { ServerCommand } from "../../../synapse/dataProvider";
export const useServerCommands = () => {
const { etkeccAdmin } = useAppContext();
const [isLoading, setLoading] = useState(true);
const [serverCommands, setServerCommands] = useState<Record<string, ServerCommand>>({});
const dataProvider = useDataProvider();
useEffect(() => {
const fetchServerCommands = async () => {
const serverCommandsResponse = await dataProvider.getServerCommands(etkeccAdmin);
if (serverCommandsResponse) {
const serverCommands = serverCommandsResponse;
Object.keys(serverCommandsResponse).forEach((command: string) => {
serverCommands[command].additionalArgs = "";
});
setServerCommands(serverCommands);
}
setLoading(false);
};
fetchServerCommands();
}, [dataProvider, etkeccAdmin]);
return { isLoading, serverCommands, setServerCommands };
};