mirror of
https://github.com/hubHarmony/servii-frontend.git
synced 2024-11-18 05:40:31 +00:00
ajout btn start et stop
This commit is contained in:
parent
54a12900bb
commit
7b842488cd
@ -1,7 +1,8 @@
|
||||
import React from 'react';
|
||||
import styles from './serverCard.module.scss';
|
||||
|
||||
const ServerCard = ({ color, status, version, link, name }) => {
|
||||
const ServerCard = ({ color, status, version, link, name, onRunClick, onStopClick }) => {
|
||||
|
||||
const getStatusColor = () => {
|
||||
switch (status) {
|
||||
case 'En cours':
|
||||
@ -15,6 +16,22 @@ const ServerCard = ({ color, status, version, link, name }) => {
|
||||
}
|
||||
};
|
||||
|
||||
const handleRun = async () => {
|
||||
try {
|
||||
await onRunClick(name);
|
||||
} catch (error) {
|
||||
console.error('Error starting server:', error);
|
||||
}
|
||||
};
|
||||
|
||||
const handleStop = async () => {
|
||||
try {
|
||||
await onStopClick(name);
|
||||
} catch (error) {
|
||||
console.error('Error stopping server:', error);
|
||||
}
|
||||
};
|
||||
|
||||
return (
|
||||
<a href={link} className={styles.serverCard}>
|
||||
<div className={styles.leftCard}>
|
||||
@ -25,6 +42,14 @@ const ServerCard = ({ color, status, version, link, name }) => {
|
||||
<div className={styles.name}>{name}</div>
|
||||
</div>
|
||||
<div className={styles.statusText}>{status}</div>
|
||||
<div className={styles.buttonContainer}>
|
||||
{status === 'Hors ligne' && (
|
||||
<button className={styles.runButton} onClick={handleRun}>Run</button>
|
||||
)}
|
||||
{status === 'En cours' && (
|
||||
<button className={styles.stopButton} onClick={handleStop}>Stop</button>
|
||||
)}
|
||||
</div>
|
||||
</div>
|
||||
<div className={styles.version}>Version: {version}</div>
|
||||
</a>
|
||||
|
@ -16,24 +16,24 @@ const DashboardPage = ({ user }) => {
|
||||
console.error('No current user found');
|
||||
return;
|
||||
}
|
||||
const userId = currentUser.uid;
|
||||
console.log('User ID:', userId);
|
||||
const userId = currentUser.uid;
|
||||
console.log('User ID:', userId);
|
||||
|
||||
const response = await fetch('http://api.servii.fr:3000/FetchServers', {
|
||||
const response = await fetch('https://api.servii.fr:3000/FetchServers', {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
'Authorization': `Bearer ${userId}`
|
||||
Authorization: `Bearer ${userId}`,
|
||||
},
|
||||
body: JSON.stringify({ token: userId })
|
||||
body: JSON.stringify({ token: userId }),
|
||||
});
|
||||
if (!response.ok) {
|
||||
const errorText = await response.text();
|
||||
console.error('Error response text:', errorText);
|
||||
console.error('Error response text:', errorText);
|
||||
throw new Error(`Network response was not ok: ${response.statusText}`);
|
||||
}
|
||||
const data = await response.json();
|
||||
console.log('Data:', data);
|
||||
console.log('Data:', data);
|
||||
setServers(data);
|
||||
} catch (error) {
|
||||
console.error('Error fetching servers:', error);
|
||||
@ -43,6 +43,62 @@ const DashboardPage = ({ user }) => {
|
||||
fetchServers();
|
||||
}, [auth]);
|
||||
|
||||
const handleRunServer = async (serverName) => {
|
||||
try {
|
||||
const currentUser = auth.currentUser;
|
||||
if (!currentUser) {
|
||||
console.error('No current user found');
|
||||
return;
|
||||
}
|
||||
const userId = currentUser.uid;
|
||||
console.log('Run server:', serverName);
|
||||
|
||||
const response = await fetch('https://api.servii.fr:3000/ServerRun', {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
Authorization: `Bearer ${userId}`,
|
||||
},
|
||||
body: JSON.stringify({ name: serverName, token: userId }),
|
||||
});
|
||||
if (!response.ok) {
|
||||
const errorText = await response.text();
|
||||
console.error('Error response text:', errorText);
|
||||
throw new Error(`Failed to start server: ${response.statusText}`);
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('Error starting server:', error);
|
||||
}
|
||||
};
|
||||
|
||||
const handleStopServer = async (serverName) => {
|
||||
try {
|
||||
const currentUser = auth.currentUser;
|
||||
if (!currentUser) {
|
||||
console.error('No current user found');
|
||||
return;
|
||||
}
|
||||
const userId = currentUser.uid;
|
||||
console.log('Stop server:', serverName);
|
||||
|
||||
const response = await fetch('https://api.servii.fr:3000/ServerStop', {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
Authorization: `Bearer ${userId}`,
|
||||
},
|
||||
body: JSON.stringify({ name: serverName, token: userId }),
|
||||
});
|
||||
if (!response.ok) {
|
||||
const errorText = await response.text();
|
||||
console.error('Error response text:', errorText);
|
||||
throw new Error(`Failed to stop server: ${response.statusText}`);
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('Error stopping server:', error);
|
||||
}
|
||||
};
|
||||
|
||||
return (
|
||||
<div className={styles.dashboardContainer}>
|
||||
<Navbar user={user} />
|
||||
@ -53,8 +109,9 @@ const DashboardPage = ({ user }) => {
|
||||
color="#f0f0f0"
|
||||
status={server.running ? 'En cours' : 'Hors ligne'}
|
||||
version={server.version}
|
||||
link={`http://example.com/${server.name}`}
|
||||
name={server.name}
|
||||
onRunClick={handleRunServer}
|
||||
onStopClick={handleStopServer}
|
||||
/>
|
||||
))}
|
||||
</div>
|
||||
|
Loading…
Reference in New Issue
Block a user