| Server IP : 172.67.147.195 / Your IP : 216.73.216.142 Web Server : Apache/2 System : Linux hosting8537.lvs 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64 User : mienphi ( 1014) PHP Version : 8.2.14 Disable Function : exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /home/mienphi/public_html/wp-content/plugins/learnpress-gradebook/src/components/chart/ |
Upload File : |
import { __ } from '@wordpress/i18n';
import { useState, useEffect } from '@wordpress/element';
import { addQueryArgs } from '@wordpress/url';
import apiFetch from '@wordpress/api-fetch';
import { Spinner } from '@wordpress/components';
import { Pie } from 'react-chartjs-2';
export default function PieChartStudent( { courseID } ) {
const [ data, setData ] = useState( '' );
const [ loading, setLoading ] = useState( false );
const [ totalEnroll, setTotalEnroll ] = useState( 0 );
const [ totalFinished, setTotalFinished ] = useState( 0 );
useEffect( () => {
setLoading( true );
try {
async function getResponse() {
const response = await apiFetch( {
path: addQueryArgs( 'lp-gradebook/get-pie-chart-student', { courseID } ),
method: 'GET',
} );
setTotalEnroll( response.data.datasets.data[ 0 ] ? parseInt( response.data.datasets.data[ 0 ] ) : 0 );
setTotalFinished( response.data.datasets.data[ 0 ] ? parseInt( response.data.datasets.data[ 1 ] ) : 0 );
setData( {
labels: response.data.labels,
datasets: [
{
data: response.data.datasets.data,
backgroundColor: response.data.datasets.backgroundColor,
borderColor: response.data.datasets.borderColor,
},
],
} );
setLoading( false );
}
getResponse();
} catch ( e ) {
setData( '' );
setLoading( false );
}
}, [ courseID ] );
return (
<div className="detail-chart">
<div className="ct-chart">
<div className={ `${ loading ? 'ct-left detail-chart__loading' : 'ct-left' }` }>
<Pie data={ data } height={ 160 } />
{ loading && <Spinner /> }
</div>
<div className="ct-right">
<p>{ __( 'Total students enrolled:', 'learnpress-gradebook' ) } <b>{ totalEnroll }</b></p>
<p>{ __( 'Total students finished:', 'learnpress-gradebook' ) } <b>{ totalFinished }</b></p>
<p>{ __( 'Total:', 'learnpress-gradebook' ) } <b>{ totalFinished + totalEnroll }</b></p>
</div>
</div>
<div className="title-chart">
<h3>{ __( 'Chart 2:', 'learnpress-gradebook' ) }</h3>
<p>{ __( 'All students registered and finished the course', 'learnpress-gradebook' ) }</p>
</div>
</div>
);
}