mirror of
https://github.com/hubHarmony/servii-frontend.git
synced 2024-11-17 21:40:30 +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 React from 'react';
|
||||||
import styles from './serverCard.module.scss';
|
import styles from './serverCard.module.scss';
|
||||||
|
|
||||||
const ServerCard = ({ color, status, version, link, name }) => {
|
const ServerCard = ({ color, status, version, link, name, onRunClick, onStopClick }) => {
|
||||||
|
|
||||||
const getStatusColor = () => {
|
const getStatusColor = () => {
|
||||||
switch (status) {
|
switch (status) {
|
||||||
case 'En cours':
|
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 (
|
return (
|
||||||
<a href={link} className={styles.serverCard}>
|
<a href={link} className={styles.serverCard}>
|
||||||
<div className={styles.leftCard}>
|
<div className={styles.leftCard}>
|
||||||
@ -25,6 +42,14 @@ const ServerCard = ({ color, status, version, link, name }) => {
|
|||||||
<div className={styles.name}>{name}</div>
|
<div className={styles.name}>{name}</div>
|
||||||
</div>
|
</div>
|
||||||
<div className={styles.statusText}>{status}</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>
|
||||||
<div className={styles.version}>Version: {version}</div>
|
<div className={styles.version}>Version: {version}</div>
|
||||||
</a>
|
</a>
|
||||||
|
@ -16,24 +16,24 @@ const DashboardPage = ({ user }) => {
|
|||||||
console.error('No current user found');
|
console.error('No current user found');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
const userId = currentUser.uid;
|
const userId = currentUser.uid;
|
||||||
console.log('User ID:', userId);
|
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',
|
method: 'POST',
|
||||||
headers: {
|
headers: {
|
||||||
'Content-Type': 'application/json',
|
'Content-Type': 'application/json',
|
||||||
'Authorization': `Bearer ${userId}`
|
Authorization: `Bearer ${userId}`,
|
||||||
},
|
},
|
||||||
body: JSON.stringify({ token: userId })
|
body: JSON.stringify({ token: userId }),
|
||||||
});
|
});
|
||||||
if (!response.ok) {
|
if (!response.ok) {
|
||||||
const errorText = await response.text();
|
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}`);
|
throw new Error(`Network response was not ok: ${response.statusText}`);
|
||||||
}
|
}
|
||||||
const data = await response.json();
|
const data = await response.json();
|
||||||
console.log('Data:', data);
|
console.log('Data:', data);
|
||||||
setServers(data);
|
setServers(data);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error('Error fetching servers:', error);
|
console.error('Error fetching servers:', error);
|
||||||
@ -43,6 +43,62 @@ const DashboardPage = ({ user }) => {
|
|||||||
fetchServers();
|
fetchServers();
|
||||||
}, [auth]);
|
}, [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 (
|
return (
|
||||||
<div className={styles.dashboardContainer}>
|
<div className={styles.dashboardContainer}>
|
||||||
<Navbar user={user} />
|
<Navbar user={user} />
|
||||||
@ -53,8 +109,9 @@ const DashboardPage = ({ user }) => {
|
|||||||
color="#f0f0f0"
|
color="#f0f0f0"
|
||||||
status={server.running ? 'En cours' : 'Hors ligne'}
|
status={server.running ? 'En cours' : 'Hors ligne'}
|
||||||
version={server.version}
|
version={server.version}
|
||||||
link={`http://example.com/${server.name}`}
|
|
||||||
name={server.name}
|
name={server.name}
|
||||||
|
onRunClick={handleRunServer}
|
||||||
|
onStopClick={handleStopServer}
|
||||||
/>
|
/>
|
||||||
))}
|
))}
|
||||||
</div>
|
</div>
|
||||||
|
Loading…
Reference in New Issue
Block a user