|
1
|
|
-import SweetAlert from"sweetalert2";import*as lpUtils from"lpAssetsJsPath/utils.js";export class ViewStudentsModal{constructor(){this.isRequesting=!1,this.activeCourseId=0,this.init()}static selectors={wrap:"#lp-modal-enrolled-wrap",form:"#lp-modal-enrolled-form",toolbarTemplate:"#lp-tmpl-enrolled-students-toolbar-modal",targetTemplate:"#lp-tmpl-enrolled-students-target-modal",toolbar:".lp-enrolled-students-table-toolbar--modal",courseTrigger:".lp-btn-view-students",searchInput:"#lp-modal-enrolled-search-input",startDateInput:"#lp-modal-enrolled-filter-start-date",endDateInput:"#lp-modal-enrolled-filter-end-date",searchBtn:".lp-enrolled-btn-search-modal",clearBtn:".lp-enrolled-btn-clear-modal",modalSearchFields:"#lp-modal-enrolled-search-input, #lp-modal-enrolled-filter-start-date, #lp-modal-enrolled-filter-end-date"};setButtonLoadingState(e,t){e&&(lpUtils.lpSetLoadingEl(e,t?1:0),e.disabled=!!t)}init(){ViewStudentsModal._loadedEvents||(ViewStudentsModal._loadedEvents=!0,lpUtils.eventHandlers("click",[{selector:ViewStudentsModal.selectors.courseTrigger,class:this,callBack:this.handleOpenModal.name},{selector:ViewStudentsModal.selectors.searchBtn,class:this,callBack:this.handleModalSearch.name},{selector:ViewStudentsModal.selectors.clearBtn,class:this,callBack:this.handleModalClear.name}]),lpUtils.eventHandlers("keydown",[{selector:ViewStudentsModal.selectors.modalSearchFields,class:this,callBack:this.handleModalSearchOnEnter.name,checkIsEventEnter:!0}]),lpUtils.eventHandlers("change",[{selector:ViewStudentsModal.selectors.startDateInput,class:this,callBack:this.checkDatesRange.name},{selector:ViewStudentsModal.selectors.endDateInput,class:this,callBack:this.checkDatesRange.name}]))}handleOpenModal(e){const t=e?.target?.closest(ViewStudentsModal.selectors.courseTrigger);if(!t||this.isRequesting||t.classList.contains("loading")||t.disabled)return;const s=parseInt(t.dataset.courseId,10)||0;if(!s)return;const l=t.dataset.courseTitle||"";this.activeCourseId=s,this.setButtonLoadingState(t,!0),this.openModal(s,l,t)}handleModalSearch(e){const t=e?.target?.closest(ViewStudentsModal.selectors.searchBtn);t&&this.activeCourseId&&(e?.e&&e.e.preventDefault(),this.isRequesting||t.classList.contains("loading")||t.disabled||(this.setButtonLoadingState(t,!0),this.loadEnrolledStudents(this.activeCourseId,1,t)))}handleModalSearchOnEnter(e){e?.e&&e.e.preventDefault();const t=this.getModalForm();if(!t)return;const s=t.querySelector(ViewStudentsModal.selectors.searchBtn);s&&this.handleModalSearch({...e,target:s})}handleModalClear(e){const t=e?.target?.closest(ViewStudentsModal.selectors.clearBtn),s=this.getModalForm();t&&s&&this.activeCourseId&&(e?.e&&e.e.preventDefault(),this.isRequesting||t.classList.contains("loading")||t.disabled||(s.reset(),this.setButtonLoadingState(t,!0),this.loadEnrolledStudents(this.activeCourseId,1,t)))}getModalPopup(){return SweetAlert.getPopup?SweetAlert.getPopup():null}getModalToolbarHtml(){const e=document.querySelector(ViewStudentsModal.selectors.toolbarTemplate);return e?e.innerHTML:""}getModalTargetHtml(){const e=document.querySelector(ViewStudentsModal.selectors.targetTemplate);return e?e.innerHTML:""}getAjaxHandle(){const e=window.lpAJAXG;return e&&"function"==typeof e.getDataSetCurrent&&"function"==typeof e.setDataSetCurrent&&"function"==typeof e.showHideLoading&&"function"==typeof e.fetchAJAX?e:null}getModalForm(){const e=this.getModalPopup();return e?e.querySelector(ViewStudentsModal.selectors.form):null}getModalFilterArgs(e={}){const t=this.getModalForm();return t?lpUtils.mergeDataWithDatForm(t,e):e}loadEnrolledStudents(e,t,s=null){const l=document.querySelector(ViewStudentsModal.selectors.wrap),a=l?.querySelector(".lp-target"),o=this.getAjaxHandle();if(!l||!a||!o||this.isRequesting)return;this.isRequesting=!0,s&&this.setButtonLoadingState(s,!0);const n=o.getDataSetCurrent(a);n.args=this.getModalFilterArgs(n.args||{}),n.args.course_id=parseInt(e,10)||0,n.args.paged=t,o.setDataSetCurrent(a,n),o.showHideLoading(a,1);const r={success:e=>{a.innerHTML=e.data.content},error:e=>{console.error(e)},completed:()=>{this.isRequesting=!1,o.showHideLoading(a,0),s&&this.setButtonLoadingState(s,!1)}};o.fetchAJAX(n,r)}openModal(e,t,s=null){const l=this.getModalToolbarHtml(),a=this.getModalTargetHtml();l&&a?(this.activeCourseId=parseInt(e,10)||0,SweetAlert.fire({title:`${t}`,html:l+a,width:"80%",showConfirmButton:!1,showCloseButton:!0,didOpen:()=>{this.loadEnrolledStudents(this.activeCourseId,1,s)},didClose:()=>{this.activeCourseId=0,s&&this.setButtonLoadingState(s,!1)}})):s&&this.setButtonLoadingState(s,!1)}checkDatesRange(e){const{e:t}=e,s=t?.target;if(!s)return;const l=s.closest(ViewStudentsModal.selectors.form);if(!l)return;const a=l.querySelector(ViewStudentsModal.selectors.startDateInput),o=l.querySelector(ViewStudentsModal.selectors.endDateInput);s===a?a.value?(o.min=a.value,o.value&&o.value<a.value&&(o.value=a.value)):o.min="":s===o&&(o.value?(a.max=o.value,a.value&&a.value>o.value&&(a.value=o.value)):a.max="")}} |
|
1
|
+import SweetAlert from"sweetalert2";import*as lpUtils from"lpAssetsJsPath/utils.js";export class ViewStudentsModal{constructor(){this.isRequesting=!1,this.activeCourseId=0,this.init()}static selectors={wrap:"#lp-modal-enrolled-wrap",form:"#lp-modal-enrolled-form",toolbarTemplate:"#lp-tmpl-enrolled-students-toolbar-modal",targetTemplate:"#lp-tmpl-enrolled-students-target-modal",toolbar:".lp-enrolled-students-table-toolbar--modal",courseTrigger:".lp-btn-view-students",searchInput:"#lp-modal-enrolled-search-input",startDateInput:"#lp-modal-enrolled-filter-start-date",endDateInput:"#lp-modal-enrolled-filter-end-date",searchBtn:".lp-enrolled-btn-search-modal",clearBtn:".lp-enrolled-btn-clear-modal",modalSearchFields:"#lp-modal-enrolled-search-input, #lp-modal-enrolled-filter-start-date, #lp-modal-enrolled-filter-end-date"};setButtonLoadingState(e,t){e&&lpUtils.lpSetLoadingEl(e,t?1:0)}init(){ViewStudentsModal._loadedEvents||(ViewStudentsModal._loadedEvents=!0,lpUtils.eventHandlers("click",[{selector:ViewStudentsModal.selectors.courseTrigger,class:this,callBack:this.handleOpenModal.name},{selector:ViewStudentsModal.selectors.searchBtn,class:this,callBack:this.handleModalSearch.name},{selector:ViewStudentsModal.selectors.clearBtn,class:this,callBack:this.handleModalClear.name}]),lpUtils.eventHandlers("keydown",[{selector:ViewStudentsModal.selectors.modalSearchFields,class:this,callBack:this.handleModalSearchOnEnter.name,checkIsEventEnter:!0}]),lpUtils.eventHandlers("change",[{selector:ViewStudentsModal.selectors.startDateInput,class:this,callBack:this.checkDatesRange.name},{selector:ViewStudentsModal.selectors.endDateInput,class:this,callBack:this.checkDatesRange.name}]))}handleOpenModal(e){const t=e?.target?.closest(ViewStudentsModal.selectors.courseTrigger);if(!t||this.isRequesting||t.classList.contains("loading"))return;const s=parseInt(t.dataset.courseId,10)||0;if(!s)return;const l=t.dataset.courseTitle||"";this.activeCourseId=s,this.setButtonLoadingState(t,!0),this.openModal(s,l,t)}handleModalSearch(e){const t=e?.target?.closest(ViewStudentsModal.selectors.searchBtn);t&&this.activeCourseId&&(e?.e&&e.e.preventDefault(),this.isRequesting||t.classList.contains("loading")||t.disabled||(this.setButtonLoadingState(t,!0),this.loadEnrolledStudents(this.activeCourseId,1,t)))}handleModalSearchOnEnter(e){e?.e&&e.e.preventDefault();const t=this.getModalForm();if(!t)return;const s=t.querySelector(ViewStudentsModal.selectors.searchBtn);s&&this.handleModalSearch({...e,target:s})}handleModalClear(e){const t=e?.target?.closest(ViewStudentsModal.selectors.clearBtn),s=this.getModalForm();t&&s&&this.activeCourseId&&(e?.e&&e.e.preventDefault(),this.isRequesting||t.classList.contains("loading")||(s.reset(),this.setButtonLoadingState(t,!0),this.loadEnrolledStudents(this.activeCourseId,1,t)))}getModalPopup(){return SweetAlert.getPopup?SweetAlert.getPopup():null}getModalToolbarHtml(){const e=document.querySelector(ViewStudentsModal.selectors.toolbarTemplate);return e?e.innerHTML:""}getModalTargetHtml(){const e=document.querySelector(ViewStudentsModal.selectors.targetTemplate);return e?e.innerHTML:""}getAjaxHandle(){const e=window.lpAJAXG;return e&&"function"==typeof e.getDataSetCurrent&&"function"==typeof e.setDataSetCurrent&&"function"==typeof e.showHideLoading&&"function"==typeof e.fetchAJAX?e:null}getModalForm(){const e=this.getModalPopup();return e?e.querySelector(ViewStudentsModal.selectors.form):null}getModalFilterArgs(e={}){const t=this.getModalForm();return t?lpUtils.mergeDataWithDatForm(t,e):e}loadEnrolledStudents(e,t,s=null){const l=document.querySelector(ViewStudentsModal.selectors.wrap),a=l?.querySelector(".lp-target"),o=this.getAjaxHandle();if(!l||!a||!o||this.isRequesting)return;this.isRequesting=!0,s&&this.setButtonLoadingState(s,!0);const n=o.getDataSetCurrent(a);n.args=this.getModalFilterArgs(n.args||{}),n.args.course_id=parseInt(e,10)||0,n.args.paged=t,o.setDataSetCurrent(a,n),o.showHideLoading(a,1);const r={success:e=>{a.innerHTML=e.data.content},error:e=>{console.error(e)},completed:()=>{this.isRequesting=!1,o.showHideLoading(a,0),s&&this.setButtonLoadingState(s,!1)}};o.fetchAJAX(n,r)}openModal(e,t,s=null){const l=this.getModalToolbarHtml(),a=this.getModalTargetHtml();l&&a?(this.activeCourseId=parseInt(e,10)||0,SweetAlert.fire({title:`${t}`,html:l+a,width:"80%",showConfirmButton:!1,showCloseButton:!0,didOpen:()=>{this.loadEnrolledStudents(this.activeCourseId,1,s)},didClose:()=>{this.activeCourseId=0,s&&this.setButtonLoadingState(s,!1)}})):s&&this.setButtonLoadingState(s,!1)}checkDatesRange(e){const{e:t}=e,s=t?.target;if(!s)return;const l=s.closest(ViewStudentsModal.selectors.form);if(!l)return;const a=l.querySelector(ViewStudentsModal.selectors.startDateInput),o=l.querySelector(ViewStudentsModal.selectors.endDateInput);s===a?a.value?(o.min=a.value,o.value&&o.value<a.value&&(o.value=a.value)):o.min="":s===o&&(o.value?(a.max=o.value,a.value&&a.value>o.value&&(a.value=o.value)):a.max="")}} |