diff --git a/jsx/src/components/ServerDashboard/ServerDashboard.jsx b/jsx/src/components/ServerDashboard/ServerDashboard.jsx index f143c323..622a168c 100644 --- a/jsx/src/components/ServerDashboard/ServerDashboard.jsx +++ b/jsx/src/components/ServerDashboard/ServerDashboard.jsx @@ -508,7 +508,7 @@ const ServerDashboard = (props) => { variant="primary" className="start-all" data-testid="start-all" - title="start all servers on the current page" + title="Start all default servers on the current page" onClick={() => { Promise.all(startAll(user_data.map((e) => e.name))) .then((res) => { @@ -539,11 +539,12 @@ const ServerDashboard = (props) => { variant="danger" className="stop-all" data-testid="stop-all" - title="stop all servers on the current page" + title="Stop all servers including named servers on the current page" onClick={() => { Promise.all(stopAll(user_data.map((e) => e.name))) .then((res) => { - let failedServers = res.filter((e) => !e.ok); + // Array of arrays of servers for each user + let failedServers = res.flat().filter((e) => !e.ok); if (failedServers.length > 0) { setErrorAlert( `Failed to stop ${failedServers.length} ${ diff --git a/jsx/src/util/withAPI.js b/jsx/src/util/withAPI.js index db9bf762..e3d67e3d 100644 --- a/jsx/src/util/withAPI.js +++ b/jsx/src/util/withAPI.js @@ -30,7 +30,17 @@ const withAPI = withProps(() => ({ startAll: (names) => names.map((e) => jhapiRequest("/users/" + e + "/server", "POST")), stopAll: (names) => - names.map((e) => jhapiRequest("/users/" + e + "/server", "DELETE")), + names.map((name) => + jhapiRequest("/users/" + name, "GET") + .then((data) => data.json()) + .then((data) => + Promise.all( + Object.keys(data.servers).map((server) => + jhapiRequest("/users/" + name + "/servers/" + server, "DELETE"), + ), + ), + ), + ), addToGroup: (users, groupname) => jhapiRequest("/groups/" + groupname + "/users", "POST", { users }), updateProp: (propobject, groupname) =>