403Webshell
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/export/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /home/mienphi/public_html/wp-content/plugins/learnpress-gradebook/src/components/export/student.js
import { __ } from '@wordpress/i18n';
import { useState } from '@wordpress/element';
import { Spinner, Button } from '@wordpress/components';
import { addQueryArgs } from '@wordpress/url';
import apiFetch from '@wordpress/api-fetch';
import { download } from '@wordpress/icons';

import { generateCSVDataFromTable, generateCSVFileName, downloadCSVFile } from '@woocommerce/csv-export';

const HEADERS = [
	{ label: __( 'User ID', 'learnpress-gradebook' ), key: '"user_id"' },
	{ label: __( 'Username', 'learnpress-gradebook' ), key: '"user_nicename"' },
	{ label: __( 'Email', 'learnpress-gradebook' ), key: '"user_email"' },
	{ label: __( 'Start time', 'learnpress-gradebook' ), key: '"start_time"' },
	{ label: __( 'Status', 'learnpress-gradebook' ), key: '"graduation"' },
	{ label: __( 'Average', 'learnpress-gradebook' ), key: '"average"' },
];

const HEADERS_FULL = [
	{ label: __( 'User ID', 'learnpress-gradebook' ), key: '"user_id"' },
	{ label: __( 'Username', 'learnpress-gradebook' ), key: '"user_nicename"' },
	{ label: __( 'Email', 'learnpress-gradebook' ), key: '"user_email"' },
	{ label: __( 'Start time', 'learnpress-gradebook' ), key: '"start_time"' },
	{ label: __( 'End time', 'learnpress-gradebook' ), key: '"end_time"' },
	{ label: __( 'Status', 'learnpress-gradebook' ), key: '"graduation"' },
	{ label: __( 'Average', 'learnpress-gradebook' ), key: '"average"' },
];

export default function ExportStudent( { courseID } ) {
	const [ loading, setLoading ] = useState( false );
	const [ fullLoading, setFullLoading ] = useState( false );

	const getDataExport = async () => {
		setLoading( true );

		try {
			const response = await apiFetch( {
				path: addQueryArgs( 'lp-gradebook/export-students', { courseID } ),
				method: 'GET',
			} );
			const data = await response.data;

			const dataForm = await generateCSVDataFromTable( HEADERS, data );
			const name = await generateCSVFileName( 'gradebook', { list: 'students' } );
			downloadCSVFile( name, dataForm );

			setLoading( false );
		} catch ( error ) {
			console.log( error.message );
			setLoading( false );
		}
	};

	const getDataExportFull = async () => {
		setFullLoading( true );

		try {
			const response = await getRequest( [], [], courseID, 10, 1 );

			if ( ! response ) {
				setFullLoading( false );
				return;
			}

			const { headerData, dataList } = response;

			const dataForm = generateCSVDataFromTable( [ ...HEADERS_FULL, ...headerData ], dataList );
			const name = generateCSVFileName( 'gradebook', { list: 'students' } );
			downloadCSVFile( name, dataForm );

			setFullLoading( false );
		} catch ( error ) {
			console.log( error.message );
			setFullLoading( false );
		}
	};

	async function getRequest( headerData, dataList, courseID, limit, offset ) {
		try {
			const response = await apiFetch( {
				path: addQueryArgs( 'lp-gradebook/export-students-full', { courseID, limit, offset } ),
				method: 'GET',
			} );

			const { status, data, header, count } = response;

			if ( status === 'success' ) {
				headerData = [ ...headerData, ...header ];
				dataList = [ ...dataList, ...data ];

				if ( count > limit * offset ) {
					return getRequest( headerData, dataList, courseID, limit, offset + 1 );
				}

				return { headerData, dataList };
			}
			return false;
		} catch ( error ) {
			return false;
		}
	}

	return (
		<>
			<Button
				className="learnpress-gradebook__export__button"
				isSecondary
				variant="secondary"
				onClick={ getDataExport }
				icon={ loading ? <Spinner /> : download }
				iconSize={ 20 }
				text={ __( 'Export CSV', 'learnpress-gradebook' ) }
			/>

			<Button
				className="learnpress-gradebook__export__button"
				isSecondary
				variant="secondary"
				onClick={ getDataExportFull }
				icon={ fullLoading ? <Spinner /> : download }
				iconSize={ 20 }
				text={ __( 'Export Full CSV', 'learnpress-gradebook' ) }
			/>
		</>
	);
}

Youez - 2016 - github.com/yon3zu
LinuXploit