← All changes
|
assets/src/apps/js/frontend/single-course/student-list.js
+96
-96
4.3.8
→
4.4.10
View file →
| @@ -1,96 +1,96 @@ | ||
| 1 | - | |
| 2 | -const studentListCourse = () => { | |
| 3 | - const elementStudentList = document.querySelector( '.learnpress-course-student-list' ); | |
| 4 | - | |
| 5 | - if ( ! elementStudentList ) { | |
| 6 | - return; | |
| 7 | - } | |
| 8 | - | |
| 9 | - const skeleton = elementStudentList.querySelector( '.lp-skeleton-animation' ); | |
| 10 | - const eleParents = elementStudentList.querySelector( '.content-student-list' ); | |
| 11 | - | |
| 12 | - const Sekeleton = () => { | |
| 13 | - const extraQuery = { | |
| 14 | - status: '', | |
| 15 | - paged: 1, | |
| 16 | - }; | |
| 17 | - | |
| 18 | - getResponse( eleParents, extraQuery ); | |
| 19 | - | |
| 20 | - const select = document.querySelector( '.students-list-filter' ); | |
| 21 | - | |
| 22 | - if ( select != null ) { | |
| 23 | - select.addEventListener( 'change', function() { | |
| 24 | - eleParents.innerHTML = ''; | |
| 25 | - skeleton.style.display = 'block'; | |
| 26 | - extraQuery.status = this.value; | |
| 27 | - getResponse( eleParents, extraQuery ); | |
| 28 | - } ); | |
| 29 | - } | |
| 30 | - }; | |
| 31 | - | |
| 32 | - const getResponse = async ( ele, extraQuery, append = false, viewMoreEle ) => { | |
| 33 | - const courseID = ele.dataset.id; | |
| 34 | - const statusFilter = extraQuery?.status || ''; | |
| 35 | - const paged = extraQuery?.paged || 1; | |
| 36 | - | |
| 37 | - try { | |
| 38 | - const response = await wp.apiFetch( { | |
| 39 | - path: addQueryArgs( 'lp/v1/lazy-load/student-list', { | |
| 40 | - courseId: courseID || lpGlobalSettings.post_id || '', | |
| 41 | - status: statusFilter, | |
| 42 | - paged, | |
| 43 | - } ), | |
| 44 | - method: 'GET', | |
| 45 | - } ); | |
| 46 | - | |
| 47 | - const { data, status, message } = response; | |
| 48 | - | |
| 49 | - if ( status === 'error' ) { | |
| 50 | - throw new Error( message || 'Error' ); | |
| 51 | - } | |
| 52 | - | |
| 53 | - if ( append ) { | |
| 54 | - ele.innerHTML += data.content; | |
| 55 | - } else { | |
| 56 | - ele.innerHTML = data.content; | |
| 57 | - } | |
| 58 | - | |
| 59 | - if ( viewMoreEle ) { | |
| 60 | - viewMoreEle.classList.remove( 'loading' ); | |
| 61 | - | |
| 62 | - const paged = viewMoreEle.dataset.paged; | |
| 63 | - const numberPage = viewMoreEle.dataset.number; | |
| 64 | - | |
| 65 | - if ( numberPage <= paged ) { | |
| 66 | - viewMoreEle.remove(); | |
| 67 | - } | |
| 68 | - | |
| 69 | - viewMoreEle.dataset.paged = parseInt( paged ) + 1; | |
| 70 | - } | |
| 71 | - viewMoreStudentList( ele, extraQuery ); | |
| 72 | - } catch ( error ) { | |
| 73 | - ele.insertAdjacentHTML( 'beforeend', `<div class="learn-press-message error" style="display:block">${ error.message || 'Error: Query lp/v1/lazy-load/course-student-list' }</div>` ); | |
| 74 | - } | |
| 75 | - | |
| 76 | - skeleton.style.display = 'none'; | |
| 77 | - }; | |
| 78 | - | |
| 79 | - const viewMoreStudentList = ( ele, extraQuery ) => { | |
| 80 | - const viewMoreEle = ele.querySelector( '.lp_student_list_button button.lp-button' ); | |
| 81 | - | |
| 82 | - if ( viewMoreEle ) { | |
| 83 | - viewMoreEle.addEventListener( 'click', ( e ) => { | |
| 84 | - e.preventDefault(); | |
| 85 | - | |
| 86 | - const paged = viewMoreEle && viewMoreEle.dataset.paged; | |
| 87 | - | |
| 88 | - viewMoreEle.classList.add( 'loading' ); | |
| 89 | - | |
| 90 | - getResponse( ele.querySelector( 'ul.students' ), { ...extraQuery, ...{ paged } }, true, viewMoreEle ); | |
| 91 | - } ); | |
| 92 | - } | |
| 93 | - }; | |
| 94 | - | |
| 95 | - Sekeleton(); | |
| 96 | -}; | |
| 1 | + | |
| 2 | +const studentListCourse = () => { | |
| 3 | + const elementStudentList = document.querySelector( '.learnpress-course-student-list' ); | |
| 4 | + | |
| 5 | + if ( ! elementStudentList ) { | |
| 6 | + return; | |
| 7 | + } | |
| 8 | + | |
| 9 | + const skeleton = elementStudentList.querySelector( '.lp-skeleton-animation' ); | |
| 10 | + const eleParents = elementStudentList.querySelector( '.content-student-list' ); | |
| 11 | + | |
| 12 | + const Sekeleton = () => { | |
| 13 | + const extraQuery = { | |
| 14 | + status: '', | |
| 15 | + paged: 1, | |
| 16 | + }; | |
| 17 | + | |
| 18 | + getResponse( eleParents, extraQuery ); | |
| 19 | + | |
| 20 | + const select = document.querySelector( '.students-list-filter' ); | |
| 21 | + | |
| 22 | + if ( select != null ) { | |
| 23 | + select.addEventListener( 'change', function() { | |
| 24 | + eleParents.innerHTML = ''; | |
| 25 | + skeleton.style.display = 'block'; | |
| 26 | + extraQuery.status = this.value; | |
| 27 | + getResponse( eleParents, extraQuery ); | |
| 28 | + } ); | |
| 29 | + } | |
| 30 | + }; | |
| 31 | + | |
| 32 | + const getResponse = async ( ele, extraQuery, append = false, viewMoreEle ) => { | |
| 33 | + const courseID = ele.dataset.id; | |
| 34 | + const statusFilter = extraQuery?.status || ''; | |
| 35 | + const paged = extraQuery?.paged || 1; | |
| 36 | + | |
| 37 | + try { | |
| 38 | + const response = await wp.apiFetch( { | |
| 39 | + path: addQueryArgs( 'lp/v1/lazy-load/student-list', { | |
| 40 | + courseId: courseID || lpGlobalSettings.post_id || '', | |
| 41 | + status: statusFilter, | |
| 42 | + paged, | |
| 43 | + } ), | |
| 44 | + method: 'GET', | |
| 45 | + } ); | |
| 46 | + | |
| 47 | + const { data, status, message } = response; | |
| 48 | + | |
| 49 | + if ( status === 'error' ) { | |
| 50 | + throw new Error( message || 'Error' ); | |
| 51 | + } | |
| 52 | + | |
| 53 | + if ( append ) { | |
| 54 | + ele.innerHTML += data.content; | |
| 55 | + } else { | |
| 56 | + ele.innerHTML = data.content; | |
| 57 | + } | |
| 58 | + | |
| 59 | + if ( viewMoreEle ) { | |
| 60 | + viewMoreEle.classList.remove( 'loading' ); | |
| 61 | + | |
| 62 | + const paged = viewMoreEle.dataset.paged; | |
| 63 | + const numberPage = viewMoreEle.dataset.number; | |
| 64 | + | |
| 65 | + if ( numberPage <= paged ) { | |
| 66 | + viewMoreEle.remove(); | |
| 67 | + } | |
| 68 | + | |
| 69 | + viewMoreEle.dataset.paged = parseInt( paged ) + 1; | |
| 70 | + } | |
| 71 | + viewMoreStudentList( ele, extraQuery ); | |
| 72 | + } catch ( error ) { | |
| 73 | + ele.insertAdjacentHTML( 'beforeend', `<div class="learn-press-message error" style="display:block">${ error.message || 'Error: Query lp/v1/lazy-load/course-student-list' }</div>` ); | |
| 74 | + } | |
| 75 | + | |
| 76 | + skeleton.style.display = 'none'; | |
| 77 | + }; | |
| 78 | + | |
| 79 | + const viewMoreStudentList = ( ele, extraQuery ) => { | |
| 80 | + const viewMoreEle = ele.querySelector( '.lp_student_list_button button.lp-button' ); | |
| 81 | + | |
| 82 | + if ( viewMoreEle ) { | |
| 83 | + viewMoreEle.addEventListener( 'click', ( e ) => { | |
| 84 | + e.preventDefault(); | |
| 85 | + | |
| 86 | + const paged = viewMoreEle && viewMoreEle.dataset.paged; | |
| 87 | + | |
| 88 | + viewMoreEle.classList.add( 'loading' ); | |
| 89 | + | |
| 90 | + getResponse( ele.querySelector( 'ul.students' ), { ...extraQuery, ...{ paged } }, true, viewMoreEle ); | |
| 91 | + } ); | |
| 92 | + } | |
| 93 | + }; | |
| 94 | + | |
| 95 | + Sekeleton(); | |
| 96 | +}; | |