| Server IP : 104.21.28.229 / 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/export/ |
Upload File : |
import { __ } from '@wordpress/i18n';
import { useState } from '@wordpress/element';
import { addQueryArgs } from '@wordpress/url';
import apiFetch from '@wordpress/api-fetch';
import { Spinner, Button } from '@wordpress/components';
import { download } from '@wordpress/icons';
import { generateCSVDataFromTable, generateCSVFileName, downloadCSVFile } from '@woocommerce/csv-export';
const HEADER_EXPORT = [
{ label: __( 'Question', 'leanpress-gradebook' ), key: '"title"' },
{ label: __( 'Type', 'learnpress-gradebook' ), key: '"type"' },
{ label: __( 'Retake', 'learnpress-gradebook' ), key: '"retake_count"' },
{ label: __( 'Correct', 'learnpress-gradebook' ), key: '"correct"' },
{ label: __( 'Retake detail', 'learnpress-gradebook' ), key: '"retake"' },
];
export default function ExportQuestion( { courseID, quizzID, studentID } ) {
const [ loading, setLoading ] = useState( false );
async function exportQuestions() {
setLoading( true );
try {
const response = await apiFetch( {
path: addQueryArgs( 'lp-gradebook/export-questions', { courseID, quizzID, studentID } ),
method: 'GET',
} );
const dataForm = generateCSVDataFromTable( HEADER_EXPORT, response.data.export );
const name = generateCSVFileName( 'gradebook', { list: 'questions' } );
downloadCSVFile( name, dataForm );
setLoading( false );
} catch ( e ) {
setLoading( false );
}
}
return (
<Button
className="learnpress-gradebook__export__button"
isSecondary
variant="secondary"
onClick={ exportQuestions }
icon={ loading ? <Spinner /> : download }
iconSize={ 20 }
text={ __( 'Export CSV', 'learnpress-gradebook' ) }
/>
);
}