{"version":3,"sources":["recoils/atoms.js","utils/axios.js","utils/FileUtils.js","assets/images/app-logo.png","config/firebase/prod.js","recoils/firebase.js","config/firebase/staging.js","assets/images/avatars/avatar2.jpg","components/ShareControls/DateField.js","components/Controls/KeyboardDateField.js","components/Controls/AutocompleteTextField.js","assets/images/avatars/avatar1.jpg","assets/images/avatars/avatar6.jpg","assets/images/avatars/avatar7.jpg","assets/core/_variables-mui.scss","theme/index.js","theme/typography.js","layouts/ErrorLayout.js","layouts/AuthenticationLayout.js","layouts/layout-components/HeaderLogo/index.js","components/UI/Badge.js","layouts/layout-components/HeaderUserbox/index.js","layouts/layout-components/HeaderSearch/index.js","layouts/layout-components/HeaderNotification/component/FilterTab.js","layouts/layout-components/HeaderNotification/component/OptionMenu.js","layouts/layout-components/HeaderNotification/HeaderAction.js","layouts/layout-components/HeaderNotification/component/EmptyNotification.js","layouts/layout-components/HeaderNotification/component/NotificationSkeleton.js","layouts/layout-components/HeaderNotification/component/NotificationTypeIcon.js","layouts/layout-components/HeaderNotification/NotificationItem.js","layouts/layout-components/HeaderNotification/NotificationList.js","layouts/layout-components/HeaderNotification/index.js","pages/PhanDoanTruong/AssignUserUnion/recoil.js","components/Dialog/RolesDialog.js","components/Dialog/DialerDialog.js","components/Dialog/AbsentDialog.js","pages/HuynhTruong/ManageStudentClass/recoil.js","pages/PhanDoanTruong/ManageStudentsGroup/recoil.js","components/Dialog/StudentDialog.js","components/Dialog/ChooseFileDialog.js","components/Dialog/DocumentPreviewDialog.js","components/Dialog/ChooseInfoFileDialog.js","components/Dialog/ChangeGroupModal.js","components/Dialog/ChangePasswordDialog.js","components/Dialog/GroupScoreResultDialog.js","components/Dialog/TeacherInfoDialog.js","components/Dialog/StudyComebackDialog.js","components/Dialog/PhoneCallDialog.js","pages/Students/FindStudent/recoil.js","components/Dialog/ChangeStudentStatusDialog.js","layouts/layout-components/Header/index.js","layouts/layout-components/HeaderDrawer/index.js","layouts/layout-components/HeaderMenu/index.js","layouts/layout-components/SidebarHeader/index.js","layouts/layout-components/SidebarMenu/SidebarMenuListItem.js","layouts/layout-components/SidebarMenu/index.js","utils/useRouter.js","config/navItems.js","layouts/layout-components/SidebarCollapsed/index.js","layouts/layout-components/SidebarUserbox/index.js","layouts/layout-components/SidebarFooter/index.js","layouts/layout-components/Sidebar/index.js","layouts/layout-components/PageTitle/index.js","layouts/layout-components/Footer/index.js","layouts/layout-components/ThemeConfigurator/index.js","layouts/layout-components/ExampleWrapperSimple/index.js","layouts/layout-components/ExampleWrapperSeamless/index.js","layouts/layout-components/ExampleWrapperContainer/index.js","layouts/layout-blueprints/LeftSidebar/index.js","layouts/layout-blueprints/PresentationLayout/index.js","layouts/layout-blueprints/CombinedLayout.js","components/Loading/card-skeleton.js","pages/Students/FindStudent/HolyName.js","pages/Students/FindStudent/components/StudentFunctions.js","pages/Students/FindStudent/StudentInfo.js","pages/Students/FindStudent/ScoreHeader.js","pages/Students/FindStudent/ScoreBody.js","pages/Students/FindStudent/StudentScore.js","pages/Students/FindStudent/index.js","pages/Users/MyProfile/recoil.js","pages/Users/MyProfile/EditAvatar.js","pages/Users/MyProfile/ShowImageModal.js","pages/Users/MyProfile/index.js","pages/Form/recoil.js","pages/Form/components/DocumentList.js","pages/Form/components/UnionSelectedStudentItem.js","pages/Form/components/UnionSelectedStudent.js","pages/Form/components/GroupSelectedStudent.js","pages/Form/index.js","pages/BanQuanTri/RegisterOffline/recoil.js","pages/BanQuanTri/RegisterOffline/RegisterForm.js","pages/BanQuanTri/RegisterOffline/StudentList.js","pages/BanQuanTri/RegisterOffline/index.js","pages/BanQuanTri/GroupInfo/recoil.js","pages/BanQuanTri/GroupInfo/components/HeaderDownload.js","pages/BanQuanTri/GroupInfo/components/GroupListSection.js","pages/BanQuanTri/GroupInfo/components/GroupSummaryInfo.js","pages/BanQuanTri/GroupInfo/components/GroupUnionList.js","pages/BanQuanTri/GroupInfo/components/UnionStudentInfoItem.js","pages/BanQuanTri/GroupInfo/components/UnionStudentInfo.js","pages/BanQuanTri/GroupInfo/components/UnionAssignmentInfo.js","pages/BanQuanTri/GroupInfo/components/UnionStudentScoreItem.js","pages/BanQuanTri/GroupInfo/components/UnionStudentScore.js","pages/Students/Absent/recoil.js","pages/Students/Absent/Selection.js","pages/BanQuanTri/GroupInfo/components/StudentAttendanceDetail.js","pages/BanQuanTri/GroupInfo/components/UnionStudentAttendanceItem.js","pages/Students/Absent/components/DayViewSelection.js","pages/BanQuanTri/GroupInfo/components/UnionStudentAttendance.js","pages/BanQuanTri/GroupInfo/components/EditModeHeader.js","pages/BanQuanTri/GroupInfo/components/EditStudentInfo.js","components/Controls/ScoreTextField.js","pages/BanQuanTri/GroupInfo/components/EditStudentScoreInfo.js","pages/BanQuanTri/GroupInfo/components/EditStudentScore.js","pages/BanQuanTri/GroupInfo/components/EditStudentAttendanceItem.js","pages/BanQuanTri/GroupInfo/components/EditStudentAttendance.js","pages/BanQuanTri/GroupInfo/components/EditModeInfo.js","pages/BanQuanTri/GroupInfo/index.js","pages/BanQuanTri/TeacherAssignment/recoil.js","pages/BanQuanTri/TeacherAssignment/components/GroupLeader.js","pages/BanQuanTri/TeacherAssignment/components/GroupMember.js","pages/BanQuanTri/TeacherAssignment/components/GroupInfo.js","pages/BanQuanTri/TeacherAssignment/components/Groups.js","pages/BanQuanTri/TeacherAssignment/index.js","pages/PhanDoanTruong/AddNewStudent/RegisterForm.js","pages/PhanDoanTruong/AddNewStudent/HeaderAction.js","pages/PhanDoanTruong/AddNewStudent/index.js","pages/PhanDoanTruong/ManageScoreGroup/HeaderAction.js","components/Loading/row-skeleton.js","pages/PhanDoanTruong/ManageScoreGroup/StudentUnionTeamBodyItem.js","pages/PhanDoanTruong/ManageScoreGroup/StudentUnionTeamBody.js","pages/PhanDoanTruong/ManageScoreGroup/StudentUnionTeam.js","pages/PhanDoanTruong/ManageScoreGroup/recoil.js","pages/PhanDoanTruong/ManageScoreGroup/StudentUnion.js","pages/PhanDoanTruong/ManageScoreGroup/SelectUnion.js","pages/PhanDoanTruong/ManageScoreGroup/index.js","pages/PhanDoanTruong/ManageStudentsGroup/StudentTeamItem.js","pages/PhanDoanTruong/ManageStudentsGroup/StudentTeam.js","pages/PhanDoanTruong/ManageStudentsGroup/StudentGroup.js","pages/PhanDoanTruong/ManageStudentsGroup/HeaderAction.js","pages/PhanDoanTruong/ManageStudentsGroup/index.js","pages/PhanDoanTruong/AssignUserUnion/UserListItem.js","pages/PhanDoanTruong/AssignUserUnion/UserList.js","pages/PhanDoanTruong/AssignUserUnion/index.js","pages/PhanDoanTruong/ChangeStudentUnion/recoil.js","pages/PhanDoanTruong/ChangeStudentUnion/components/HeaderAction.js","pages/PhanDoanTruong/ChangeStudentUnion/components/CarouselUi.js","pages/PhanDoanTruong/ChangeStudentUnion/components/Transition.js","pages/PhanDoanTruong/ChangeStudentUnion/components/StudentsUnionTeamItem.js","pages/PhanDoanTruong/ChangeStudentUnion/ChangeTeam/TeamDetail.js","pages/PhanDoanTruong/ChangeStudentUnion/ChangeTeam/UnionTeam.js","pages/PhanDoanTruong/ChangeStudentUnion/ChangeTeam/ChangeTeam.js","pages/PhanDoanTruong/ChangeStudentUnion/ChangeUnion/StudentsUnionTeam.js","pages/PhanDoanTruong/ChangeStudentUnion/ChangeUnion/StudentsUnion.js","pages/PhanDoanTruong/ChangeStudentUnion/ChangeUnion/ChangeUnion.js","pages/PhanDoanTruong/ChangeStudentUnion/index.js","pages/HuynhTruong/ManageStudentScore/recoil.js","pages/HuynhTruong/ManageStudentScore/HeaderAction.js","pages/HuynhTruong/ManageStudentScore/StudentTotalScoreDetails.js","pages/HuynhTruong/ManageStudentScore/StudentTeamItemDetails.js","pages/HuynhTruong/ManageStudentScore/UnionTeamItem.js","pages/HuynhTruong/ManageStudentScore/UnionTeams.js","pages/HuynhTruong/ManageStudentScore/index.js","pages/Students/Absent/components/SumAbsent.js","pages/Students/Absent/components/AttendanceItemDetails.js","pages/Students/Absent/StudentAttendanceItem.js","pages/Students/Absent/StudentAttendance.js","pages/Students/Absent/HeaderAction.js","pages/Students/Absent/index.js","pages/HuynhTruong/ManageStudentClass/StudentTeamItem.js","pages/HuynhTruong/ManageStudentClass/StudentTeam.js","pages/HuynhTruong/ManageStudentClass/HeaderAction.js","pages/HuynhTruong/ManageStudentClass/index.js","routes.js","components/ScrollToTop.js","components/Introduction.js","App.js","recoils/selectors.js","utils/Yup.js","components/Loading/modal-skeleton.js","components/CardOnModal.js","components/Controls/index.js","components/Dialog/recoil.js","pages/Dashboard/recoil.js","components/SuspenseLoading.js","components/Dialog/ChangeUserPasswordDialog.js","components/Dialog/ChangeUserStatusDialog.js","components/Dialog/UserInfoDialog.js","components/Dialog/NewUserDialog.js","components/UI/StyledCheckbox.js","layouts/AdminLayout/Loading.js","layouts/AdminLayout/ToastMessageWrapper.js","layouts/AdminLayout/Toast.js","assets/images/loading/waiting.gif","assets/images/stock-photos/people-1.jpg","assets/images/stock-photos/people-3.jpg","assets/images/no_image.jpg","assets/images/Background.jpg","index.js","app/enums.js","components/Loading/page-skeleton.js","components/UI/StyledRadio.js","components/UI/ButtonLoading.js","components/Controls/ShortTextField.js","components/Controls/InlineTextField.js","utils/sessionHelper.js","assets/images/hero-bg/hero-1.jpg","utils/StringUtils.js"],"names":["themeOptionsState","atom","key","default","sidebarShadow","sidebarFixed","sidebarToggleMobile","sidebarFooter","sidebarUserbox","sidebarToggle","sidebarHover","headerFixed","headerShadow","headerSearchHover","contentBackground","themeConfiguratorToggle","footerFixed","footerShadow","pageTitleStyle","pageTitleBackground","pageTitleShadow","pageTitleBreadcrumb","pageTitleIconBox","pageTitleDescription","layoutStyle","headerColor","themeColor","primary","localStorage","getItem","secondary","forceCheckingAuth","loadingState","toastState","open","vertical","horizontal","message","title","type","reloadHolyName","reloadTemplates","ViewMode","ViewModes","DanhSachDS","PageYOffset","reloadListUnion","reloadUserAvatar","ShowChangePassword","UserImageAtom","undefined","SemesterSelected","TeamScoreSelected","UnionScoreSelected","loadNotification","loadNumUnReadNoti","loadTotalNoti","Notifications","GroupIdSelected","ShowTourIntroduction","run","steps","apiEndpoint","process","axios","interceptors","request","use","config","error","Promise","reject","response","status","history","push","convertDateTimeOffset","payload","FormData","Object","keys","filter","Date","reduce","result","_objectSpread","moment","format","doAxios","method","action","data","params","arguments","length","modifiedBy","sessionHelper","fullName","userFullName","headers","token","Authorization","body","url","concat","withCredentials","timeout","doPost","doDownload","doAxiosDownload","responseType","then","res","blob","Blob","contentDisposition","fileName","fileNameMatch","match","Buffer","from","toString","saveAs","doGet","doPut","doGatewayAxios","getFiles","async","storage","refPath","pathReference","ref","resultRef","listAll","promises","items","map","metaData","itemRef","getMetadata","getDownloadURL","name","all","putFile","file","isBase64","child","putString","metadata","contentType","put","module","exports","firebaseConfig","apiKey","authDomain","projectId","storageBucket","messagingSenderId","appId","measurementId","console","log","firebase","initializeApp","storageState","DateField","props","React","createElement","KeyboardDatePicker","assign","DatePicker_Props","_props$cusFormat","fullWidth","inputVariant","InputLabelProps","shrink","cusFormat","placeholder","KeyboardButtonProps","InputProps","readOnly","InputAdornmentProps","disablePointerEvents","value","KeyboardDateField","_ref","formik","label","required","values","errors","touched","handleBlur","handleChange","forFormik","_$get","_","get","helperText","onBlur","onChange","date","setFieldValue","err","handChangeDate","AutocompleteTextField","options","Autocomplete","fieldName","_options$find","newFieldName","includes","find","item","id","getDropdownValue","event","newValue","clearOnBlur","onInputChange","newInputValue","findIndex","opt","renderOption","option","_ref2","inputValue","matches","parts","parse","part","index","style","fontWeight","highlight","text","getOptionLabel","renderInput","TextField","variant","MuiTheme","palette","main","vars","grey","300","inheritDefault1","A100","inheritDefault2","red","success","green","warning","orange","helpers","blue","contrastThreshold","tonalOffset","shape","borderRadius","overrides","MuiCssBaseline","backgroundColor","MuiButton","paddingLeft","paddingRight","containedSizeSmall","root","textTransform","MuiTooltip","tooltip","second","padding","fontSize","arrow","color","MuiIcon","overflow","typography","h1","lineHeight","h2","h3","h4","h5","h6","subtitle1","subtitle2","body1","body2","button","caption","overline","ErrorLayoutInner","route","Fragment","renderRoutes","routes","ErrorLayout","AuthenticationLayoutInner","AuthenticationLayout","HeaderLogo","useRecoilValue","className","clsx","Box","Link","to","IconButton","size","alt","src","projectLogo","ActiveBadge","withStyles","theme","badge","boxShadow","background","paper","position","top","left","width","height","animation","border","content","transform","opacity","Badge","InActiveBadge","isActive","rest","_objectWithoutProperties","_excluded","HeaderUserBox","_session$firstName","_session$lastName","_lstHolyName$find","_session$firstName2","_session$lastName2","_lstHolyName$find2","anchorEl","setAnchorEl","useState","session","lstHolyName","HolyNameQuery","userAvatar","UserAvatarQuery","openChangePass","setOpenChangePass","useRecoilState","handleClose","Button","onClick","currentTarget","overlap","anchorOrigin","Avatar","sizes","firstName","lastName","avatarUrl","substring","i","Number","holyNameId","getMaxRole","FontAwesomeIcon","icon","faAngleDown","Menu","keepMounted","getContentAnchorEl","Boolean","transformOrigin","onClose","List","classInfo","Divider","ListItem","onToggle","logout","deleteLoginData","useStyles","makeStyles","active","useKeyPress","targetKey","keyPressed","setKeyPressed","downHandler","upHandler","useEffect","window","addEventListener","removeEventListener","HeaderSearch","classes","searchRef","useRef","dummySearchesStudents","setDummySearchesStudents","dummySearchResult","setDummySearchResult","searching","setSearching","cursor","setCursor","hovered","setHovered","downPress","upPress","enterPress","openSearchResults","setOpenSearchResults","searchValue","setSearchValue","state","setState","prevState","indexOf","val","keyword","catch","searchStudents","marginLeft","SearchIcon","Hidden","mdUp","smDown","startIcon","endIcon","Drawer","anchor","e","Container","maxWidth","target","old","inputProps","startAdornment","InputAdornment","Fab","CloseTwoToneIcon","Typography","Grid","container","spacing","xs","justifyContent","alignContent","alignItems","textAlign","stuCode","handleRowClick","preventDefault","onMouseEnter","onMouseLeave","stuHolyname","stuFirstName","stuLastName","stuDob","groupName","unionCode","StudentStatus","ChangeChurch","LeaveStudy","Active","Deleted","InActive","KeyboardEventHandler","handleFocusableElements","handleKeys","onKeyEvent","marginRight","FilterTab","OptionMenu","aria-label","aria-controls","aria-expanded","aria-haspopup","MoreHoriz","MenuListProps","MenuItem","HeaderNotification","notifications","loadNoti","setLoadNoti","loadNumUnRead","setLoadNumUnRead","loadTotal","setLoadTotal","Done","setIsReadAll","CancelPresentation","removeAllNotification","userId","paddingTop","EmptyNotification","NotificationsPausedRounded","NotificationSkeleton","isMobile","gap","borderBottom","md","lg","Skeleton","margin","NotificationTypeIcon","NotificationType","UpdateStudentInformation","EditIcon","ChangeStudentStatus","CreateNewStudent","PersonAddIcon","UpdateStudentScoreSemesterOne","UpdateStudentScoreSemesterTwo","UpdateStudentScoreTotal","display","small","medium","large","dot","right","NotificationItem","notification","isSmallScreen","useMediaQuery","breakpoints","down","notificationId","setIsRead","isRead","createdDate","locale","fromNow","NotificationList","total","tab","useTheme","pageSize","setPageSize","scrollPos","seScrollPos","divRef","setNotifications","PageSize","fetchNotification","onScroll","handeScroll","currentScrollPos","current","scrollTop","tabIndex","maxHeight","overflowY","overflowX","Array","numUnRead","setNumUnRead","setTotal","iTab","setITab","fetchNumberUnReadNotification","finally","fetchTotalNotification","component","pr","NotificationsActiveTwoToneIcon","Popover","HeaderAction","handleChangeTab","ReloadUserInGroup","AssignmentIdSelected","UserInGroupQuery","selector","scholasticId","classId","chain","groupBy","unionId","assigns","init","RolesDialog","_lstHolyname$find","fullScreen","loading","setLoading","toast","setToast","lstHolyname","reload","setReload","rolesDialog","setRolesDialog","RolesDialogAtom","pageCall","user","formRoles","useFormik","initialValues","validateOnChange","validateOnMount","enableReinitialize","newFormData","roles","resetForm","handleRole","Roles","DuTruong","HuynhTruong","handleCheckRole","handleCloseDialog","Dialog","aria-labelledby","DialogTitle","DialogContent","CardContent","h","sm","FormControl","FormLabel","FormGroup","RadioGroup","FormControlLabel","control","StyledRadio","checked","StyledCheckbox","PhanDoanTruong","disabled","NganhTruong","PhungVu","HocTap","KyLuat","SinhHoat","BanDieuHanh","DialogActions","ButtonLoading","btnText","handleButtonClick","Id","DialerDialog","phoneDialog","setPhoneDialog","PhoneCallDialogAtom","phoneCallDialog","phoneNo","minWidth","handleCall","AbsentDialog","absentDialog","setAbsentDialog","OpenAbsentDialog","reason","setReason","hasPermission","setHasPermission","absentMode","setAbsentMode","student","StudentAbsent","handleCheckMode","itemExist","v","row","AbsentMode","Mass","labelPlacement","Class","StudentId","DateAbsent","IsActive","Mode","ScholasticId","UserFullName","UserId","ClassId","Reason","HasPermission","Modes","ReloadStudentClass","StudentsQuery","classCode","stuRes","distinctTeam","Set","x","_x$studentClass$find","studentClass","sc","team","lstStudent","t","students","stu","forEach","isTeamLead","orderBy","AssignmentQuery","totalTeam","union","ReloadStudentGroup","StudentsGroupQuery","lstUnion","UnionQuery","_stu$studentClass","_stu$studentClass$fin","stuUnionId","StudentDialog","_formData$values$newV","_formData$values$newV2","_formData$values$newV3","_lstHolyName$find$nam","_lstHolyName$find$nam2","_ref3","_lstHolyName$find$nam3","_lstHolyName$find3","setReloadHolyName","useSetRecoilState","setReloadClass","setReloadGroup","studentDialog","setStudentDialog","StudentDialogAtom","changeGroupModal","setChangeGroupModal","ChangeGroupModalAtom","isEdit","setIsEdit","changeStatus","setChangeStatus","setIsTeamLead","stuDialog","_student$studentClass","_student$studentClass2","sl","validationSchema","Yup","object","stuHolyId","string","min","max","note","nullable","studentMoreInfo","stuFatherFullName","stuMotherFullName","stuAddress","stuMotherPhone","excludeEmptyString","stuFatherPhone","formData","handleClickCall","handleCancelStatus","handleReload","formVal","handleClickStatus","handleAssignTeamLead","stuClass","DialogTitleCustom","closeButton","changeGroup","only","up","_student$studentClass3","_student$studentClass4","children","other","isAssigned","disableTypography","Tooltip","handleClickChangeGroup","ExitToApp","FlagRoundedIcon","openDialog","closeParent","ModalSkeleton","ButtonGroup","hidden","ShortTextField","maxLength","studentId","oldValue","setValues","isValid","ChooseFileDialog","dialog","setDialog","ChooseFileDialogAtom","setFile","semester","setSemester","openChooseFileDialog","SemesterEnum","semesterOne","semesterTwo","endAdornment","files","accept","fromData","append","groupId","setTimeout","location","DocumentPreviewDialog","_$uniqBy","_$uniqBy$filter","templateId","setTemplateId","document","setDocument","templates","TemplatesQuery","DocumentPreviewDialogAtom","fullscreen","openPreviewDialog","templateType","studentClassId","scroll","select","uniqBy","temp","VisibilityRoundedIcon","TemplateId","IsPreview","GetAppRoundedIcon","Editor","textareaName","menubar","plugins","toolbar","toolbar_sticky","skin","content_css","ChooseInfoFileDialog","ChooseFileInfoDialogAtom","setReloadStudentClass","setReloadStudentGroup","pageUploadStudentInfo","ChangeGroupModal","_lstBranch$find","lstBranch","BranchQuery","currentGroupId","class","newGroupId","changeForm","initialErrors","TextField_Props","_values$name","close","StringUtils","holyNameLookup","g","branchId","group","b","branch","branchName","ChangePasswordDialog","setOpen","useFormValidationFrom","CurrentPassword","NewPassword","ConfirmPass","oneOf","isRequired","oldPassword","newPassword","GroupScoreResultDialog","unionIds","setUnionIds","GroupScoreResultDialogAtom","handleChooseUnion","IsGetGroupResult","UnionIds","TeacherInfoDialog","_info$firstName","_info$lastName","infoDialog","setInfoDialog","TeacherInfoDialogAtom","info","setUserInfo","avatar","UserImageSelector","UserStatus","Absent","NewUser","email","phone","faPhoneAlt","StudyComebackDialog","_lstBranch$filter","_lstBranch$find$group","_lstUnion$find","setGroupId","StudyComebackDialogAtom","UnionRegisterQuery","comebackForm","selectedVal","u","PhoneCallDialog","NewPhoneCallDialogAtom","fatherPhone","motherPhone","SearchKeyword","SearchStudentId","ReloadStuSearch","StudentStatusAtom","GetStudentDetails","searchKey","keywords","ChangeStudentStatusDialog","_changeStatusForm$val2","_changeStatusForm$val3","_changeStatusForm$val4","_changeStatusForm$val5","_changeStatusForm$val6","ChangeStudentStatusDialogAtom","setAvatarStatus","latestStatus","newStatus","number","changeStatusForm","handleChangeStatus","_changeStatusForm$val","currentNewStatus","Header","setThemeOptions","themeOptionsActions","AppBar","isCollapsedLayout","elevation","lgUp","mdDown","placement","toggleSidebar","MenuRoundedIcon","MenuOpenRoundedIcon","toggleSidebarMobile","HeaderDrawer","HeaderMenu","SidebarHeader","CustomRouterLink","forwardRef","flexGrow","RouterLink","SidebarMenuListItem","href","depth","Icon","openProp","Label","handleToggle","disableGutters","ExpandLessIcon","Collapse","in","activeClassName","disableRipple","exact","defaultProps","SidebarMenuList","pages","page","reduceChildRoutes","router","matchPath","pathname","path","SidebarMenu","Component","_excluded2","useContext","__RouterContext","functions","DashboardTwoToneIcon","PollTwoToneIcon","Download","role","BarChartOutlinedIcon","description","PersonAddTwoToneIcon","LayersTwoToneIcon","AssignmentTurnedInTwoToneIcon","ImportContactsTwoToneIcon","AssignmentIndTwoToneIcon","PeopleAltTwoToneIcon","StarTwoToneIcon","CheckTwoToneIcon","isFirstLogin","func","_sessionHelper$roles","_sessionHelper$roles2","_sessionHelper$roles3","SidebarCollapsed","SidebarUserbox","MoreVertIcon","list","PerfectScrollbar","avatar2","SidebarFooter","Activity","Bell","Calendar","Briefcase","Sidebar","sidebarMenuContent","navItems","closeDrawer","Paper","toggleHoverOn","toggleHoverOff","square","wheelPropagation","FileCopyIcon","SaveIcon","PrintIcon","ShareIcon","FavoriteIcon","PageTitle","Footer","ThemeConfigurator","localColor","setThemeColor","toggleDrawer","side","setHeaderColor","setSecondaryColor","SettingsTwoToneIcon","ModalProps","BackdropProps","p","Switch","toggleHeaderFixed","toggleHeaderShadow","LeftSidebar","marginTop","PresentationLayout","CombinedLayout","checkLoginToken","getLocalStorage","_history$location$pat","_history$location","previousUrl","saveLocalStorage","Suspense","fallback","LinearProgress","Loading","Toast","CardSkeleton","Card","HolyName","holyname","field","handleSaveHolyName","isEditable","isMoreInfo","showAction","setShowAction","localValue","setLocalValue","setOldValue","handleCancel","ClickAwayListener","onClickAway","disableClearable","onOpen","faBible","edge","handleOk","DoneIcon","ClearIcon","StudentFunctions","setPreviewDialog","setStudyComebackDialog","setPhoneCallDialog","setChangeGroupDialog","changeStudentStatusDialog","setChangeStudentStatusDialog","currentStudentClass","s","Admin","leaderId","faAngleUp","handlePhoneCall","_student$studentMoreI","_student$studentMoreI2","handleChangeGroup","handleShowDownload","_currentStudentClass$","TemplateType","Document","isAdmin","isBanDieuHanh","handleStudyComeback","StudentInfo","_stuForm$values$stuFi","_stuForm$values","_stuForm$values$stuFi2","_stuForm$values$stuLa","_stuForm$values2","_stuForm$values2$stuL","_stuForm$values3","_stuForm$values4","_stuForm$values$stude","_stuForm$values$stude2","_stuForm$values$stude3","_stuForm$values$stude4","_stuForm$values$stude5","_stuForm$values$stude6","_stuForm$values$stude7","_stuForm$values$stude8","_stuForm$values$stude9","_stuForm$values$stude10","_stuForm$values$note","_stuForm$values$stude11","_stuForm$values5","_stuForm$values$stude12","_stuForm$values6","_stuForm$values$stude13","_stuForm$values$stude14","_stuForm$values$stude15","_stuForm$values$stude16","_stuForm$values$stude18","_stuForm$values$stude19","_stuForm$values$stude20","_stuForm$values$stude21","_stuForm$values$stude22","_stuForm$values$stude23","_stuForm$values$stude25","_stuForm$values$stude26","_stuForm$values$stude27","_stuForm$values$stude28","_stuForm$values$stude29","_stuForm$values$stude30","tabValue","studentStatus","editable","setEditable","stuForm","cusIcon","handleSaveNotLoading","isIncludeMoreInfo","handleDateChange","handleCheckChange","newVal","direction","faBarcode","InlineTextField","faUserTie","handleChanged","faBirthdayCake","Radio","faHandHoldingWater","stuBaptismDate","faChurch","faHandHolding","faPrayingHands","stuEucharistDate","faHands","stuConfirmationDate","faStickyNote","faPen","faHome","stuArea","_stuForm$values$stude17","stuFatherHolyId","faMale","stuFatherDob","_stuForm$values$stude24","stuMotherHolyId","faFemale","stuMotherDob","ScoreHeader","scoreLabels","l","ScoreFormTitle","ScoreBody","semesterData","headerLength","colSpan","scoreFormData","scoreForm","JSON","d","Value","oldTest","fifteenTest","lessonTest","semesterTest","average","morality","ranking","useStyle","pinCell","zIndex","bottom","StudentScore","ClassStyle","collapse","setCollapse","getHolyName","holyId","_sl$class","_sl$class2","_sl$class3","_student$semesterOne","_student$semesterTwo","_student$total","_sl$union$unionCode","_sl$union","_sl$class7","_sl$class7$assignment","schoolYear","scholastic","leader","groupInfo","sOne","_sl$class4","headerScoreLabels","sTwo","_sl$class5","_sl$class6","handleClickCollapse","sectionId","some","startYear","endYear","ExpandMoreIcon","assignment","a","_sl$union2","ass","teacher","teacherName","nanoid","comment","Math","floor","avgSemesterOne","toFixed","avgSemesterTwo","avgTotal","FindStudents","stuId","useParams","setStudentId","setValue","Tabs","Tab","ReloadUser","OpenEditAvatar","ReloadCoverImage","EditCoverImage","UserQuery","CoverImageQuery","coverId","coverImage","FileUtils","img","EditAvatar","firebaseStorage","isEditCover","setReloadUserAvatar","setReloadCover","preview","setPreview","base64","setSrc","isLargeFile","setIsLargeFile","Modal","CardOnModal","onCrop","onFileLoad","onBeforeFileLoad","elem","borderStyle","URL","createObjectURL","CardActions","uuidv4","resUpdate","setLocalStoreData","avatarId","croppedAvatarId","ShowImageModal","_avatar$previewUrl","faTimes","previewUrl","noImage","Profile","_avatar$avatarUrl","_userInfo$firstName","_userInfo$lastName","userInfo","cover","setEditCover","openAvatar","setOpenAvatar","openPreview","setOpenReview","updateLocalState","userForm","address","_values$name2","autoOk","handleChangeInput","capitalize","handleChangeDate","isCheckFuture","isBefore","handleAvatarClose","anchorAvRef","prevAvatarOpen","focus","handleEditCoverClick","faCamera","coverPhoto","badgeContent","handleAvatarClick","prevAvatar","Popper","transition","TransitionProps","Grow","MenuList","autoFocusItem","spaing","faIdBadge","disableFuture","views","groupUnionSelectedAtom","groupStudentIdSelectedAtom","checkAllIdsSelectedAtom","documentTemplateQuery","userRoles","r","roleTemplate","unionInGroupQuery","studentsInUnionQuery","unionIdSelected","buttonStyle","inputGrid","buttonGrid","unionSelected","selectedTemplate","setSelectedTemplate","setCheckAll","selectedIds","setSelectedIds","UnionId","_item$students","_item$students2","selectedCheckAll","setSelectedCheckAll","addCheckAllBox","removeCheckAllBox","handleClickRow","listIds","quantity","countStudentsInTeamSelected","Table","stickyHeader","lstId","sort","stuGender","localeCompare","_student$stuHolyname$","_student$stuHolyname","unionStudentInfo","UnionSelectedStudentItem","unionInGroup","selectedUnion","setSelectedUnion","handleClickUnion","settings","dots","infinite","speed","slidesToShow","slidesToScroll","nextArrow","prevArrow","xsDown","smUp","Slider","UnionSelectedStudent","FormDownload","DocumentList","GroupSelectedStudent","NewStudentSearchKey","ReloadNewStudent","NewStudentSelected","IsEditNewStu","NewStudentQuery","slugify","lower","mode","initValue","RegisterForm","setBranchId","newStudent","setNewStudent","setReloadStu","gId","bg","gp","stuNote","stuBranchId","stuGroupId","StuFirstName","tmp","autoCapitalize","RegisterMode","stuTeamCode","StudentList","setSelectedStudent","lstNewStudent","handleCollapse","Offline","_stu$stuHolyname","RegisterOffline","setSearchKey","SearchTextInput","searchText","setSearchText","onChangeSearchText","useCallback","onKeyUp","keyCode","PageSkeleton","GroupSelected","UnionSelected","TabSelected","IsEdit","StudentSelectedId","ReloadInfo","GroupSummaryInfoSelector","selectedGroup","groupSummary","UnionInGroupSelector","StudentsInUnionSelector","tabSelected","viewMode","AssignmentOfUnionSelector","_ref4","groupSelected","HeaderDownload","expandScore","setExpandScore","classSelected","handleDownloadGroupScore","semesterCode","faDownload","faFilePdf","isFromManager","faFileExcel","ExpandLess","ExpandMore","unmountOnExit","disablePadding","ListItemText","GroupListSection","_groupSelected$leader","_groupSelected$leader2","_groupSelected$leader3","_groupSelected$leader4","_groupSelected$leader5","_groupSelected$leader6","_groupSelected$leader7","totalGroupSummaryQuery","setGroupSelected","setVal","setUnionSelected","setTabView","cl","InputLabel","Select","labelId","holyName","GroupSummaryInfo","groupSummaryInfo","totalStudentInGroup","sumBy","summaryInfo","totalStudent","totalNewStudentInGroup","totalNewStudent","totalOldStudentInGroup","totalOldStudent","totalStudentLeaveInGroup","totalStudentLeave","totalStudentChangeChurch","totalStudentStayInGroup","totalStayInClass","faUsers","CountUp","start","end","duration","separator","decimals","decimal","faUser","prefix","suffix","accounting","faUserPlus","faUserSlash","GroupUnionList","setTabValue","UnionStudentInfoItem","styleClass","setIsEditMode","setStudentSelectedId","isClickOnStudent","align","stuBaptismIn","stuBaptismBy","stuEucharistIn","stuConfirmationIn","stuFatherHolyName","stuMotherHolyName","UnionStudentInfo","UnionAssignmentInfo","holyNames","users","teacherInfo","handleShowInfo","UnionStudentScoreItem","rowSpan","borderRight","_student$semesterOne$","_student$semesterTwo$","_student$semesterOne2","_student$semesterOne3","_student$semesterOne4","_student$semesterOne5","_student$semesterOne6","_semesterTwoScore$","_semesterTwoScore$2","_semesterTwoScore$3","_student$semesterTwo2","_student$semesterTwo3","_student$semesterTwo4","_student$semesterTwo5","_student$semesterTwo6","_student$total2","_student$total2$","_student$total3","_student$total3$","semesterOneScore","isNil","semesterTwoScore","attendanceScore","whiteSpace","wordWrap","beUpClass","UnionStudentScore","teams","ReloadStudentAbsent","UnionCodeFilter","AbsentUnionSelected","ReloadAbsentStudentList","AbsentSemesterSelected","LoadSundayListWithSemester","_stu$student$studentC","_stu$student$studentC2","_stu$student$studentC3","_stu$student$studentC4","year","month","dateAbsent","_sc$class","_sc$class2","re","schoolDate","GetTeamsInUnionQuery","isGetAll","BootstrapInput","input","transitions","create","fontFamily","join","borderColor","InputBase","ControlledOpenSelect","Permission","dropdownAbsentMode","absentObj","handleReloadCountAbsents","TooltipProps","isCalculated","disableHoverListener","disableFocusListener","enterTouchDelay","absentType","setAbsentType","absentTypeOptionsEnum","NoAbsent","NativeSelect","DateAbsents","newAttendanceOption","saveAbsentDataModeEnum","Modify","Add","modes","Delete","NonPermission","tableHeader","borderLeft","StudentAttendanceDetail","sundayList","classStyle","absentInfo","setAbsentInfo","absents","isEditMode","totalMassAbsents","setTotalMassAbsents","totalClassAbsents","setTotalClassAbsents","reloadStudentAbsents","setReloadStudentAbsents","reloadCountAbsents","setReloadCountAbsents","_res$data$data","_res$data$data2","_res$data$data3","_res$data$data4","totalMassPermission","totalMassNonPermission","totalClassPermission","totalClassNonPermission","fetchData","massAbsent","classAbsent","checkAbsentDatesOfStudentHasCoincideSundayDate","sunday","absentDates","_currentAbsents$find","_currentAbsents$find2","currentAbsents","absent","utc","isSame","ab","massPermission","classPermission","UnionStudentAttendanceItem","sundays","FormattedDates","formatDate","handleShowStudent","stringDate","DayViewSelections","UnionStudentAttendance","EditModeHeader","KeyboardArrowLeft","EditStudentInfo","_stuForm$values$stude31","_stuForm$values$stude32","_stuForm$values$stude33","_stuForm$values$stude34","reloadInfo","setReloadInfo","validation","newHolyName","holyNameField","scrollTo","stuBornIn","faPhone","faPenAlt","ScoreTextField","handleSave","isNumber","setIsValid","currentVal","setCurrentVal","setNewVal","changedVal","RegExp","test","gridHeader","gridItem","gridEnd","gridStartLeft","EditStudentScoreInfo","_scoreData2","_scoreForm$find","_scoreForm$find2","_scoreForm$find3","_scoreData3","_scoreData4","_scoreData5","_scoreData6","_scoreData7","_scoreData8","_scoreData9","_scoreData10","_scoreData11","_scoreData12","_scoreData$","scoreData","handleSaveScore","avg","newScore","_scoreData","oldScoreFrom","newScoreForm","Key","Require","Coefficient","stringify","prev","isSemesterSocreInfo","headerName","Semester","Name","averageAcademicPerformance","EditStudentScore","studentSelectedId","flatMap","EditStudentAttendanceItem","EditStudentAttendance","EditModeInfo","GroupInfo","ReloadAssignmentsAtom","ReloadUsersQueryAtom","ClassSelector","UsersAvailableSelector","UsersQuerySelector","GroupLeader","setReloadUsers","noOptionsText","oldLeaderId","newLeaderId","handleAgree","GroupMember","usersAvailable","setReloadAssignment","changed","setChanged","assignments","appUserId","assignmentForm","multiple","handleCancelChange","members","Groups","TeacherAssignment","setReloadStudent","handleClearForm","checkReloadHolyNameList","IsFromLeadOfGroup","handleUploadStudentInfoFile","AddNewStudent","expand","setExpand","expandDownloadDoc","setExpandDownloadDoc","dialogResult","setDialogResult","handleDownloadExcel","handleDownloadGroupResult","handleExpand","handleUploadExcel","semesterId","faFileUpload","RowSkeleton","StudentUnionTeamBodyItem","_student$score2","_student$score3","_JSON$parse","_student$score4","_student$score5","_student$score6","_student$score7","_student$score8","_student$score9","_student$score10","_student$score11","_student$score12","_student$score13","_student$score14","_student$score$rankin","_student$score15","_student$score16","_student$score17","setStudent","setBeUpClass","sumAbsents","_classAb","_classAb$filter","_classAb2","_classAb2$filter","_classAb3","_classAb3$filter","_classAb4","_classAb4$filter","_massAb","_massAb$filter","_massAb2","_massAb2$filter","_massAb3","_massAb3$filter","_massAb4","_massAb4$filter","classAb","massAb","_student$absents","_student$absents2","_student$absents3","_student$absents4","_student$absents5","_student$absents6","classHasPermission","ca","classNonPermission","massHasPermission","massNonPermission","score","fetch","_student$score","gpa","attendance","newData","StudentUnionTeamBody","teamSelected","ids","setIds","teamId","columnsTotal","StudentUnionTeam","totalStudents","defaultScoreForm","setTeamSelected","columns","column","ReloadGroupScore","GetUnionTeamsInfoSelector","selectorFamily","getAttendance","_stu$semesterOne","_stu$semesterTwo","_stu$total","sr","StudentUnion","groupSettings","GroupSettingsQuery","SelectUnion","_lstUnion$","ManageScoreGroup","Body","StudentTeamItem","setPageYOffset","isNewStudent","findClassName","DiemDanh","pageYOffset","DanhSachNghi","StudentTeam","_item$students3","_item$students4","viewAbsentMode","StudentGroup","_item$students4$filte","_item$students5","_item$students5$filte","lstStudentInTeam","stayInClass","DanhSachOLai","ManageStudentsGroup","positionY","setMode","lstNoUnion","lstInGroup","haveStudentNoUnion","UserListItem","assignIds","setAssignIds","ModifiedBy","AssignmentId","ClearTwoToneIcon","UserList","_item$assigns","_item$assigns2","AssignUserUnion","_lstAssignment$","lstAssignment","setUnion","isAssignTeaching","responGrid","handleClickSave","isReloadPage","isLeaderAssign","assignId","assignLeaderForTeaching","AppUserId","_lstAssignment$2","AddTwoToneIcon","faCheck","ReloadStudents","ActiveButton","ActiveStep","StudentSelected","TypeSelected","UnionLeftSide","TeamLeftSide","UnionRightSide","TeamRightSide","setTypeSelected","setStudentSelected","changeOptionEnum","Union","activeButton","setActiveButton","Team","SwipeableTextMobileStepper","activeStep","setActiveStep","indexOfCurrentUnionInList","maxSteps","handleBack","prevActiveStep","SwipeableViews","axis","onChangeIndex","step","abs","handleNext","KeyboardArrowRight","Transition","leftOption","rightOption","typeSelected","setReloadStudents","studentIdsSelected","setStudentIdsSelected","studentsLeftSide","studentsRightSide","sendData","destinationId","studentIdsMoved","api","studentIds","newUnionId","remainStudentIds","KeyboardArrowDown","KeyboardArrowUp","StudentsUnionTeamItem","_studentDetails$stuHo","studentDetails","setStudentDetails","getStudentDetails","studentSelected","handleClickStudent","TeamDetail","stuIdsInTeam","setStuIdsInTeam","reloadStudents","handleChecked","teamStudentIds","lstIdSelected","UnionTeam","setTeams","rightTeam","setRightTeam","leftTeam","setLeftTeam","handleChangeLeft","handleChangeRight","ChangeTeam","filterUnion","su","isInit","setIsInit","handleClickUnionOption","StudentsUnionTeam","StudentsUnion","lsTeam","setLsTeam","stuIdsNotInAnyUnion","setStuIdsNotInAnyUnion","ChangeUnion","studentsUnion","leftUnion","setLeftUnion","rightUnion","setRightUnion","_studentsUnion$","_studentsUnion$2","ChangeStudentUnion","ReloadStudentList","StudentListQuery","GetTeamsInfoSelector","scoreDownload","setScoreDownload","ScoreDownloadDialogAtom","SemesterCode","GroupId","handleDownloadPDF","openScoreDownload","StudentTotalScoreDetails","StudentTeamItemDetails","UnionTeamItem","UnionTeams","ManageStudentScore","SumFieldAbsent","totalAbsents","SumAbsent","SundayList","studentInfo","setStudentInfo","totalClassAbsent","totalAbsentsColorEnum","normal","yellow","alarm","out","StudentAttendanceItem","AttendanceItemDetails","StudentAttendance","stuIds","setStuIds","unionFilter","setUnionFilter","ManageAbsent","lstTeam","XepDoi","newTeam","_item$students3$filte","handleAddNewStudent","ManageStudentsClass","lstNoTeam","lstInClass","haveStudentNoTeam","Redirect","lazy","MyProfile","StudentClass","ScrollToTop","trigger","useScrollTrigger","disableHysteresis","threshold","Zoom","ownerDocument","querySelector","scrollIntoView","behavior","block","Introduction","setTour","Joyride","callback","STATUS","FINISHED","SKIPPED","continuous","scrollToFirstStep","showProgress","showSkipButton","styles","back","last","next","skip","createBrowserHistory","App","_themeColor","_notificationPermission","NotificationPermissionSelector","setItem","overrideColor","xl","ThemeProvider","createTheme","MuiPickersUtilsProvider","utils","DateFnsUtils","CssBaseline","Router","KeyboardArrowUpIcon","set","themeOptions","GroupQuery","_ref5","avatarFiles","previewAvatar","_ref6","_userAvatar$url","isTablet","_await$Notification$p","permission","Notification","expectedValue","msg","this","exclusive","resolve","f","outline","shadows","actions","MuiModal","CardHeader","teamCollapse","ChangeUserPasswordDialogAtom","ChangeUserStatusDialogAtom","UserInfoDialogAtom","NewUserDialogAtom","selectedClass","classSummaryQuery","classSummary","groupSummaryQuery","SuspenseLoading","logo","ChangeUserPasswordDialog","ConfirmPassword","changePasswordForm","ChangeUserStatusDialog","updatedBy","UserInfoDialog","reloadUserList","groups","oldGroupName","handleCheckLevel","checkIncludesRole","_$get2","NewUserDialog","registerFormValidationFrom","registerForm","backgroundImage","outlineOffset","checkedIcon","Checkbox","loadingFlag","aria-describedby","CircularProgress","iconVariant","ToastMessageWrapper","Alert","severity","CloseIcon","AlertTitle","charAt","toUpperCase","slice","Snackbar","autoHideDuration","navigator","serviceWorker","register","registerServiceWorker","requestPermission","requestNotificationPermission","initApp","Wrapper","RecoilRoot","ReactDOM","render","getElementById","XepChiDoan","Report","SystemTemplate","Ranking","Online","FifteenTest","LessonTest","SemesterTest","GPA","Average","Morality","Comment","wrapper","buttonSuccess","fabProgress","buttonProgress","introClass","_get","isCurrency","handleClickIcon","inputRef","valueBeforeChange","cancelChange","formatMoney","onFocus","mouseEvent","touchEvent","autoFocus","handleClickOk","localData","saveLoginData","removeItem","checkSession","isCheckLoginUser","maxRoles","buildRoleName","getLevel","rolesId","loginInfo","auth","jwt","verify","unix","exp","split","roleId","holynames","lookupId","_holynames$find","o","newObject","k"],"mappings":"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","file":"static/js/main.16f199be.chunk.js","sourcesContent":["import { atom } from 'recoil'\r\nimport { ViewModes } from 'app/enums'\r\n\r\nexport const themeOptionsState = atom({\r\n key: 'themeOptionsState',\r\n default: {\r\n // Sidebar\r\n sidebarShadow: false,\r\n sidebarFixed: true,\r\n sidebarToggleMobile: false,\r\n sidebarFooter: false,\r\n sidebarUserbox: false,\r\n sidebarToggle: false,\r\n sidebarHover: false,\r\n\r\n // Header\r\n headerFixed: true,\r\n headerShadow: false,\r\n headerSearchHover: false,\r\n\r\n // Main content\r\n contentBackground: '',\r\n themeConfiguratorToggle: false,\r\n\r\n // Footer\r\n footerFixed: false,\r\n footerShadow: false,\r\n\r\n // Page title\r\n pageTitleStyle: '',\r\n pageTitleBackground: '',\r\n pageTitleShadow: false,\r\n pageTitleBreadcrumb: true,\r\n pageTitleIconBox: false,\r\n pageTitleDescription: false,\r\n\r\n layoutStyle: 1,\r\n headerColor: '#6b73ff'\r\n }\r\n})\r\n\r\n// export const primaryColor = atom({\r\n// key: 'primaryColor',\r\n// default: localStorage.getItem('si_primaryColor') || '#6b73ff'\r\n// })\r\n\r\nexport const themeColor = atom({\r\n key: 'themeColor',\r\n default: {\r\n primary: localStorage.getItem('si_primaryColor') || '#6b73ff',\r\n secondary: localStorage.getItem('si_secondaryColor') || '#6b73ff'\r\n }\r\n})\r\n\r\nexport const forceCheckingAuth = atom({\r\n key: 'forceCheckingAuth',\r\n default: 0\r\n})\r\n\r\nexport const forceReloadNav = atom({\r\n key: 'forceReloadNav',\r\n default: false\r\n})\r\n\r\nexport const loadingState = atom({\r\n key: 'loadingState',\r\n default: false\r\n})\r\n\r\nexport const toastState = atom({\r\n key: 'toastState',\r\n default: {\r\n open: false,\r\n vertical: 'top',\r\n horizontal: 'center',\r\n message: '',\r\n title: '',\r\n type: 'success' //success | warning | infor | error\r\n }\r\n})\r\n\r\nexport const reloadHolyName = atom({\r\n key: 'reloadHolyName',\r\n default: 0\r\n})\r\n\r\nexport const reloadTemplates = atom({\r\n key: 'reloadTemplates',\r\n default: 0\r\n})\r\n\r\nexport const ViewMode = atom({\r\n key: 'viewMode',\r\n default: ViewModes.DanhSachDS\r\n})\r\n\r\nexport const PageYOffset = atom({\r\n key: 'pageYOffset',\r\n default: 0\r\n})\r\n\r\nexport const reloadListUnion = atom({\r\n key: 'reloadListUnion',\r\n default: 0\r\n})\r\n\r\nexport const reloadUserAvatar = atom({\r\n key: 'reloadUserAvatar',\r\n default: 0\r\n})\r\n\r\nexport const ShowChangePassword = atom({\r\n key: 'ShowChangePassword',\r\n default: false\r\n})\r\n\r\nexport const UserImageAtom = atom({\r\n key: 'UserImageAtom',\r\n default: undefined\r\n})\r\n\r\nexport const SemesterSelected = atom({\r\n key: 'SemesterSelected',\r\n default: 301\r\n})\r\n\r\nexport const TeamScoreSelected = atom({\r\n key: 'TeamScoreSelected',\r\n default: []\r\n})\r\n\r\nexport const UnionScoreSelected = atom({\r\n key: 'UnionScoreSelected',\r\n default: undefined\r\n})\r\n\r\nexport const loadNotification = atom({\r\n key: 'loadNotification',\r\n default: 0\r\n})\r\n\r\nexport const loadNumUnReadNoti = atom({\r\n key: 'loadNumUnReadNoti',\r\n default: 0\r\n})\r\n\r\nexport const loadTotalNoti = atom({\r\n key: 'loadTotalNoti',\r\n default: 0\r\n})\r\n\r\nexport const Notifications = atom({\r\n key: 'notifications',\r\n default: []\r\n})\r\n\r\nexport const GroupIdSelected = atom({\r\n key: 'GroupIdSelected',\r\n default: undefined\r\n})\r\n\r\nexport const ShowTourIntroduction = atom({\r\n key: 'ShowTourIntroduction',\r\n default: {\r\n run: false,\r\n steps: []\r\n }\r\n})\r\n","import axios from 'axios'\r\nimport { history } from 'App'\r\nimport moment from 'moment'\r\n\r\nimport saveAs from 'save-as'\r\nimport sessionHelper from './sessionHelper'\r\n\r\nconst apiEndpoint = process.env.REACT_APP_WEB_API\r\nconst gatewayApiEndpoint = process.env.REACT_APP_GATEWAY_API\r\n\r\naxios.interceptors.request.use(\r\n config => config,\r\n error => Promise.reject(error)\r\n)\r\n\r\naxios.interceptors.response.use(\r\n response => response,\r\n error => {\r\n if (error.message === 'Network Error' && !error.response) {\r\n return Promise.reject(error)\r\n }\r\n if (!error.response) return Promise.reject(error)\r\n const { status } = error.response\r\n if (status === 404) {\r\n history.push('/errors/error-404')\r\n } else {\r\n return Promise.reject(error)\r\n }\r\n }\r\n)\r\n\r\nconst convertDateTimeOffset = payload => {\r\n if (payload instanceof FormData) {\r\n return payload\r\n }\r\n\r\n return Object.keys(payload)\r\n .filter(key => payload[key] instanceof Date)\r\n .reduce((result, key) => ({ ...result, [key]: moment(payload[key]).format('YYYY-MM-DD') }), { ...payload })\r\n}\r\n\r\nconst doAxios = (method, action, data, params = null) => {\r\n const modifiedBy = sessionHelper().fullName\r\n const userFullName = sessionHelper().fullName\r\n\r\n const headers = sessionHelper().token\r\n ? {\r\n 'Access-Control-Allow-Origin': '*',\r\n Authorization: sessionHelper().token\r\n }\r\n : {\r\n 'Access-Control-Allow-Origin': '*'\r\n }\r\n\r\n let body\r\n if (data instanceof FormData) {\r\n body = data\r\n } else {\r\n body = { ...(data ? convertDateTimeOffset(data) : data), modifiedBy, userFullName }\r\n }\r\n\r\n return axios({\r\n method: method,\r\n url: `${apiEndpoint}\\\\${action}`,\r\n params: params,\r\n data: body,\r\n withCredentials: true,\r\n timeout: 30000,\r\n headers: headers\r\n })\r\n}\r\n\r\nconst doAxiosDownload = (method, action, params, data) => {\r\n const headers = sessionHelper().token\r\n ? {\r\n 'Access-Control-Allow-Origin': '*',\r\n Authorization: sessionHelper().token\r\n }\r\n : {\r\n 'Access-Control-Allow-Origin': '*'\r\n }\r\n\r\n return axios({\r\n method: method,\r\n url: `${apiEndpoint}\\\\${action}`,\r\n data: data,\r\n params: params,\r\n withCredentials: true,\r\n timeout: 60000,\r\n responseType: 'blob',\r\n headers: headers\r\n }).then(res => {\r\n const blob = new Blob([res.data], { type: res.data.type })\r\n const contentDisposition = res.headers['content-disposition']\r\n\r\n let fileName = 'unknown-filename'\r\n if (contentDisposition) {\r\n const fileNameMatch = contentDisposition.match(/filename=(.+)/)\r\n\r\n if (fileNameMatch && fileNameMatch.length === 2) {\r\n fileName = Buffer.from(fileNameMatch[1], 'base64').toString('utf8')\r\n }\r\n }\r\n\r\n saveAs(blob, fileName)\r\n })\r\n}\r\n\r\nconst doPostDownloadAxios = (method, action, data) => {\r\n const headers = sessionHelper().token\r\n ? {\r\n 'Access-Control-Allow-Origin': '*',\r\n Authorization: sessionHelper().token\r\n }\r\n : {\r\n 'Access-Control-Allow-Origin': '*'\r\n }\r\n\r\n return axios({\r\n method: method,\r\n url: `${apiEndpoint}\\\\${action}`,\r\n data: data,\r\n withCredentials: true,\r\n timeout: 60000,\r\n responseType: 'stream',\r\n headers: headers\r\n })\r\n}\r\n\r\nexport const doPost = (action, data) => {\r\n return doAxios('post', action, data)\r\n}\r\n\r\nexport const doDownload = (action, params, data) => {\r\n return doAxiosDownload('get', action, params, data)\r\n}\r\n\r\nexport const doGet = (action, params) => {\r\n return doAxios('get', action, null, params)\r\n}\r\n\r\nexport const doPut = (action, data) => {\r\n return doAxios('put', action, data)\r\n}\r\n\r\nexport const doUpload = (action, data) => {\r\n return axios.post(`${apiEndpoint}\\\\${action}`, data, {\r\n headers: {\r\n 'Content-Type': 'multipart/form-data'\r\n }\r\n })\r\n}\r\n\r\nexport const doPostDownload = (action, data) => {\r\n return doPostDownloadAxios('post', action, data)\r\n}\r\n\r\nexport const doGatewayAxios = (method, action, data) => {\r\n const headers = sessionHelper().token\r\n ? {\r\n 'Access-Control-Allow-Origin': '*',\r\n Authorization: sessionHelper().token\r\n }\r\n : {\r\n 'Access-Control-Allow-Origin': '*'\r\n }\r\n\r\n return axios({\r\n method: method,\r\n url: `${gatewayApiEndpoint}\\\\${action}`,\r\n data: data,\r\n timeout: 30000,\r\n headers: headers\r\n })\r\n}\r\n","export default {\r\n getFiles: async (storage, refPath) => {\r\n const pathReference = storage.ref(refPath)\r\n\r\n const resultRef = await pathReference.listAll()\r\n\r\n const promises = await resultRef.items.map(async itemRef => {\r\n const metaData = await itemRef.getMetadata()\r\n const url = await itemRef.getDownloadURL()\r\n return {\r\n fileName: metaData.name,\r\n url: url\r\n }\r\n })\r\n return await Promise.all(promises)\r\n },\r\n\r\n putFile: async (file, storage, refPath, fileName, isBase64 = false) => {\r\n if (isBase64) {\r\n return await storage.ref(refPath).child(fileName).putString(file, 'data_url')\r\n }\r\n\r\n const metadata = {\r\n contentType: file.type\r\n }\r\n\r\n return await storage.ref(refPath).child(fileName).put(file, metadata)\r\n }\r\n}\r\n","module.exports = __webpack_public_path__ + \"static/media/app-logo.ed62264d.png\";","const projectId = process.env.REACT_APP_FIREBASE_PROJECT_ID\r\nconst apiKey = process.env.REACT_APP_FIREBASE_API_KEY\r\n\r\nconst firebaseConfig = {\r\n apiKey,\r\n authDomain: `${projectId}.firebaseapp.com`,\r\n projectId,\r\n storageBucket: `${projectId}.appspot.com`,\r\n messagingSenderId: '1066108403713',\r\n appId: '1:1066108403713:web:d76a30e3ec02992d17c000',\r\n measurementId: 'G-3J8JXB6VVF'\r\n}\r\n\r\nexport default firebaseConfig\r\n","import { atom } from 'recoil'\r\n\r\nimport firebase from 'firebase/app'\r\nimport 'firebase/firestore'\r\n// import 'firebase/functions'\r\nimport 'firebase/storage'\r\n// import 'firebase/auth'\r\nimport 'firebase/messaging'\r\n\r\nimport { FirebaseProdConfig, FirebaseStagingConfig } from 'config/index'\r\n\r\nlet firebaseConfig = FirebaseStagingConfig\r\n\r\nconst env = process.env.REACT_APP_ENVIRONMENT\r\nif (env === 'prod') firebaseConfig = FirebaseProdConfig\r\n\r\nconsole.log('Init firebase')\r\nfirebase.initializeApp(firebaseConfig)\r\n\r\n// export const firestoreState = atom({\r\n// key: 'firestoreState',\r\n// default: firebase.app().firestore()\r\n// })\r\n\r\n// export const cloudFunctionState = atom({\r\n// key: 'cloudFunctionState',\r\n// default: firebase.app().functions()\r\n// })\r\n\r\n// export const authState = atom({\r\n// key: \"authState\",\r\n// default: firebase.app().auth(),\r\n// })\r\n\r\n// export const authState = selector({\r\n// key: 'authState',\r\n// get: () => {\r\n// const auth = firebase.app().auth()\r\n// return auth\r\n// },\r\n// dangerouslyAllowMutability: true\r\n// })\r\n\r\nexport const storageState = atom({\r\n key: 'storageState',\r\n default: firebase.storage()\r\n})\r\n\r\n// export const messageState = atom({\r\n// key: 'messageState',\r\n// default: firebase.messaging()\r\n// })\r\n\r\nexport default firebase\r\n","const projectId = process.env.REACT_APP_FIREBASE_PROJECT_ID\r\nconst apiKey = process.env.REACT_APP_FIREBASE_API_KEY\r\n\r\nconst firebaseConfig = {\r\n apiKey,\r\n authDomain: `${projectId}.firebaseapp.com`,\r\n projectId,\r\n storageBucket: `${projectId}.appspot.com`,\r\n messagingSenderId: '763173562319',\r\n appId: '1:763173562319:web:87e8aa2d4090ca60da54ba',\r\n measurementId: 'G-QJY7ERK69D'\r\n}\r\n\r\nexport default firebaseConfig\r\n","module.exports = \"data:image/jpeg;base64,/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAABQAAD/4QMvaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjYtYzE0NSA3OS4xNjM0OTksIDIwMTgvMDgvMTMtMTY6NDA6MjIgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE5IChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoxRkRDN0I1MDg2QzIxMUU5QjBDRUYyOUY3MkNFNkY2OCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoxRkRDN0I1MTg2QzIxMUU5QjBDRUYyOUY3MkNFNkY2OCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjFGREM3QjRFODZDMjExRTlCMENFRjI5RjcyQ0U2RjY4IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjFGREM3QjRGODZDMjExRTlCMENFRjI5RjcyQ0U2RjY4Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+/+4ADkFkb2JlAGTAAAAAAf/bAIQAAgICAgICAgICAgMCAgID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\"","import React from 'react'\r\nimport { KeyboardDatePicker } from '@material-ui/pickers'\r\nimport moment from 'moment'\r\n\r\nexport default function DateField(props) {\r\n const DatePicker_Props = () => {\r\n return {\r\n fullWidth: true,\r\n inputVariant: 'outlined',\r\n InputLabelProps: { shrink: true },\r\n format: props.cusFormat ?? 'dd/MM/yyyy',\r\n placeholder: props.cusFormat ? 'Tháng / Năm' : 'Ngày / Tháng / Năm',\r\n KeyboardButtonProps: {\r\n 'aria-label': 'change date'\r\n },\r\n InputProps: {\r\n readOnly: props.readOnly\r\n },\r\n InputAdornmentProps: {\r\n disablePointerEvents: props.readOnly\r\n }\r\n }\r\n }\r\n\r\n return (\r\n \r\n )\r\n}\r\n","import React from 'react'\r\n\r\nimport _ from 'lodash'\r\nimport moment from 'moment'\r\n\r\nimport DateField from '../ShareControls/DateField'\r\n\r\nexport default function KeyboardDateField({ formik, name, label = '', required = false, readOnly = false }) {\r\n const { values, errors, touched, handleBlur, handleChange } = formik\r\n\r\n const forFormik = () => {\r\n return {\r\n name,\r\n label,\r\n error: _.get(errors, name) && _.get(touched, name),\r\n helperText: _.get(errors, name) && _.get(touched, name) && _.get(errors, name),\r\n value: _.get(values, name) ?? null,\r\n onBlur: handleBlur,\r\n onChange: handleChange\r\n }\r\n }\r\n\r\n const handChangeDate = date => {\r\n try {\r\n if (date === 'Invalid date' || date === 'Invalid Date') return\r\n if (moment(date).format('YYYY-MM-DD') === 'Invalid date' && date) return\r\n formik.setFieldValue(name, moment(date).format('YYYY-MM-DD'))\r\n } catch (err) {\r\n return\r\n }\r\n }\r\n\r\n return handChangeDate(date)} required={required} readOnly={readOnly} />\r\n}\r\n","import React from 'react'\r\nimport { TextField } from '@material-ui/core'\r\nimport Autocomplete from '@material-ui/lab/Autocomplete'\r\nimport parse from 'autosuggest-highlight/parse'\r\nimport match from 'autosuggest-highlight/match'\r\nimport { get } from 'lodash'\r\n\r\nexport default function AutocompleteTextField({ formik, name, label = '', options = [] }) {\r\n const { values } = formik\r\n\r\n const getDropdownValue = fieldName => {\r\n const newFieldName = fieldName.includes('Father') ? 'studentMoreInfo.newFatherHolyName' : fieldName.includes('Mother') ? 'studentMoreInfo.newMotherHolyName' : 'newHolyName'\r\n\r\n return options.find(item => item.id === get(values, fieldName)) ?? options.find(item => item.name === get(values, newFieldName))\r\n }\r\n\r\n return (\r\n {\r\n if (newValue) formik.setFieldValue(name, newValue?.id)\r\n }}\r\n fullWidth\r\n clearOnBlur={false}\r\n onInputChange={(event, newInputValue) => {\r\n const findIndex = options.findIndex(opt => opt.name === newInputValue)\r\n if (findIndex < 0) {\r\n formik.setFieldValue(name, 0)\r\n\r\n if (name.includes('Father')) {\r\n if (name.includes('MoreInfo')) formik.setFieldValue('studentMoreInfo.newFatherHolyName', newInputValue)\r\n else formik.setFieldValue('newFatherHolyName', newInputValue)\r\n } else if (name.includes('Mother')) {\r\n if (name.includes('MoreInfo')) formik.setFieldValue('studentMoreInfo.newMotherHolyName', newInputValue)\r\n else formik.setFieldValue('newMotherHolyName', newInputValue)\r\n } else {\r\n formik.setFieldValue('newHolyName', newInputValue)\r\n }\r\n }\r\n }}\r\n id={name}\r\n options={options}\r\n renderOption={(option, { inputValue }) => {\r\n const matches = match(option.name, inputValue)\r\n const parts = parse(option.name, matches)\r\n return (\r\n
\r\n {parts.map((part, index) => (\r\n \r\n {part.text}\r\n \r\n ))}\r\n
\r\n )\r\n }}\r\n getOptionLabel={option => option.name}\r\n renderInput={params => (\r\n \r\n )}\r\n />\r\n )\r\n}\r\n","module.exports = \"data:image/jpeg;base64,/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAABQAAD/4QMvaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjYtYzE0NSA3OS4xNjM0OTksIDIwMTgvMDgvMTMtMTY6NDA6MjIgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE5IChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoyNDlFMTI1MTg2QzIxMUU5QTBEMUM2MTRCRDAwRjYwNiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoyNDlFMTI1Mjg2QzIxMUU5QTBEMUM2MTRCRDAwRjYwNiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjI0OUUxMjRGODZDMjExRTlBMEQxQzYxNEJEMDBGNjA2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjI0OUUxMjUwODZDMjExRTlBMEQxQzYxNEJEMDBGNjA2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+/+4ADkFkb2JlAGTAAAAAAf/bAIQAAgICAgICAgICAgMCAgID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\"","module.exports = \"data:image/jpeg;base64,/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAABQAAD/4QMvaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjYtYzE0NSA3OS4xNjM0OTksIDIwMTgvMDgvMTMtMTY6NDA6MjIgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE5IChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDowQ0UxMjlBNzg2QzIxMUU5QTY1NEM3RjAzOTY3NjhENyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDowQ0UxMjlBODg2QzIxMUU5QTY1NEM3RjAzOTY3NjhENyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjBDRTEyOUE1ODZDMjExRTlBNjU0QzdGMDM5Njc2OEQ3IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjBDRTEyOUE2ODZDMjExRTlBNjU0QzdGMDM5Njc2OEQ3Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+/+4ADkFkb2JlAGTAAAAAAf/bAIQAAgICAgICAgICAgMCAgID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\"","module.exports = \"data:image/jpeg;base64,/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAABQAAD/4QMvaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjYtYzE0NSA3OS4xNjM0OTksIDIwMTgvMDgvMTMtMTY6NDA6MjIgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE5IChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDowNzg2NkFFNzg2QzIxMUU5QTg2REJBMDFGRjlCRDZBOCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDowNzg2NkFFODg2QzIxMUU5QTg2REJBMDFGRjlCRDZBOCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjA3ODY2QUU1ODZDMjExRTlBODZEQkEwMUZGOUJENkE4IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjA3ODY2QUU2ODZDMjExRTlBODZEQkEwMUZGOUJENkE4Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+/+4ADkFkb2JlAGTAAAAAAf/bAIQAAgICAgICAgICAgMCAgIDBAMCAgMEBQQEBAQEBQYFBQUFBQUGBgcHCAcHBgkJCgoJCQwMDAwMDAwMDAwMDAwMDAEDAwMFBAUJBgYJDQsJCw0PDg4ODg8PDAwMDAwPDwwMDAwMDA8MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM/8AAEQgAcwBzAwERAAIRAQMRAf/EAK0AAAICAwEBAQAAAAAAAAAAAAcIBgkDBAUCCgABAAMBAQEBAQAAAAAAAAAAAAMEBQYCAQAHEAABAwIEBAMFBQUEBQ0BAAABAgMEEQUAIRIGMRMUB0EiFVFhcTIIgUIjMxaRoVI0F7FyJBhigkNjNfDR4ZJTg0RUJUVlNjcJEQACAgICAgAEBAUEAwAAAAABAgADEQQhEjEFQVEiE6EyFBXwYXGBQrHRMwbxNBb/2gAMAwEAAhEDEQA/AEZ2IqbvK93K9Sr00YNneWnbuyg6lltKnBXqVMDSFqNKBRqonM4/PNzNVAVRz8TILqQskG4tnMXpMmXKcW26NSo5t3lcRQE0VrFFeZQNPZTCWntMgywi9V5BwIObXd7rtCxSQ1fnDDceD63ispcC1K0pbjrFRVQSCtPgRizbStzA4lZLmKyZXS8QZ2xIt4uSJE6M04iBdXOctTiUSipKXGSD5SFUJA4pJBzThOnWZdg9RBBSx5ku7TdtV9wLpKsm2IMZFog6Tdr2w2huOwghRCkroDzEgmlFahxNK4vXVM+C05FJ7xp9tfS3tq7vxYVsvUtMyDI1M7qn251MUuJWSrS+5pU4a8ClJSc88AsVCeuZSfVdx4hCuP0gvblRHte7nH5kcanJlls0wtiQEqOgvPIQpwoAzKU8MEqpNfKzmjTVD9UlsL6ONmW2zS4m20L2+862CjTKddLZSkI1apCBmnUeOCW6pvE6sp5OIvndH6eN/bHsrJ2+hd3gk0mJcKOa6xpqGmtQW25XxGpJxNf1xrMVbXMRe/7i3XIFxs3qV3tSEH/ENNpbak1HloHVHW2gDylKfDBUrFM5FYE9Qty3B62NQ7y0m46o/SJuzWoTloKTQOACjwz4kVHHCV/VuYwiqvME39Nr7crtOk9FMmRZq9cOYw2o/l8E6VgadNM6/wBuKtnta1VQTPSVMk7m7t7bOuD9nkbcmeoXNhoQLxJdKUNxotU/htAcpTQUc0rGZ+amWPm19fbTuTxPmwfE6l5vUXfVpt1nudqVbN4NyGRa50OvTuhwaX0rSolSNQBVpqRUccIVp+mJK/8AHPA0jX9Krjop1r+mvN06BXVrrqp7a56eHjg/7sv8fKd5nnfridt3tqHZ5KVSLe2Ik15rzlDhGryFJHAKpU8Dj7VxfVlxE61DpzMm4u5vdCJAiMty46IxCw3d+nCXvxOCluCgCgDmSKVrlwwzq62vOa9dFOTIzsHtz3K7m3Fja+1GrpcWJCVyJjK6x7e15tS3FyX+WhHnFT4ngPZivZdTWRwI4vUeJZf2Z+iCxLejbW35u4Hdi1MvzNs2VyZJYisrCVIXcH0BDSCQFKFUnJWFTfWWLKIStOx4EtDsHb3th2l2zG29taBDtbEZv8IgFBW4EkLX5wM1HjXI4W2dxWXg8yrreud2ziK33B31vCwXbr7I066Yq9fJKqpokaQhYSOHjwxnHZ+3aainTrx1M3e2n1gWtm7Ig90tjybDbnnQ0redkU8lcRSjpDkmPQBbeVSpOqninFPT9gBw0T3vSlxlBH6cvSY0eFfkyIu7toXNpD8TdMFP47aFhJDj/K8ryDX5k5p+8g8cXqrQwyszllJqPVhiebnFt82O+WEtuMOoCyjyKaebX46QCDX4U/iTj3stnHxg2THmI933+lCxb7jncW0YrcG/tNKLsJqjYlgZ0aUa8tY/hNQT7OISs1u448xW/V4yvMSftRtlFrs+4IVxs8m17oZujsS7RJzKRIShofhIGVUJVmSU8VZ8DTGV3kel8RHqfEKcTaseQ3LkPMhxpSVx22VUIHKOpa1lYFADnwzpiMyNcCM8wyVccxHe8W9dr3zd529a5bzkmwtpjLQpoaCVrKnHmXASFpWjSKCmVDTGn0PXPVrhmM6HVfjIfu3ZV52pYk7rejOR+U630DzRKltyvLyQs5FGfm9h4YJrXi5uvwgO+TxNP+us/l6vRonVdNr5en8L1TmaeZTjyeR5tHHmZ8MH/ak/HP8Ab5RnB/CO53F2N2+7owEwg1ZLD0wblWafaIIi3NDgTRxE0uKCHQr7yQgUOfsxhtf3d2q4CqSslfcPwi2SdlbNtdwmbfclu7ijsOIdmKUtI6eI0kKccl8rgEUpQZrUQlIJONjqWX7YFgGBCVU2Fux8R2e0ca+X+8WrZXbO1Q7FYra7GVu+S42slnmArDLepSqOAZrOegjSDkTiq2uwH1ShWssr2RtOwduttzIdpQuUtTi5F9v0tfMelyDUrW6pWenVUAVy4fHm11rr4lnT1+zQHotTvcHc02fKd6+LHc0MxwdSEV0lAoQaqHH+EDwUchFXLnibCmr7S4MMDPb63NsoSYDa3APO8tAqfszwzXqs4hSyLz8YPd5dsbVLhPJMFlQWDrQGwK+H7wfhgGxotXyI7qbKscGfvpvdk7Mvly7cS1rVYJ7SnLNHUSGmHG6koQk10hQUo0GRw16zZZcqZL97opjuIYr063tC8xIJcKLDeHF9MkpARHeVxCCfuH7yfZmOGHxd0bMzD1h1xMdxkJt0th9Taulkq5M1Fcm3OCFJ9/8Ay8cN/dAORFVQj6YHO8XbaFeI53fa2nWrxBbIuSYaRrlNoBFCgVC1DiDX358MJ73rjtoSvmT7tfq0pF7z/UP3C3ZLvewbbbP0nbGA9GvDbStcmQ2VaClx8U0ahUHlj2g4Dp+tTXGX8iCZsQU7Q28hVyhPw4ytwbpkupUhsI1ELSQaJBISnMAHP4ZYJs3YQqPETs5lic+zN3WzVu1sS6q5R+XcbUpIUgLKQFIWCSPKRT9+M3rMaXJiJsZDAH/lx2JztXpEjkes9fyuYv8AleTp6CvHRzfPq4+HDFX91MJ+taRzb7ctiDFm3i5L9VisOqfbfUA84ytakgaCsmiU/eKRU0GJGwSXwiDrBHz9M522y49uTc0+3xEadvTHY0BvkeRUltqrS5DaqjUy4rWa8aApGNFqt9qoY4/lK1Np64Mtw+njaw2b20tcSI2iPebwWzImthSlvvzCFPPOKVVVaZJB4Z54pszWJHKhzDn3zvqth9qr4/EUVTRGagwAR5nJL6wwhRFczU6jiBvPgYmu9Rr92BnY7Q2Bq17QtIdUXpLjCHJMhVAtS1DUsn4k4+9eoPmV99ueohbe5LbIS2lJ+OZ+04uKwXgSauWPMid0Ql1paSgKI4gf24Ha2fMerGPED14gOW64Rr/bzolW91L7ak5VKcik+4gYk3oKzkR2xfvJ1MMFzTB7ibVj9Osc24t8+2SEmnLmNCpbIzoTQ1+0Y6S4OJm7dcVPzB1Yro5uCzTrdcElu8WwKhTmzTUXmUa471KZa0pH7MGrsIGD5i1tOX7DxJXt2azdLLG1j5UFiSmtDzWqIOYrSo0nFLU2GXgeZM3FyciUn/Wd26tWwO4t/wBwW6K1EbvyGJkhoDyqdUpTa3U+AK9IJAPHPHd69+Wke9COYhsyReG3m12OE8rWFDqXDy2kGtQsVzqDmMsLKtf+UEg+cN+0fqh7mbSjRrZvqDE3lb0uDprs26hi4MpCQNJcSClwDw1pJ9+ObdKm4ZTifPrBvEKP+aCxaa/p1OjldV/O+GqlfyPm1eGJn7aPmPMX/Rfziq7k3PuPcN4sk+2FNlu0FJiwZKCp550KWFpQuqQF0pkCMUaErpXq3M7qVVHMLPaZ27wJr1rvsN+NC6tmdcpqnVKLrzb9FKKh82skgD2ZcMAt6s2QYH7474E+hft/FYdftz6CHUSGnJSFJFEANpbQ3oAyAISKfbh5H+iaHWTsAZAvqq0yLVsa0GqhcN1w1PnOh6dtxwA/6yQcZ32RORN1/wBfQZMOW0m+VaoDCMglpHlPGlAPbh31lZIhN4j7pk0cjstpJKxmK+OWLYqGMmSUc5xIfdC3kAaZ5H2/HPAXCmUk7ASH3eI0/EcrktQICRkM/HCO0FKxvSz25kF2JuNrbd+Xta4vJYhXmQHrNIK6JRPSfIgZ5Bacj7TiWgIMD7TXB5Elm5GUWTfMG6soLcbdjDjMpKfl62Keeio9pSXP24bLzPrzONteUmJJ3BaytWqHc3uX7g8gkfHinP3YPTdgwN9QKxUvrU21EvFj2/uhtoNzW1dE7K0ailKwEFJRwPm0kZZZ47svLHiQd+rCynG9yG9vtO+sS0wpSyp301ZHOcWmoroBKgK5ZgA45Six5IAOJv7e23bbzbYsxbKFSbkRI5rwFEIUCTpHAGopxwJ2ak4JgnvKzrfpG26eBrXlflp46uP7PHhjns3z/nBfqTPDUW32xDl0lOojOwHFPMrWPk5QqDQ8a8KY+QtYJ5YWfxCwm9wmts2G7RENyrje4yJUZmQo6GVI8oMkoFapcBFAKmhwKuplt5PEFVUe/Mu5+mbccrcu2nn57TTciE3b1sNsijfImxW3gkH3OIcGXDFBXOMTZ6HK4mL6iI6pk3t02gatG5AtxHEU5Sgf7cRd1uzATaenBUnE3Nw32xWC0vPbr7pI2Jb2GmkpjQnY8d1HMVobLjzwUqq1EJA4V8cWdAsi8DMHvMBbkxW7l34u1suiYmxu+th36y49yk2i9Ja5hTXJIdYKTUCudM8d7Flvyhdca/z+qMDtLe143JbmpNziNRZ66h9lhzmtZUopJyNCM88Rv1T9sGXl10C5bxOJvruSbFFeZZRz5iGyY8bUElah90E4+s3FzgTj9MRyPETHeW++525Fc03fbm0WYbrcyKgOF2ZraWFJVqKwE0pTDFfYjgRDZcAEEyzS7yUbp2bbLzFU09Njx4d5jOtDUC+hCXHCgjwdZUqmPbkKnEzfC+IO25QY3PLSCCi5sMuse8lsgK+0pGF/uEHE9avsuYJvqTtr977W3huOlRehqLrWigUOYCtKjUgUCmwPtwzqWhnwZJ9lT1XM+fu+baeu19lT2FOhD6lJuLi6rWJDf5YXqqfOggjPOhxpGuVVEzVlhUeIRdsT07QtLlpksO3KXMkF62jPQ1F0+YkH7urMg4g7SffbI4k9h3Mw/wBQpFOZyR+ZzvufLXl8P+z/ANH7ce/o2+fwnn2B852O4lubmbr6VkPvM25RTcI8dSlsJd/jUEgiiOBUTkfDHujaqrgw2s4UczqbBt91utzi7cbSEvO/iK0VLMTljU4txXsAVmfFXAY927FQdxB3uAciX7fSjZ29v7AgQSp4vOtBxb0gkrWlJWlhdOACkpOXh764Xqv7Cav1H1KJP9/Q27re9lsuEDlXxCle8OMu0H2lOJzDvZNppP8AbVjA33s+lrY/dG92ncm4nZSZFnSOjtupK4joBCgh+OoAOoUR5klX7MaKnsicQBVb25igbm+lqKdyXKRarDRqQFGFb4cJ2HGjrOvS83R+qdCl6hQ8QniBTHqu1nkTsaaVnuDzHk7G9u7jtyDCTepLs2UqKhia682Ec51IKQtIH+jQH2nPAF9cHfmOXbzNX1gH797Qfk7wkMwH3IzbTClslvMBxQ8moHgNXH3YXfWqR/EJ2tasYPGIhG8+wj1xiNKucp5q/IW67cLjNVIaak8yqmygAFtKQMtPH35YqLt11gDrJ9vrrLOS0su+la/ufpqybHuCl9VZ7LEiK5hKm3mmGGk1SsmpIS6lJFM6YQ3LlJ4k5tZlMl+5YrtpuMQFBQISzGL2flCXEqarXwy/fiNa2GzGqxxieNyR27vZLrEKec1Ogv8AKRpCyohsPoTpPGukp+3AqCe+RFtqoOuJT13C2W1bN+31Fksy1bSkssKX0zJPJf06gE0qtfKJI4ZYrr7BRwxmE3RhysCd7s8lu1XGdbnGizNRy7hcHtbb0dgEoKEIcCSMsuGC13AtxJin6oMfSvJyqHX03pmvSPy9fN5teFdPl/6cOfcs+Ubx/pHQurtr2fPi7JsiX5l8fbU5MZYbU468gkhcmQTmgKzyWqp8E4yq2WFPu+FiAoszyZg2O2ztXeMK+XOxvW6Hd3HLE429pJky3gHGtCEmqULrTWcvDwx6+ybqsA5EcGr3GDLpuwt0Zm26dFaQtt2xswoz7agAApyIqQmvtoXKV92GNHP2iTNX6qgoBJfex1V92TJbRpQbzGde8Ry0tvgip/vYFQwNoJmqGVrYD4ww3JNuMFtcvlqBTTzcQMbdLqUrEnU9y+FgV3BvLadiUtCyJL1dLTDYBKleANPDPCDb9QbqPM0FXrbCvZvEIcZTpiRpnJSypDaVKR7ARXLDdZB5zELR9XX4Rdd/wW3L67dUMdYtxBQ9HBNSEjLOtcIXuoY4lWqokASI2CLtPerDjsMqYmRqsS4D4P4aga5pORr7aYGt6EfVCnVYeJt2yyM7U3xtRyMQy3PUYOhAFCt1lxCa1/0kpxK23XPEDdr/AE5IhK7iwUyYEe6IQdM+OlSj7Hmwag0+GEHPZcyOB9WIPrPN6mzWy4KOjlqbWs+KVIWUqPEcQaY712Pic2jCmI7ebparB3GvO1Nx1jqbddeiXZTSuW02p5SW0rdSlSSCKHMhXuwL2FC9Aw4M/P8AaUtccwWd3e37MiJuGBFcYdcuVuddYZKaKYcfQrSpOgglKtNch454L6S1lf6jkSbsoK3GJWLzd0cnTzF16Xo68s6qc7VorT56ZfDKmNz92v5Rvuv4Rve2m4ZWwrq9fL9PVd519Kl7nlPq6l9wqVrCivKqkDif2YyHtFXYr61cQiqTDqINw7ldwZEW2TpcfZdlZRMjoTy3qvRAFIntKcAKA6pYSmlTpqKYjU416eh/NA3O1XMti+mrT6FdwArqHJLZmrXxUWm0x0VBqRTlk0Pt4Yp6FnakzQ+puZ8QnrKFQ4byVaXLTLJWT7EPqbJHwpTC2epBmz1xgYb4yC9zt+Ttu7elylpU8EeRlDeajXJP2V4+6uDW7jeJc09OtT2gf7d2xjcEg3q8XeJIuMgEohpeRRpKuKUNKOrP2kY7pqZz3j23eOuF8Qp7o3Be7OoS27lMkxEo5RgtoQ4yABQEKQnXX44Yvtu64UxbU1EP1EQEXLdG9bldkS2XDFjISU9I4wSSBkVFSjUHC6NYw5jJrAPEhz95um2Lq3cIy9bh8ktlB0hxPHSkjgoeBwtd9xYevBktvm+y5I2hd4xK2fVIS0rUKFIWsVJ/ePjhV7iZ5tUD7caiUWrpa5ln1EvJ1zLbq4rIUQ62P7qifsVj5bs8TI2U9WJgUsBSbTLikq1RX5LWkZEKbINP319+HKTE7PBEQ76l7vKsO/pDce2pkRL2iJKIXVCA4tKdRXpzUgUOXuw2aUuwrzFb6hXJiiQ9+Wq6P3OXvY3CRKiFUsyY7idS1BQbBZBWgJCAU0Az0+BwRvWvXj7Uj2L9zmdnpe1fN1/q2by+u9d5HpkiurlaNFNH5mr8TV7M/fgnTcx4+EBzDNde2vZbtlZ4f9U94xbpuTWgS4bcgssqcHzsMxGVLfcCVHMq40y0jGbF29vORqp1X+ceaaQ71bURHNq7WzDbN1mCxb9tuy7e4tlQZIJZIkeXzIBAUrLww7q+n20uAv5E7C9uJYh9DndR7udZ96PSLazbZNjlsx3kR1VQ6tzzLcSnPQCUZip91MWW0xUvEveqTBjRXqPIWm4W6ONC50W5pYWTQc/WHWanwzNScSHIBM11HMDsK5Q+8GyrVdLe821JZeMfcVqcTqLUyMeVLiupGYUFVKT7KHAAnY5mg1rOi4M4m7Ppy2he7jZ942qMuzb726Um3biikgvNoGnkyma6HkUJ8hFT+/Gg03Up1g0uUNzCj+k9gXSItq7pnQ5aGn+oNuW5QOVBa8qTUClcjih+hrs8mLHb3arc1KCIHd5bR7ebbtin0Xi9ylvx21xo7rymtbxcTzEIOZry9WFbdFEPBj6bOyxzYoEWSwdrzJ3E7vK6zbg4lCy9Ht0qS50zLIKqVYC9JNPHCW3cK1MNitzyeZ1u5d/hW+3QWZMhEVK1ocfLPlTGQh1JYShX3ljylXtJpjO1g28xu9hUmDHCYvUhNuRdf/E219E0BJ+4+2hbqP7pQ4T8QMJXHo0iY7ZmnJjswJ12VFQpMS6KVcWKKFaOtJKhipXZlRI1qcmVpfXDLuEDcENtl1CLa/Ehm4OpNXWkNKdCBXwbWSQrxPDGr9bUHXmYn2q4eVmXT1S6C4NhpUlgPrJQQEHQlwoT5fcE/spivwPEksOJIfXhy9PTDV0fTV81fzNWiteNP3YF0PzgOskG7dkTbZMhP3uMFPSWA9b5iUqSgtHNYClnUtQUc1En4Z4Vo2gT9tRj+kEts7dg28lfLIWWZ8YoXEWPK4SvgkV8QPDBdmx1HXzCV2HtLcP/AOeMB5iN3CmBCI2uNHC4rI0pS61IVqSSOJocvdifbl1xNJ6tjnmPjvSQqJap91YCkuxkpmNAeA5iQqnxBOM9sV9MmbDVOGlUPcPuluP6b++crcm12zcNmbykty9x7XeVRqWxKzDrShXlvJJUErHs0qqMH01DofnK7McgS0Htr3F2v3HskW7WGdz401tCgwuiH2SR8riATQ/uPEY+13wcHiC2KSp7rNbe9livMrkMSDFkqqjmBRSo08Kp4/bik/cj6TH9DYsi8naCTO62e4ZDrStTAdWVgf3QeB9+Pvt2AAmN7F7GR7uduW17RsymJkgR1vJ5kgg1XoTmoJA4k4n7Z7kL5gUZcFiORKtI/dm696e4iICGVW+xxZLUSzWhRqpx5yS22l16nFZSTQcE/HFK/wBcutRkeZC/cW2LMGXdORxBh3ZkoSG1xIrLhSoZraYSyo/bpOMNa3bMrBQBMZKpFqgvaTzW4RSPhTSB8cO1nCiSbV5Mr4+sK1es7jtMNKkcq4W5bRKk5qVHkBakFVR5qKJQPaMafT2ilfExHt0+uLrt/tLtm+2e5vO6bK7bowW9dEqOhpSBpQFpJooKUAkH308MK/ub/cxIjmAr+nl7pzOe3x6z5Rxro01/hxR/cv8ASL5EeHdvZreu/wDZ8G1bQ23K3BMmXdhMcOIS01FDbf4zzr7ukNpUghJOdTQacsJesFpsziK6NDXfmGIQ9hfQ9ZtvW23Su9O/P8Wh7qf07YJAipUpB5iWlTHdK1UBUPwgPZjSbCv+aaPW9WobzLRez+0tr7UsSbbtayRbHaXGStuHGTkamoKl8VqIzKlZk4WFORmUKk+22Jj3Q0ty0SoC00H+LgLUvxC0lxtX2cMZ3aTyJpNU4xKj+/lsG4oLUKU3puu1G0rbfUkkvwluOGlf904Dn7CMD0l6AiV+3idf6e9z3GyxITsCYph+PoSFpJoT90EcCCMcXqVfMo1gMkfSRv0XWChcm3rE6gKwCC2fAkH346TcKQtVIEh0/d8ZhJUmEXnW82o5CgAfbxCftx03sywxDGkRGO9F5uO458tUhyqnCUKbB8qU/wAA9w9uB657tmLW8AiBD6Ye1r8/v1YZnJC7Jtt16+XivyqTDaUpoD2krI+0Yq7e5mkrIK64V5bqxLduNtadfTylPsJkvqWaFOqpoQfdTGII+oyqfGJJmQ0u1R2k0VqoyFfx+UqBH7AcUKl4EmX8ZlaP1WIu903JbYypRECZ16jGHy8xiQtKXK5FKikUxo9UdADjMxPtbMHmCXbES9W6JeFzbtLNrgw33ZsGQ5+E602wp0cxQoMwBWpyOFyqX39V4MiEq0Ff9btn9N1HoMjR+nPVeVQ/z3UdP0leHL1ebm/Zp1Yc/wDnrM/n/wAvwnn2VlvDve6G63Mm3W92Xs3sGMXWdqQpjzNvVekKVoU/GCCHnA2oUUWlaSrJKlHH6Xp+ppXwOYrdtv8A4jEiNl23F3j3M2Sza5lx3naJcxyRNlKM9EHo2wp5alC4yXHya0SBpKTwIx37HXqrqPzjPr7H+5nPMsDt9+tsK7pszTjY9NS09Pbb4VUBpFBWiQMs8Yd7QzELNRXW2MmZ93QyVBDQymIW4DkQpxCtQAPtocvbiJs4DcypqWZMrX707bVCvTzxHKbkNuNRH1Crb0eaKqSo/wAKVU+GeAJ+biWgexGIKdibclWl8xlMllxgNBdBRKikAAinuAwzbUGlBCV4jU2p9QZ0GqDQBIV/zYm3axjSPNe+MhmBJkAF57SQlIGArqkRlbfnEx3qzJMheiEt1fmBABzKvfh/Up6HmI7LjzDz2C2vM2ttW5bikxks3/fMlmBbY5J1sW4uBK3SmnFZQs/BFfHHG7j4SSGLNmNddISUQEtgBJfCeYTlRIISgE+w04YztoweIyHnTtqY8uYzbWgs+nNF540oEuPKQlKT8AMMUZYjEXuIxkxat4x7XL3DN21uOAzJiSnpbIuS2kFyMt5aXU1UtKgBpXxpSuRxsNO01KMiZXd1hc3ETL6se2u99jbFcuWzS3L2tenRF3FcGklp9llI0pjrGegrI8xOWXl8cVtX1VRb9R8JmNioVNgytD9RP8np/wBPM8npPS9Hn/K53UcePN5nm5nHwpTPFLqvz/8AH8fCddR+Ev8A5Vmb30NxXe8d1tvWPam1w7D3LuPatgZlu2hLRLYhP74ugWHZalfhFFuZHn8jHLTTGuqsC+fP8fCTPtnMIv002mLt7t1G3i1YZdknS2pFv2vNuzyX7m/BS6ornSl8lK0KcUjS2kuuVQApSlHM5j3u5wQJoPWawLAyRdplSb3N3PfX1rXHnStDEnXmUpBqo0rUnUAPsxldcHOTNJcoVY1+6pkaPt+33SS5yEtIakdTlVBbSKkDxIFT8K4X3qvjBah5i/7y2xbN2WuVHo2mShxSGQaFtDjo1NlNf9m8FGnuNPbiSj4aaBDjEXSz7fMedIaejqZeYdW07FWmpbdSaKBPjmMjivT9Syh3BhOt1kJSkBsKzy8v9mO3oBnJtxO+uw0AS6kLTQp0qAyrxrgDU4E7F/Egjuw7O467IlsJDCFHW2kArcV/AivCvtOOAhEFZZmZGZy1XdiDGjoblFSERojavwo4XpZbbSafKhB/aVe3E/bzOFrAkuuc8zrlCtsejkdu5MxHVg5KUhSdQ+A1YmJVlsmeMQJvbJcdU1uy4y6lx2elcdatNeVJkr5CaGo/LAwxSvV/EQ2beIHe8lt5U3aG/YcG436a6Ho42nGnBkXNa00chR2HQWH3wElSGl6SulEKB47/ANXrJsVsvxAmY3LjWQZJmbcN4bOtFrhxPVNsbmjdO41dWVMkx3wA3EuKHPxEaVVb5nlW0vSokhKq0fXJ1zU0nbKi1e0Rn/JZA6r/AITeeh/X/L6jQn/hXS/yPCnVdV+Hq4e7Vnhz9IPxkb7rfjiM53z6b9JdhPVPQPTultv6Y/mf6Q6qjX+m/TP8Z6no/I9Vy1fJ+JTFOnyf4P8AedP5H8CNTcv/AKOem/K/TJ5fov8AJ6OQnT0vU+fTp+TV5tPzeeuMh7j880nrZzeyun9AI09L+cj8jVX5m+Orx9uEB4lfZ8Q270//ADzz8vT0rmvrPk08lyuvRnop82nOnDPC21+WB1vzCAvbPN/Sls5nX09FGj1Hlc3l6hp1cvPlf+W1efTXVjNn88v/ACkf3BT19zXytfTt6q159NCac7R5dXwxb1fyw48SU2ulGaaOCaUrh/4T6SGR4/L/AK3HAHnA8yFXXTzP9nXP5dVft8K+3HKz4+ZD9sU/WqNPT/l50ro+dHGvj7MStyNfCb+3P+NP1rX9QTNPP/M+QfJTL4V8cLVRO7xJpadP6YuWjpf5y18zlaq05przNf3fZpzphyvGfh+MmWwT9zOi/wAvV+9R9F9P66Jz/wBUdbr06jp9O9O/xfX1p0nLz5lNWVcbL/rf/Kf6f2me9t+Vf6w9bL670q0+oep9XyHq/q7ofWdFPL6l0H+HrT5/vcdWeKl//tf7RGr/AIzBX/6d1X/vHN/Vf/yPX9P0v/U5mj/v+j/3uKskf7z/2Q==\"","export var primary = \"#5383ff\"\nexport var primaryLight = \"#495368\"\nexport var primaryDark = \"#09142a\"\nexport var secondary = \"#3d4977\"\nexport var inheritDefault1 = \"#fefefe\"\nexport var inheritDefault2 = \"#f8f9ff\"\nexport var second = \"#070919\"\nexport var indigo = \"#7420ff\"\nexport var purple = \"#793de6\"\nexport var pink = \"#fc26a4\"\nexport var red = \"#f83245\"\nexport var orange = \"#f4772e\"\nexport var yellow = \"#ffc926\"\nexport var green = \"#1bc943\"\nexport var teal = \"#18e1a5\"\nexport var cyan = \"#27dcf3\"\nexport default {\"primary\":\"#5383ff\",\"primaryLight\":\"#495368\",\"primaryDark\":\"#09142a\",\"secondary\":\"#3d4977\",\"inheritDefault1\":\"#fefefe\",\"inheritDefault2\":\"#f8f9ff\",\"second\":\"#070919\",\"indigo\":\"#7420ff\",\"purple\":\"#793de6\",\"pink\":\"#fc26a4\",\"red\":\"#f83245\",\"orange\":\"#f4772e\",\"yellow\":\"#ffc926\",\"green\":\"#1bc943\",\"teal\":\"#18e1a5\",\"cyan\":\"#27dcf3\"}\n","import typography from './typography'\r\n\r\n/* eslint-disable import/no-unresolved, import/no-webpack-loader-syntax */\r\nimport vars from '!!sass-vars-to-js-loader!../assets/core/_variables-mui.scss'\r\n\r\nconst MuiTheme = {\r\n palette: {\r\n primary: {\r\n main: vars.primary\r\n },\r\n grey: {\r\n 300: vars.inheritDefault1,\r\n A100: vars.inheritDefault2\r\n },\r\n secondary: {\r\n main: vars.secondary\r\n },\r\n error: {\r\n main: vars.red\r\n },\r\n success: {\r\n main: vars.green\r\n },\r\n warning: {\r\n main: vars.orange\r\n },\r\n helpers: {\r\n primary: vars.blue,\r\n main: 'rgba(25, 46, 91, .035)'\r\n },\r\n contrastThreshold: 3,\r\n tonalOffset: 0.1\r\n },\r\n shape: {\r\n borderRadius: '0.5rem'\r\n },\r\n overrides: {\r\n MuiCssBaseline: {\r\n '@global': {\r\n body: {\r\n backgroundColor: '#ffffff'\r\n }\r\n }\r\n },\r\n MuiButton: {\r\n // containedPrimary:\r\n // {\r\n // backgroundColor: \"#5384ff\"\r\n // },\r\n // containedSecondary: {\r\n // backgroundColor: \"#ffffff\"\r\n // },\r\n text: {\r\n paddingLeft: '14px',\r\n paddingRight: '14px'\r\n },\r\n containedSizeSmall: {\r\n paddingLeft: '14px',\r\n paddingRight: '14px'\r\n },\r\n root: {\r\n textTransform: 'none',\r\n fontWeight: 'normal'\r\n }\r\n },\r\n MuiTooltip: {\r\n tooltip: {\r\n backgroundColor: vars.second,\r\n padding: '8px 16px',\r\n fontSize: '13px'\r\n },\r\n arrow: {\r\n color: vars.second\r\n }\r\n },\r\n MuiIcon: {\r\n root: {\r\n overflow: 'inherit'\r\n }\r\n }\r\n },\r\n typography\r\n}\r\n\r\nexport default MuiTheme\r\n","export default {\r\n h1: {\r\n fontWeight: 500,\r\n fontSize: '35px',\r\n lineHeight: '40px'\r\n },\r\n h2: {\r\n fontWeight: 500,\r\n fontSize: '29px',\r\n lineHeight: '32px'\r\n },\r\n h3: {\r\n fontWeight: 500,\r\n fontSize: '24px',\r\n lineHeight: '28px'\r\n },\r\n h4: {\r\n fontWeight: 500,\r\n fontSize: '20px',\r\n lineHeight: '24px'\r\n },\r\n h5: {\r\n fontWeight: 500,\r\n fontSize: '16px',\r\n lineHeight: '20px'\r\n },\r\n h6: {\r\n fontWeight: 500,\r\n fontSize: '14px',\r\n lineHeight: '20px'\r\n },\r\n subtitle1: {\r\n fontSize: '16px',\r\n lineHeight: '25px'\r\n },\r\n subtitle2: {\r\n fontWeight: 400,\r\n fontSize: '14px'\r\n },\r\n body1: {\r\n fontSize: '14px'\r\n },\r\n body2: {\r\n fontSize: '14px'\r\n },\r\n button: {\r\n fontSize: '14px'\r\n },\r\n caption: {\r\n fontSize: '12px'\r\n },\r\n overline: {\r\n fontSize: '12px',\r\n fontWeight: 500,\r\n textTransform: 'uppercase'\r\n }\r\n}\r\n","import React from 'react'\r\nimport { renderRoutes } from 'react-router-config'\r\n\r\nconst ErrorLayoutInner = ({ route }) => {\r\n return <>{renderRoutes(route.routes)}\r\n}\r\n\r\nconst ErrorLayout = ({ route }) => {\r\n return \r\n}\r\n\r\nexport default ErrorLayout\r\n","import React from 'react'\r\nimport { renderRoutes } from 'react-router-config'\r\n\r\nconst AuthenticationLayoutInner = ({ route }) => {\r\n return <>{renderRoutes(route.routes)}\r\n}\r\n\r\nconst AuthenticationLayout = ({ route }) => {\r\n return \r\n}\r\n\r\nexport default AuthenticationLayout\r\n","import React, { Fragment } from 'react'\r\nimport { useRecoilValue } from 'recoil'\r\nimport clsx from 'clsx'\r\nimport { Link } from 'react-router-dom'\r\n\r\nimport { IconButton, Box } from '@material-ui/core'\r\n\r\nimport projectLogo from 'assets/images/app-logo.png'\r\n\r\nimport { themeOptionsState } from 'recoils/atoms'\r\n\r\nconst HeaderLogo = props => {\r\n const { sidebarToggle, sidebarHover } = useRecoilValue(themeOptionsState)\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \"Carolina\r\n \r\n \r\n TNTT Gx.Thạch Đà\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default HeaderLogo\r\n","import React from 'react'\r\nimport { withStyles } from '@material-ui/core/styles'\r\nimport { Badge } from '@material-ui/core'\r\n\r\nconst ActiveBadge = withStyles(theme => ({\r\n badge: {\r\n backgroundColor: '#44b700',\r\n color: '#44b700',\r\n boxShadow: `0 0 0 2px ${theme.palette.background.paper}`,\r\n '&::after': {\r\n position: 'absolute',\r\n top: 0,\r\n left: 0,\r\n width: '100%',\r\n height: '100%',\r\n borderRadius: '50%',\r\n animation: '$ripple 1.2s infinite ease-in-out',\r\n border: '1px solid currentColor',\r\n content: '\"\"'\r\n }\r\n },\r\n '@keyframes ripple': {\r\n '0%': {\r\n transform: 'scale(.8)',\r\n opacity: 1\r\n },\r\n '100%': {\r\n transform: 'scale(2.4)',\r\n opacity: 0\r\n }\r\n }\r\n}))(Badge)\r\n\r\nconst InActiveBadge = withStyles(theme => ({\r\n badge: {\r\n backgroundColor: '#ff0000',\r\n color: '#ff0000',\r\n boxShadow: `0 0 0 2px ${theme.palette.background.paper}`,\r\n '&::after': {\r\n position: 'absolute',\r\n top: 0,\r\n left: 0,\r\n width: '100%',\r\n height: '100%',\r\n borderRadius: '50%',\r\n animation: '$ripple 1.2s infinite ease-in-out',\r\n border: '1px solid currentColor',\r\n content: '\"\"'\r\n }\r\n }\r\n}))(Badge)\r\n\r\nexport default function ({ isActive, child, ...rest }) {\r\n return isActive ? {child} : {child}\r\n}\r\n","import React, { Fragment, useState } from 'react'\r\nimport { useRecoilValue, useRecoilState } from 'recoil'\r\nimport { Avatar, Box, Menu, Button, List, ListItem, Divider } from '@material-ui/core'\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\nimport { faAngleDown } from '@fortawesome/free-solid-svg-icons'\r\n\r\nimport { history } from 'App'\r\nimport Badge from 'components/UI/Badge'\r\nimport sessionHelper, { deleteLoginData, getMaxRole } from 'utils/sessionHelper'\r\nimport { HolyNameQuery, UserAvatarQuery } from 'recoils/selectors'\r\nimport { ShowChangePassword } from 'recoils/atoms'\r\n\r\nconst HeaderUserBox = () => {\r\n const [anchorEl, setAnchorEl] = useState(null)\r\n const session = sessionHelper()\r\n\r\n const lstHolyName = useRecoilValue(HolyNameQuery)\r\n const userAvatar = useRecoilValue(UserAvatarQuery)\r\n const [openChangePass, setOpenChangePass] = useRecoilState(ShowChangePassword)\r\n\r\n const handleClick = event => {\r\n setAnchorEl(event.currentTarget)\r\n }\r\n\r\n const handleClose = () => {\r\n setAnchorEl(null)\r\n }\r\n\r\n const logout = () => {\r\n setAnchorEl(null)\r\n deleteLoginData()\r\n\r\n history.push('/Login')\r\n }\r\n\r\n const onToggle = () => {\r\n setOpenChangePass(!openChangePass)\r\n setAnchorEl(null)\r\n }\r\n\r\n return (\r\n \r\n \r\n\r\n \r\n
\r\n \r\n \r\n {`${session?.firstName?.substring(0, 1)}${session?.lastName?.substring(0, 1)}`}\r\n \r\n
\r\n
\r\n {lstHolyName.find(i => i.id === Number(session.holyNameId))?.name} {session?.firstName} {session?.lastName}\r\n
\r\n
# {getMaxRole()}
\r\n
{session?.classInfo}
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
Đổi mật khẩu
\r\n
\r\n
\r\n
\r\n
\r\n {\r\n handleClose()\r\n history.push('/MyProfile')\r\n }}>\r\n
\r\n
\r\n
\r\n
Thông tin cá nhân
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
Đăng xuất
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n )\r\n}\r\n\r\nexport default HeaderUserBox\r\n","import React, { useRef, useState, useEffect } from 'react'\r\nimport { useRecoilValue } from 'recoil'\r\nimport { Grid, Fab, Container, InputAdornment, Drawer, IconButton, TextField, Divider, Typography, List, ListItem, Button, Hidden } from '@material-ui/core'\r\nimport { makeStyles } from '@material-ui/core/styles'\r\nimport clsx from 'clsx'\r\nimport moment from 'moment'\r\n\r\nimport SearchIcon from '@material-ui/icons/Search'\r\n// import CallMadeIcon from '@material-ui/icons/CallMade'\r\nimport CloseTwoToneIcon from '@material-ui/icons/CloseTwoTone'\r\n\r\nimport KeyboardEventHandler from 'react-keyboard-event-handler'\r\n\r\nimport { history } from 'App'\r\nimport { themeOptionsState } from 'recoils/atoms'\r\nimport { doGet } from 'utils/axios'\r\nimport { StudentStatus } from 'app/enums'\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n active: {\r\n backgroundColor: '#d3d3d33b'\r\n }\r\n}))\r\n\r\nconst useKeyPress = targetKey => {\r\n const [keyPressed, setKeyPressed] = useState(false)\r\n\r\n const downHandler = ({ key }) => {\r\n if (key === targetKey) {\r\n setKeyPressed(true)\r\n }\r\n }\r\n\r\n const upHandler = ({ key }) => {\r\n if (key === targetKey) {\r\n setKeyPressed(false)\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n window.addEventListener('keydown', downHandler)\r\n window.addEventListener('keyup', upHandler)\r\n\r\n return () => {\r\n window.removeEventListener('keydown', downHandler)\r\n window.removeEventListener('keyup', upHandler)\r\n }\r\n })\r\n return keyPressed\r\n}\r\n\r\nconst HeaderSearch = () => {\r\n const classes = useStyles()\r\n const { layoutStyle } = useRecoilValue(themeOptionsState)\r\n const searchRef = useRef(null)\r\n\r\n const [dummySearchesStudents, setDummySearchesStudents] = useState([])\r\n const [dummySearchResult, setDummySearchResult] = useState([])\r\n const [searching, setSearching] = useState(0)\r\n const [cursor, setCursor] = useState(0)\r\n const [hovered, setHovered] = useState(undefined)\r\n\r\n const downPress = useKeyPress('ArrowDown')\r\n const upPress = useKeyPress('ArrowUp')\r\n const enterPress = useKeyPress('Enter')\r\n\r\n // const setRefNumber = useSetRecoilState(ReferenceNumber)\r\n // const [reloadQuote, setReloadQuote] = useRecoilState(ReloadQuote)\r\n\r\n const handleSearchChange = event => {\r\n setSearchValue(event.target.value)\r\n setSearching(old => old + 1)\r\n\r\n if (event.target.value) {\r\n if (!openSearchResults) {\r\n setOpenSearchResults(true)\r\n }\r\n } else {\r\n setOpenSearchResults(false)\r\n setSearching(0)\r\n }\r\n }\r\n\r\n const [openSearchResults, setOpenSearchResults] = useState(false)\r\n const [searchValue, setSearchValue] = useState('')\r\n const [state, setState] = useState(false)\r\n\r\n const searchStudents = async value => {\r\n doGet('student/quickSearch', { keyword: value })\r\n .then(res => {\r\n if (res && res.data.success) {\r\n setDummySearchesStudents(res.data.data)\r\n }\r\n })\r\n .catch(err => console.log(err))\r\n }\r\n\r\n const handleRowClick = (e, val) => {\r\n // setRefNumber(val)\r\n e.preventDefault()\r\n\r\n history.push(`/FindStudent/${val}`)\r\n setState(false)\r\n }\r\n\r\n useEffect(() => {\r\n if (dummySearchResult.length && downPress) {\r\n setCursor(prevState => (prevState < dummySearchResult.length - 1 ? prevState + 1 : prevState))\r\n }\r\n }, [downPress])\r\n\r\n useEffect(() => {\r\n if (dummySearchResult.length && upPress) {\r\n setCursor(prevState => (prevState > 0 ? prevState - 1 : prevState))\r\n }\r\n }, [upPress])\r\n\r\n useEffect(() => {\r\n if (dummySearchResult.length && hovered) {\r\n setCursor(dummySearchResult.indexOf(hovered))\r\n }\r\n }, [hovered])\r\n\r\n useEffect(() => {\r\n if (dummySearchResult.length && enterPress && state) {\r\n const val = dummySearchResult[cursor].id\r\n // setRefNumber(val)\r\n history.push(`/FindStudent/${val}`)\r\n\r\n setState(false)\r\n }\r\n }, [cursor, enterPress])\r\n\r\n // useEffect(() => {\r\n // if (dummySearchResult.length) {\r\n // setSearchValue(dummySearchResult[cursor].stuCode)\r\n // }\r\n // }, [upPress, downPress, hovered])\r\n\r\n useEffect(() => {\r\n if (searching > 0) {\r\n searchStudents(searchValue)\r\n }\r\n }, [searching])\r\n\r\n useEffect(() => {\r\n setCursor(0)\r\n setDummySearchResult([...dummySearchesStudents])\r\n }, [dummySearchesStudents])\r\n\r\n return (\r\n <>\r\n {layoutStyle === 2 && (\r\n setState(true)} color=\"inherit\" className=\"btn-inverse font-size-xs\" style={{ marginLeft: '84px' }}>\r\n \r\n \r\n )}\r\n\r\n {layoutStyle === 1 && (\r\n <>\r\n \r\n setState(true)} color=\"inherit\" className=\"btn-inverse font-size-xs\">\r\n \r\n \r\n \r\n \r\n }\r\n endIcon={ctrl+k}\r\n onClick={() => setState(true)}>\r\n Tìm kiếm...\r\n \r\n \r\n \r\n )}\r\n\r\n setState(false)}>\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n )\r\n }}\r\n />\r\n \r\n setState(false)} size=\"small\" color=\"primary\">\r\n \r\n \r\n
\r\n
\r\n
\r\n {/*
\r\n setState(false)} size=\"small\" color=\"primary\">\r\n \r\n \r\n
*/}\r\n \r\n \r\n
\r\n
\r\n \r\n Chưa có kết quả tìm kiếm\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n

Kết quả

\r\n \r\n
\r\n {dummySearchResult.length === 0 && (\r\n
\r\n
\r\n \r\n Không tìm thấy Đoàn sinh phù hợp\r\n \r\n
\r\n
\r\n )}\r\n \r\n \r\n {dummySearchResult.length > 0 && (\r\n \r\n \r\n \r\n Tên Thánh,\r\n \r\n
\r\n
\r\n \r\n Họ và Tên\r\n
\r\n Ngày sinh\r\n
\r\n
\r\n \r\n Phân đoàn \r\n \r\n \r\n Chi đoàn \r\n \r\n \r\n Tình trạng \r\n \r\n
\r\n )}\r\n
\r\n {dummySearchResult.map((item, i) => (\r\n
\r\n \r\n handleRowClick(e, item.id)}\r\n onMouseEnter={() => setHovered(item)}\r\n onMouseLeave={() => setHovered(undefined)}>\r\n \r\n {item.stuHolyname}\r\n \r\n
\r\n
\r\n \r\n {item.stuFirstName} {item.stuLastName}\r\n
\r\n {item.stuDob ? moment(item.stuDob).format('DD-MM-YYYY') : 'Chưa nhập'}\r\n
\r\n \r\n {item.groupName}\r\n \r\n \r\n {item.unionCode}\r\n \r\n \r\n \r\n {item.status === StudentStatus.ChangeChurch && Chuyển xứ}\r\n {item.status === StudentStatus.LeaveStudy && Nghỉ luôn}\r\n {item.status === StudentStatus.Active && Đang học}\r\n {item.status === StudentStatus.Deleted && Đã xóa}\r\n {item.status === StudentStatus.InActive && Chưa học}\r\n \r\n \r\n \r\n {/* \r\n \r\n \r\n \r\n */}\r\n
\r\n
\r\n ))}\r\n
\r\n
\r\n \r\n
\r\n
\r\n {\r\n e.preventDefault()\r\n setState(!state)\r\n }}\r\n />\r\n \r\n )\r\n}\r\n\r\nexport default HeaderSearch\r\n","import React from 'react'\r\nimport { makeStyles, Button } from '@material-ui/core'\r\n\r\nconst useStyles = makeStyles({\r\n active: {\r\n background: '#ECF3FF',\r\n color: '#1877F2'\r\n },\r\n button: {\r\n marginRight: '8px',\r\n borderRadius: '48px'\r\n }\r\n})\r\n\r\nexport default function FilterTab({ value, handleChange }) {\r\n const classes = useStyles()\r\n return (\r\n
\r\n \r\n \r\n
\r\n )\r\n}\r\n","import React, { useState } from 'react'\r\nimport { IconButton, Menu, MenuItem } from '@material-ui/core'\r\nimport { MoreHoriz } from '@material-ui/icons'\r\n\r\nexport default function OptionMenu({ options, onClose = null }) {\r\n const [anchorEl, setAnchorEl] = useState(null)\r\n const open = Boolean(anchorEl)\r\n const handleClick = event => {\r\n setAnchorEl(event.currentTarget)\r\n }\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n {\r\n setAnchorEl(null)\r\n onClose && onClose()\r\n }}>\r\n {options.map((option, index) => (\r\n \r\n {option.icon}\r\n  \r\n {option.label}\r\n \r\n ))}\r\n \r\n \r\n )\r\n}\r\n","import React from 'react'\r\n\r\nimport { useRecoilValue, useRecoilState } from 'recoil'\r\n\r\nimport { Typography } from '@material-ui/core'\r\nimport { Done, CancelPresentation } from '@material-ui/icons'\r\n\r\nimport { Notifications, loadNotification, loadNumUnReadNoti, loadTotalNoti } from 'recoils/atoms'\r\nimport { doPut } from 'utils/axios'\r\n\r\nimport OptionMenu from './component/OptionMenu'\r\nimport sessionHelper from 'utils/sessionHelper'\r\n\r\nexport default function HeaderNotification() {\r\n const notifications = useRecoilValue(Notifications)\r\n const [loadNoti, setLoadNoti] = useRecoilState(loadNotification)\r\n const [loadNumUnRead, setLoadNumUnRead] = useRecoilState(loadNumUnReadNoti)\r\n const [loadTotal, setLoadTotal] = useRecoilState(loadTotalNoti)\r\n\r\n const options = [\r\n {\r\n label: 'Đánh dấu tất cả là đã đọc',\r\n icon: ,\r\n action: () => setIsReadAll()\r\n },\r\n {\r\n label: 'Gỡ tất cả thông báo',\r\n icon: ,\r\n action: () => removeAllNotification()\r\n }\r\n ]\r\n\r\n const setIsReadAll = async () => {\r\n const userId = sessionHelper().userId\r\n try {\r\n await doPut('notification/markIsAllRead', { userId })\r\n setLoadNoti(loadNoti + 1)\r\n setLoadNumUnRead(loadNumUnRead + 1)\r\n } catch (err) {}\r\n }\r\n\r\n const removeAllNotification = async () => {\r\n if (notifications.length === 0) return\r\n const userId = sessionHelper().userId\r\n try {\r\n await doPut('notification/patch-updateStatus', { userId })\r\n setLoadNoti(loadNoti + 1)\r\n setLoadTotal(loadTotal + 1)\r\n setLoadNumUnRead(loadNumUnRead + 1)\r\n } catch (error) {}\r\n }\r\n\r\n return (\r\n
\r\n \r\n Thông báo\r\n \r\n \r\n
\r\n )\r\n}\r\n","import React from 'react'\r\nimport { NotificationsPausedRounded } from '@material-ui/icons'\r\n\r\nexport default function EmptyNotification() {\r\n return (\r\n
\r\n \r\n Bạn không có thông báo nào\r\n
\r\n )\r\n}\r\n","import React from 'react'\r\nimport { Grid } from '@material-ui/core'\r\nimport { Skeleton } from '@material-ui/lab'\r\n\r\nexport default function NotificationSkeleton({ isMobile }) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n","import React from 'react'\r\nimport { NotificationType } from 'app/enums'\r\nimport PersonAddIcon from '@material-ui/icons/PersonAdd'\r\nimport EditIcon from '@material-ui/icons/Edit'\r\n\r\nexport const NotificationTypeIcon = {\r\n [NotificationType.UpdateStudentInformation]: ,\r\n [NotificationType.ChangeStudentStatus]: ,\r\n [NotificationType.CreateNewStudent]: ,\r\n\r\n [NotificationType.UpdateStudentScoreSemesterOne]: ,\r\n [NotificationType.UpdateStudentScoreSemesterTwo]: ,\r\n [NotificationType.UpdateStudentScoreTotal]: \r\n}\r\n","import React from 'react'\r\nimport { useRecoilState } from 'recoil'\r\nimport moment from 'moment'\r\nimport 'moment/locale/vi'\r\n\r\nimport { Grid, Typography, useMediaQuery, makeStyles } from '@material-ui/core'\r\n\r\nimport { loadNotification, loadNumUnReadNoti } from 'recoils/atoms'\r\nimport { doPut } from 'utils/axios'\r\n\r\nimport NotificationSkeleton from './component/NotificationSkeleton'\r\nimport { NotificationTypeIcon } from './component/NotificationTypeIcon'\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n display: 'flex',\r\n '& > *': {\r\n margin: theme.spacing(1)\r\n }\r\n },\r\n container: {\r\n '&:hover': {\r\n background: '#d2d3d6',\r\n borderRadius: '8px',\r\n cursor: 'pointer'\r\n }\r\n },\r\n small: {\r\n width: theme.spacing(3),\r\n height: theme.spacing(3)\r\n },\r\n\r\n medium: {\r\n width: theme.spacing(4),\r\n height: theme.spacing(4)\r\n },\r\n\r\n large: {\r\n width: theme.spacing(7),\r\n height: theme.spacing(7)\r\n },\r\n dot: {\r\n width: '8px',\r\n height: '8px',\r\n borderRadius: '50%',\r\n backgroundColor: 'blue',\r\n position: 'absolute',\r\n top: '5px',\r\n right: '5px'\r\n }\r\n}))\r\n\r\nexport default function NotificationItem({ notification }) {\r\n const classes = useStyles()\r\n const isSmallScreen = useMediaQuery(theme => theme.breakpoints.down('sm'))\r\n\r\n const [loadNoti, setLoadNoti] = useRecoilState(loadNotification)\r\n const [loadNumUnRead, setLoadNumUnRead] = useRecoilState(loadNumUnReadNoti)\r\n\r\n if (!notification) {\r\n return \r\n }\r\n\r\n const setIsRead = async () => {\r\n try {\r\n await doPut('notification/markIsRead', { notificationId: notification.id })\r\n setLoadNoti(loadNoti + 1)\r\n setLoadNumUnRead(loadNumUnRead + 1)\r\n } catch (error) {}\r\n }\r\n\r\n return (\r\n setIsRead()}>\r\n \r\n {NotificationTypeIcon[notification.type]}\r\n \r\n \r\n
\r\n \r\n {notification.title}\r\n \r\n
\r\n {notification.message}\r\n
\r\n
\r\n {moment(notification.createdDate).locale('vi').fromNow()}\r\n
\r\n
\r\n
\r\n \r\n {notification?.isRead === false &&
}\r\n
\r\n \r\n )\r\n}\r\n","import React, { useState, useEffect, useRef } from 'react'\r\nimport { useRecoilState, useRecoilValue } from 'recoil'\r\n\r\nimport { useTheme, useMediaQuery } from '@material-ui/core'\r\n\r\nimport { Notifications, loadNotification } from 'recoils/atoms'\r\nimport { doGet } from 'utils/axios'\r\n\r\nimport EmptyNotification from './component/EmptyNotification'\r\nimport NotificationItem from './NotificationItem'\r\n\r\nexport default function NotificationList({ userId, total, open, tab }) {\r\n const theme = useTheme()\r\n const isMobile = useMediaQuery(theme.breakpoints.down('xs'))\r\n\r\n const [pageSize, setPageSize] = useState(5)\r\n const [scrollPos, seScrollPos] = useState(0)\r\n const divRef = useRef()\r\n\r\n const [notifications, setNotifications] = useRecoilState(Notifications)\r\n const loadNoti = useRecoilValue(loadNotification)\r\n\r\n useEffect(() => {\r\n async function fetchNotification() {\r\n try {\r\n const response = await doGet('notification/userNotification', {\r\n userId,\r\n PageSize: pageSize\r\n })\r\n const { data } = response.data\r\n tab === 1 ? setNotifications(data.filter(item => item.isRead === false)) : setNotifications(data)\r\n } catch (error) {}\r\n }\r\n if (open === true) fetchNotification()\r\n }, [pageSize, loadNoti, tab])\r\n\r\n const handeScroll = () => {\r\n const currentScrollPos = divRef.current.scrollTop\r\n if (currentScrollPos > scrollPos) {\r\n pageSize < total && setPageSize(pageSize + 3)\r\n }\r\n seScrollPos(currentScrollPos)\r\n }\r\n\r\n return (\r\n \r\n 0 ? '500px' : 'none',\r\n overflowY: 'auto',\r\n overflowX: 'hidden',\r\n padding: '8px'\r\n }}>\r\n {total === 0 ? : Array.from({ length: total }).map((_, index) => )}\r\n \r\n \r\n )\r\n}\r\n","import React, { Fragment, useEffect, useState } from 'react'\r\nimport { useRecoilValue } from 'recoil'\r\n\r\nimport { IconButton, Box, Popover } from '@material-ui/core'\r\nimport NotificationsActiveTwoToneIcon from '@material-ui/icons/NotificationsActiveTwoTone'\r\n\r\nimport sessionHelper from 'utils/sessionHelper'\r\nimport { doGet } from 'utils/axios'\r\nimport { loadNumUnReadNoti, loadTotalNoti } from 'recoils/atoms'\r\n\r\nimport FilterTab from './component/FilterTab'\r\nimport HeaderAction from './HeaderAction'\r\nimport NotificationList from './NotificationList'\r\n\r\nexport default function HeaderNotification() {\r\n const [anchorEl, setAnchorEl] = useState(null)\r\n const [numUnRead, setNumUnRead] = useState(0)\r\n const [total, setTotal] = useState(0)\r\n const [iTab, setITab] = useState(0)\r\n\r\n const open = Boolean(anchorEl)\r\n const userId = sessionHelper().userId\r\n\r\n const loadNumUnRead = useRecoilValue(loadNumUnReadNoti)\r\n const loadTotal = useRecoilValue(loadTotalNoti)\r\n\r\n const handleChangeTab = () => {\r\n iTab === 0 ? setITab(1) : setITab(0)\r\n }\r\n\r\n const handleClick = event => {\r\n setAnchorEl(event.currentTarget)\r\n }\r\n\r\n const handleClose = () => {\r\n setAnchorEl(null)\r\n }\r\n\r\n useEffect(() => {\r\n async function fetchNumberUnReadNotification() {\r\n const response = await doGet('notification/count', { userId })\r\n if (response) {\r\n const { data } = response.data\r\n setNumUnRead(data)\r\n }\r\n }\r\n\r\n if (userId) {\r\n fetchNumberUnReadNotification().finally()\r\n }\r\n }, [loadNumUnRead, userId])\r\n\r\n useEffect(() => {\r\n async function fetchTotalNotification() {\r\n const response = await doGet('notification/Total', { userId })\r\n\r\n if (response) {\r\n const { data } = response.data\r\n setTotal(data)\r\n }\r\n }\r\n\r\n if (userId) {\r\n fetchTotalNotification().finally()\r\n }\r\n }, [loadTotal, userId])\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n {
{numUnRead !== 0 && (numUnRead > 10 ? '10+' : numUnRead)}
}\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n )\r\n}\r\n","import { atom, selector } from 'recoil'\r\nimport _ from 'lodash'\r\n\r\nimport sessionHelper from 'utils/sessionHelper'\r\nimport { doGet } from 'utils/axios'\r\n\r\nexport const ReloadUserInGroup = atom({\r\n key: 'reloadUserInGroup',\r\n default: 1\r\n})\r\n\r\nexport const AssignmentIdSelected = atom({\r\n key: 'assignmentIdSelected',\r\n default: []\r\n})\r\n\r\nexport const UserInGroupQuery = selector({\r\n key: 'userInGroupQuery',\r\n get: async ({ get }) => {\r\n get(ReloadUserInGroup)\r\n\r\n const scholasticId = sessionHelper().scholasticId\r\n const userId = sessionHelper().userId\r\n const classId = sessionHelper().classId\r\n\r\n const res = await doGet(`user/getUserInGroup`, { scholasticId, userId, classId })\r\n\r\n if (res && res.data.success) {\r\n const result = _.chain(res.data.data)\r\n .groupBy('unionId')\r\n .map((value, key) => ({ unionId: Number(key), assigns: value }))\r\n .value()\r\n\r\n return result\r\n }\r\n }\r\n})\r\n","import {\r\n Dialog,\r\n DialogTitle,\r\n DialogContent,\r\n CardContent,\r\n Grid,\r\n DialogActions,\r\n Typography,\r\n Button,\r\n FormControl,\r\n FormLabel,\r\n FormGroup,\r\n RadioGroup,\r\n FormControlLabel,\r\n Divider\r\n} from '@material-ui/core'\r\nimport React, { useEffect, useState } from 'react'\r\nimport { useRecoilValue, useRecoilState } from 'recoil'\r\nimport useMediaQuery from '@material-ui/core/useMediaQuery'\r\nimport { useTheme } from '@material-ui/core/styles'\r\nimport { useFormik } from 'formik'\r\nimport StyledCheckbox from 'components/UI/StyledCheckbox'\r\nimport StyledRadio from 'components/UI/StyledRadio'\r\nimport ButtonLoading from 'components/UI/ButtonLoading'\r\n\r\nimport { doPost } from 'utils/axios'\r\nimport sessionHelper from 'utils/sessionHelper'\r\nimport { Roles } from 'app/enums'\r\n\r\nimport { toastState } from 'recoils/atoms'\r\nimport { HolyNameQuery } from 'recoils/selectors'\r\nimport { RolesDialogAtom } from './recoil'\r\nimport { ReloadUserInGroup } from 'pages/PhanDoanTruong/AssignUserUnion/recoil'\r\n// import { ReloadListAssign } from 'containers/Users/Assignment/recoil'\r\n\r\nconst init = []\r\n\r\nexport const RolesDialog = () => {\r\n const theme = useTheme()\r\n const fullScreen = useMediaQuery(theme.breakpoints.down('sm'))\r\n let [loading, setLoading] = useState(false)\r\n const [toast, setToast] = useRecoilState(toastState)\r\n\r\n const lstHolyname = useRecoilValue(HolyNameQuery)\r\n const [reload, setReload] = useRecoilState(ReloadUserInGroup)\r\n // const [reloadAssign, setReloadAssign] = useRecoilState(ReloadListAssign)\r\n\r\n let [rolesDialog, setRolesDialog] = useRecoilState(RolesDialogAtom)\r\n let { open, pageCall, user } = rolesDialog\r\n\r\n const formRoles = useFormik({\r\n initialValues: init,\r\n validateOnChange: true,\r\n validateOnMount: true,\r\n enableReinitialize: true\r\n })\r\n\r\n useEffect(() => {\r\n const newFormData = user\r\n ? user.roles.map(e => {\r\n return e.id\r\n })\r\n : []\r\n formRoles.resetForm({ values: newFormData })\r\n }, [user])\r\n\r\n const handleRole = e => {\r\n const val = Number(e.target.value)\r\n\r\n if (val === Roles.DuTruong) {\r\n formRoles.values = formRoles.values.filter(i => i !== Roles.HuynhTruong)\r\n formRoles.values.push(val)\r\n formRoles.resetForm({ values: formRoles.values })\r\n } else {\r\n formRoles.values = formRoles.values.filter(i => i !== Roles.DuTruong)\r\n formRoles.values.push(val)\r\n formRoles.resetForm({ values: formRoles.values })\r\n }\r\n }\r\n\r\n const handleCheckRole = e => {\r\n const val = Number(e.target.value)\r\n\r\n const itemExist = formRoles.values.includes(val)\r\n if (itemExist) {\r\n formRoles.resetForm({ values: formRoles.values.filter(i => i !== val) })\r\n } else {\r\n formRoles.values.push(val)\r\n formRoles.resetForm({ values: formRoles.values })\r\n }\r\n }\r\n\r\n const handleSaveRoles = async e => {\r\n e.preventDefault()\r\n\r\n let data = formRoles.values.map((e, i) => {\r\n return { Id: e }\r\n })\r\n setLoading(true)\r\n\r\n try {\r\n var res = await doPost(`user/updateRoles`, { id: user?.id, roles: data })\r\n\r\n if (res.data && res.data.success) {\r\n setLoading(false)\r\n setRolesDialog({ ...rolesDialog, open: false, user: undefined, pageCall: undefined })\r\n setToast({ ...toast, open: true, message: res.data.message, type: 'success' })\r\n\r\n if (pageCall) {\r\n if (pageCall === 'PDT-AssignUnion') setReload(reload + 1)\r\n // else if (pageCall === 'BQT-Assignment') setReloadAssign(reloadAssign + 1)\r\n }\r\n }\r\n } catch (err) {\r\n // Todo:\r\n setToast({ ...toast, open: true, message: err.message, type: 'error' })\r\n }\r\n }\r\n\r\n const handleCloseDialog = () => {\r\n if (!loading) {\r\n setRolesDialog({ ...rolesDialog, open: false, user: undefined, pageCall: undefined })\r\n }\r\n }\r\n\r\n return (\r\n \r\n Phân chức vụ Huynh trưởng\r\n \r\n \r\n \r\n \r\n \r\n \r\n {lstHolyname.find(h => h.id === user?.holyNameId)?.name} {user?.firstName} {user?.lastName}\r\n \r\n \r\n \r\n \r\n Cấp bậc\r\n \r\n \r\n }\r\n label=\"Dự trưởng\"\r\n />\r\n }\r\n label=\"Huynh trưởng\"\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n Chức vụ\r\n \r\n }\r\n label=\"Phân đoàn trưởng\"\r\n />\r\n }\r\n label=\"Ngành trưởng\"\r\n />\r\n }\r\n label=\"Phụng vụ\"\r\n />\r\n }\r\n label=\"Học tập\"\r\n />\r\n }\r\n label=\"Kỷ luật\"\r\n />\r\n }\r\n label=\"Sinh hoạt\"\r\n />\r\n }\r\n label=\"Ban điều hành\"\r\n disabled={!sessionHelper().roles.includes(Roles.BanDieuHanh)}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n","import React from 'react'\r\nimport { useRecoilState } from 'recoil'\r\nimport { Dialog, DialogTitle, DialogContent, Typography, Button, DialogActions, Divider, Grid } from '@material-ui/core'\r\n\r\nimport { PhoneCallDialogAtom } from './recoil'\r\n\r\nexport const DialerDialog = () => {\r\n const [phoneDialog, setPhoneDialog] = useRecoilState(PhoneCallDialogAtom)\r\n const { phoneCallDialog, phoneNo } = phoneDialog\r\n\r\n const handleClose = () => {\r\n setPhoneDialog({ ...phoneDialog, phoneCallDialog: false, phoneNo: undefined })\r\n }\r\n\r\n const handleCall = () => {\r\n if (phoneNo) window.open(`tel:${phoneNo}`)\r\n handleClose()\r\n }\r\n\r\n return (\r\n \r\n Gọi điện thoại\r\n \r\n \r\n
\r\n Thực hiện gọi SĐT\r\n
\r\n {phoneNo}\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n )\r\n}\r\n","import React, { useState } from 'react'\r\nimport { Dialog, DialogTitle, DialogContent, CardContent, Grid, FormControl, FormGroup, FormControlLabel, DialogActions, Button, TextField, Divider } from '@material-ui/core'\r\nimport { useRecoilState, useRecoilValue } from 'recoil'\r\nimport StyledCheckbox from 'components/UI/StyledCheckbox'\r\nimport StyledRadio from 'components/UI/StyledRadio'\r\nimport ButtonLoading from 'components/UI/ButtonLoading'\r\n\r\nimport useMediaQuery from '@material-ui/core/useMediaQuery'\r\nimport { useTheme } from '@material-ui/core/styles'\r\nimport { AbsentMode } from 'app/enums'\r\n\r\nimport { OpenAbsentDialog, StudentAbsent } from './recoil'\r\nimport sessionHelper from 'utils/sessionHelper'\r\nimport { toastState } from 'recoils/atoms'\r\n\r\nimport { doPost } from 'utils/axios'\r\n\r\nexport const AbsentDialog = () => {\r\n let theme = useTheme()\r\n let fullScreen = useMediaQuery(theme.breakpoints.down('sm'))\r\n let [toast, setToast] = useRecoilState(toastState)\r\n let [absentDialog, setAbsentDialog] = useRecoilState(OpenAbsentDialog)\r\n let [reason, setReason] = useState('')\r\n let [hasPermission, setHasPermission] = useState(true)\r\n let [absentMode, setAbsentMode] = useState([])\r\n let student = useRecoilValue(StudentAbsent)\r\n let [loading, setLoading] = useState(false)\r\n\r\n const handleSaveAbsent = async e => {\r\n e.preventDefault()\r\n\r\n setLoading(true)\r\n\r\n const val = {\r\n StudentId: student.id,\r\n DateAbsent: new Date(),\r\n IsActive: true,\r\n Mode: 0,\r\n ScholasticId: sessionHelper().scholasticId,\r\n UserFullName: `${sessionHelper().firstName} ${sessionHelper().lastName}`,\r\n UserId: sessionHelper().userId,\r\n ClassId: sessionHelper().classId,\r\n Reason: reason,\r\n HasPermission: hasPermission,\r\n Modes: absentMode\r\n }\r\n\r\n try {\r\n var res = await doPost('student/absent', val)\r\n if (res && res.data.success) {\r\n setAbsentDialog(false)\r\n setToast({ ...toast, open: true, message: res.data.message, type: 'success' })\r\n setAbsentMode([])\r\n setReason('')\r\n setLoading(false)\r\n }\r\n } catch (err) {\r\n setToast({ ...toast, open: true, message: err.message, type: 'error' })\r\n }\r\n }\r\n\r\n const handleCheckMode = e => {\r\n const val = Number(e.target.value)\r\n const itemExist = absentMode.find(v => v === val)\r\n if (itemExist) {\r\n setAbsentMode(absentMode.filter(i => i !== val))\r\n } else {\r\n setAbsentMode([...absentMode, val])\r\n }\r\n }\r\n\r\n const handleClose = () => {\r\n if (!loading) {\r\n setAbsentMode([])\r\n setReason('')\r\n setAbsentDialog(false)\r\n }\r\n }\r\n\r\n return (\r\n setAbsentDialog(false)} aria-labelledby=\"responsive-dialog-title\" fullScreen={fullScreen} maxWidth=\"lg\">\r\n Điểm danh Đoàn sinh\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n } label=\"Nghỉ lễ\" labelPlacement=\"end\" />\r\n } label=\"Nghỉ học\" labelPlacement=\"end\" />\r\n \r\n \r\n \r\n \r\n \r\n \r\n setHasPermission(e.target.checked)}\r\n checked={hasPermission}\r\n control={}\r\n label=\"Có phép\"\r\n labelPlacement=\"end\"\r\n />\r\n setHasPermission(!e.target.checked)}\r\n checked={!hasPermission}\r\n control={}\r\n label=\"Không phép\"\r\n labelPlacement=\"end\"\r\n />\r\n \r\n \r\n \r\n \r\n setReason(e.target.value)} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n","import { atom, selector } from 'recoil'\r\nimport _ from 'lodash'\r\n\r\nimport { AbsentMode } from 'app/enums'\r\nimport { doGet } from 'utils/axios'\r\nimport sessionHelper from 'utils/sessionHelper'\r\n\r\nexport const ReloadStudentClass = atom({\r\n key: 'ReloadStudentClass',\r\n default: 0\r\n})\r\n\r\nexport const AbsentViewMode = atom({\r\n key: 'AbsentViewMode',\r\n default: AbsentMode.Mass\r\n})\r\n\r\nexport const StudentsQuery = selector({\r\n key: 'StudentsQuery',\r\n get: async ({ get }) => {\r\n get(ReloadStudentClass)\r\n const { classId, unionId } = sessionHelper()\r\n\r\n if (Number(unionId) !== 1) {\r\n var res = await doGet(`student/getStudentInClass`, { classCode: classId, unionId: unionId })\r\n\r\n if (res && res.data.success && res.data.data) {\r\n const stuRes = res.data.data\r\n\r\n const distinctTeam = [...new Set(stuRes?.map(x => x.studentClass.find(sc => Number(sc.classId) === Number(classId))?.team))]\r\n const lstStudent = []\r\n\r\n for (const t of distinctTeam) {\r\n if (t === 0) lstStudent.push({ team: 0, students: [] })\r\n if (t !== 0) lstStudent.push({ team: t, students: [] })\r\n }\r\n\r\n for (const stu of stuRes) {\r\n lstStudent.forEach(t => {\r\n if (t.team === stu.studentClass.find(sc => Number(sc.classId) === Number(classId)).team) {\r\n if (stu.studentClass.find(sc => Number(sc.classId) === Number(classId)).isTeamLead) {\r\n t.students.push({ ...stu, isTeamLead: true })\r\n } else {\r\n t.students.push({ ...stu, isTeamLead: false })\r\n }\r\n }\r\n })\r\n }\r\n\r\n return _.orderBy(lstStudent, ['team'], ['asc'])\r\n }\r\n }\r\n return null\r\n }\r\n})\r\n\r\nexport const AssignmentQuery = selector({\r\n key: 'AssignmentQuery',\r\n get: async () => {\r\n const { classId, userId } = sessionHelper()\r\n\r\n var res = await doGet(`assignment/getAssignmentByClass`, { classId: classId, userId: userId })\r\n\r\n if (res && res.data.success) {\r\n const totalTeam = res.data.data.union.totalTeam\r\n return Array.from({ length: totalTeam }, (v, i) => i + 1)\r\n } else return null\r\n }\r\n})\r\n","import { atom, selector } from 'recoil'\r\nimport _ from 'lodash'\r\n// import slugify from 'slugify'\r\n\r\nimport { doGet } from 'utils/axios'\r\nimport sessionHelper from 'utils/sessionHelper'\r\nimport { UnionQuery } from 'recoils/selectors'\r\n\r\nexport const ReloadStudentGroup = atom({\r\n key: 'reloadStudentGroup',\r\n default: 0\r\n})\r\n\r\nexport const StudentsGroupQuery = selector({\r\n key: 'studentsGroupQuery',\r\n get: async ({ get }) => {\r\n get(ReloadStudentGroup)\r\n // const searchKey = get(SearchGroupStudent)\r\n\r\n const userId = sessionHelper().userId\r\n const scholasticId = sessionHelper().scholasticId\r\n const classId = sessionHelper().classId\r\n\r\n const lstUnion = get(UnionQuery)\r\n\r\n const res = await doGet(`student/getStudentInGroup`, { scholasticId, userId, classId })\r\n\r\n if (res && res.data.success) {\r\n // const distinctUnion = [...new Set(res.result.map(x => x.studentClass.find(sc => sc.classId === x.classId).unionId))]\r\n const lstStudent = [{ unionId: 1, unionCode: 0, students: [] }]\r\n\r\n // Tạo mảng danh sách chi đoàn\r\n for (const t of lstUnion) {\r\n lstStudent.push({ unionId: t.unionId, unionCode: t.unionCode, students: [] })\r\n }\r\n if (res.data.data) {\r\n const stuRes = res.data.data\r\n\r\n // if (searchKey) {\r\n // let keys = slugify(searchKey, { lower: true })\r\n // stuRes = stuRes.filter(stu => slugify(`${stu.stuFirstName}-${stu.stuLastName}`, { lower: true }).includes(keys))\r\n // }\r\n\r\n // Đưa từng Đoàn sinh vô chi đoàn\r\n for (const stu of stuRes) {\r\n const stuUnionId = stu?.studentClass?.find(sc => sc.classId === stu.classId)?.unionId\r\n if (stuUnionId === 1) {\r\n lstStudent[0].students.push(stu)\r\n } else {\r\n lstStudent.forEach(t => {\r\n if (t.unionId === stuUnionId) {\r\n t.students.push(stu)\r\n }\r\n })\r\n }\r\n }\r\n return _.orderBy(lstStudent, ['union'], ['asc'])\r\n }\r\n }\r\n return null\r\n }\r\n})\r\n\r\nexport const StudentEdit = atom({\r\n key: 'studentEdit',\r\n default: undefined\r\n})\r\n\r\nexport const ShowStudentDetail = atom({\r\n key: 'showStudentDetail',\r\n default: false\r\n})\r\n\r\nexport const SearchGroupStudent = atom({\r\n key: 'searchGroupStudent',\r\n default: undefined\r\n})\r\n","/* eslint-disable react-hooks/exhaustive-deps */\r\nimport React, { useEffect, useState } from 'react'\r\nimport { useRecoilState, useRecoilValue, useSetRecoilState } from 'recoil'\r\nimport useMediaQuery from '@material-ui/core/useMediaQuery'\r\nimport { useTheme } from '@material-ui/core/styles'\r\nimport {\r\n Dialog,\r\n DialogTitle,\r\n DialogContent,\r\n Grid,\r\n TextField,\r\n FormControl,\r\n DialogActions,\r\n Button,\r\n FormControlLabel,\r\n FormGroup,\r\n ButtonGroup,\r\n Tooltip,\r\n Typography,\r\n IconButton,\r\n Divider\r\n} from '@material-ui/core'\r\nimport { withStyles } from '@material-ui/core/styles'\r\nimport FlagRoundedIcon from '@material-ui/icons/FlagRounded'\r\nimport ExitToApp from '@material-ui/icons/ExitToApp'\r\n\r\n// 3Party\r\nimport Yup from 'utils/Yup'\r\nimport { useFormik } from 'formik'\r\nimport { doPost } from 'utils/axios'\r\nimport { get } from 'lodash'\r\n\r\n// External\r\nimport { StudentStatus } from 'app/enums'\r\nimport sessionHelper from 'utils/sessionHelper'\r\nimport { HolyNameQuery } from 'recoils/selectors'\r\nimport { reloadHolyName, toastState } from 'recoils/atoms'\r\nimport StyledCheckbox from 'components/UI/StyledCheckbox'\r\nimport StyledRadio from 'components/UI/StyledRadio'\r\nimport ButtonLoading from 'components/UI/ButtonLoading'\r\nimport { ShortTextField, AutocompleteTextField, KeyboardDateField } from 'components/Controls'\r\n\r\n// Internal\r\nimport { StudentDialogAtom, PhoneCallDialogAtom, ChangeGroupModalAtom } from './recoil'\r\nimport { ReloadStudentClass } from 'pages/HuynhTruong/ManageStudentClass/recoil'\r\nimport { ReloadStudentGroup } from 'pages/PhanDoanTruong/ManageStudentsGroup/recoil'\r\nimport ModalSkeleton from 'components/Loading/modal-skeleton'\r\n\r\nexport const StudentDialog = () => {\r\n const theme = useTheme()\r\n const fullScreen = useMediaQuery(theme.breakpoints.down('sm'))\r\n\r\n const lstHolyName = useRecoilValue(HolyNameQuery)\r\n const setReloadHolyName = useSetRecoilState(reloadHolyName)\r\n\r\n const setReloadClass = useSetRecoilState(ReloadStudentClass)\r\n const setReloadGroup = useSetRecoilState(ReloadStudentGroup)\r\n\r\n const [studentDialog, setStudentDialog] = useRecoilState(StudentDialogAtom)\r\n const [phoneDialog, setPhoneDialog] = useRecoilState(PhoneCallDialogAtom)\r\n const [toast, setToast] = useRecoilState(toastState)\r\n const [changeGroupModal, setChangeGroupModal] = useRecoilState(ChangeGroupModalAtom)\r\n\r\n const [isEdit, setIsEdit] = useState(false)\r\n const [loading, setLoading] = useState(false)\r\n const [changeStatus, setChangeStatus] = useState(false)\r\n const [isTeamLead, setIsTeamLead] = useState(false)\r\n\r\n const { stuDialog, pageCall, student } = studentDialog\r\n\r\n useEffect(() => {\r\n setIsTeamLead(student?.studentClass?.find(sl => sl.classId === Number(sessionHelper().classId))?.isTeamLead)\r\n }, [student])\r\n\r\n const validationSchema = Yup.object({\r\n stuHolyId: Yup.string().required('Không để trống').min(0, 'Phải chọn Tên Thánh'),\r\n stuFirstName: Yup.string().required('Không để trống').max(100, 'Không nhập nhiều hơn 100 ký tự.'),\r\n stuLastName: Yup.string().required('Không để trống').max(50, 'Không nhập nhiều hơn 50 ký tự.'),\r\n note: Yup.string().max(250, 'Không nhập nhiều hơn 250 ký tự.').nullable(),\r\n studentMoreInfo: Yup.object({\r\n stuFatherFullName: Yup.string().max(150, 'Không nhập nhiều hơn 150 ký tự.').nullable(),\r\n stuMotherFullName: Yup.string().max(150, 'Không nhập nhiều hơn 150 ký tự.').nullable(),\r\n stuAddress: Yup.string().max(250, 'Không nhập nhiều hơn 250 ký tự.').nullable(),\r\n stuMotherPhone: Yup.string()\r\n .max(11, 'Không nhập nhiều hơn 11 ký tự.')\r\n .matches(/^[0-9]+$/g, {\r\n message: 'Không đúng định dạng',\r\n excludeEmptyString: true\r\n })\r\n .nullable(),\r\n stuFatherPhone: Yup.string()\r\n .max(11, 'Không nhập nhiều hơn 11 ký tự.')\r\n .matches(/^[0-9]+$/g, {\r\n message: 'Không đúng định dạng',\r\n excludeEmptyString: true\r\n })\r\n .nullable()\r\n })\r\n })\r\n\r\n const formData = useFormik({\r\n initialValues: { ...student },\r\n validationSchema,\r\n validateOnChange: true,\r\n validateOnMount: true,\r\n enableReinitialize: true\r\n })\r\n\r\n const handleClickCall = e => {\r\n e.preventDefault()\r\n\r\n const phoneNo = get(formData.values, e.target.name)\r\n if (!isEdit && phoneNo) {\r\n setPhoneDialog({ ...phoneDialog, phoneCallDialog: true, phoneNo: phoneNo })\r\n }\r\n }\r\n\r\n const handleClose = () => {\r\n setStudentDialog({ ...studentDialog, stuDialog: false, pageCall: undefined })\r\n setIsEdit(false)\r\n handleCancelStatus()\r\n }\r\n\r\n const handleReload = () => {\r\n const formVal = formData.values\r\n const checkReloadHolyNameList =\r\n get(formVal, 'stuHolyId') === 0 || get(formVal, 'studentMoreInfo.stuFatherHolyId') === 0 || get(formVal, 'studentMoreInfo.stuMotherHolyId') === 0\r\n if (checkReloadHolyNameList) {\r\n setReloadHolyName(old => old + 1)\r\n }\r\n\r\n if (pageCall) {\r\n if (pageCall === 'HT-Student') setReloadClass(reload => reload + 1)\r\n if (pageCall === 'PDT-Student') setReloadGroup(reload => reload + 1)\r\n }\r\n }\r\n\r\n const saveStudentInfo = async e => {\r\n e.preventDefault()\r\n setLoading(true)\r\n\r\n const formVal = formData.values\r\n\r\n try {\r\n const res = await doPost(`student/updateStudent`, {\r\n ...formVal\r\n })\r\n\r\n if (res && res.data.success) {\r\n setToast({ ...toast, open: true, message: res.data.message, type: 'success' })\r\n handleReload()\r\n }\r\n } catch (err) {\r\n setToast({ ...toast, open: true, message: err.message, type: 'error' })\r\n } finally {\r\n setLoading(false)\r\n setIsEdit(!isEdit)\r\n }\r\n }\r\n\r\n const handleClickStatus = (e, newValue) => {\r\n e.preventDefault()\r\n\r\n if (newValue !== formData.values['status']) {\r\n setChangeStatus(true)\r\n formData.setFieldValue('newValue', newValue)\r\n } else {\r\n setChangeStatus(false)\r\n formData.setFieldValue('newValue', formData.values['status'])\r\n }\r\n }\r\n\r\n const handleChangeStatus = async e => {\r\n e.preventDefault()\r\n setLoading(true)\r\n\r\n const data = {\r\n userId: sessionHelper().userId,\r\n studentId: formData.values['id'],\r\n oldValue: formData.values['status'],\r\n newValue: formData.values['newValue'],\r\n note: formData.values['reason'],\r\n scholasticId: sessionHelper().scholasticId\r\n }\r\n\r\n try {\r\n const res = await doPost(`student/updateStudentStatus`, data)\r\n\r\n if (res && res.data.success) {\r\n setToast({ ...toast, open: true, message: res.data.message, type: 'success' })\r\n setChangeStatus(false)\r\n formData.setValues({ ...formData.values, status: data.newValue, reason: '' })\r\n handleReload()\r\n setLoading(false)\r\n }\r\n } catch (err) {\r\n setToast({ ...toast, open: true, message: err.message, type: 'error' })\r\n }\r\n }\r\n\r\n const styles = theme => ({\r\n root: {\r\n margin: 0,\r\n padding: theme.spacing(2)\r\n },\r\n closeButton: {\r\n position: 'absolute',\r\n right: theme.spacing(1),\r\n top: theme.spacing(0),\r\n color: theme.palette.grey[500]\r\n },\r\n changeGroup: {\r\n position: 'absolute',\r\n left: '33%',\r\n [theme.breakpoints.only('sm')]: {\r\n left: '18%'\r\n },\r\n [theme.breakpoints.up('md')]: {\r\n left: '15%'\r\n },\r\n top: theme.spacing(0),\r\n color: theme.palette.grey[700]\r\n }\r\n })\r\n\r\n const handleCancelStatus = () => {\r\n setChangeStatus(false)\r\n formData.setFieldValue('newValue', formData.values['status'])\r\n }\r\n\r\n const handleAssignTeamLead = async e => {\r\n e.preventDefault()\r\n setLoading(true)\r\n\r\n let stuClass = student.studentClass.find(sl => sl.classId === Number(sessionHelper().classId))\r\n try {\r\n let res = await doPost(`student/updateTeamLead`, stuClass)\r\n if (res && res.data.success) {\r\n setLoading(false)\r\n setToast({ ...toast, open: true, message: res.data.message, type: 'success' })\r\n handleReload()\r\n setIsTeamLead(true)\r\n }\r\n } catch (err) {\r\n setToast({ ...toast, open: true, message: err.message, type: 'error' })\r\n }\r\n }\r\n\r\n const DialogTitleCustom = withStyles(styles)(props => {\r\n const { children, classes, ...other } = props\r\n\r\n // let isTeamLead = student?.studentClass?.find((sl) => sl.classId === Number(localStorage.classId))?.isTeamLead\r\n // Kiểm tra Đoàn sinh đã được phân đội chưa\r\n const isAssigned = student?.studentClass?.find(sl => sl.classId === Number(sessionHelper().classId))?.team !== 0\r\n\r\n return (\r\n \r\n {children}\r\n {pageCall === 'PDT-Student' && (\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n\r\n {Number(sessionHelper().classId) !== 0 && !isTeamLead && isAssigned ? (\r\n \r\n \r\n \r\n \r\n \r\n ) : null}\r\n \r\n )\r\n })\r\n\r\n const handleClickChangeGroup = () => {\r\n setChangeGroupModal({ ...changeGroupModal, openDialog: true, student: student, closeParent: false })\r\n }\r\n\r\n useEffect(() => {\r\n if (changeGroupModal.closeParent === true) {\r\n handleClose()\r\n }\r\n }, [changeGroupModal.closeParent])\r\n\r\n return loading ? (\r\n \r\n ) : (\r\n \r\n Thông tin Đoàn sinh\r\n \r\n \r\n {isTeamLead && (\r\n \r\n Đội trưởng\r\n \r\n )}\r\n \r\n {student?.status !== StudentStatus.InActive && (\r\n \r\n \r\n \r\n handleClickStatus(e, StudentStatus.Active)}>\r\n Đang học\r\n \r\n handleClickStatus(e, StudentStatus.ChangeChurch)}>\r\n Chuyển xứ\r\n \r\n handleClickStatus(e, StudentStatus.LeaveStudy)}>\r\n Nghỉ luôn\r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n\r\n \r\n \r\n \r\n \r\n (!isEdit ? undefined : formData.setFieldValue('isDisability', e.target.checked))}\r\n checked={formData.values['isDisability']}\r\n control={}\r\n label=\"Trường hợp đặc biệt\"\r\n labelPlacement=\"end\"\r\n />\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n Thông tin Đoàn sinh\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {!isEdit && (\r\n item.id === formData.values['stuHolyId'])?.name ?? get(formData.values, 'newHolyName') ?? ''}\r\n label=\"Tên Thánh\"\r\n InputLabelProps={{\r\n shrink: true\r\n }}\r\n variant=\"outlined\"\r\n fullWidth={true}\r\n type=\"text\"\r\n InputProps={{ readOnly: true }}\r\n />\r\n )}\r\n {isEdit && }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n if (isEdit) formData.setFieldValue('stuGender', e.target.checked)\r\n }}\r\n checked={formData.values['stuGender']}\r\n control={}\r\n label=\"Nam\"\r\n labelPlacement=\"end\"\r\n />\r\n {\r\n if (isEdit) formData.setFieldValue('stuGender', !e.target.checked)\r\n }}\r\n checked={!formData.values['stuGender']}\r\n control={}\r\n label=\"Nữ\"\r\n labelPlacement=\"end\"\r\n />\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n Thông tin Cha Mẹ Đoàn sinh\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {!isEdit && (\r\n item.id === get(formData.values, 'studentMoreInfo.stuFatherHolyId'))?.name ??\r\n get(formData.values, 'studentMoreInfo.newFatherHolyName') ??\r\n ''\r\n }\r\n label=\"Tên Thánh\"\r\n InputLabelProps={{\r\n shrink: true\r\n }}\r\n variant=\"outlined\"\r\n fullWidth={true}\r\n type=\"text\"\r\n InputProps={{ readOnly: true }}\r\n />\r\n )}\r\n {isEdit && }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {!isEdit && (\r\n item.id === get(formData.values, 'studentMoreInfo.stuMotherHolyId'))?.name ??\r\n get(formData.values, 'studentMoreInfo.newMotherHolyName') ??\r\n ''\r\n }\r\n label=\"Tên Thánh\"\r\n InputLabelProps={{\r\n shrink: true\r\n }}\r\n variant=\"outlined\"\r\n fullWidth={true}\r\n type=\"text\"\r\n InputProps={{ readOnly: true }}\r\n />\r\n )}\r\n {isEdit && }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {isEdit && }\r\n {!isEdit && (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n","import React, {useState} from 'react'\r\nimport {useRecoilState} from 'recoil'\r\nimport {\r\n Dialog,\r\n DialogActions,\r\n DialogContent,\r\n DialogTitle,\r\n Grid,\r\n TextField,\r\n Button,\r\n Divider,\r\n InputAdornment,\r\n ButtonGroup\r\n} from '@material-ui/core'\r\n\r\nimport ButtonLoading from 'components/UI/ButtonLoading'\r\nimport {doPost} from 'utils/axios'\r\nimport {toastState} from 'recoils/atoms'\r\nimport sessionHelper from 'utils/sessionHelper'\r\n// import { ReloadStudentList } from 'pages/HuynhTruong/ManageStudentScore/recoil'\r\n// import { ReloadGroupScore } from 'pages/PhanDoanTruong/ManageScoreGroup/recoil'\r\nimport {SemesterEnum} from 'app/enums'\r\n\r\nimport {ChooseFileDialogAtom} from './recoil'\r\n\r\nexport const ChooseFileDialog = () => {\r\n const [dialog, setDialog] = useRecoilState(ChooseFileDialogAtom)\r\n const [toast, setToast] = useRecoilState(toastState)\r\n\r\n // const setReloadScoreClass = useSetRecoilState(ReloadStudentList)\r\n // const setReloadScoreGroup = useSetRecoilState(ReloadGroupScore)\r\n\r\n const [loading, setLoading] = useState(false)\r\n const [file, setFile] = useState(undefined)\r\n const [semester, setSemester] = useState(301)\r\n\r\n const {openChooseFileDialog} = dialog\r\n\r\n const handleClose = () => {\r\n if (!loading) {\r\n setDialog({...dialog, openChooseFileDialog: false})\r\n setFile(undefined)\r\n setLoading(false)\r\n }\r\n }\r\n\r\n const handleUpload = async e => {\r\n e.preventDefault()\r\n setLoading(true)\r\n\r\n try {\r\n let fromData = new FormData()\r\n fromData.append('file', file[0])\r\n fromData.append('ScholasticId', sessionHelper().scholasticId)\r\n fromData.append('UserFullName', `${sessionHelper().firstName} ${sessionHelper().lastName}`)\r\n fromData.append('Semester', semester)\r\n // fromData.append('IsLeader', pageCall !== 'HT-StudentScore')\r\n fromData.append('GroupId', sessionHelper().groupId)\r\n\r\n const res = await doPost(`file/uploadScoreFile`, fromData)\r\n if (res && res.data.success) {\r\n handleClose()\r\n setToast({...toast, open: true, message: res.data.message, type: 'success'})\r\n // if (pageCall === 'HT-StudentScore') setReloadScoreClass(reload => reload + 1)\r\n // if (pageCall === 'PDT-StudentGroupScore') setReloadScoreGroup(reload => reload + 1)\r\n setTimeout(() => window.location.reload(), 1000)\r\n } else {\r\n setToast({...toast, open: true, message: res.data.message, type: 'error'})\r\n }\r\n } catch (err) {\r\n setToast({...toast, open: true, message: err.message, type: 'error'})\r\n } finally {\r\n setLoading(false)\r\n }\r\n }\r\n\r\n const onFileSelect = e => {\r\n let file = e.target.files\r\n setFile(file)\r\n }\r\n\r\n return (\r\n \r\n Nhập điểm từ file\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n }}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n","import React, {useState} from 'react'\r\nimport {useRecoilState, useRecoilValue, useSetRecoilState} from 'recoil'\r\nimport {Button, CardContent, Grid, TextField, MenuItem, Dialog, DialogContent} from '@material-ui/core'\r\nimport {useTheme} from '@material-ui/core/styles'\r\nimport useMediaQuery from '@material-ui/core/useMediaQuery'\r\nimport _ from 'lodash'\r\n\r\nimport VisibilityRoundedIcon from '@material-ui/icons/VisibilityRounded'\r\nimport GetAppRoundedIcon from '@material-ui/icons/GetAppRounded'\r\n\r\nimport {doDownload, doPost} from 'utils/axios'\r\nimport {TemplatesQuery} from 'recoils/selectors'\r\nimport {Editor} from '@tinymce/tinymce-react'\r\nimport {DocumentPreviewDialogAtom} from './recoil'\r\nimport {toastState, loadingState} from 'recoils/atoms'\r\nimport sessionHelper from 'utils/sessionHelper'\r\n// import {Roles} from 'app/enums'\r\n// import StringUtils from 'utils/StringUtils'\r\n\r\nexport const DocumentPreviewDialog = () => {\r\n const [templateId, setTemplateId] = useState('')\r\n const [document, setDocument] = useState('')\r\n const templates = useRecoilValue(TemplatesQuery)\r\n const [dialog, setDialog] = useRecoilState(DocumentPreviewDialogAtom)\r\n const setToast = useSetRecoilState(toastState)\r\n const setLoading = useSetRecoilState(loadingState)\r\n const theme = useTheme()\r\n const fullscreen = useMediaQuery(theme.breakpoints.down('md'))\r\n\r\n const {openPreviewDialog, studentId, templateType, studentClassId} = dialog\r\n\r\n const handleClose = e => {\r\n e.preventDefault()\r\n setDocument('')\r\n setTemplateId('')\r\n setDialog({...dialog, openPreviewDialog: false})\r\n }\r\n\r\n const handlePreview = async e => {\r\n e.preventDefault()\r\n setLoading(true)\r\n\r\n\r\n try {\r\n let data = {\r\n StudentId: [studentId],\r\n ClassId: studentClassId ?? sessionHelper().classId,\r\n ScholasticId: sessionHelper().scholasticId,\r\n UserId: sessionHelper().userId,\r\n TemplateId: templateId,\r\n IsPreview: true\r\n }\r\n\r\n let res = await doPost(`download/previewForm`, data)\r\n if (res && res.data.success) {\r\n setLoading(false)\r\n let {data} = res.data\r\n // setToast({ open: true, message: res.message, type: 'success' })\r\n setDocument(data)\r\n }\r\n } catch (err) {\r\n setLoading(false)\r\n setToast({open: true, message: err.message, type: 'error'})\r\n }\r\n }\r\n\r\n const handleDownload = async e => {\r\n e.preventDefault()\r\n setLoading(true)\r\n\r\n // let classId = null\r\n // const maxRoles = StringUtils.getMaxRole(sessionHelper().roles)\r\n // if (maxRoles !== Roles.BanDieuHanh) {\r\n // classId = sessionHelper().classId\r\n // }\r\n\r\n try {\r\n const data = {\r\n StudentId: [studentId],\r\n ClassId: studentClassId ?? sessionHelper().classId,\r\n ScholasticId: sessionHelper().scholasticId,\r\n UserId: sessionHelper().userId,\r\n TemplateId: templateId,\r\n IsPreview: false\r\n }\r\n\r\n await doDownload(`download/downloadForm`, data)\r\n setLoading(false)\r\n } catch (err) {\r\n setLoading(false)\r\n setToast({open: true, message: err.message, type: 'error'})\r\n }\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n setTemplateId(e.target.value)}>\r\n {_.uniqBy(templates, 'id')\r\n ?.filter(temp => temp.templateType === templateType)\r\n ?.map(item => (\r\n \r\n {item.name}\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n }\r\n onClick={handlePreview}\r\n style={{padding: 'auto 0'}}>\r\n Xem trước\r\n \r\n \r\n \r\n }\r\n onClick={handleDownload}\r\n style={{padding: 'auto 0'}}>\r\n Tải xuống\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n","import React, { useState } from 'react'\r\nimport { useRecoilState, useSetRecoilState } from 'recoil'\r\nimport { Dialog, DialogActions, DialogContent, DialogTitle, Grid, TextField, Button, Divider, InputAdornment } from '@material-ui/core'\r\n\r\nimport ButtonLoading from 'components/UI/ButtonLoading'\r\nimport { doPost } from 'utils/axios'\r\nimport { toastState } from 'recoils/atoms'\r\nimport sessionHelper from 'utils/sessionHelper'\r\nimport { ReloadStudentClass } from 'pages/HuynhTruong/ManageStudentClass/recoil'\r\nimport { ReloadStudentGroup } from 'pages/PhanDoanTruong/ManageStudentsGroup/recoil'\r\n\r\nimport { ChooseFileInfoDialogAtom } from './recoil'\r\n\r\nexport const ChooseInfoFileDialog = () => {\r\n const [dialog, setDialog] = useRecoilState(ChooseFileInfoDialogAtom)\r\n const [toast, setToast] = useRecoilState(toastState)\r\n\r\n const setReloadStudentClass = useSetRecoilState(ReloadStudentClass)\r\n const setReloadStudentGroup = useSetRecoilState(ReloadStudentGroup)\r\n\r\n const [loading, setLoading] = useState(false)\r\n const [file, setFile] = useState(undefined)\r\n\r\n const { openChooseFileDialog, pageCall } = dialog\r\n\r\n const handleClose = () => {\r\n if (!loading) {\r\n setDialog({ ...dialog, openChooseFileDialog: false })\r\n setFile(undefined)\r\n setLoading(false)\r\n }\r\n }\r\n\r\n const handleUpload = async e => {\r\n e.preventDefault()\r\n setLoading(true)\r\n\r\n const pageUploadStudentInfo = ['PDT-StudentGroup', 'HT-StudentClass']\r\n\r\n try {\r\n let fromData = new FormData()\r\n fromData.append('file', file[0])\r\n fromData.append('ScholasticId', sessionHelper().scholasticId)\r\n fromData.append('UserFullName', `${sessionHelper().fullName}`)\r\n fromData.append('UserId', sessionHelper().userId)\r\n fromData.append('ClassId', sessionHelper().classId)\r\n\r\n var res = pageUploadStudentInfo.includes(pageCall) ? await doPost(`file/uploadStudentInfoFile`, fromData) : await doPost(`file/addStudentFromFile`, fromData)\r\n if (res && res.data.success) {\r\n handleClose()\r\n setToast({ ...toast, open: true, message: res.data.message, type: 'success' })\r\n if (pageCall === 'HT-StudentClass' || pageCall === 'HT-AddNewStudentFromFile') setReloadStudentClass(reload => reload + 1)\r\n if (pageCall === 'PDT-StudentGroup' || pageCall === 'PDT-AddStudentGroup') setReloadStudentGroup(reload => reload + 1)\r\n } else {\r\n setToast({ ...toast, open: true, message: res.data.message, type: 'error' })\r\n }\r\n } catch (err) {\r\n setToast({ ...toast, open: true, message: err.message, type: 'error' })\r\n } finally {\r\n setLoading(false)\r\n }\r\n }\r\n\r\n const onFileSelect = e => {\r\n let file = e.target.files\r\n setFile(file)\r\n }\r\n\r\n return (\r\n \r\n Nhập Thông tin Đoàn sinh từ file\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n }}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n","import React, { useState } from 'react'\r\nimport { useRecoilState, useRecoilValue, useSetRecoilState } from 'recoil'\r\nimport { Dialog, DialogTitle, DialogContent, Typography, Button, DialogActions, Divider, Grid, TextField, MenuItem } from '@material-ui/core'\r\n\r\nimport Yup from 'utils/Yup'\r\nimport { useFormik } from 'formik'\r\nimport ButtonLoading from 'components/UI/ButtonLoading'\r\n\r\nimport { doPost } from 'utils/axios'\r\nimport StringUtils from 'utils/StringUtils'\r\nimport sessionHelper from 'utils/sessionHelper'\r\n\r\nimport { HolyNameQuery, BranchQuery } from 'recoils/selectors'\r\nimport { toastState } from 'recoils/atoms'\r\nimport { ReloadStudentGroup } from 'pages/PhanDoanTruong/ManageStudentsGroup/recoil'\r\n\r\nimport { ChangeGroupModalAtom } from './recoil'\r\n\r\nexport const ChangeGroupModal = () => {\r\n const lstHolyName = useRecoilValue(HolyNameQuery)\r\n const lstBranch = useRecoilValue(BranchQuery)\r\n\r\n const setReloadGroup = useSetRecoilState(ReloadStudentGroup)\r\n\r\n const [dialog, setDialog] = useRecoilState(ChangeGroupModalAtom)\r\n const [toast, setToast] = useRecoilState(toastState)\r\n\r\n const [loading, setLoading] = useState(false)\r\n const { openDialog, student } = dialog\r\n\r\n const currentGroupId = student?.studentClass[student?.studentClass?.length - 1]?.class?.groupId\r\n\r\n const validationSchema = Yup.object({\r\n studentId: Yup.string().required('Không để trống'),\r\n newGroupId: Yup.string().required('Không để trống'),\r\n note: Yup.string().required('Không để trống')\r\n })\r\n\r\n const changeForm = useFormik({\r\n initialValues: { studentId: student?.id },\r\n validationSchema,\r\n validateOnChange: true,\r\n validateOnMount: true,\r\n enableReinitialize: true,\r\n initialErrors: { newGroupId: 'Required' }\r\n })\r\n\r\n const TextField_Props = (name, label) => {\r\n const { values, errors, touched, handleChange } = changeForm\r\n return {\r\n name,\r\n label,\r\n fullWidth: true,\r\n variant: 'outlined',\r\n error: errors[name] && touched[name],\r\n helperText: errors[name] && touched[name] && errors[name],\r\n InputLabelProps: { shrink: true },\r\n value: values[name] ?? '',\r\n onChange: handleChange\r\n }\r\n }\r\n\r\n const handleClose = (close = false) => {\r\n setDialog({ ...dialog, openDialog: false, student: undefined, closeParent: close })\r\n }\r\n\r\n const onChangeBranch = e => {\r\n e.preventDefault()\r\n changeForm.setFieldValue('stuBranchId', e.target.value)\r\n\r\n const tmp = lstBranch.find(g => g.branchId === e.target.value).group\r\n const filter = tmp.filter(t => t.groupId !== currentGroupId)\r\n\r\n changeForm.setFieldValue('newGroupId', filter.length > 0 ? filter[0].groupId : undefined)\r\n }\r\n\r\n const handleChangeGroup = async () => {\r\n setLoading(true)\r\n const { scholasticId, userId, classId } = sessionHelper()\r\n\r\n const data = {\r\n ...changeForm.values,\r\n scholasticId,\r\n userId,\r\n currentGroupId,\r\n classId\r\n }\r\n\r\n try {\r\n let res = await doPost(`student/changeStudentGroup`, data)\r\n if (res && res.data.success) {\r\n setToast({ ...toast, open: true, message: res.data.message, type: 'success' })\r\n handleClose(true)\r\n setReloadGroup(old => old + 1)\r\n }\r\n } catch (err) {\r\n setToast({ ...toast, open: true, message: err.message, type: 'error' })\r\n } finally {\r\n setLoading(false)\r\n }\r\n }\r\n\r\n return (\r\n \r\n Chuyển Phân đoàn\r\n \r\n \r\n
\r\n Bạn đang thực hiện chuyển Phân Đoàn cho Đoàn sinh\r\n
\r\n \r\n {StringUtils.holyNameLookup(lstHolyName, student?.stuHolyId)} {student?.stuFirstName} {student?.stuLastName}\r\n \r\n
\r\n \r\n \r\n \r\n {lstBranch\r\n ?.filter(b => b.branchId !== 'NON')\r\n .map((branch, i) => (\r\n \r\n {branch.branchName}\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n {lstBranch\r\n ?.find(g => g.branchId === changeForm.values['stuBranchId'])\r\n ?.group.filter(t => t.groupId !== currentGroupId)\r\n .map((group, i) => (\r\n \r\n {group.groupName}\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n SAU KHI CHUYỂN THÔNG TIN ĐOÀN SINH SẼ KHÔNG CÒN TRONG PHÂN ĐOÀN!\r\n \r\n \r\n BẠN CÓ CHẮC CHẮN CHƯA?\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n )\r\n}\r\n","import { CardContent, Dialog, DialogContent, DialogTitle, Typography, DialogActions, Button, Grid, TextField, Divider } from '@material-ui/core'\r\nimport React from 'react'\r\nimport { useRecoilState, useSetRecoilState } from 'recoil'\r\nimport useMediaQuery from '@material-ui/core/useMediaQuery'\r\nimport { useTheme } from '@material-ui/core/styles'\r\nimport { useFormik } from 'formik'\r\nimport Yup from 'utils/Yup'\r\n\r\nimport { doPost } from 'utils/axios'\r\nimport sessionHelper from 'utils/sessionHelper'\r\nimport { toastState, loadingState, ShowChangePassword } from 'recoils/atoms'\r\n\r\nexport const ChangePasswordDialog = () => {\r\n const theme = useTheme()\r\n const fullScreen = useMediaQuery(theme.breakpoints.down('sm'))\r\n const setLoading = useSetRecoilState(loadingState)\r\n const [toast, setToast] = useRecoilState(toastState)\r\n\r\n let [open, setOpen] = useRecoilState(ShowChangePassword)\r\n\r\n const useFormValidationFrom = Yup.object({\r\n CurrentPassword: Yup.string().required('Không được bỏ trống.').max(255),\r\n NewPassword: Yup.string()\r\n .required('Không được bỏ trống.')\r\n .matches(/^(?=.*[\\d])(?=.*[A-Z])(?=.*[a-z])[\\w!@#$%^&*]{8,32}$/, 'Mật khẩu không đúng định dạng.')\r\n .max(255),\r\n ConfirmPass: Yup.string()\r\n .oneOf([Yup.ref('NewPassword')], 'Phải giống mật khẩu mới.')\r\n .required('Không được bỏ trống.')\r\n .max(255)\r\n })\r\n\r\n const formData = useFormik({\r\n initialValues: {},\r\n validationSchema: useFormValidationFrom,\r\n validateOnChange: true,\r\n validateOnMount: true,\r\n enableReinitialize: true,\r\n initialErrors: { CurrentPassword: 'Required' }\r\n })\r\n\r\n const TextField_Props = (name, label = name, isRequired = false, placeholder = '', maxLength = 255) => {\r\n const { values, errors, touched, handleBlur, handleChange } = formData\r\n return {\r\n name,\r\n label,\r\n fullWidth: true,\r\n variant: 'outlined',\r\n error: errors[name] && touched[name],\r\n helperText: errors[name] && touched[name] && errors[name],\r\n InputLabelProps: { shrink: true },\r\n value: values[name],\r\n onBlur: handleBlur,\r\n onChange: handleChange,\r\n required: isRequired,\r\n inputProps: {\r\n maxLength: maxLength\r\n },\r\n placeholder: placeholder\r\n }\r\n }\r\n\r\n const handleCloseDialog = () => {\r\n setOpen(false)\r\n formData.resetForm({ values: {} })\r\n }\r\n\r\n const handleChangePass = async e => {\r\n e.preventDefault()\r\n\r\n setLoading(true)\r\n const oldPassword = formData.values['CurrentPassword']\r\n const newPassword = formData.values['NewPassword']\r\n\r\n try {\r\n const res = await doPost(`user/resetPassword`, { userId: sessionHelper().userId, oldPassword, newPassword })\r\n if (res && res.data.success) {\r\n setToast({ ...toast, open: true, message: res.data.message, type: 'success' })\r\n handleCloseDialog()\r\n } else {\r\n setToast({ ...toast, open: true, message: res.data.message, type: 'error' })\r\n }\r\n } catch (err) {\r\n setToast({ ...toast, open: true, message: err.message, type: 'error' })\r\n } finally {\r\n setLoading(false)\r\n }\r\n }\r\n\r\n return (\r\n \r\n Thay đổi mật khẩu\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n - Mật khẩu từ 8-32 ký tự.\r\n \r\n \r\n - Mật khẩu phải chứa ký tự in hoa, in thường và phải có ít nhất 1 số.\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n","import React, { useState } from 'react'\r\nimport { Button, Dialog, DialogActions, DialogContent, DialogTitle, Divider, Grid, Typography } from '@material-ui/core'\r\nimport { useRecoilState, useRecoilValue } from 'recoil'\r\n\r\nimport ButtonLoading from 'components/UI/ButtonLoading'\r\nimport { UnionQuery } from 'recoils/selectors'\r\nimport sessionHelper from 'utils/sessionHelper'\r\n\r\nimport { GroupScoreResultDialogAtom } from './recoil'\r\nimport { doDownload } from 'utils/axios'\r\n\r\nexport const GroupScoreResultDialog = () => {\r\n const [loading, setLoading] = useState(false)\r\n const [unionIds, setUnionIds] = useState([])\r\n\r\n const [dialog, setDialog] = useRecoilState(GroupScoreResultDialogAtom)\r\n\r\n const lstUnion = useRecoilValue(UnionQuery)\r\n\r\n const { open, templateId, title } = dialog\r\n\r\n function handleClose() {\r\n setUnionIds([])\r\n setDialog({ ...dialog, open: false })\r\n }\r\n\r\n async function handleDownload() {\r\n setLoading(true)\r\n const { scholasticId, userId, classId } = sessionHelper()\r\n\r\n const params = {\r\n IsGetGroupResult: true,\r\n TemplateId: templateId,\r\n ScholasticId: scholasticId,\r\n UserId: userId,\r\n UnionIds: unionIds,\r\n ClassId: classId\r\n }\r\n\r\n try {\r\n await doDownload('download/downloadResultForm', params)\r\n setLoading(false)\r\n } catch (err) {\r\n setLoading(false)\r\n } finally {\r\n handleClose()\r\n }\r\n }\r\n\r\n function handleChooseUnion(unionId) {\r\n if (unionIds.includes(unionId)) {\r\n setUnionIds(unionIds.filter(id => id !== unionId))\r\n } else {\r\n setUnionIds([...unionIds, unionId])\r\n }\r\n }\r\n\r\n return (\r\n \r\n Tải phiếu điểm Phân đoàn - {title}\r\n \r\n \r\n Chọn chi đoàn\r\n
\r\n\r\n \r\n {lstUnion.map(union => (\r\n handleChooseUnion(union.unionId)}>\r\n \r\n Chi đoàn {union.unionCode}\r\n \r\n \r\n ))}\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n )\r\n}\r\n","import React, { useEffect } from 'react'\r\nimport { Dialog, DialogTitle, Divider, DialogContent, DialogActions, Button, Grid, Avatar, IconButton } from '@material-ui/core'\r\nimport { useRecoilState, useRecoilValue, useSetRecoilState } from 'recoil'\r\nimport { TeacherInfoDialogAtom } from './recoil'\r\nimport { useTheme } from '@material-ui/core/styles'\r\nimport useMediaQuery from '@material-ui/core/useMediaQuery'\r\nimport { UserImageSelector } from 'recoils/selectors'\r\nimport { UserStatus } from 'app/enums'\r\nimport { UserImageAtom } from 'recoils/atoms'\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\nimport { faPhoneAlt } from '@fortawesome/free-solid-svg-icons'\r\n\r\nexport const TeacherInfoDialog = () => {\r\n const theme = useTheme()\r\n const fullScreen = useMediaQuery(theme.breakpoints.down('sm'))\r\n\r\n const [infoDialog, setInfoDialog] = useRecoilState(TeacherInfoDialogAtom)\r\n const { open, info } = infoDialog\r\n\r\n const setUserInfo = useSetRecoilState(UserImageAtom)\r\n\r\n const avatar = useRecoilValue(UserImageSelector)\r\n\r\n useEffect(() => {\r\n if (info) {\r\n setUserInfo(info)\r\n }\r\n }, [info, setUserInfo])\r\n\r\n const handleCloseDialog = () => {\r\n setInfoDialog({ ...infoDialog, open: false, info: undefined })\r\n }\r\n\r\n const handleClickCall = phoneNo => {\r\n if (phoneNo) {\r\n window.open(`tel:+84${phoneNo}`)\r\n }\r\n }\r\n\r\n return (\r\n \r\n Thông tin Huynh Trưởng\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n {`${info?.firstName?.substring(0, 1)}${info?.lastName?.substring(0, 1)}`}\r\n \r\n
\r\n
\r\n {info?.status === UserStatus.Active && Đang dạy}\r\n {info?.status === UserStatus.Absent && Đã nghỉ}\r\n {info?.status === UserStatus.Deleted && Đã xóa}\r\n {info?.status === UserStatus.NewUser && Tài khoản mới}\r\n
\r\n

{info?.fullName}

\r\n

\r\n {info?.roles.reduce((result, item) => {\r\n return `${result} ${item.name}`\r\n }, '')}\r\n

\r\n

{info?.email}

\r\n
\r\n
\r\n \r\n \r\n handleClickCall(info?.phone)}>\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n )\r\n}\r\n","import { Button, Dialog, DialogActions, DialogContent, DialogTitle, Divider, Grid, MenuItem, TextField, Typography } from '@material-ui/core'\r\nimport { useRecoilState, useRecoilValue } from 'recoil'\r\nimport { BranchQuery, HolyNameQuery, UnionRegisterQuery } from 'recoils/selectors'\r\nimport { StudyComebackDialogAtom } from './recoil'\r\nimport { GroupIdSelected, toastState } from 'recoils/atoms'\r\nimport React, { useState } from 'react'\r\nimport StringUtils from 'utils/StringUtils'\r\nimport Yup from 'utils/Yup'\r\nimport { useFormik } from 'formik'\r\nimport { get } from 'lodash'\r\nimport ButtonLoading from '../UI/ButtonLoading'\r\nimport sessionHelper from 'utils/sessionHelper'\r\nimport { doPost } from 'utils/axios'\r\n\r\nexport const StudyComebackDialog = () => {\r\n const [groupId, setGroupId] = useRecoilState(GroupIdSelected)\r\n const [dialog, setDialog] = useRecoilState(StudyComebackDialogAtom)\r\n const [toast, setToast] = useRecoilState(toastState)\r\n\r\n const [loading, setLoading] = useState(false)\r\n const { open, student } = dialog\r\n\r\n const lstHolyName = useRecoilValue(HolyNameQuery)\r\n const lstBranch = useRecoilValue(BranchQuery)\r\n const lstUnion = useRecoilValue(UnionRegisterQuery(groupId))\r\n\r\n const validationSchema = Yup.object({\r\n studentId: Yup.string().required('Không để trống'),\r\n groupId: Yup.string().required('Không để trống'),\r\n note: Yup.string().required('Không để trống')\r\n })\r\n\r\n const comebackForm = useFormik({\r\n initialValues: { studentId: student?.id },\r\n validationSchema,\r\n validateOnChange: true,\r\n validateOnMount: true,\r\n enableReinitialize: true,\r\n initialErrors: { newGroupId: 'Required' }\r\n })\r\n\r\n const TextField_Props = (name, label) => {\r\n const { values, errors, touched, handleChange } = comebackForm\r\n return {\r\n name,\r\n label,\r\n fullWidth: true,\r\n variant: 'outlined',\r\n error: errors[name] && touched[name],\r\n helperText: errors[name] && touched[name] && errors[name],\r\n InputLabelProps: { shrink: true },\r\n value: values[name] ?? '',\r\n onChange: handleChange\r\n }\r\n }\r\n\r\n const handleClose = () => {\r\n comebackForm.resetForm()\r\n setDialog({ ...dialog, open: false, student: null })\r\n }\r\n\r\n const onChangeGroup = e => {\r\n const selectedVal = e.target.value\r\n if (selectedVal) {\r\n comebackForm.setFieldValue('groupId', selectedVal)\r\n setGroupId(selectedVal)\r\n }\r\n }\r\n\r\n const handleStudyComeback = async () => {\r\n setLoading(true)\r\n const { scholasticId, userId } = sessionHelper()\r\n\r\n const data = {\r\n ...comebackForm.values,\r\n scholasticId,\r\n userId\r\n }\r\n\r\n try {\r\n let res = await doPost(`student/study-comeback`, data)\r\n if (res && res.data.success) {\r\n setToast({ ...toast, open: true, message: res.data.message, type: 'success' })\r\n handleClose(true)\r\n } else {\r\n setToast({ ...toast, open: true, message: res.data.message, type: 'error' })\r\n }\r\n } catch (err) {\r\n setToast({ ...toast, open: true, message: err.message, type: 'error' })\r\n } finally {\r\n setLoading(false)\r\n }\r\n }\r\n\r\n return (\r\n \r\n Đoàn sinh quay lại học\r\n \r\n \r\n
\r\n \r\n {StringUtils.holyNameLookup(lstHolyName, student?.stuHolyId)} {student?.stuFirstName} {student?.stuLastName}\r\n \r\n
\r\n \r\n \r\n \r\n {lstBranch\r\n ?.filter(b => b.branchId !== 'NON')\r\n ?.map((branch, i) => (\r\n \r\n {branch.branchName}\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n {lstBranch\r\n ?.find(g => g.branchId === comebackForm.values['branchId'])\r\n ?.group?.map((group, i) => (\r\n \r\n {group.groupName}\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n {lstUnion?.map(union => (\r\n \r\n {union.unionCode}\r\n \r\n ))}\r\n \r\n \r\n\r\n \r\n \r\n {Array.from(Array(lstUnion.find(u => Number(u.unionId) === Number(get(comebackForm.values, 'unionId')))?.totalTeam).keys()).map(team => (\r\n \r\n {team + 1}\r\n \r\n ))}\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n
\r\n \r\n CHỈ ÁP DỤNG CHO ĐOÀN SINH ĐÃ NGHỈ HỌC TỪ 1 NĂM TRỞ LÊN\r\n \r\n \r\n NẾU ĐANG HỌC TRONG NĂM HỌC NÀY XIN CHỌN CHỨC NĂNG\r\n \r\n \r\n THAY ĐỔI TÌNH TRẠNG ĐOÀN SINH | CHUYỂN PHÂN ĐOÀN\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n )\r\n}\r\n\r\nexport default StudyComebackDialog\r\n","import { Button, Dialog, DialogActions, DialogContent, DialogTitle, Divider, Grid, Typography } from '@material-ui/core'\r\nimport React from 'react'\r\nimport { useRecoilState } from 'recoil'\r\nimport { NewPhoneCallDialogAtom } from './recoil'\r\n\r\nexport const PhoneCallDialog = () => {\r\n const [phoneDialog, setPhoneDialog] = useRecoilState(NewPhoneCallDialogAtom)\r\n const { open, fatherPhone, motherPhone } = phoneDialog\r\n\r\n const handleClose = () => {\r\n setPhoneDialog({ ...phoneDialog, open: false, fatherPhone: undefined, motherPhone: undefined })\r\n }\r\n\r\n const handleCall = phoneNo => {\r\n if (phoneNo) window.open(`tel:${phoneNo}`)\r\n handleClose()\r\n }\r\n\r\n return (\r\n \r\n Gọi điện thoại\r\n \r\n \r\n
\r\n \r\n GỌI ĐIỆN THOẠI CHO PHỤ HUYNH\r\n \r\n
\r\n \r\n {fatherPhone && (\r\n \r\n

SĐT của cha

\r\n \r\n
\r\n )}\r\n {motherPhone && (\r\n \r\n

SĐT của mẹ

\r\n \r\n
\r\n )}\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n )\r\n}\r\n","import { atom, selector } from 'recoil'\r\nimport _ from 'lodash'\r\nimport { doGet } from 'utils/axios'\r\n\r\nexport const SearchKeyword = atom({\r\n key: 'SearchKeyword',\r\n default: ''\r\n})\r\n\r\nexport const SearchStudentId = atom({\r\n key: 'SearchStudentId',\r\n default: undefined\r\n})\r\n\r\nexport const ReloadStuSearch = atom({\r\n key: 'ReloadStuSearch',\r\n default: 0\r\n})\r\n\r\nexport const StudentStatusAtom = atom({\r\n key: 'StudentStatus',\r\n default: undefined\r\n})\r\n\r\nexport const StudentSearchList = selector({\r\n key: 'StudentSearchList',\r\n get: async ({ get }) => {\r\n get(ReloadStuSearch)\r\n const searchKey = get(SearchKeyword)\r\n try {\r\n const res = await doGet(`student/findStudent`, { keywords: searchKey })\r\n if (res && res.data.success) {\r\n if (res.data.data) return _.orderBy(res.data.data, ['stuLastName', 'stuFirstName'], ['asc'])\r\n else return null\r\n }\r\n } catch (err) {\r\n return null\r\n }\r\n }\r\n})\r\n\r\nexport const GetStudentDetails = selector({\r\n key: 'GetStudentDetails',\r\n get: async ({ get }) => {\r\n const studentId = get(SearchStudentId)\r\n if (studentId) {\r\n try {\r\n const res = await doGet('student/getStudentDetails', { studentId })\r\n\r\n if (res && res.data.success) {\r\n return res.data.data\r\n }\r\n } catch (err) {\r\n return null\r\n }\r\n }\r\n return null\r\n }\r\n})\r\n\r\nexport const ShowStudent = atom({\r\n key: 'ShowStudent',\r\n default: null\r\n})\r\n","import React, { useState } from 'react'\r\n\r\nimport { Button, DialogActions, DialogContent, DialogTitle, Grid, Dialog, ButtonGroup } from '@material-ui/core'\r\nimport { useTheme } from '@material-ui/core/styles'\r\nimport useMediaQuery from '@material-ui/core/useMediaQuery'\r\n\r\nimport { useRecoilState, useSetRecoilState } from 'recoil'\r\n\r\nimport { useFormik } from 'formik'\r\n\r\nimport { toastState } from 'recoils/atoms'\r\n\r\nimport Yup from 'utils/Yup'\r\nimport { doPost } from 'utils/axios'\r\nimport sessionHelper from 'utils/sessionHelper'\r\nimport { ShortTextField } from 'components/Controls'\r\nimport { StudentStatus } from 'app/enums'\r\n\r\nimport { ChangeStudentStatusDialogAtom } from './recoil'\r\nimport ButtonLoading from '../UI/ButtonLoading'\r\nimport { StudentStatusAtom } from 'pages/Students/FindStudent/recoil'\r\n\r\nexport const ChangeStudentStatusDialog = () => {\r\n const [dialog, setDialog] = useRecoilState(ChangeStudentStatusDialogAtom)\r\n const [toast, setToast] = useRecoilState(toastState)\r\n\r\n const setAvatarStatus = useSetRecoilState(StudentStatusAtom)\r\n\r\n const [loading, setLoading] = useState(false)\r\n\r\n const theme = useTheme()\r\n const fullscreen = useMediaQuery(theme.breakpoints.down('md'))\r\n\r\n const { open, student, latestStatus } = dialog\r\n\r\n const validationSchema = Yup.object().shape({\r\n newStatus: Yup.number().required(),\r\n reason: Yup.string().max(250, 'Không nhập nhiều hơn 250 ký tự.').required('Không được bỏ trống')\r\n })\r\n\r\n const changeStatusForm = useFormik({\r\n initialValues: { ...student, newStatus: latestStatus },\r\n validationSchema,\r\n validateOnChange: true,\r\n validateOnMount: true,\r\n enableReinitialize: true\r\n })\r\n\r\n const handleChangeStatus = (e, newValue) => {\r\n e.preventDefault()\r\n const currentNewStatus = changeStatusForm.values['newStatus'] ?? changeStatusForm.values['status']\r\n\r\n if (currentNewStatus !== StudentStatus.InActive && currentNewStatus !== StudentStatus.Deleted) {\r\n if (latestStatus) {\r\n /// Trường họp có latestStatus\r\n newValue !== latestStatus ? changeStatusForm.setFieldValue('newStatus', newValue) : changeStatusForm.setFieldValue('newStatus', latestStatus)\r\n }\r\n if (!latestStatus) {\r\n newValue !== changeStatusForm.values['status']\r\n ? changeStatusForm.setFieldValue('newStatus', newValue)\r\n : changeStatusForm.setFieldValue('newStatus', changeStatusForm.values['status'])\r\n }\r\n }\r\n }\r\n\r\n const handleClose = () => {\r\n const newStatus = changeStatusForm.values['newStatus']\r\n changeStatusForm.resetForm()\r\n setDialog({ ...dialog, open: false, student: undefined, latestStatus: newStatus })\r\n }\r\n\r\n const handleSave = async e => {\r\n e.preventDefault()\r\n setLoading(true)\r\n\r\n const data = {\r\n userId: sessionHelper().userId,\r\n studentId: changeStatusForm.values['id'],\r\n oldValue: changeStatusForm.values['status'],\r\n newValue: changeStatusForm.values['newStatus'],\r\n note: changeStatusForm.values['newStatus'] === StudentStatus.Active ? null : changeStatusForm.values['reason'],\r\n scholasticId: sessionHelper().scholasticId\r\n }\r\n\r\n try {\r\n const res = await doPost(`student/updateStudentStatus`, data)\r\n if (res && res.data.success) {\r\n setToast({ ...toast, open: true, message: res.data.message, type: 'success' })\r\n setAvatarStatus(changeStatusForm.values['newStatus'])\r\n } else {\r\n setToast({ ...toast, open: true, message: res.data.message, type: 'error' })\r\n }\r\n\r\n handleClose()\r\n } catch (err) {\r\n setToast({ ...toast, open: true, message: err.message, type: 'error' })\r\n } finally {\r\n setLoading(false)\r\n }\r\n }\r\n\r\n const checkFormValid = () => {\r\n return !(\r\n changeStatusForm.isValid &&\r\n ((latestStatus && Number(changeStatusForm.values['newStatus']) !== Number(latestStatus)) ||\r\n (!latestStatus && Number(changeStatusForm.values['newStatus']) !== Number(changeStatusForm.values['status'])))\r\n )\r\n }\r\n\r\n const isStatusChanged = () => {\r\n if (latestStatus && changeStatusForm.values['newStatus'] !== latestStatus) {\r\n return true\r\n }\r\n if (!latestStatus && changeStatusForm.values['newStatus'] && changeStatusForm.values['newStatus'] !== changeStatusForm.values['status']) {\r\n return true\r\n }\r\n return false\r\n }\r\n\r\n return (\r\n \r\n Thay đổi trạng thái đoàn sinh\r\n \r\n \r\n \r\n \r\n handleChangeStatus(e, StudentStatus.Active)}>\r\n Đang học\r\n \r\n handleChangeStatus(e, StudentStatus.ChangeChurch)}>\r\n Chuyển xứ\r\n \r\n handleChangeStatus(e, StudentStatus.LeaveStudy)}>\r\n Nghỉ luôn\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n","import React, { Fragment } from 'react'\r\nimport { useRecoilValue, useSetRecoilState } from 'recoil'\r\n\r\nimport clsx from 'clsx'\r\nimport { Link } from 'react-router-dom'\r\n\r\nimport { Hidden, IconButton, AppBar, Box, Tooltip } from '@material-ui/core'\r\n\r\nimport projectLogo from 'assets/images/app-logo.png'\r\n\r\nimport HeaderLogo from '../../layout-components/HeaderLogo'\r\n// import HeaderDots from '../../layout-components/HeaderDots'\r\n// import HeaderDrawer from '../../layout-components/HeaderDrawer'\r\nimport HeaderUserBox from '../HeaderUserbox'\r\nimport HeaderSearch from '../../layout-components/HeaderSearch'\r\nimport HeaderNotification from '../HeaderNotification'\r\n// import HeaderMenu from '../../layout-components/HeaderMenu'\r\n\r\nimport MenuOpenRoundedIcon from '@material-ui/icons/MenuOpenRounded'\r\nimport MenuRoundedIcon from '@material-ui/icons/MenuRounded'\r\n\r\nimport { themeOptionsState } from 'recoils/atoms'\r\nimport { themeOptionsActions } from 'recoils/selectors'\r\nimport { ChangePasswordDialog } from 'components/Dialog'\r\n\r\nconst Header = props => {\r\n const setThemeOptions = useSetRecoilState(themeOptionsActions)\r\n const { headerShadow, headerFixed, sidebarToggleMobile, sidebarToggle } = useRecoilValue(themeOptionsState)\r\n\r\n const toggleSidebar = () => {\r\n setThemeOptions({ name: 'sidebarToggle', value: !sidebarToggle })\r\n }\r\n\r\n const toggleSidebarMobile = () => {\r\n setThemeOptions({ name: 'sidebarToggleMobile', value: !sidebarToggleMobile })\r\n }\r\n\r\n // const setLayoutStyle = () => {\r\n // setThemeOptions({ name: 'layoutStyle', value: layoutStyle === 1 ? 2 : 1 })\r\n // }\r\n return (\r\n \r\n \r\n {!props.isCollapsedLayout && }\r\n \r\n \r\n \r\n \r\n \r\n \"Carolina\r\n \r\n \r\n \r\n TNTT Gx.Thạch Đà\r\n \r\n \r\n \r\n \r\n \r\n {!props.isCollapsedLayout && (\r\n \r\n \r\n \r\n {sidebarToggle ? : }\r\n \r\n \r\n \r\n )}\r\n {/* */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* */}\r\n \r\n \r\n \r\n \r\n \r\n {/* */}\r\n \r\n \r\n \r\n {sidebarToggleMobile ? : }\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n )\r\n}\r\n\r\nexport default Header\r\n","import React, { Fragment } from 'react'\r\n\r\nimport PerfectScrollbar from 'react-perfect-scrollbar'\r\nimport { Grid, Hidden, Drawer, IconButton, Box, Checkbox, Badge, Button, List, ListItem, Tooltip, Divider } from '@material-ui/core'\r\n\r\nimport avatar1 from 'assets/images/avatars/avatar1.jpg'\r\nimport avatar2 from 'assets/images/avatars/avatar2.jpg'\r\nimport avatar6 from 'assets/images/avatars/avatar6.jpg'\r\nimport avatar7 from 'assets/images/avatars/avatar7.jpg'\r\n\r\nimport MenuOpenRoundedIcon from '@material-ui/icons/MenuOpenRounded'\r\n\r\nimport ListIcon from '@material-ui/icons/List'\r\n\r\n// import CountUp from 'react-countup'\r\n\r\nfunction HeaderDrawer() {\r\n // const chart36Options = {\r\n // chart: {\r\n // toolbar: {\r\n // show: false\r\n // },\r\n // sparkline: {\r\n // enabled: true\r\n // }\r\n // },\r\n\r\n // stroke: {\r\n // color: '#1bc943',\r\n // curve: 'smooth',\r\n // width: 4\r\n // },\r\n // colors: ['#1bc943'],\r\n // fill: {\r\n // color: '1bc943',\r\n // gradient: {\r\n // shade: 'light',\r\n // type: 'vertical',\r\n // shadeIntensity: 0.7,\r\n // inverseColors: true,\r\n // opacityFrom: 1,\r\n // opacityTo: 0,\r\n // stops: [0, 100]\r\n // }\r\n // },\r\n // xaxis: {\r\n // crosshairs: {\r\n // width: 1\r\n // }\r\n // },\r\n // yaxis: {\r\n // min: 0\r\n // }\r\n // }\r\n // const chart36Data = [\r\n // {\r\n // name: 'Monthly Analytics',\r\n // data: [47, 38, 56, 24, 45, 54, 38, 56, 24, 65]\r\n // }\r\n // ]\r\n\r\n const [open, setOpen] = React.useState(false)\r\n\r\n function handleDrawerClose() {\r\n setOpen(true)\r\n }\r\n\r\n function handleDrawerOpen() {\r\n setOpen(false)\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {open ? : }\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
Today's sales target
\r\n

Daily statistics regarding your sales targets

\r\n
\r\n
\r\n
\r\n {/* */}\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n

\r\n ${/* */}\r\n

\r\n\r\n \r\n \r\n Current month\r\n
\r\n \r\n $\r\n 46,362\r\n \r\n \r\n -8%\r\n \r\n
\r\n
\r\n \r\n Last year\r\n
\r\n \r\n $\r\n 34,546\r\n \r\n \r\n +13%\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
Tasks
\r\n

Your daily tasks list

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n Finish tasks for today\r\n

But I must explain to you how all this mistaken idea.

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n Blinded by desire\r\n

A wonderful serenity has taken possession.

\r\n
\r\n
\r\n
\r\n
\r\n

1998

\r\n

Bill Clinton's presidential scandal makes it online.

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Java exam day

\r\n

Bill Clinton's presidential scandal makes it online.

\r\n
\r\n
\r\n
\r\n \"...\"\r\n
\r\n
\r\n
\r\n
\r\n \"...\"\r\n
\r\n
\r\n
\r\n
\r\n \"...\"\r\n
\r\n
\r\n
\r\n
\r\n \"...\"\r\n
\r\n
\r\n
\r\n
\r\n \"...\"\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

\r\n Business investor meeting\r\n New\r\n

\r\n

Mosaic, the first graphical browser, is introduced to the average consumer.

\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n World among the stalks\r\n

Who formed us in his own image, and the breath.

\r\n \r\n \r\n
\r\n
\r\n Nov 12, 11:25am\r\n Due in 12 days\r\n
\r\n
\r\n e.preventDefault()}>\r\n #56 - Deploy new website\r\n \r\n
\r\n

This is a dummy text acting ...

\r\n
\r\n \r\n Files ready\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n (21)\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
Latest sales
\r\n

Latest reports available

\r\n
\r\n \r\n \r\n
\r\n
\r\n
436
\r\n
\r\n
\r\n +65% increase\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
843
\r\n
\r\n
\r\n -22% decrease\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default HeaderDrawer\r\n","import React, { Fragment } from 'react'\r\n\r\nimport { Link } from 'react-router-dom'\r\n\r\nimport { Grid, Box, Typography, Popover, Menu, Button, List, ListItem, Divider } from '@material-ui/core'\r\n\r\nimport { Settings, Briefcase, Users, Layers } from 'react-feather'\r\n\r\nconst HeaderMenu = () => {\r\n const [anchorEl, setAnchorEl] = React.useState(null)\r\n\r\n const handleClick = event => {\r\n setAnchorEl(event.currentTarget)\r\n }\r\n\r\n const handleClose = () => {\r\n setAnchorEl(null)\r\n }\r\n\r\n const open = Boolean(anchorEl)\r\n const id = open ? 'mega-menu-popover' : undefined\r\n\r\n const [anchorElMenu, setAnchorElMenu] = React.useState(null)\r\n\r\n const handleClickMenu = event => {\r\n setAnchorElMenu(event.currentTarget)\r\n }\r\n\r\n const handleCloseMenu = () => {\r\n setAnchorElMenu(null)\r\n }\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n \r\n \r\n Dashboards\r\n \r\n \r\n
\r\n Analytics\r\n
\r\n \r\n
\r\n Reports\r\n
\r\n \r\n
\r\n Real Estate\r\n
\r\n \r\n
\r\n Server Stats\r\n
8
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n \r\n \r\n Applications\r\n \r\n \r\n
\r\n Calendar\r\n
\r\n \r\n
\r\n Chat\r\n
\r\n \r\n
\r\n Contacts\r\n
\r\n \r\n
\r\n File Manager\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n Components\r\n \r\n \r\n
\r\n Cards examples\r\n
\r\n \r\n
\r\n Tables\r\n
New
\r\n
\r\n \r\n
\r\n Form wizards\r\n
\r\n \r\n
\r\n Pricing tables\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n\r\n \r\n \r\n \r\n
\r\n
Dashboards
\r\n

\r\n There are currently 12 dashboard layouts available!\r\n

\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
Projects
\r\n
Dashboard 9
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
Helpdesk
\r\n
Dashboard 4
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
CRM UI
\r\n
Dashboard 6
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
Customers
\r\n
Dashboard 12
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n )\r\n}\r\n\r\nexport default HeaderMenu\r\n","import React, { Fragment } from 'react'\r\nimport { useSetRecoilState, useRecoilValue } from 'recoil'\r\nimport clsx from 'clsx'\r\nimport { Link } from 'react-router-dom'\r\n\r\nimport { IconButton, Box, Tooltip } from '@material-ui/core'\r\n\r\nimport projectLogo from 'assets/images/app-logo.png'\r\n\r\nimport MenuOpenRoundedIcon from '@material-ui/icons/MenuOpenRounded'\r\nimport MenuRoundedIcon from '@material-ui/icons/MenuRounded'\r\n\r\nimport { themeOptionsActions } from 'recoils/selectors'\r\nimport { themeOptionsState } from 'recoils/atoms'\r\n\r\nconst SidebarHeader = props => {\r\n // const { sidebarToggleMobile, setSidebarToggleMobile, setSidebarToggle, sidebarToggle, sidebarHover } = useRecoilValue(themeOptionsState)\r\n const { sidebarToggleMobile, sidebarToggle, sidebarHover } = useRecoilValue(themeOptionsState)\r\n const setThemeOptions = useSetRecoilState(themeOptionsActions)\r\n\r\n const toggleSidebar = () => {\r\n setThemeOptions({ name: 'sidebarToggle', value: !sidebarToggle })\r\n }\r\n\r\n const toggleSidebarMobile = () => {\r\n setThemeOptions({ name: 'sidebarToggleMobile', value: !sidebarToggleMobile })\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \"Đoàn\r\n \r\n \r\n TNTT Gx.Thạch Đà\r\n \r\n \r\n \r\n \r\n {sidebarToggle ? : }\r\n \r\n \r\n \r\n \r\n \r\n \r\n {sidebarToggleMobile ? : }\r\n \r\n \r\n \r\n
\r\n \r\n )\r\n}\r\n\r\nexport default SidebarHeader\r\n","import React, { useState, forwardRef } from 'react'\r\nimport { NavLink as RouterLink } from 'react-router-dom'\r\nimport clsx from 'clsx'\r\nimport PropTypes from 'prop-types'\r\n\r\nimport { ListItem, Button, Collapse } from '@material-ui/core'\r\n\r\nimport ExpandLessIcon from '@material-ui/icons/ExpandLess'\r\n\r\nconst CustomRouterLink = forwardRef(function CustomLink(props, ref) {\r\n return (\r\n
\r\n \r\n
\r\n )\r\n})\r\n\r\nconst SidebarMenuListItem = props => {\r\n const { title, href, depth, children, icon: Icon, className, open: openProp, label: Label, ...rest } = props\r\n\r\n const [open, setOpen] = useState(openProp)\r\n\r\n const handleToggle = () => {\r\n setOpen(open => !open)\r\n }\r\n\r\n let paddingLeft = 14\r\n\r\n if (depth > 0) {\r\n paddingLeft = 32 + 20 * depth\r\n }\r\n\r\n const style = {\r\n paddingLeft\r\n }\r\n\r\n // console.log(children)\r\n\r\n if (children) {\r\n return (\r\n \r\n \r\n {children}\r\n \r\n )\r\n } else {\r\n return (\r\n \r\n \r\n {Icon && }\r\n {title}\r\n {Label && (\r\n \r\n \r\n )}\r\n \r\n \r\n )\r\n }\r\n}\r\n\r\nSidebarMenuListItem.propTypes = {\r\n children: PropTypes.node,\r\n className: PropTypes.string,\r\n depth: PropTypes.number.isRequired,\r\n href: PropTypes.string,\r\n icon: PropTypes.any,\r\n label: PropTypes.any,\r\n open: PropTypes.bool,\r\n title: PropTypes.string.isRequired\r\n}\r\n\r\nSidebarMenuListItem.defaultProps = {\r\n depth: 0,\r\n open: false\r\n}\r\n\r\nexport default SidebarMenuListItem\r\n","import React from 'react'\r\nimport { matchPath } from 'react-router-dom'\r\nimport { List, Typography } from '@material-ui/core'\r\n\r\nimport useRouter from 'utils/useRouter'\r\nimport SidebarMenuListItem from './SidebarMenuListItem'\r\n\r\nconst SidebarMenuList = props => {\r\n const { pages, ...rest } = props\r\n\r\n return {pages.reduce((items, page) => reduceChildRoutes({ items, page, ...rest }), [])}\r\n}\r\n\r\nconst reduceChildRoutes = props => {\r\n const { router, items, page, depth } = props\r\n\r\n if (page.content) {\r\n const open = matchPath(router.location.pathname, {\r\n path: page.to,\r\n exact: false\r\n })\r\n\r\n items.push(\r\n \r\n
\r\n \r\n
\r\n
\r\n )\r\n } else {\r\n items.push()\r\n }\r\n\r\n return items\r\n}\r\n\r\nconst SidebarMenu = props => {\r\n let { title, pages, className, component: Component, ...rest } = props\r\n // let auth = useRecoilValue(authState)\r\n const router = useRouter()\r\n\r\n // if (auth?.Data?.Role?.Name !== 'Underwriting Manager') {\r\n // pages = pages.filter(p => p.label !== 'Users')\r\n // }\r\n\r\n // if (!auth?.Data?.ViewQuotes) {\r\n // pages = pages.filter(p => p.label !== 'Quotes')\r\n // }\r\n\r\n return (\r\n \r\n {title && {title}}\r\n \r\n \r\n )\r\n}\r\n\r\nSidebarMenu.defaultProps = {\r\n component: 'nav'\r\n}\r\n\r\nexport default SidebarMenu\r\n","import { useContext } from 'react'\r\nimport { __RouterContext } from 'react-router'\r\n\r\nexport default () => useContext(__RouterContext)\r\n","import BarChartOutlinedIcon from '@material-ui/icons/BarChartOutlined'\r\n\r\nimport DashboardTwoToneIcon from '@material-ui/icons/DashboardTwoTone'\r\n// import SearchTwoToneIcon from '@material-ui/icons/SearchTwoTone'\r\nimport PeopleAltTwoToneIcon from '@material-ui/icons/PeopleAltTwoTone'\r\nimport StarTwoToneIcon from '@material-ui/icons/StarTwoTone'\r\nimport CheckTwoToneIcon from '@material-ui/icons/CheckTwoTone'\r\nimport AssignmentIndTwoToneIcon from '@material-ui/icons/AssignmentIndTwoTone'\r\nimport PersonAddTwoToneIcon from '@material-ui/icons/PersonAddTwoTone'\r\n// import SupervisorAccountTwoToneIcon from '@material-ui/icons/SupervisorAccountTwoTone'\r\nimport AssignmentTurnedInTwoToneIcon from '@material-ui/icons/AssignmentTurnedInTwoTone'\r\nimport LayersTwoToneIcon from '@material-ui/icons/LayersTwoTone'\r\nimport ImportContactsTwoToneIcon from '@material-ui/icons/ImportContactsTwoTone'\r\nimport PollTwoToneIcon from '@material-ui/icons/PollTwoTone'\r\n\r\nimport { Roles } from 'app/enums'\r\nimport sessionHelper from 'utils/sessionHelper'\r\nimport { Download } from 'react-feather'\r\n\r\nconst functions = [\r\n { label: 'Thông tin chung', icon: DashboardTwoToneIcon, to: '/Dashboard' },\r\n { label: 'Xem báo cáo', icon: PollTwoToneIcon, to: '/Report' },\r\n { label: 'Tải biểu mẫu', icon: Download, to: '/Form' },\r\n {\r\n role: Roles.BanDieuHanh,\r\n label: 'Ban điều hành',\r\n icon: BarChartOutlinedIcon,\r\n content: [\r\n {\r\n label: 'Thông tin Phân đoàn',\r\n icon: DashboardTwoToneIcon,\r\n description: 'Xem thông tin chi tiết của từng Phân đoàn',\r\n to: '/BQT/GroupInfo'\r\n },\r\n {\r\n label: 'Thêm Đoàn sinh mới',\r\n icon: PersonAddTwoToneIcon,\r\n description: 'Thêm mới Đoàn sinh',\r\n to: '/BQT/RegisterOffline'\r\n },\r\n {\r\n label: 'Danh sách HT|DT',\r\n icon: LayersTwoToneIcon,\r\n description: 'Phân chức vụ cho Huynh trưởng',\r\n to: '/BQT/AssignUserRoles'\r\n },\r\n {\r\n label: 'Phân công tác HT',\r\n icon: AssignmentTurnedInTwoToneIcon,\r\n description: 'Phân công tác cho Huynh trưởng',\r\n to: '/BQT/TeacherAssignment'\r\n },\r\n {\r\n label: 'Quản lý biểu mẫu',\r\n icon: ImportContactsTwoToneIcon,\r\n description: 'Quản lý biểu mẫu hệ thống',\r\n to: '/BQT/ManageForms'\r\n }\r\n ]\r\n },\r\n {\r\n role: Roles.PhanDoanTruong,\r\n label: 'Phân đoàn trưởng',\r\n icon: BarChartOutlinedIcon,\r\n content: [\r\n {\r\n label: 'Phân công Chi đoàn',\r\n icon: AssignmentIndTwoToneIcon,\r\n description: 'Phân công tác chi đoàn cho Huynh trưởng',\r\n to: '/PDT/AssignUserUnion'\r\n },\r\n {\r\n label: 'Thêm Đoàn sinh mới',\r\n icon: PersonAddTwoToneIcon,\r\n description: 'Thêm mới Đoàn sinh',\r\n to: '/PDT/AddNewStudent'\r\n },\r\n {\r\n label: 'Phân đoàn của tôi',\r\n icon: PeopleAltTwoToneIcon,\r\n description: 'Danh sách Đoàn sinh trong Phân đoàn',\r\n to: '/PDT/StudentGroup'\r\n },\r\n {\r\n label: 'Chuyển chi đoàn',\r\n icon: PeopleAltTwoToneIcon,\r\n description: 'Chuyển Chi đoàn cho Đoàn sinh trong Phân Đoàn',\r\n to: '/PDT/ChangeStudentUnion'\r\n },\r\n {\r\n label: 'Nhập điểm',\r\n icon: StarTwoToneIcon,\r\n description: 'Danh sách điểm Phân đoàn',\r\n to: '/PDT/StudentGroupScore'\r\n },\r\n {\r\n label: 'Điểm danh',\r\n icon: CheckTwoToneIcon,\r\n description: 'Điểm danh Đoàn sinh vắng',\r\n to: '/PDT/GroupAbsent'\r\n }\r\n ]\r\n },\r\n {\r\n role: Roles.HuynhTruong,\r\n label: 'Huynh trưởng',\r\n icon: BarChartOutlinedIcon,\r\n content: [\r\n {\r\n label: 'Chi đoàn của tôi',\r\n icon: PeopleAltTwoToneIcon,\r\n description: 'Danh sách Đoàn sinh trong Chi đoàn',\r\n to: '/HT/StudentClass'\r\n },\r\n {\r\n label: 'Nhập điểm',\r\n icon: StarTwoToneIcon,\r\n description: 'Danh sách điểm Chi đoàn',\r\n to: '/HT/StudentScore'\r\n },\r\n {\r\n label: 'Điểm danh',\r\n icon: CheckTwoToneIcon,\r\n description: 'Điểm danh Đoàn sinh vắng',\r\n to: '/HT/ClassAbsent'\r\n }\r\n ]\r\n },\r\n {\r\n role: Roles.DuTruong,\r\n label: 'Dự trưởng',\r\n icon: BarChartOutlinedIcon,\r\n content: [\r\n {\r\n label: 'Chi đoàn của tôi',\r\n icon: PeopleAltTwoToneIcon,\r\n description: 'Danh sách Đoàn sinh trong Chi đoàn',\r\n to: '/HT/StudentClass'\r\n },\r\n {\r\n label: 'Nhập điểm',\r\n icon: StarTwoToneIcon,\r\n description: 'Danh sách điểm Chi đoàn',\r\n to: '/HT/StudentScore'\r\n },\r\n {\r\n label: 'Điểm danh',\r\n icon: CheckTwoToneIcon,\r\n description: 'Điểm danh Đoàn sinh vắng',\r\n to: '/HT/ClassAbsent'\r\n }\r\n ]\r\n }\r\n]\r\n\r\n// Từ danh sách functions\r\n// Kiểm tra danh sách Roles của User login\r\n// If User có role được config trong function thì kiếm tra thêm nếu function đó là dành cho Huynh Trưởng mà User login không có thông tin Class (chứng tỏ user login là PDT) thì sẽ không hiện function đó\r\n// ngoài các function có Role thì cũng lấy các functions không có role\r\n\r\n// Trường hợp user login không có roles trong function thì kiểm tra function của Phân Đoàn Trưởng nếu có role Học Tập thì hiện chức năng của Phân Đoàn Trưởng\r\n\r\nexport default [\r\n {\r\n label: 'Danh sách chức năng',\r\n content: sessionHelper().isFirstLogin\r\n ? []\r\n : functions.filter(func => {\r\n return (\r\n (sessionHelper().roles?.includes(func.role)\r\n ? func.role === Roles.HuynhTruong || func.role === Roles.DuTruong\r\n ? sessionHelper().roles?.includes(Roles.PhanDoanTruong) && sessionHelper().unionId === 0\r\n ? false\r\n : sessionHelper().classId && sessionHelper().unionId !== 1\r\n ? true\r\n : false\r\n : true\r\n : func.role === Roles.PhanDoanTruong && sessionHelper().roles?.includes(Roles.HocTap)\r\n ? true\r\n : false) || !func.role\r\n )\r\n })\r\n }\r\n]\r\n","import React, { Fragment } from 'react'\r\nimport { useSetRecoilState, useRecoilValue, useRecoilState } from 'recoil'\r\n// import MenuRoundedIcon from '@material-ui/icons/MenuRounded'\r\nimport PerfectScrollbar from 'react-perfect-scrollbar'\r\nimport { Hidden, Drawer, IconButton, AppBar, Paper, Box, Button, Tooltip, Link } from '@material-ui/core'\r\n\r\nimport { themeOptionsActions, authState } from 'recoils/selectors'\r\nimport { themeOptionsState, forceCheckingAuth } from 'recoils/atoms'\r\n// import { ReloadQuoteListState } from 'pages/Admin/Quotes/recoil'\r\n\r\nimport SidebarHeader from '../SidebarHeader'\r\nimport SidebarMenu from '../SidebarMenu'\r\n\r\nimport navItems from 'config/navItems'\r\n\r\nimport { NavLink as RouterLink } from 'react-router-dom'\r\nimport projectLogo from 'assets/images/app-logo.png'\r\n\r\nimport DescriptionOutlinedIcon from '@material-ui/icons/DescriptionOutlined'\r\nimport PeopleOutlineOutlinedIcon from '@material-ui/icons/PeopleOutlineOutlined'\r\nimport BarChartOutlinedIcon from '@material-ui/icons/BarChartOutlined'\r\n\r\nconst SidebarCollapsed = props => {\r\n const { sidebarToggleMobile, sidebarToggle, layoutStyle } = useRecoilValue(themeOptionsState)\r\n const setThemeOptions = useSetRecoilState(themeOptionsActions)\r\n const [forceChecking, setForChecking] = useRecoilState(forceCheckingAuth)\r\n // let auth = useRecoilValue(authState)\r\n // let setReloadQuotes = useSetRecoilState(ReloadQuoteListState)\r\n\r\n const setLayoutStyle = () => {\r\n setThemeOptions({ name: 'layoutStyle', value: layoutStyle === 1 ? 2 : 1 })\r\n }\r\n\r\n const setForceChecking = () => {\r\n setForChecking(forceChecking + 1)\r\n }\r\n const closeDrawer = () => setThemeOptions({ name: 'sidebarToggleMobile', value: !sidebarToggleMobile })\r\n\r\n const sidebarMenuContent = (\r\n
\r\n {navItems.map(list => (\r\n \r\n ))}\r\n
\r\n )\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {/* */}\r\n {sidebarMenuContent}\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \"Xứ\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
    \r\n
  • \r\n \r\n {\r\n setForceChecking()\r\n }}>\r\n \r\n \r\n \r\n
  • \r\n\r\n
  • \r\n \r\n \r\n \r\n
  • \r\n\r\n
  • \r\n \r\n \r\n \r\n
  • \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default SidebarCollapsed\r\n","import React, { Fragment } from 'react'\r\nimport { useRecoilValue } from 'recoil'\r\nimport clsx from 'clsx'\r\n\r\nimport PerfectScrollbar from 'react-perfect-scrollbar'\r\nimport { Avatar, IconButton, Box, Typography, Menu, Button, List, ListItem } from '@material-ui/core'\r\n\r\nimport avatar2 from 'assets/images/avatars/avatar2.jpg'\r\n\r\nimport MoreVertIcon from '@material-ui/icons/MoreVert'\r\n\r\nimport { themeOptionsState } from 'recoils/atoms'\r\n\r\nconst SidebarUserbox = props => {\r\n const { sidebarToggle, sidebarHover } = useRecoilValue(themeOptionsState)\r\n const [anchorEl, setAnchorEl] = React.useState(null)\r\n\r\n function openUserMenu(event) {\r\n setAnchorEl(event.currentTarget)\r\n }\r\n\r\n function handleClose() {\r\n setAnchorEl(null)\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
Scrollable
\r\n

This menu box is scrollable (sm)

\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n Services\r\n
\r\n \r\n
\r\n Layouts\r\n 512\r\n
\r\n \r\n
\r\n Reports\r\n
\r\n \r\n Others\r\n \r\n \r\n
\r\n Components\r\n
\r\n \r\n
\r\n Services\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Emma Taylor\r\n \r\n Senior Web Developer\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default SidebarUserbox\r\n","import React, { Fragment } from 'react'\r\nimport { IconButton, Box, Tooltip } from '@material-ui/core'\r\n\r\nimport { Bell, Activity, Briefcase, Calendar } from 'react-feather'\r\n\r\nexport default function SidebarFooter() {\r\n return (\r\n \r\n \r\n
    \r\n
  • \r\n \r\n \r\n \r\n \r\n \r\n
  • \r\n
  • \r\n \r\n \r\n \r\n \r\n \r\n
  • \r\n
  • \r\n \r\n \r\n \r\n \r\n \r\n
  • \r\n
  • \r\n \r\n \r\n \r\n \r\n \r\n
  • \r\n
\r\n
\r\n
\r\n )\r\n}\r\n","import React, { Fragment } from 'react'\r\nimport { useSetRecoilState, useRecoilValue } from 'recoil'\r\nimport clsx from 'clsx'\r\n\r\nimport PerfectScrollbar from 'react-perfect-scrollbar'\r\nimport { Hidden, Drawer, Paper } from '@material-ui/core'\r\n\r\nimport { themeOptionsActions } from 'recoils/selectors'\r\nimport { themeOptionsState } from 'recoils/atoms'\r\n\r\nimport SidebarHeader from '../../layout-components/SidebarHeader'\r\nimport SidebarUserbox from '../../layout-components/SidebarUserbox'\r\nimport SidebarMenu from '../../layout-components/SidebarMenu'\r\nimport SidebarFooter from '../../layout-components/SidebarFooter'\r\n\r\nimport navItems from 'config/navItems'\r\n\r\nconst Sidebar = props => {\r\n // const { setSidebarToggleMobile, sidebarToggleMobile, sidebarFixed, sidebarHover, setSidebarHover, sidebarToggle, sidebarUserbox, sidebarShadow, sidebarFooter } = useRecoilValue(themeOptionsState)\r\n const { sidebarToggleMobile, sidebarFixed, sidebarHover, sidebarToggle, sidebarUserbox, sidebarShadow, sidebarFooter } = useRecoilValue(themeOptionsState)\r\n const setThemeOptions = useSetRecoilState(themeOptionsActions)\r\n\r\n const toggleHoverOn = () => setThemeOptions({ name: 'sidebarHover', value: true })\r\n const toggleHoverOff = () => setThemeOptions({ name: 'sidebarHover', value: false })\r\n const closeDrawer = () => setThemeOptions({ name: 'sidebarToggleMobile', value: !sidebarToggleMobile })\r\n\r\n const sidebarMenuContent = (\r\n \r\n {navItems.map(list => (\r\n \r\n ))}\r\n
\r\n )\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {sidebarUserbox && }\r\n {sidebarMenuContent}\r\n {sidebarFooter && }\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n {sidebarUserbox && }\r\n {sidebarMenuContent}\r\n {sidebarFooter && }\r\n \r\n
\r\n \r\n \r\n
\r\n )\r\n}\r\n\r\nexport default Sidebar\r\n","import React, { Fragment, useState } from 'react'\r\nimport { useRecoilValue } from 'recoil'\r\nimport clsx from 'clsx'\r\nimport { Link } from 'react-router-dom'\r\n\r\nimport {\r\n Grid,\r\n Input,\r\n InputLabel,\r\n InputAdornment,\r\n FormControlLabel,\r\n Hidden,\r\n IconButton,\r\n Paper,\r\n Box,\r\n Typography,\r\n Dialog,\r\n Checkbox,\r\n Tabs,\r\n Tab,\r\n LinearProgress,\r\n Card,\r\n CardContent,\r\n Button,\r\n Tooltip,\r\n FormControl\r\n} from '@material-ui/core'\r\n\r\nimport MailOutlineTwoToneIcon from '@material-ui/icons/MailOutlineTwoTone'\r\nimport LockTwoToneIcon from '@material-ui/icons/LockTwoTone'\r\n\r\nimport FavoriteIcon from '@material-ui/icons/Favorite'\r\nimport EditIcon from '@material-ui/icons/Edit'\r\n\r\nimport DashboardTwoToneIcon from '@material-ui/icons/DashboardTwoTone'\r\n\r\nimport avatar1 from 'assets/images/avatars/avatar1.jpg'\r\nimport avatar2 from 'assets/images/avatars/avatar2.jpg'\r\nimport avatar6 from 'assets/images/avatars/avatar6.jpg'\r\nimport avatar7 from 'assets/images/avatars/avatar7.jpg'\r\nimport hero1 from 'assets/images/hero-bg/hero-1.jpg'\r\n\r\nimport FileCopyIcon from '@material-ui/icons/FileCopyOutlined'\r\nimport SaveIcon from '@material-ui/icons/Save'\r\nimport PrintIcon from '@material-ui/icons/Print'\r\nimport ShareIcon from '@material-ui/icons/Share'\r\n\r\nimport Breadcrumbs from '@material-ui/core/Breadcrumbs'\r\n\r\nimport SpeedDial from '@material-ui/lab/SpeedDial'\r\nimport SpeedDialIcon from '@material-ui/lab/SpeedDialIcon'\r\nimport SpeedDialAction from '@material-ui/lab/SpeedDialAction'\r\nimport NavigateNextIcon from '@material-ui/icons/NavigateNext'\r\n\r\nimport { themeOptionsState } from 'recoils/atoms'\r\nimport { history } from 'App'\r\n\r\nfunction TabPanel(props) {\r\n const { children, value, index, ...other } = props\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nconst actions = [\r\n { icon: , name: 'Copy' },\r\n { icon: , name: 'Save' },\r\n { icon: , name: 'Print' },\r\n { icon: , name: 'Share' },\r\n { icon: , name: 'Like' }\r\n]\r\n\r\nfunction PageTitle(props) {\r\n const { pageTitleStyle, pageTitleBackground, pageTitleShadow, pageTitleBreadcrumb, pageTitleIconBox, pageTitleDescription } = useRecoilValue(themeOptionsState)\r\n\r\n const [modal1, setModal1] = useState(false)\r\n const toggle1 = () => setModal1(!modal1)\r\n\r\n const [value, setValue] = React.useState(0)\r\n\r\n const handleChange = (event, newValue) => {\r\n setValue(newValue)\r\n }\r\n\r\n const [checked1, setChecked1] = React.useState(true)\r\n\r\n const handleChange1 = event => {\r\n setChecked1(event.target.checked)\r\n }\r\n\r\n const [open, setOpen] = React.useState(false)\r\n\r\n const handleOpen = () => {\r\n setOpen(true)\r\n }\r\n\r\n const handleClose = () => {\r\n setOpen(false)\r\n }\r\n\r\n return (\r\n \r\n \r\n
\r\n {pageTitleBreadcrumb && (\r\n } className=\"mb-4\" maxItems={2} aria-label=\"breadcrumb\">\r\n {\r\n e.preventDefault()\r\n history.push('/Dashboard')\r\n }}>\r\n Home\r\n \r\n {/* e.preventDefault()}>\r\n Dashboards\r\n \r\n e.preventDefault()}>\r\n Examples\r\n \r\n e.preventDefault()}>\r\n Pages\r\n */}\r\n {props.titleHeading}\r\n \r\n )}\r\n\r\n \r\n {pageTitleIconBox && (\r\n \r\n \r\n \r\n )}\r\n
\r\n

{props.titleHeading}

\r\n {pageTitleDescription &&
{props.titleDescription}
}\r\n
\r\n
\r\n
\r\n\r\n {/* {!open && (\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n New release\r\n \r\n \r\n \r\n
\r\n
\r\n

Wonderful serenity has possession

\r\n

A free hour, when our power of choice is untrammelled and when nothing prevents.

\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
31
\r\n
\r\n
\r\n Implemented\r\n
\r\n bugfixes\r\n
\r\n \r\n \r\n \r\n \r\n
68
\r\n
\r\n
\r\n Unresolved\r\n
\r\n tickets\r\n
\r\n \r\n \r\n \r\n \r\n
57
\r\n
\r\n
\r\n Support\r\n
\r\n requests\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n 3,568\r\n clicks\r\n
\r\n
\r\n
\r\n \r\n
\r\n
Target
\r\n
100%
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n Sign in with\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n Or sign in with credentials\r\n
\r\n
\r\n
\r\n \r\n Email address\r\n \r\n \r\n \r\n }\r\n />\r\n \r\n
\r\n
\r\n \r\n Password\r\n \r\n \r\n \r\n }\r\n />\r\n \r\n
\r\n
\r\n } label=\"Remember me\" />\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
On Hold
\r\n
14:22
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
Fixed
\r\n
09:41
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n

1998

\r\n

Bill Clinton's presidential scandal makes it online.

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Java exam day

\r\n

Bill Clinton's presidential scandal makes it online.

\r\n
\r\n
\r\n
\r\n \"...\"\r\n
\r\n
\r\n
\r\n
\r\n \"...\"\r\n
\r\n
\r\n
\r\n
\r\n \"...\"\r\n
\r\n
\r\n
\r\n
\r\n \"...\"\r\n
\r\n
\r\n
\r\n
\r\n \"...\"\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

\r\n Business investor meeting\r\n New\r\n

\r\n

Mosaic, the first graphical browser, is introduced to the average consumer.

\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n )} */}\r\n \r\n
\r\n } />} onClose={handleClose} onOpen={handleOpen} direction=\"left\" open={open}>\r\n {actions.map(action => (\r\n \r\n ))}\r\n \r\n
\r\n
\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default PageTitle\r\n","import React, { Fragment } from 'react'\r\nimport { useRecoilValue } from 'recoil'\r\n\r\nimport clsx from 'clsx'\r\nimport { Link } from 'react-router-dom'\r\n\r\nimport { Paper, List, ListItem, ListItemText } from '@material-ui/core'\r\n\r\nimport { themeOptionsState } from 'recoils/atoms'\r\n\r\nconst Footer = props => {\r\n const { footerShadow, sidebarToggle, footerFixed } = useRecoilValue(themeOptionsState)\r\n\r\n return (\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n Carolina React Admin Dashboard with Material-UI PRO © 2020 - crafted with by{' '}\r\n \r\n UiFort.com\r\n \r\n
\r\n
\r\n \r\n
\r\n )\r\n}\r\n\r\nexport default Footer\r\n","import React from 'react'\r\nimport { useSetRecoilState, useRecoilValue, useRecoilState } from 'recoil'\r\nimport { Switch } from '@material-ui/core'\r\n\r\nimport clsx from 'clsx'\r\n\r\nimport { Tooltip, Box, Hidden, Button } from '@material-ui/core'\r\nimport Fab from '@material-ui/core/Fab'\r\nimport SettingsTwoToneIcon from '@material-ui/icons/SettingsTwoTone'\r\nimport CloseTwoToneIcon from '@material-ui/icons/CloseTwoTone'\r\nimport Drawer from '@material-ui/core/Drawer'\r\n\r\nimport { themeOptionsActions } from 'recoils/selectors'\r\nimport { themeOptionsState, themeColor } from 'recoils/atoms'\r\n\r\nimport PerfectScrollbar from 'react-perfect-scrollbar'\r\n\r\nconst ThemeConfigurator = props => {\r\n const [state, setState] = React.useState({\r\n right: false\r\n })\r\n\r\n const {\r\n headerFixed,\r\n headerShadow,\r\n sidebarFixed,\r\n sidebarUserbox,\r\n sidebarFooter,\r\n sidebarShadow,\r\n contentBackground,\r\n pageTitleStyle,\r\n pageTitleBackground,\r\n pageTitleShadow,\r\n pageTitleBreadcrumb,\r\n pageTitleIconBox,\r\n pageTitleDescription,\r\n footerFixed,\r\n footerShadow\r\n } = useRecoilValue(themeOptionsState)\r\n\r\n const setThemeOptions = useSetRecoilState(themeOptionsActions)\r\n const [localColor, setThemeColor] = useRecoilState(themeColor)\r\n\r\n const toggleDrawer = (side, open) => event => {\r\n if (event.type === 'keydown' && (event.key === 'Tab' || event.key === 'Shift')) {\r\n return\r\n }\r\n\r\n setState({ ...state, [side]: open })\r\n }\r\n\r\n // Header\r\n\r\n const toggleHeaderFixed = () => {\r\n setThemeOptions({ name: 'headerFixed', value: !headerFixed })\r\n }\r\n const toggleHeaderShadow = () => {\r\n setThemeOptions({ name: 'headerShadow', value: !headerShadow })\r\n }\r\n\r\n // Sidebar\r\n\r\n const toggleSidebarFixed = () => {\r\n setThemeOptions({ name: 'sidebarFixed', value: !sidebarFixed })\r\n }\r\n\r\n const toggleSidebarShadow = () => {\r\n setThemeOptions({ name: 'sidebarShadow', value: !sidebarShadow })\r\n }\r\n\r\n const toggleSidebarUserbox = () => {\r\n setThemeOptions({ name: 'sidebarUserbox', value: !sidebarUserbox })\r\n }\r\n const toggleSidebarFooter = () => {\r\n setThemeOptions({ name: 'sidebarFooter', value: !sidebarFooter })\r\n }\r\n\r\n // Footer\r\n\r\n const toggleFooterFixed = () => {\r\n setThemeOptions({ name: 'footerFixed', value: !footerFixed })\r\n }\r\n const toggleFooterShadow = () => {\r\n setThemeOptions({ name: 'footerShadow', value: !footerShadow })\r\n }\r\n\r\n // Page title\r\n\r\n const togglePageTitleIconBox = () => {\r\n setThemeOptions({ name: 'pageTitleIconBox', value: !pageTitleIconBox })\r\n }\r\n const togglePageTitleBreadcrumb = () => {\r\n setThemeOptions({ name: 'pageTitleBreadcrumb', value: !pageTitleBreadcrumb })\r\n }\r\n const togglePageTitleShadow = () => {\r\n setThemeOptions({ name: 'pageTitleShadow', value: !pageTitleShadow })\r\n }\r\n\r\n const togglePageTitleDescription = () => {\r\n setThemeOptions({ name: 'pageTitleDescription', value: !pageTitleDescription })\r\n }\r\n\r\n const setContentBackground = value => {\r\n setThemeOptions({ name: 'contentBackground', value })\r\n }\r\n\r\n const setPageTitleStyle = value => {\r\n setThemeOptions({ name: 'pageTitleStyle', value })\r\n }\r\n\r\n const setPageTitleShadow = value => {\r\n setThemeOptions({ name: 'pageTitleShadow', value })\r\n }\r\n\r\n const setPageTitleBackground = value => {\r\n setThemeOptions({ name: 'pageTitleBackground', value })\r\n }\r\n\r\n const setHeaderColor = value => {\r\n setThemeColor({ ...localColor, primary: value })\r\n }\r\n\r\n const setSecondaryColor = value => {\r\n setThemeColor({ ...localColor, secondary: value })\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n

Thanh tiêu đề

\r\n
    \r\n
  • \r\n
    \r\n \r\n
    \r\n
    Cố định
    \r\n
  • \r\n
  • \r\n
    \r\n \r\n
    \r\n
    Đổ bóng
    \r\n
  • \r\n
\r\n\r\n {/*

Sidebar

\r\n
    \r\n
  • \r\n \r\n
    Fixed sidebar
    \r\n
  • \r\n
  • \r\n \r\n
    Sidebar shadow
    \r\n
  • \r\n
  • \r\n \r\n
    Sidebar footer
    \r\n
  • \r\n
  • \r\n \r\n
    Sidebar userbox
    \r\n
  • \r\n
*/}\r\n\r\n

Chọn màu chính

\r\n\r\n
    \r\n
  • \r\n
    \r\n
    \r\n {/*
    Color schemes
    */}\r\n
    \r\n {\r\n setHeaderColor('#F5DF4D')\r\n }}\r\n style={{ backgroundColor: '#F5DF4D' }}\r\n className={clsx('theme-config-swatch theme-config-swatch--lg')}\r\n />\r\n {\r\n setHeaderColor('#939597')\r\n }}\r\n style={{ backgroundColor: '#939597' }}\r\n className={clsx('theme-config-swatch theme-config-swatch--lg')}\r\n />\r\n
    \r\n {\r\n setHeaderColor('#F3D1DC')\r\n }}\r\n style={{ backgroundColor: '#F3D1DC' }}\r\n className={clsx('theme-config-swatch theme-config-swatch--lg')}\r\n />\r\n {\r\n setHeaderColor('#FCF0CF')\r\n }}\r\n style={{ backgroundColor: '#FCF0CF' }}\r\n className={clsx('theme-config-swatch theme-config-swatch--lg')}\r\n />\r\n {\r\n setHeaderColor('#F1CDB0')\r\n }}\r\n style={{ backgroundColor: '#F1CDB0' }}\r\n className={clsx('theme-config-swatch theme-config-swatch--lg')}\r\n />\r\n {\r\n setHeaderColor('#E7CFC8')\r\n }}\r\n style={{ backgroundColor: '#E7CFC8' }}\r\n className={clsx('theme-config-swatch theme-config-swatch--lg')}\r\n />\r\n
    \r\n {\r\n setHeaderColor('#C3E4FD')\r\n }}\r\n style={{ backgroundColor: '#C3E4FD' }}\r\n className={clsx('theme-config-swatch theme-config-swatch--lg')}\r\n />\r\n {\r\n setHeaderColor('#B5BA7E')\r\n }}\r\n style={{ backgroundColor: '#B5BA7E' }}\r\n className={clsx('theme-config-swatch theme-config-swatch--lg')}\r\n />\r\n {\r\n setHeaderColor('#F4AFB3')\r\n }}\r\n style={{ backgroundColor: '#F4AFB3' }}\r\n className={clsx('theme-config-swatch theme-config-swatch--lg')}\r\n />\r\n
    \r\n
    \r\n
    \r\n
  • \r\n
\r\n\r\n

Chọn màu phụ

\r\n\r\n
    \r\n
  • \r\n
    \r\n
    \r\n {/*
    Color schemes
    */}\r\n
    \r\n {\r\n setSecondaryColor('#0487D9')\r\n }}\r\n style={{ backgroundColor: '#0487D9' }}\r\n className={clsx('theme-config-swatch theme-config-swatch--lg')}\r\n />\r\n {\r\n setSecondaryColor('#04B2D9')\r\n }}\r\n style={{ backgroundColor: '#04B2D9' }}\r\n className={clsx('theme-config-swatch theme-config-swatch--lg')}\r\n />\r\n {\r\n setSecondaryColor('#04BFAD')\r\n }}\r\n style={{ backgroundColor: '#04BFAD' }}\r\n className={clsx('theme-config-swatch theme-config-swatch--lg')}\r\n />\r\n {\r\n setSecondaryColor('#BF2604')\r\n }}\r\n style={{ backgroundColor: '#BF2604' }}\r\n className={clsx('theme-config-swatch theme-config-swatch--lg')}\r\n />\r\n
    \r\n\r\n {\r\n setSecondaryColor('#09A603')\r\n }}\r\n style={{ backgroundColor: '#09A603' }}\r\n className={clsx('theme-config-swatch theme-config-swatch--lg')}\r\n />\r\n {\r\n setSecondaryColor('#F24976')\r\n }}\r\n style={{ backgroundColor: '#F24976' }}\r\n className={clsx('theme-config-swatch theme-config-swatch--lg')}\r\n />\r\n
    \r\n
    \r\n
    \r\n
  • \r\n
\r\n {/*

Page title

\r\n
    \r\n
  • \r\n \r\n
    Enable title icon box
    \r\n
  • \r\n
  • \r\n \r\n
    Enable breadcrumb section
    \r\n
  • \r\n
  • \r\n \r\n
    Page title shadow
    \r\n
  • \r\n
  • \r\n \r\n
    Enable heading description
    \r\n
  • \r\n
  • \r\n
    \r\n
    \r\n
    Page title styles
    \r\n
    \r\n {\r\n setPageTitleStyle('')\r\n setPageTitleShadow(false)\r\n }}\r\n size=\"small\"\r\n variant=\"outlined\"\r\n color=\"primary\"\r\n className={clsx('m-1', {\r\n active: pageTitleStyle === ''\r\n })}>\r\n Style 1\r\n \r\n {\r\n setPageTitleStyle('app-page-title-alt-1')\r\n setPageTitleShadow(true)\r\n }}\r\n size=\"small\"\r\n variant=\"outlined\"\r\n color=\"primary\"\r\n className={clsx('m-1', {\r\n active: pageTitleStyle === 'app-page-title-alt-1'\r\n })}>\r\n Style 2\r\n \r\n {\r\n setPageTitleStyle('app-page-title-alt-2')\r\n setPageTitleShadow(true)\r\n }}\r\n size=\"small\"\r\n variant=\"outlined\"\r\n color=\"primary\"\r\n className={clsx('m-1', {\r\n active: pageTitleStyle === 'app-page-title-alt-2'\r\n })}>\r\n Style 3\r\n \r\n {\r\n setPageTitleStyle('app-page-title-alt-3')\r\n setPageTitleShadow(true)\r\n }}\r\n size=\"small\"\r\n variant=\"outlined\"\r\n color=\"primary\"\r\n className={clsx('m-1', {\r\n active: pageTitleStyle === 'app-page-title-alt-3'\r\n })}>\r\n Style 4\r\n \r\n
    \r\n
    \r\n
    \r\n
  • \r\n
  • \r\n
    \r\n
    \r\n
    Color schemes
    \r\n
    \r\n {\r\n setPageTitleBackground('')\r\n }}\r\n className={clsx('theme-config-swatch theme-config-swatch--lg', { active: pageTitleBackground === '' })}\r\n />\r\n {\r\n setPageTitleBackground('bg-gray-100')\r\n }}\r\n className={clsx('theme-config-swatch theme-config-swatch--lg bg-gray-100', { active: pageTitleBackground === 'bg-gray-100' })}\r\n />\r\n {\r\n setPageTitleBackground('bg-gray-200')\r\n }}\r\n className={clsx('theme-config-swatch theme-config-swatch--lg bg-gray-200', { active: pageTitleBackground === 'bg-gray-200' })}\r\n />\r\n {\r\n setPageTitleBackground('bg-gray-300')\r\n }}\r\n className={clsx('theme-config-swatch theme-config-swatch--lg bg-gray-300', { active: pageTitleBackground === 'bg-gray-300' })}\r\n />\r\n {\r\n setPageTitleBackground('bg-gray-400')\r\n }}\r\n className={clsx('theme-config-swatch theme-config-swatch--lg bg-gray-400', { active: pageTitleBackground === 'bg-gray-400' })}\r\n />\r\n {\r\n setPageTitleBackground('bg-gray-500')\r\n }}\r\n className={clsx('theme-config-swatch theme-config-swatch--lg bg-gray-500', { active: pageTitleBackground === 'bg-gray-500' })}\r\n />\r\n
    \r\n {\r\n setPageTitleBackground('bg-deep-sky app-page-title--dark')\r\n }}\r\n className={clsx('theme-config-swatch theme-config-swatch--lg bg-deep-sky app-page-title--dark', {\r\n active: pageTitleBackground === 'bg-deep-sky app-page-title--dark'\r\n })}\r\n />\r\n {\r\n setPageTitleBackground('bg-royal app-page-title--dark')\r\n }}\r\n className={clsx(\"theme-config-swatch theme-config-swatch--lg bg-royal app-page-title--dark')\", {\r\n active: pageTitleBackground === 'bg-royal app-page-title--dark'\r\n })}\r\n />\r\n {\r\n setPageTitleBackground('bg-sunrise-purple app-page-title--dark')\r\n }}\r\n className={clsx('theme-config-swatch theme-config-swatch--lg bg-sunrise-purple app-page-title--dark', {\r\n active: pageTitleBackground === 'bg-sunrise-purple app-page-title--dark'\r\n })}\r\n />\r\n {\r\n setPageTitleBackground('bg-vicious-stance app-page-title--dark')\r\n }}\r\n className={clsx('theme-config-swatch theme-config-swatch--lg bg-vicious-stance app-page-title--dark', {\r\n active: pageTitleBackground === 'bg-vicious-stance app-page-title--dark'\r\n })}\r\n />\r\n {\r\n setPageTitleBackground('bg-slick-carbon app-page-title--dark')\r\n }}\r\n className={clsx('theme-config-swatch theme-config-swatch--lg bg-slick-carbon app-page-title--dark', {\r\n active: pageTitleBackground === 'bg-slick-carbon app-page-title--dark'\r\n })}\r\n />\r\n
    \r\n {\r\n setPageTitleBackground('bg-neutral-primary')\r\n }}\r\n className={clsx('theme-config-swatch theme-config-swatch--lg bg-neutral-primary', {\r\n active: pageTitleBackground === 'bg-neutral-primary'\r\n })}\r\n />\r\n {\r\n setPageTitleBackground('bg-neutral-secondary')\r\n }}\r\n className={clsx('theme-config-swatch theme-config-swatch--lg bg-neutral-secondary', {\r\n active: pageTitleBackground === 'bg-neutral-secondary'\r\n })}\r\n />\r\n {\r\n setPageTitleBackground('bg-neutral-success')\r\n }}\r\n className={clsx('theme-config-swatch theme-config-swatch--lg bg-neutral-success', {\r\n active: pageTitleBackground === 'bg-neutral-success'\r\n })}\r\n />\r\n {\r\n setPageTitleBackground('bg-neutral-info')\r\n }}\r\n className={clsx('theme-config-swatch theme-config-swatch--lg bg-neutral-info', {\r\n active: pageTitleBackground === 'bg-neutral-info'\r\n })}\r\n />\r\n {\r\n setPageTitleBackground('bg-neutral-warning')\r\n }}\r\n className={clsx('theme-config-swatch theme-config-swatch--lg bg-neutral-warning', {\r\n active: pageTitleBackground === 'bg-neutral-warning'\r\n })}\r\n />\r\n {\r\n setPageTitleBackground('bg-neutral-danger')\r\n }}\r\n className={clsx('theme-config-swatch theme-config-swatch--lg bg-neutral-danger', {\r\n active: pageTitleBackground === 'bg-neutral-danger'\r\n })}\r\n />\r\n {\r\n setPageTitleBackground('bg-neutral-dark')\r\n }}\r\n className={clsx('theme-config-swatch theme-config-swatch--lg bg-neutral-dark', {\r\n active: pageTitleBackground === 'bg-neutral-dark'\r\n })}\r\n />\r\n
    \r\n
    \r\n
    \r\n
  • \r\n
\r\n

Footer

\r\n
    \r\n
  • \r\n \r\n
    Fixed footer
    \r\n
  • \r\n
  • \r\n \r\n
    Footer shadow
    \r\n
  • \r\n
*/}\r\n
\r\n
\r\n \r\n
\r\n
\r\n )\r\n}\r\n\r\nconst mapStateToProps = state => ({\r\n headerFixed: state.ThemeOptions.headerFixed,\r\n headerShadow: state.ThemeOptions.headerShadow,\r\n\r\n sidebarFixed: state.ThemeOptions.sidebarFixed,\r\n sidebarUserbox: state.ThemeOptions.sidebarUserbox,\r\n sidebarFooter: state.ThemeOptions.sidebarFooter,\r\n sidebarShadow: state.ThemeOptions.sidebarShadow,\r\n\r\n pageTitleStyle: state.ThemeOptions.pageTitleStyle,\r\n pageTitleBackground: state.ThemeOptions.pageTitleBackground,\r\n pageTitleShadow: state.ThemeOptions.pageTitleShadow,\r\n pageTitleBreadcrumb: state.ThemeOptions.pageTitleBreadcrumb,\r\n pageTitleIconBox: state.ThemeOptions.pageTitleIconBox,\r\n pageTitleDescription: state.ThemeOptions.pageTitleDescription,\r\n\r\n contentBackground: state.ThemeOptions.contentBackground,\r\n\r\n footerFixed: state.ThemeOptions.footerFixed,\r\n footerShadow: state.ThemeOptions.footerShadow\r\n})\r\n\r\nexport default ThemeConfigurator\r\n","import React, { Component } from 'react'\r\n\r\nimport { Card, CardContent } from '@material-ui/core'\r\n\r\nexport default class ExampleWrapperSimple extends Component {\r\n render() {\r\n return (\r\n \r\n
\r\n
{this.props.sectionHeading}
\r\n
\r\n {this.props.children}\r\n
\r\n )\r\n }\r\n}\r\n","import React, { Component } from 'react'\r\n\r\nexport default class ExampleWrapperSeamless extends Component {\r\n render() {\r\n return (\r\n
\r\n
{this.props.sectionHeading}
\r\n
{this.props.children}
\r\n
\r\n )\r\n }\r\n}\r\n","import React, { Component } from 'react'\r\n\r\nexport default class ExampleWrapperContainer extends Component {\r\n render() {\r\n return (\r\n
\r\n
\r\n
{this.props.sectionHeading}
\r\n {this.props.children}\r\n
\r\n
\r\n )\r\n }\r\n}\r\n","import React, { Fragment } from 'react'\r\nimport { useRecoilValue } from 'recoil'\r\nimport clsx from 'clsx'\r\n\r\nimport { themeOptionsState } from 'recoils/atoms'\r\n\r\nimport { Sidebar, Header, Footer, ThemeConfigurator } from '../../layout-components'\r\n\r\nconst LeftSidebar = props => {\r\n const { children, contentBackground } = props\r\n const { sidebarToggle, sidebarFixed, footerFixed } = useRecoilValue(themeOptionsState)\r\n\r\n return (\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n {children}\r\n
\r\n
\r\n {/*
*/}\r\n
\r\n
\r\n
\r\n \r\n
\r\n )\r\n}\r\n\r\nexport default LeftSidebar\r\n","import React, { Fragment } from 'react'\r\n\r\nconst PresentationLayout = props => {\r\n const { children } = props\r\n\r\n return {children}\r\n}\r\n\r\nexport default PresentationLayout\r\n","import React, { Suspense } from 'react'\r\n// import { useRecoilState, useRecoilValue } from 'recoil'\r\n// import { sessionState, themeOptionsState } from 'recoils/atoms'\r\nimport { renderRoutes } from 'react-router-config'\r\nimport { LeftSidebar } from 'layouts/layout-blueprints'\r\nimport { LinearProgress } from '@material-ui/core'\r\n\r\n// import { authState } from 'recoils/selectors'\r\nimport { history } from 'App'\r\n\r\nimport Loading from 'layouts/AdminLayout/Loading'\r\nimport Toast from 'layouts/AdminLayout/Toast'\r\n\r\nimport { checkLoginToken, saveLocalStorage, getLocalStorage } from 'utils/sessionHelper'\r\n\r\nconst CombinedLayout = props => {\r\n if (!checkLoginToken()) {\r\n history.push(`/Login?${getLocalStorage('latest_url') ? `redirectUrl=${getLocalStorage('latest_url')}` : ''}`)\r\n }\r\n\r\n if (history.action === 'PUSH') {\r\n const previousUrl = history?.location?.pathname ?? ''\r\n if (previousUrl && !previousUrl.includes('Login')) {\r\n saveLocalStorage('latest_url', previousUrl)\r\n }\r\n }\r\n\r\n const { route } = props\r\n\r\n // const { layoutStyle } = useRecoilValue(themeOptionsState)\r\n\r\n // if (layoutStyle === 1)\r\n return (\r\n }>\r\n {renderRoutes(route.routes)}\r\n \r\n \r\n \r\n )\r\n\r\n // return (\r\n // <>\r\n // {renderRoutes(route.routes)}\r\n // \r\n // \r\n // \r\n // )\r\n}\r\n\r\nexport default CombinedLayout\r\n","import * as React from 'react'\r\nimport { Skeleton } from '@material-ui/lab'\r\nimport { Card, Grid } from '@material-ui/core'\r\n\r\nconst CardSkeleton = () => {\r\n return (\r\n \r\n \r\n \r\n
\r\n
\r\n

\r\n \r\n

\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default CardSkeleton\r\n","import React, { useState } from 'react'\r\nimport { useRecoilValue } from 'recoil'\r\nimport { TextField, IconButton, Grid, ClickAwayListener, InputAdornment } from '@material-ui/core'\r\nimport DoneIcon from '@material-ui/icons/Done'\r\nimport ClearIcon from '@material-ui/icons/Clear'\r\n\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\nimport { faBible } from '@fortawesome/free-solid-svg-icons'\r\nimport Autocomplete from '@material-ui/lab/Autocomplete'\r\n\r\nimport parse from 'autosuggest-highlight/parse'\r\nimport match from 'autosuggest-highlight/match'\r\n\r\nimport { HolyNameQuery } from 'recoils/selectors'\r\n\r\nconst HolyName = ({ formData, holyname, field, handleSaveHolyName, isEditable, isMoreInfo = false }) => {\r\n const [showAction, setShowAction] = useState(false)\r\n const [localValue, setLocalValue] = useState()\r\n const [oldValue, setOldValue] = useState()\r\n const lstHolyName = useRecoilValue(HolyNameQuery)\r\n\r\n const handleCancel = () => {\r\n if (oldValue) {\r\n isMoreInfo ? formData.setFieldValue(field, oldValue) : formData.setFieldValue(`studentMoreInfo.${field}`, oldValue)\r\n setOldValue(null)\r\n }\r\n setShowAction(false)\r\n }\r\n\r\n const handleOk = () => {\r\n setOldValue(localValue)\r\n handleSaveHolyName(field, localValue, isMoreInfo)\r\n setShowAction(false)\r\n }\r\n\r\n return (\r\n <>\r\n {isEditable && (\r\n <>\r\n \r\n \r\n \r\n item.id === (isMoreInfo ? formData.values[`studentMoreInfo.${field}`] : formData.values[field]))] || lstHolyName[0]}\r\n value={holyname}\r\n onChange={(event, newValue) => {\r\n if (newValue) {\r\n setLocalValue(newValue?.id)\r\n isMoreInfo ? formData.setFieldValue(field, newValue?.id) : formData.setFieldValue(`studentMoreInfo.${field}`, newValue?.id)\r\n setShowAction(true)\r\n }\r\n }}\r\n onOpen={() => {\r\n setOldValue(holyname?.id)\r\n }}\r\n id={`stuholyname-${field}`}\r\n options={lstHolyName}\r\n renderOption={(option, { inputValue }) => {\r\n const matches = match(option.name, inputValue)\r\n const parts = parse(option.name, matches)\r\n return (\r\n
\r\n {parts.map((part, index) => (\r\n \r\n {part.text}\r\n \r\n ))}\r\n
\r\n )\r\n }}\r\n getOptionLabel={option => option?.name}\r\n renderInput={params => {\r\n params = {\r\n ...params,\r\n InputProps: {\r\n ...params.InputProps,\r\n startAdornment: (\r\n \r\n \r\n \r\n )\r\n }\r\n }\r\n return (\r\n \r\n )\r\n }}\r\n />\r\n
\r\n {showAction && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n
\r\n
\r\n \r\n )}\r\n {!isEditable && (\r\n \r\n \r\n \r\n \r\n ),\r\n readOnly: true\r\n }}\r\n />\r\n \r\n )}\r\n \r\n )\r\n}\r\n\r\nexport default HolyName\r\n","import React, {Fragment, useState} from 'react'\r\nimport {Button, List, ListItem, Menu} from '@material-ui/core'\r\nimport {FontAwesomeIcon} from '@fortawesome/react-fontawesome'\r\nimport {faAngleDown, faAngleUp} from '@fortawesome/free-solid-svg-icons'\r\nimport {useRecoilState, useRecoilValue, useSetRecoilState} from 'recoil'\r\nimport {\r\n ChangeGroupModalAtom,\r\n ChangeStudentStatusDialogAtom,\r\n DocumentPreviewDialogAtom,\r\n NewPhoneCallDialogAtom,\r\n StudyComebackDialogAtom\r\n} from 'components/Dialog/recoil'\r\nimport {Roles, TemplateType} from 'app/enums'\r\nimport {GetStudentDetails} from '../recoil'\r\nimport sessionHelper, {isAdmin, isBanDieuHanh} from 'utils/sessionHelper'\r\n\r\nconst StudentFunctions = () => {\r\n const student = useRecoilValue(GetStudentDetails)\r\n\r\n const [anchorEl, setAnchorEl] = useState(null)\r\n\r\n const setPreviewDialog = useSetRecoilState(DocumentPreviewDialogAtom)\r\n const setStudyComebackDialog = useSetRecoilState(StudyComebackDialogAtom)\r\n const setPhoneCallDialog = useSetRecoilState(NewPhoneCallDialogAtom)\r\n const setChangeGroupDialog = useSetRecoilState(ChangeGroupModalAtom)\r\n const [changeStudentStatusDialog, setChangeStudentStatusDialog] = useRecoilState(ChangeStudentStatusDialogAtom)\r\n\r\n const handleClick = event => {\r\n setAnchorEl(event.currentTarget)\r\n }\r\n const handleClose = () => {\r\n setAnchorEl(null)\r\n }\r\n\r\n\r\n const handleShowDownload = () => {\r\n const currentStudentClass = student.studentClass.length ? student.studentClass[student.studentClass.length - 1] : null\r\n\r\n setPreviewDialog({\r\n openPreviewDialog: true,\r\n studentId: student.id,\r\n templateType: TemplateType.Document,\r\n studentClassId: currentStudentClass?.classId ?? null\r\n })\r\n setAnchorEl(null)\r\n }\r\n\r\n const handleStudyComeback = () => {\r\n setStudyComebackDialog({open: true, student: student})\r\n setAnchorEl(null)\r\n }\r\n\r\n const handlePhoneCall = () => {\r\n setPhoneCallDialog({\r\n open: true,\r\n fatherPhone: student?.studentMoreInfo?.stuFatherPhone,\r\n motherPhone: student?.studentMoreInfo?.stuMotherPhone\r\n })\r\n setAnchorEl(null)\r\n }\r\n\r\n const handleChangeGroup = () => {\r\n setChangeGroupDialog({openDialog: true, student: student, closeParent: false})\r\n setAnchorEl(null)\r\n }\r\n\r\n const handleChangeStatus = () => {\r\n setChangeStudentStatusDialog({...changeStudentStatusDialog, open: true, student: student})\r\n setAnchorEl(null)\r\n }\r\n\r\n const isEditable = () => {\r\n if (student) {\r\n const classInfo = student.studentClass.find(sl => sl.class.scholasticId === Number(sessionHelper().scholasticId))?.class\r\n const currentStudentClass = student.studentClass.find(s => s.classId === classInfo?.id)\r\n return (\r\n sessionHelper().roles.includes(Roles.Admin) ||\r\n sessionHelper().roles.includes(Roles.BanDieuHanh) ||\r\n (sessionHelper().roles.includes(Roles.PhanDoanTruong) && Number(sessionHelper().userId) === classInfo?.leaderId) ||\r\n (currentStudentClass?.classId === Number(sessionHelper().classId) && currentStudentClass?.unionId === Number(sessionHelper().unionId))\r\n )\r\n }\r\n\r\n return false\r\n }\r\n\r\n return (\r\n \r\n \r\n\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
Gọi điện thoại phụ huynh
\r\n
\r\n
\r\n
\r\n {isEditable() && (\r\n \r\n
\r\n
\r\n
Chuyển Phân đoàn
\r\n
\r\n
\r\n
\r\n )}\r\n {isEditable() && (\r\n \r\n
\r\n
\r\n
Tải biểu mẫu
\r\n
\r\n
\r\n
\r\n )}\r\n {isEditable() && (\r\n \r\n
\r\n
\r\n
Chuyển trạng thái
\r\n
\r\n
\r\n
\r\n )}\r\n {(isAdmin() || isBanDieuHanh()) && (\r\n \r\n
\r\n
\r\n
Quay lại học
\r\n
\r\n
\r\n
\r\n )}\r\n
\r\n
\r\n \r\n
\r\n )\r\n}\r\n\r\nexport default StudentFunctions\r\n","import React, { useEffect, useState } from 'react'\r\nimport { useRecoilValue, useSetRecoilState, useRecoilState } from 'recoil'\r\nimport { Grid, Avatar, InputAdornment, FormControl, FormGroup, FormControlLabel, Radio, CardContent, TextField } from '@material-ui/core'\r\nimport Yup from 'utils/Yup'\r\nimport { useFormik } from 'formik'\r\nimport moment from 'moment'\r\n\r\nimport Badge from 'components/UI/Badge'\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\nimport {\r\n faBirthdayCake,\r\n faHandHoldingWater,\r\n faHandHolding,\r\n faPrayingHands,\r\n faChurch,\r\n faHands,\r\n faBarcode,\r\n faUserTie,\r\n faPen,\r\n faHome,\r\n faStickyNote,\r\n faMale,\r\n faPhoneAlt,\r\n faFemale\r\n} from '@fortawesome/free-solid-svg-icons'\r\nimport { KeyboardDatePicker } from '@material-ui/pickers'\r\n\r\nimport { StudentStatus, Roles } from 'app/enums'\r\nimport InlineTextField from 'components/Controls/InlineTextField'\r\n// import { PhoneCallDialogAtom } from 'components/Dialog/recoil'\r\n\r\nimport { HolyNameQuery } from 'recoils/selectors'\r\nimport { toastState } from 'recoils/atoms'\r\nimport { doPost } from 'utils/axios'\r\nimport sessionHelper from 'utils/sessionHelper'\r\n\r\nimport HolyName from './HolyName'\r\nimport { GetStudentDetails, StudentStatusAtom } from './recoil'\r\nimport StudentFunctions from './components/StudentFunctions'\r\n\r\nconst StudentInfo = ({ tabValue }) => {\r\n const student = useRecoilValue(GetStudentDetails)\r\n const lstHolyName = useRecoilValue(HolyNameQuery)\r\n\r\n // const setPhoneDialog = useSetRecoilState(PhoneCallDialogAtom)\r\n const studentStatus = useRecoilValue(StudentStatusAtom)\r\n // const reloadSearch = useSetRecoilState(ReloadStuSearch)\r\n\r\n const [toast, setToast] = useRecoilState(toastState)\r\n const [editable, setEditable] = useState(false)\r\n\r\n useEffect(() => {\r\n if (student) {\r\n const classInfo = student.studentClass.find(sl => sl.class.scholasticId === Number(sessionHelper().scholasticId))?.class\r\n const currentStudentClass = student.studentClass.find(s => s.classId === classInfo?.id)\r\n const isEditable =\r\n sessionHelper().roles.includes(Roles.Admin) ||\r\n sessionHelper().roles.includes(Roles.BanDieuHanh) ||\r\n (sessionHelper().roles.includes(Roles.PhanDoanTruong) && Number(sessionHelper().userId) === classInfo?.leaderId) ||\r\n (currentStudentClass?.classId === Number(sessionHelper().classId) && currentStudentClass?.unionId === Number(sessionHelper().unionId))\r\n\r\n setEditable(isEditable)\r\n }\r\n }, [student])\r\n\r\n const validationSchema = Yup.object({\r\n studentMoreInfo: Yup.string().nullable(),\r\n note: Yup.string().nullable()\r\n })\r\n\r\n const stuForm = useFormik({\r\n initialValues: student ? { ...student } : {},\r\n validationSchema: validationSchema,\r\n validateOnChange: true,\r\n validateOnMount: true,\r\n enableReinitialize: true\r\n })\r\n\r\n useEffect(() => {\r\n if (stuForm && studentStatus) stuForm.setFieldValue('status', studentStatus)\r\n }, [studentStatus])\r\n\r\n const DatePicker_Props = (name, label, cusIcon) => {\r\n const { values, errors, touched, handleBlur, handleChange } = stuForm\r\n return {\r\n name,\r\n label,\r\n fullWidth: true,\r\n inputVariant: 'outlined',\r\n error: errors[name] && touched[name],\r\n helperText: errors[name] && touched[name] && errors[name],\r\n InputLabelProps: { shrink: true },\r\n format: 'dd/MM/yyyy',\r\n value: values[name] ?? null,\r\n // autoOk: true,\r\n onBlur: handleBlur,\r\n onChange: handleChange,\r\n KeyboardButtonProps: {\r\n 'aria-label': 'change date'\r\n },\r\n readOnly: !editable,\r\n InputProps: {\r\n startAdornment: (\r\n \r\n \r\n \r\n ),\r\n readOnly: !editable\r\n }\r\n }\r\n }\r\n\r\n // const handleClickCall = (e, phoneNo) => {\r\n // e.preventDefault()\r\n // if (phoneNo) {\r\n // setPhoneDialog({ phoneCallDialog: true, phoneNo: phoneNo })\r\n // }\r\n // }\r\n\r\n const handleSaveNotLoading = async (field, newValue, isMoreInfo = false) => {\r\n let val = stuForm.values\r\n\r\n if (isMoreInfo) {\r\n stuForm.setFieldValue(`studentMoreInfo.${field}`, newValue)\r\n val = {\r\n ...val,\r\n userFullName: `${sessionHelper().firstName} ${sessionHelper().lastName}`,\r\n isIncludeMoreInfo: true,\r\n studentMoreInfo: { ...val.studentMoreInfo, [field]: newValue }\r\n }\r\n } else {\r\n stuForm.setFieldValue(field, newValue)\r\n val = { ...val, [field]: newValue, userFullName: `${sessionHelper().firstName} ${sessionHelper().lastName}` }\r\n }\r\n try {\r\n var res = await doPost(`student/updateStudent`, val)\r\n if (res && res.data.success) {\r\n setToast({ ...toast, open: true, message: res.data.message, type: 'success' })\r\n // reloadSearch(old => old + 1)\r\n }\r\n } catch (err) {\r\n setToast({ ...toast, open: true, message: err.message, type: 'error' })\r\n }\r\n }\r\n\r\n const handleDateChange = (field, date, isMoreInfo = false) => {\r\n try {\r\n if (date === 'Invalid date' || date === 'Invalid Date') return\r\n if (moment(date).format('YYYY-MM-DD') === 'Invalid date' && date) return\r\n handleSaveNotLoading(field, isMoreInfo ? moment(date).format('YYYY-MM-DD') : date, isMoreInfo)\r\n } catch (err) {\r\n return\r\n }\r\n }\r\n\r\n const handleCheckChange = (field, newVal) => {\r\n try {\r\n handleSaveNotLoading(field, newVal)\r\n } catch (err) {\r\n return\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n {tabValue === 0 && student && (\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n {`${stuForm.values?.stuFirstName?.substring(0, 1) ?? ''}${stuForm.values?.stuLastName?.substring(0, 1) ?? ''}`}\r\n \r\n }\r\n />\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n ),\r\n readOnly: true\r\n }}\r\n value={stuForm.values['stuCode'] || ''}\r\n />\r\n \r\n item.id === stuForm.values['stuHolyId'])] || lstHolyName[0]}\r\n field=\"stuHolyId\"\r\n handleSaveHolyName={handleSaveNotLoading}\r\n isEditable={editable}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n handleDateChange('stuDob', date)} />\r\n \r\n \r\n \r\n \r\n handleCheckChange('stuGender', e.target.checked)}\r\n checked={stuForm.values['stuGender'] ? true : false}\r\n control={}\r\n label=\"Nam\"\r\n labelPlacement=\"end\"\r\n readOnly={!editable}\r\n />\r\n handleCheckChange('stuGender', !e.target.checked)}\r\n checked={!stuForm.values['stuGender'] ? true : false}\r\n control={}\r\n label=\"Nữ\"\r\n labelPlacement=\"end\"\r\n />\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n handleDateChange('stuBaptismDate', date, true)}\r\n />\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n handleDateChange('stuEucharistDate', date, true)}\r\n />\r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n handleDateChange('stuConfirmationDate', date, true)}\r\n />\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n item.id === stuForm.values['studentMoreInfo']?.stuFatherHolyId)] || lstHolyName[0]}\r\n field=\"stuFatherHolyId\"\r\n handleSaveHolyName={handleSaveNotLoading}\r\n isMoreInfo={true}\r\n isEditable={editable}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n item.id === stuForm.values['studentMoreInfo']?.stuMotherHolyId)] || lstHolyName[0]}\r\n field=\"stuMotherHolyId\"\r\n handleSaveHolyName={handleSaveNotLoading}\r\n isMoreInfo={true}\r\n isEditable={editable}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n )}\r\n {tabValue === 0 && !student &&
Chưa có thông tin Đoàn sinh.
}\r\n \r\n )\r\n}\r\n\r\nexport default StudentInfo\r\n","import React from 'react'\r\nimport { ScoreFormTitle } from 'app/enums'\r\n\r\nexport default function ScoreHeader({ scoreLabels }) {\r\n return (\r\n <>\r\n {scoreLabels.map((l, index) => (\r\n \r\n {ScoreFormTitle[l.Label]}\r\n \r\n ))}\r\n \r\n )\r\n}\r\n","import React, { Fragment } from 'react'\r\n\r\nexport default function ScoreBody({ semesterData, headerLength }) {\r\n if (!semesterData) return \r\n\r\n const scoreFormData = semesterData.scoreForm && JSON.parse(semesterData.scoreForm)\r\n\r\n return (\r\n \r\n {scoreFormData ? (\r\n scoreFormData.map((d, index) => (\r\n \r\n {d.Value}\r\n \r\n ))\r\n ) : (\r\n \r\n {semesterData?.oldTest}\r\n {semesterData?.fifteenTest}\r\n {semesterData?.lessonTest}\r\n {semesterData?.semesterTest}\r\n \r\n )}\r\n {semesterData?.average}\r\n {semesterData?.morality}\r\n {semesterData?.ranking}\r\n \r\n )\r\n}\r\n","import React, { Fragment, useEffect, useState } from 'react'\r\nimport { Grid, CardContent, Tooltip, Card, IconButton, Divider, makeStyles } from '@material-ui/core'\r\nimport Typography from '@material-ui/core/Typography'\r\nimport Badge from 'components/UI/Badge'\r\nimport { orderBy } from 'lodash'\r\n\r\nimport { HolyNameQuery } from 'recoils/selectors'\r\nimport { useRecoilValue, useSetRecoilState } from 'recoil'\r\n\r\nimport { GetStudentDetails } from './recoil'\r\n\r\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore'\r\nimport ExpandLessIcon from '@material-ui/icons/ExpandLess'\r\nimport { UserStatus } from 'app/enums'\r\nimport { nanoid } from 'nanoid'\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\nimport { faPhoneAlt } from '@fortawesome/free-solid-svg-icons'\r\nimport { PhoneCallDialogAtom } from 'components/Dialog/recoil'\r\nimport ScoreHeader from './ScoreHeader'\r\nimport ScoreBody from './ScoreBody'\r\n\r\nconst useStyle = makeStyles({\r\n pinCell: {\r\n position: 'sticky',\r\n left: 0,\r\n backgroundColor: 'white',\r\n zIndex: 1,\r\n\r\n '&::after': {\r\n position: 'absolute',\r\n right: 0,\r\n top: 0,\r\n bottom: 0,\r\n width: '2.5px',\r\n zIndex: 2,\r\n content: '\"\"',\r\n backgroundColor: '#E5E6F5'\r\n }\r\n }\r\n})\r\n\r\nconst StudentScore = ({ tabValue }) => {\r\n const ClassStyle = useStyle()\r\n\r\n const student = useRecoilValue(GetStudentDetails)\r\n const lstHolyName = useRecoilValue(HolyNameQuery)\r\n const [collapse, setCollapse] = useState([])\r\n\r\n const setPhoneDialog = useSetRecoilState(PhoneCallDialogAtom)\r\n\r\n const getHolyName = holyId => {\r\n return lstHolyName?.find(h => h.id === holyId)?.name\r\n }\r\n\r\n const getHeaderScoreLabels = scoreLabels => {\r\n const dynamicLabels = [{ Label: 'FifteenTest' }, { Label: 'FifteenTest' }, { Label: 'LessonTest' }, { Label: 'SemesterTest' }]\r\n\r\n const fixLabels = [{ Label: 'Average' }, { Label: 'Morality' }, { Label: 'Ranking' }]\r\n\r\n const parseLabels = scoreLabels ? JSON.parse(scoreLabels) : null\r\n return (parseLabels || dynamicLabels).concat(fixLabels)\r\n }\r\n\r\n const handleClickCollapse = sectionId => {\r\n collapse.some(item => item === sectionId) ? setCollapse(collapse.filter(i => i !== sectionId)) : setCollapse([...collapse, sectionId])\r\n }\r\n\r\n const handleClickCall = phoneNo => {\r\n if (phoneNo && !phoneNo.includes('null')) {\r\n setPhoneDialog({ phoneCallDialog: true, phoneNo: phoneNo })\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n if (student) {\r\n setCollapse([`${student.id}-0`])\r\n }\r\n }, [student])\r\n\r\n if (tabValue === 1 && student) {\r\n return (\r\n
\r\n {orderBy(student?.studentClass, ['classId'], ['desc']).map((sl, index) => {\r\n const schoolYear = sl.class?.scholastic\r\n const leader = sl?.class?.leader\r\n const key = `${sl.studentId}-${index}`\r\n const groupInfo = sl?.class?.group\r\n const sOne = student.semesterOne?.find(s => s.scholasticId === sl.class?.scholasticId)\r\n const headerScoreLabels = getHeaderScoreLabels(sOne?.scoreForm)\r\n const sTwo = student.semesterTwo?.find(s => s.scholasticId === sl.class?.scholasticId)\r\n const total = student.total?.find(s => s.scholasticId === sl.class?.scholasticId)\r\n\r\n return (\r\n \r\n \r\n
handleClickCollapse(key)} style={{ cursor: 'pointer' }}>\r\n
\r\n

Năm học: {`${schoolYear?.startYear} - ${schoolYear?.endYear}`}

\r\n
\r\n \r\n
\r\n item === key) ? 'Thu lại' : 'Mở rộng'}>\r\n \r\n {!collapse.some(item => item === key) ? : }\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n )\r\n })}\r\n
\r\n )\r\n }\r\n if (tabValue === 1 && !student) return
Đoàn sinh đã chọn chưa có quá trình học.
\r\n return null\r\n}\r\nexport default StudentScore\r\n","import React, { useState, Fragment, useEffect } from 'react'\r\nimport { Grid, Card, AppBar, Tabs, Tab } from '@material-ui/core'\r\nimport { useSetRecoilState } from 'recoil'\r\nimport { useParams } from 'react-router-dom'\r\n\r\nimport { ChangeGroupModal, ChangeStudentStatusDialog, DocumentPreviewDialog, PhoneCallDialog, StudyComebackDialog } from 'components/Dialog'\r\n\r\nimport { SearchStudentId } from './recoil'\r\nimport StudentInfo from './StudentInfo'\r\nimport StudentScore from './StudentScore'\r\n\r\nconst FindStudents = () => {\r\n const { stuId } = useParams()\r\n\r\n const setStudentId = useSetRecoilState(SearchStudentId)\r\n\r\n const [value, setValue] = useState(0)\r\n\r\n const handleChange = (event, newValue) => {\r\n setValue(newValue)\r\n }\r\n\r\n useEffect(() => {\r\n if (stuId) setStudentId(stuId)\r\n }, [stuId, setStudentId])\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n )\r\n}\r\n\r\nexport default FindStudents\r\n","import { atom, selector } from 'recoil'\r\n\r\nimport sessionHelper from 'utils/sessionHelper'\r\nimport { doGet } from 'utils/axios'\r\nimport FileUtils from 'utils/FileUtils'\r\n\r\nimport { storageState } from 'recoils/firebase'\r\n\r\nexport const ReloadUser = atom({\r\n key: 'ReloadUser',\r\n default: 1\r\n})\r\n\r\nexport const OpenEditAvatar = atom({ key: 'OpenEditAvatar', default: false })\r\n\r\nexport const ReloadCoverImage = atom({\r\n key: 'ReloadCoverImage',\r\n default: 1\r\n})\r\n\r\nexport const EditCoverImage = atom({\r\n key: 'EditCoverImage',\r\n default: false\r\n})\r\n\r\nexport const UserQuery = selector({\r\n key: 'UserQuery',\r\n get: async ({ get }) => {\r\n get(ReloadUser)\r\n\r\n const res = await doGet(`user/getUser`, { userId: sessionHelper().userId })\r\n if (res && res.data.success) {\r\n return res.data.data\r\n }\r\n }\r\n})\r\n\r\nexport const CoverImageQuery = selector({\r\n key: 'CoverImageQuery',\r\n get: async ({ get }) => {\r\n get(ReloadCoverImage)\r\n\r\n const storage = get(storageState)\r\n\r\n const { userId, coverId } = sessionHelper()\r\n\r\n const avatarFiles = await FileUtils.getFiles(storage, `avatars/${userId}`)\r\n const coverImage = avatarFiles.find(img => img.fileName === `${coverId}.png`)\r\n\r\n return coverImage ? coverImage.url : null\r\n }\r\n})\r\n","import React, { useState } from 'react'\r\nimport { useRecoilState, useRecoilValue, useSetRecoilState } from 'recoil'\r\nimport { Modal, Divider, CardContent, CardActions, Grid, Button, Typography, TextField, InputAdornment } from '@material-ui/core'\r\nimport CardOnModal from 'components/CardOnModal'\r\nimport Avatar from 'react-avatar-edit'\r\nimport { loadingState, toastState, reloadUserAvatar } from 'recoils/atoms'\r\n\r\nimport sessionHelper, { setLocalStoreData } from 'utils/sessionHelper'\r\nimport { doPost } from 'utils/axios'\r\nimport { storageState } from 'recoils/firebase'\r\nimport FileUtils from 'utils/FileUtils'\r\n\r\nimport { EditCoverImage, OpenEditAvatar, ReloadCoverImage } from './recoil'\r\nimport { v4 as uuidv4 } from 'uuid'\r\n\r\nconst EditAvatar = () => {\r\n const firebaseStorage = useRecoilValue(storageState)\r\n const isEditCover = useRecoilValue(EditCoverImage)\r\n\r\n const [open, setOpen] = useRecoilState(OpenEditAvatar)\r\n const [toast, setToast] = useRecoilState(toastState)\r\n\r\n const setLoading = useSetRecoilState(loadingState)\r\n const setReloadUserAvatar = useSetRecoilState(reloadUserAvatar)\r\n const setReloadCover = useSetRecoilState(ReloadCoverImage)\r\n\r\n const [preview, setPreview] = useState(null)\r\n const [base64] = useState(null)\r\n const [src, setSrc] = useState(null)\r\n const [file, setFile] = useState(null)\r\n const [isLargeFile, setIsLargeFile] = useState(false)\r\n\r\n const handleClickSave = async e => {\r\n e.preventDefault()\r\n\r\n setLoading(true)\r\n try {\r\n if (!isEditCover) {\r\n const avatarId = uuidv4()\r\n const croppedAvatarId = uuidv4()\r\n\r\n const resUpdate = await doPost(`user/updateAvatar`, {\r\n id: sessionHelper().userId,\r\n croppedAvatarId: croppedAvatarId,\r\n avatarId: avatarId\r\n })\r\n if (resUpdate && resUpdate.data.success) {\r\n setLocalStoreData('croppedAvatarId', croppedAvatarId)\r\n setLocalStoreData('avatarId', avatarId)\r\n\r\n // upload images to firebase storage\r\n await FileUtils.putFile(preview, firebaseStorage, `avatars/${sessionHelper().userId}`, `${croppedAvatarId}.png`, true)\r\n await FileUtils.putFile(src, firebaseStorage, `avatars/${sessionHelper().userId}`, `${avatarId}.png`)\r\n\r\n setToast({ ...toast, open: true, message: resUpdate.data.message, type: 'success' })\r\n setReloadUserAvatar(old => old + 1)\r\n } else {\r\n setToast({ ...toast, open: true, message: resUpdate.data.message, type: 'error' })\r\n }\r\n } else {\r\n const coverId = uuidv4()\r\n\r\n const resUpdate = await doPost(`user/updateCoverImage`, { id: sessionHelper().userId, coverId })\r\n if (resUpdate && resUpdate.data.success) {\r\n setLocalStoreData('coverId', coverId)\r\n\r\n // upload images to firebase storage\r\n await FileUtils.putFile(src, firebaseStorage, `avatars/${sessionHelper().userId}`, `${coverId}.png`)\r\n\r\n setToast({ ...toast, open: true, message: resUpdate.data.message, type: 'success' })\r\n setReloadCover(old => old + 1)\r\n } else {\r\n setToast({ ...toast, open: true, message: resUpdate.data.message, type: 'error' })\r\n }\r\n }\r\n } catch (err) {\r\n setToast({ ...toast, open: true, message: err.message, type: 'error' })\r\n } finally {\r\n setLoading(false)\r\n setIsLargeFile(false)\r\n handleClose()\r\n }\r\n }\r\n\r\n const onClose = () => {\r\n setPreview(null)\r\n }\r\n\r\n const onCrop = preview => {\r\n setPreview(preview)\r\n }\r\n\r\n const onFileLoad = file => {\r\n setSrc(file)\r\n }\r\n\r\n const onBeforeFileLoad = elem => {\r\n if (elem.target.files[0].size > 5120000) {\r\n setIsLargeFile(true)\r\n elem.target.value = ''\r\n } else {\r\n setIsLargeFile(false)\r\n }\r\n }\r\n\r\n const handleClose = () => {\r\n setOpen(false)\r\n setIsLargeFile(false)\r\n setSrc(null)\r\n\r\n if (isEditCover) {\r\n setFile(null)\r\n }\r\n }\r\n\r\n const onFileSelect = e => {\r\n setFile(URL.createObjectURL(e.target.files[0]))\r\n setSrc(e.target.files[0])\r\n }\r\n\r\n return (\r\n \r\n \r\n
\r\n
\r\n

{isEditCover ? 'Cập nhật ảnh bìa' : 'Cập nhật ảnh đại diện'}

\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n {!isEditCover && (\r\n \r\n )}\r\n {isEditCover && (\r\n <>\r\n \r\n \r\n \r\n )\r\n }}\r\n />\r\n {file && \"preview\"}\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {!isLargeFile && Chọn ảnh có dung lượng lớn nhất 5 MB.}\r\n {isLargeFile && (\r\n \r\n Chọn ảnh < 5MB.\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default EditAvatar\r\n","import React from 'react'\r\nimport { useRecoilValue } from 'recoil'\r\nimport { CardContent, Modal, Grid, Divider, IconButton, Tooltip } from '@material-ui/core'\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\nimport { faTimes } from '@fortawesome/free-solid-svg-icons'\r\nimport CardOnModal from 'components/CardOnModal'\r\n\r\nimport noImage from 'assets/images/no_image.jpg'\r\nimport { UserAvatarQuery } from 'recoils/selectors'\r\n\r\nconst ShowImageModal = ({ open, handleClose }) => {\r\n const avatar = useRecoilValue(UserAvatarQuery)\r\n\r\n return (\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \"preview\"\r\n \r\n \r\n \r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default ShowImageModal\r\n","import React, { Suspense, useState, useRef, useEffect } from 'react'\r\nimport {\r\n Card,\r\n CardContent,\r\n Button,\r\n Grid,\r\n TextField,\r\n Divider,\r\n FormControl,\r\n FormGroup,\r\n FormControlLabel,\r\n CardActions,\r\n Badge,\r\n Avatar,\r\n InputAdornment,\r\n IconButton,\r\n Tooltip,\r\n Popper,\r\n Grow,\r\n Paper,\r\n ClickAwayListener,\r\n MenuList,\r\n MenuItem,\r\n Hidden\r\n} from '@material-ui/core'\r\nimport { useRecoilState, useRecoilValue, useSetRecoilState } from 'recoil'\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\nimport { faCamera, faIdBadge } from '@fortawesome/free-solid-svg-icons'\r\nimport Autocomplete from '@material-ui/lab/Autocomplete'\r\nimport { KeyboardDatePicker } from '@material-ui/pickers'\r\n\r\nimport Yup from 'utils/Yup'\r\nimport parse from 'autosuggest-highlight/parse'\r\nimport match from 'autosuggest-highlight/match'\r\nimport { useFormik } from 'formik'\r\nimport moment from 'moment'\r\nimport StringUtils from 'utils/StringUtils'\r\nimport StyledRadio from 'components/UI/StyledRadio'\r\n\r\nimport sessionHelper, { setLocalStoreData, deleteLoginData } from 'utils/sessionHelper'\r\nimport { doPost } from 'utils/axios'\r\n\r\nimport { HolyNameQuery, UserAvatarQuery } from 'recoils/selectors'\r\nimport { toastState, loadingState } from 'recoils/atoms'\r\n\r\nimport { UserQuery, ReloadUser, OpenEditAvatar, EditCoverImage, CoverImageQuery } from './recoil'\r\nimport EditAvatar from './EditAvatar'\r\nimport ShowImageModal from './ShowImageModal'\r\n\r\nimport coverPhoto from 'assets/images/Background.jpg'\r\n\r\nfunction Profile() {\r\n const userInfo = useRecoilValue(UserQuery)\r\n const lstHolyName = useRecoilValue(HolyNameQuery)\r\n const avatar = useRecoilValue(UserAvatarQuery)\r\n const cover = useRecoilValue(CoverImageQuery)\r\n\r\n const setLoading = useSetRecoilState(loadingState)\r\n const setOpen = useSetRecoilState(OpenEditAvatar)\r\n const setReload = useSetRecoilState(ReloadUser)\r\n const setEditCover = useSetRecoilState(EditCoverImage)\r\n\r\n const [toast, setToast] = useRecoilState(toastState)\r\n\r\n const [openAvatar, setOpenAvatar] = useState(false)\r\n const [openPreview, setOpenReview] = useState(false)\r\n\r\n const handleClickSave = async e => {\r\n e.preventDefault()\r\n const val = userForm.values\r\n setLoading(true)\r\n\r\n try {\r\n const res = await doPost(`user/update`, val)\r\n if (res && res.data.success) {\r\n setLoading(false)\r\n setToast({ ...toast, open: true, message: res.data.message, type: 'success' })\r\n setReload(reload => reload + 1)\r\n updateLocalState()\r\n\r\n if (sessionHelper().isFirstLogin) {\r\n deleteLoginData()\r\n window.location.href = '/Login'\r\n }\r\n }\r\n } catch (err) {\r\n setToast({ ...toast, open: true, message: err.message, type: 'error' })\r\n }\r\n }\r\n\r\n const updateLocalState = () => {\r\n setLocalStoreData('holyNameId', userForm.values['holyNameId'])\r\n setLocalStoreData('firstName', userForm.values['firstName'])\r\n setLocalStoreData('lastName', userForm.values['lastName'])\r\n }\r\n\r\n const validationSchema = Yup.object({\r\n firstName: Yup.string().required('Không để trống').max(100, 'Không nhập nhiều hơn 100 ký tự.'),\r\n lastName: Yup.string().required('Không để trống').max(50, 'Không nhập nhiều hơn 50 ký tự.'),\r\n phone: Yup.string().max(10, 'Không nhập nhiều hơn 10 ký tự.').nullable(),\r\n address: Yup.string().max(150, 'Không nhập nhiều hơn 150 ký tự.').nullable()\r\n })\r\n\r\n const userForm = useFormik({\r\n initialValues: { ...userInfo } || {},\r\n validationSchema: validationSchema,\r\n validateOnChange: true,\r\n validateOnMount: true,\r\n enableReinitialize: true,\r\n initialErrors: { firstName: 'Required' }\r\n })\r\n\r\n const TextField_Props = (name, label, maxLength) => {\r\n const { values, errors, touched, handleBlur, handleChange } = userForm\r\n return {\r\n name,\r\n label,\r\n fullWidth: true,\r\n variant: 'outlined',\r\n error: errors[name] && touched[name],\r\n helperText: errors[name] && touched[name] && errors[name],\r\n InputLabelProps: { shrink: true },\r\n value: values[name] ?? '',\r\n onBlur: handleBlur,\r\n onChange: handleChange,\r\n inputProps: {\r\n maxLength: maxLength\r\n }\r\n }\r\n }\r\n\r\n const DatePicker_Props = (name, label, format) => {\r\n const { values, errors, touched, handleBlur, handleChange } = userForm\r\n return {\r\n name,\r\n label,\r\n fullWidth: true,\r\n inputVariant: 'outlined',\r\n error: errors[name] && touched[name],\r\n helperText: errors[name] && touched[name] && errors[name],\r\n InputLabelProps: { shrink: true },\r\n format: format,\r\n value: values[name] ?? null,\r\n autoOk: true,\r\n onBlur: handleBlur,\r\n onChange: handleChange,\r\n KeyboardButtonProps: {\r\n 'aria-label': 'change date'\r\n }\r\n }\r\n }\r\n\r\n const handleChangeInput = (val, name) => {\r\n userForm.setFieldValue(name, StringUtils.capitalize(val))\r\n }\r\n\r\n const handleChangeDate = (date, name, isCheckFuture) => {\r\n if (isCheckFuture && moment(date).isBefore(new Date())) {\r\n userForm.setFieldValue(name, date)\r\n } else {\r\n userForm.setFieldValue(name, date)\r\n }\r\n }\r\n\r\n const handleAvatarClick = () => {\r\n setOpenAvatar(prevAvatar => !prevAvatar)\r\n }\r\n\r\n const handleAvatarClose = event => {\r\n setOpenAvatar(false)\r\n }\r\n\r\n const anchorAvRef = useRef(null)\r\n const prevAvatarOpen = useRef(openAvatar)\r\n\r\n useEffect(() => {\r\n if (prevAvatarOpen.current === true && openAvatar === false) {\r\n anchorAvRef.current.focus()\r\n }\r\n prevAvatarOpen.current = openAvatar\r\n }, [openAvatar])\r\n\r\n const handleEditCoverClick = () => {\r\n setEditCover(true)\r\n setOpen(true)\r\n }\r\n\r\n return (\r\n Đang tải thông tin cá nhân ...}>\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n \"\"\r\n
\r\n
\r\n
\r\n \r\n {\r\n setEditCover(false)\r\n setOpen(true)\r\n }}\r\n style={{ backgroundColor: 'rgb(232 235 239)' }}>\r\n \r\n \r\n \r\n }>\r\n \r\n {`${userInfo.firstName?.substring(0, 1)}${userInfo.lastName?.substring(0, 1)}`}\r\n \r\n \r\n
\r\n \r\n {({ TransitionProps }) => (\r\n \r\n \r\n \r\n \r\n {\r\n setOpenReview(true)\r\n handleAvatarClose(e)\r\n }}>\r\n \r\n \r\n \r\n \r\n \r\n Xem ảnh đại diện\r\n \r\n \r\n \r\n {\r\n setEditCover(false)\r\n setOpen(true)\r\n handleAvatarClose(e)\r\n }}>\r\n \r\n \r\n \r\n \r\n \r\n Cập nhật ảnh đại diện\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n

\r\n {lstHolyName.find(i => i.id === userInfo.holyNameId)?.name} {userInfo.firstName} {userInfo.lastName}\r\n

\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n
\r\n
\r\n

Thông tin cá nhân

\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n i.id === userForm.values['holyNameId'])}\r\n onChange={(event, newValue) => {\r\n if (newValue) userForm.setFieldValue('holyNameId', newValue?.id)\r\n }}\r\n disableClearable\r\n id=\"userHolyId\"\r\n options={lstHolyName}\r\n renderOption={(option, { inputValue }) => {\r\n const matches = match(option.name, inputValue)\r\n const parts = parse(option.name, matches)\r\n return (\r\n
\r\n {parts.map((part, index) => (\r\n \r\n {part.text}\r\n \r\n ))}\r\n
\r\n )\r\n }}\r\n getOptionLabel={option => option.name}\r\n renderInput={params => (\r\n \r\n )}\r\n />\r\n
\r\n \r\n handleChangeInput(e.target.value, 'firstName')} />\r\n \r\n \r\n handleChangeInput(e.target.value, 'lastName')} />\r\n \r\n \r\n \r\n handleChangeDate(date, 'dob', true)} disableFuture />\r\n \r\n \r\n handleChangeDate(date, 'patronDate')} />\r\n \r\n \r\n \r\n \r\n userForm.setFieldValue('gender', e.target.checked)}\r\n checked={userForm.values['gender']}\r\n control={}\r\n label=\"Nam\"\r\n labelPlacement=\"end\"\r\n />\r\n userForm.setFieldValue('gender', !e.target.checked)}\r\n checked={!userForm.values['gender']}\r\n control={}\r\n label=\"Nữ\"\r\n labelPlacement=\"end\"\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n handleChangeDate(date, 'baptismDate')} />\r\n \r\n \r\n handleChangeDate(date, 'eucharistDate')} />\r\n \r\n \r\n handleChangeDate(date, 'confirmationDate')} />\r\n \r\n {/* \r\n handleChangeDate(date, 'dob')} />\r\n \r\n \r\n handleChangeDate(date, 'dob')} />\r\n */}\r\n \r\n handleChangeDate(date, 'joinedYear')} views={['year']} />\r\n \r\n \r\n \r\n +84\r\n }}\r\n />\r\n \r\n \r\n handleChangeInput(e.target.value, 'address')} type=\"text\" />\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n Đang tải thông tin . . .}>\r\n \r\n setOpenReview(!openPreview)} />\r\n \r\n
\r\n )\r\n}\r\n\r\nexport default Profile\r\n","import { atom, selector } from 'recoil'\r\nimport _ from 'lodash'\r\n\r\n// utils\r\nimport { doGet } from 'utils/axios'\r\nimport sessionHelper from 'utils/sessionHelper'\r\n\r\n// enum\r\nimport { Roles, TemplateType } from 'app/enums'\r\n\r\nexport const groupUnionSelectedAtom = atom({\r\n key: 'groupUnionSelectedAtom',\r\n default: undefined\r\n})\r\n\r\nexport const groupStudentIdSelectedAtom = atom({\r\n key: 'groupStudentIdSelectedAtom',\r\n default: []\r\n})\r\n\r\nexport const checkAllIdsSelectedAtom = atom({\r\n key: 'checkAllIdsSelectedAtom',\r\n default: []\r\n})\r\n\r\nexport const documentTemplateQuery = selector({\r\n key: 'documentTemplateQuery',\r\n get: async () => {\r\n const userRoles = sessionHelper().roles\r\n const classId = sessionHelper().classId\r\n\r\n const res = await doGet(`template/get`)\r\n\r\n if (res && res.data.success) {\r\n let result = []\r\n const { data } = res.data\r\n\r\n data.forEach(item => {\r\n if (item.isActive) {\r\n userRoles.forEach(r => {\r\n if (item.roleTemplate & r) {\r\n result.push(item)\r\n\r\n if (r === Roles.HuynhTruong && !classId) {\r\n delete result[result.length - 1]\r\n }\r\n }\r\n })\r\n }\r\n })\r\n\r\n result = _.uniqBy(result, 'id').filter(temp => temp?.templateType === TemplateType.Document)\r\n\r\n return _.orderBy(result, ['name'], ['asc'])\r\n }\r\n return []\r\n }\r\n})\r\n\r\nexport const unionInGroupQuery = selector({\r\n key: 'unionInGroupQuery',\r\n get: async () => {\r\n const userId = sessionHelper().userId\r\n const scholasticId = sessionHelper().scholasticId\r\n\r\n let res = await doGet(`assignment/getListUnionInGroup`, { scholasticId: scholasticId, userId: userId })\r\n\r\n if (res && res.data.success) {\r\n return _.orderBy(res.data.data, ['unionCode'], ['asc'])\r\n }\r\n return []\r\n }\r\n})\r\n\r\nexport const studentsInUnionQuery = selector({\r\n key: 'studentsInUnionQuery',\r\n get: async ({ get }) => {\r\n let unionIdSelected = get(groupUnionSelectedAtom)\r\n\r\n // Trường hợp không phải Phân đoàn trưởng\r\n if (!unionIdSelected) {\r\n unionIdSelected = sessionHelper().unionId\r\n }\r\n const classId = sessionHelper().classId\r\n\r\n const res = await doGet(`student/getStudentInUnion`, { classId, unionId: unionIdSelected })\r\n\r\n if (res && res.data.success) {\r\n const { data } = res.data\r\n\r\n const distinctTeam = [...new Set(data?.map(x => x.studentClass.find(sc => Number(sc.classId) === Number(classId))?.team))]\r\n const lstStudent = []\r\n\r\n for (const t of distinctTeam) {\r\n lstStudent.push({ team: t, students: [] })\r\n }\r\n\r\n for (const student of data) {\r\n lstStudent.forEach(t => {\r\n if (t.team === student.studentClass.find(sc => Number(sc.classId) === Number(classId)).team) {\r\n if (student.studentClass.find(sc => Number(sc.classId) === Number(classId)).isTeamLead) {\r\n t.students.push({ ...student, isTeamLead: true })\r\n } else {\r\n t.students.push({ ...student, isTeamLead: false })\r\n }\r\n }\r\n })\r\n }\r\n\r\n return _.orderBy(lstStudent, ['team'], ['asc'])\r\n }\r\n\r\n return []\r\n }\r\n})\r\n","import React, { useState } from 'react'\r\n\r\nimport { useRecoilState, useRecoilValue, useSetRecoilState } from 'recoil'\r\nimport { documentTemplateQuery, groupStudentIdSelectedAtom, groupUnionSelectedAtom, checkAllIdsSelectedAtom } from 'pages/Form/recoil'\r\n\r\nimport { loadingState, toastState } from 'recoils/atoms'\r\n\r\nimport { Button, Grid, MenuItem, TextField } from '@material-ui/core'\r\nimport GetAppRoundedIcon from '@material-ui/icons/GetAppRounded'\r\nimport sessionHelper from 'utils/sessionHelper'\r\nimport { doDownload } from 'utils/axios'\r\n\r\nconst buttonStyle = { fontSize: '1.5em', padding: '0.4em 0' }\r\nconst inputGrid = { xs: 12, sm: 8, md: 9 }\r\nconst buttonGrid = { xs: 12, sm: 4, md: 3 }\r\n\r\nexport default function () {\r\n const templates = useRecoilValue(documentTemplateQuery)\r\n const unionSelected = useRecoilValue(groupUnionSelectedAtom)\r\n\r\n const [selectedTemplate, setSelectedTemplate] = useState()\r\n const [toast, setToast] = useRecoilState(toastState)\r\n const setLoading = useSetRecoilState(loadingState)\r\n const setCheckAll = useSetRecoilState(checkAllIdsSelectedAtom)\r\n const [selectedIds, setSelectedIds] = useRecoilState(groupStudentIdSelectedAtom)\r\n\r\n const documentList = () => {\r\n return templates.length > 0 ? (\r\n templates.map(item => (\r\n \r\n {item.name}\r\n \r\n ))\r\n ) : (\r\n Không có biểu mẫu phù hợp\r\n )\r\n }\r\n\r\n const handleDownload = async () => {\r\n setLoading(true)\r\n\r\n try {\r\n const data = {\r\n StudentId: selectedIds,\r\n ClassId: sessionHelper().classId,\r\n ScholasticId: sessionHelper().scholasticId,\r\n UserId: sessionHelper().userId,\r\n TemplateId: selectedTemplate,\r\n IsPreview: false,\r\n UnionId: unionSelected\r\n }\r\n\r\n await doDownload('download/downloadPreviewForm', data)\r\n setLoading(false)\r\n } catch (error) {\r\n setToast({ ...toast, open: true, message: error.message, type: 'error' })\r\n } finally {\r\n setSelectedIds([])\r\n setCheckAll([])\r\n }\r\n }\r\n\r\n const checkDisabled = () => {\r\n return !(selectedTemplate && (selectedIds.length > 0 || unionSelected))\r\n }\r\n\r\n return (\r\n \r\n \r\n setSelectedTemplate(e.target['value'])}>\r\n {documentList()}\r\n \r\n \r\n \r\n \r\n }\r\n style={buttonStyle}\r\n onClick={handleDownload}>\r\n Tải xuống\r\n \r\n \r\n \r\n \r\n )\r\n}\r\n","import React from 'react'\r\nimport { Grid, Card, IconButton, Tooltip, Divider, Table } from '@material-ui/core'\r\n\r\n//Icons\r\nimport ExpandLessIcon from '@material-ui/icons/ExpandLess'\r\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore'\r\nimport StyledCheckbox from 'components/UI/StyledCheckbox'\r\nimport { useRecoilState } from 'recoil'\r\nimport { groupStudentIdSelectedAtom, checkAllIdsSelectedAtom } from '../recoil'\r\nimport _ from 'lodash'\r\n\r\nexport default function ({ item }) {\r\n const [collapse, setCollapse] = React.useState(true)\r\n\r\n const [selectedIds, setSelectedIds] = useRecoilState(groupStudentIdSelectedAtom)\r\n const [selectedCheckAll, setSelectedCheckAll] = useRecoilState(checkAllIdsSelectedAtom)\r\n\r\n const addCheckAllBox = () => {\r\n setSelectedCheckAll([...selectedCheckAll, item.team])\r\n }\r\n\r\n const removeCheckAllBox = () => {\r\n setSelectedCheckAll(selectedCheckAll.filter(i => i !== item.team))\r\n }\r\n\r\n const countStudentsInTeamSelected = listIds => {\r\n let quantity = 0\r\n for (let id of listIds) {\r\n quantity += item.students.some(i => i.id === id) ? 1 : 0\r\n }\r\n\r\n return quantity\r\n }\r\n\r\n const handleClickRow = e => {\r\n const val = e.target.value\r\n\r\n const isChecked = e.target.checked\r\n if (isChecked) {\r\n const listIds = [...selectedIds, val]\r\n countStudentsInTeamSelected(listIds) === item.students.length ? addCheckAllBox() : removeCheckAllBox()\r\n setSelectedIds(listIds)\r\n } else {\r\n setSelectedIds(selectedIds.filter(i => i !== val))\r\n removeCheckAllBox()\r\n }\r\n }\r\n\r\n const handleCheckAll = e => {\r\n const lstId = item.students.map(s => s.id)\r\n\r\n if (e.target.checked) {\r\n const res = _.union(selectedIds, lstId)\r\n setSelectedIds(res)\r\n addCheckAllBox()\r\n } else {\r\n setSelectedIds(selectedIds.filter(i => !lstId.includes(i)))\r\n removeCheckAllBox()\r\n }\r\n }\r\n\r\n if (!item) return <>\r\n\r\n return (\r\n \r\n
setCollapse(!collapse)} style={{ cursor: 'pointer' }}>\r\n
\r\n {item.team === 0 &&

Chưa phân đội - {item.students?.length}

}\r\n {item.team !== 0 && (\r\n

\r\n Đội: {item.team} - {item.students?.length}\r\n

\r\n )}\r\n
\r\n \r\n
\r\n \r\n \r\n {collapse ? : }\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n )\r\n}\r\n","import React, { Fragment } from 'react'\r\nimport { useRecoilValue } from 'recoil'\r\nimport { studentsInUnionQuery } from '../recoil'\r\nimport UnionSelectedStudentItem from './UnionSelectedStudentItem'\r\n\r\n\r\nexport default function() {\r\n const unionStudentInfo = useRecoilValue(studentsInUnionQuery)\r\n\r\n if (unionStudentInfo && unionStudentInfo.length === 0) return <>\r\n \r\n return \r\n {unionStudentInfo.map(item => )}\r\n \r\n}\r\n","import React, { Fragment, Suspense } from 'react'\r\nimport { Button, ButtonGroup, CardContent, Hidden, LinearProgress, Typography } from '@material-ui/core'\r\nimport Slider from 'react-slick'\r\nimport { useRecoilState, useRecoilValue, useSetRecoilState } from 'recoil'\r\nimport { groupUnionSelectedAtom, unionInGroupQuery } from '../recoil'\r\nimport { useTheme } from '@material-ui/core/styles'\r\nimport useMediaQuery from '@material-ui/core/useMediaQuery'\r\nimport UnionSelectedStudent from './UnionSelectedStudent'\r\n\r\nexport default function() {\r\n const theme = useTheme()\r\n const isMobile = useMediaQuery(theme.breakpoints.down('sm'))\r\n\r\n const unionInGroup = useRecoilValue(unionInGroupQuery)\r\n const [selectedUnion, setSelectedUnion] = useRecoilState(groupUnionSelectedAtom)\r\n\r\n const handleClickUnion = (unionId) => {\r\n setSelectedUnion(unionId)\r\n }\r\n\r\n const settings = {\r\n dots: false,\r\n infinite: false,\r\n speed: 500,\r\n slidesToShow: isMobile ? 2.5 : 5.5,\r\n slidesToScroll: isMobile ? 2 : 3,\r\n nextArrow: <>,\r\n prevArrow: <>\r\n }\r\n\r\n return \r\n \r\n \r\n {unionInGroup?.map(union => (\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n {unionInGroup?.map(union => (\r\n handleClickUnion(union.unionId)} key={union.unionId}>\r\n \r\n Chi đoàn {union.unionCode}\r\n \r\n \r\n ))}\r\n \r\n \r\n\r\n {selectedUnion &&\r\n }>\r\n \r\n \r\n }\r\n\r\n \r\n}\r\n","import React, { Fragment, Suspense } from 'react'\r\nimport DocumentList from './components/DocumentList'\r\nimport GroupSelectedStudent from './components/GroupSelectedStudent'\r\nimport sessionHelper from 'utils/sessionHelper'\r\nimport { Roles } from 'app/enums'\r\nimport { LinearProgress } from '@material-ui/core'\r\nimport UnionSelectedStudent from './components/UnionSelectedStudent'\r\n\r\nexport default function FormDownload() {\r\n const roles = sessionHelper().roles\r\n // console.log(roles)\r\n const render = () => {\r\n const isLeadOfGroup = roles.includes(Roles.PhanDoanTruong)\r\n if (isLeadOfGroup) {\r\n return \r\n } else {\r\n return \r\n }\r\n }\r\n\r\n return (\r\n \r\n Đang tải danh sách biểu mẫu...}>\r\n \r\n \r\n
\r\n\r\n }>{render()}\r\n
\r\n )\r\n}\r\n","import { atom, selector } from 'recoil'\r\nimport _ from 'lodash'\r\nimport slugify from 'slugify'\r\n\r\nimport { doGet } from 'utils/axios'\r\n\r\nexport const NewStudentSearchKey = atom({\r\n key: 'NewStudentSearchKey',\r\n default: undefined\r\n})\r\n\r\nexport const ReloadNewStudent = atom({\r\n key: 'ReloadNewStudent',\r\n default: 0\r\n})\r\n\r\nexport const NewStudentSelected = atom({\r\n key: 'NewStudentSelected',\r\n default: undefined\r\n})\r\n\r\nexport const IsEditNewStu = atom({\r\n key: 'IsEditNewStu',\r\n default: false\r\n})\r\n\r\nexport const NewStudentQuery = selector({\r\n key: 'NewStudentQuery',\r\n get: async ({ get }) => {\r\n get(ReloadNewStudent)\r\n const filter = get(NewStudentSearchKey)\r\n\r\n var res = await doGet(`student/getNewStudent`)\r\n\r\n if (res && res.data.success) {\r\n let result = null\r\n\r\n if (filter) {\r\n let keys = slugify(filter, { lower: true })\r\n result = _.filter(res.data.data, item => slugify(`${item.stuFirstName}-${item.stuLastName}`, { lower: true }).includes(keys))\r\n } else {\r\n result = res.data.data\r\n }\r\n\r\n return _.chain(_.orderBy(result, ['stuLastName'], ['asc']))\r\n .groupBy('registerMode')\r\n .map((value, key) => ({ mode: key, students: value }))\r\n .value()\r\n }\r\n\r\n return null\r\n }\r\n})\r\n","import React, { Suspense, useEffect, useState } from 'react'\r\nimport { useRecoilValue, useRecoilState, useSetRecoilState } from 'recoil'\r\nimport { Card, CardContent, Grid, TextField, FormControl, FormControlLabel, FormGroup, MenuItem, CardActions, Button, Divider } from '@material-ui/core'\r\n\r\n// 3party\r\nimport { get } from 'lodash'\r\nimport Yup from 'utils/Yup'\r\nimport { useFormik } from 'formik'\r\nimport sessionHelper from 'utils/sessionHelper'\r\nimport { doPost } from 'utils/axios'\r\n\r\n// External\r\nimport StyledRadio from 'components/UI/StyledRadio'\r\nimport { ShortTextField, AutocompleteTextField, KeyboardDateField } from 'components/Controls'\r\nimport { HolyNameQuery, BranchQuery, UnionRegisterQuery } from 'recoils/selectors'\r\nimport { loadingState, toastState } from 'recoils/atoms'\r\n\r\n// Internal\r\nimport { ReloadNewStudent, NewStudentSelected, IsEditNewStu } from './recoil'\r\n\r\nconst initValue = {\r\n stuHolyId: 1,\r\n stuFatherHolyId: 1,\r\n stuMotherHolyId: 1,\r\n isIncludeMoreInfo: true,\r\n stuGender: true\r\n}\r\n\r\nconst RegisterForm = () => {\r\n const [branchId, setBranchId] = useState('CC')\r\n const [groupId, setGroupId] = useState('CC-CC')\r\n\r\n const [toast, setToast] = useRecoilState(toastState)\r\n const [newStudent, setNewStudent] = useRecoilState(NewStudentSelected)\r\n const [isEdit, setIsEdit] = useRecoilState(IsEditNewStu)\r\n\r\n const lstHolyName = useRecoilValue(HolyNameQuery)\r\n const lstBranch = useRecoilValue(BranchQuery)\r\n const lstUnion = useRecoilValue(UnionRegisterQuery(groupId))\r\n\r\n const setLoading = useSetRecoilState(loadingState)\r\n const setReloadStu = useSetRecoilState(ReloadNewStudent)\r\n\r\n useEffect(() => {\r\n if (newStudent && newStudent.studentClass.length > 0) {\r\n const stuClass = newStudent.studentClass.find(sl => Number(sl.class.scholasticId) === Number(sessionHelper().scholasticId)).class\r\n const gId = stuClass.groupId\r\n\r\n lstBranch.forEach(b => {\r\n const bg = b.group.find(gp => gp.groupId === gId)\r\n if (bg) {\r\n setBranchId(bg.branchId)\r\n setGroupId(gId)\r\n }\r\n })\r\n }\r\n }, [newStudent])\r\n\r\n const validationSchema = Yup.object({\r\n stuFirstName: Yup.string().required('Không để trống').max(100, 'Không nhập nhiều hơn 100 ký tự.'),\r\n stuLastName: Yup.string().required('Không để trống').max(50, 'Không nhập nhiều hơn 50 ký tự.'),\r\n stuNote: Yup.string().max(250, 'Không nhập nhiều hơn 250 ký tự.').nullable(),\r\n stuMotherFullName: Yup.string().max(150, 'Không nhập nhiều hơn 150 ký tự.').nullable(),\r\n stuFatherFullName: Yup.string().max(150, 'Không nhập nhiều hơn 150 ký tự.').nullable(),\r\n stuMotherPhone: Yup.string()\r\n .max(11, 'Không nhập nhiều hơn 11 ký tự.')\r\n .matches(/^[0-9]+$/g, {\r\n message: 'Không đúng định dạng',\r\n excludeEmptyString: true\r\n })\r\n .nullable(),\r\n stuFatherPhone: Yup.string()\r\n .max(11, 'Không nhập nhiều hơn 11 ký tự.')\r\n .matches(/^[0-9]+$/g, {\r\n message: 'Không đúng định dạng',\r\n excludeEmptyString: true\r\n })\r\n .nullable()\r\n })\r\n\r\n const stuForm = useFormik({\r\n initialValues: newStudent\r\n ? { ...newStudent, ...newStudent.studentMoreInfo, stuBranchId: branchId, stuGroupId: groupId }\r\n : { ...initValue, stuBranchId: branchId, stuGroupId: groupId },\r\n validationSchema: validationSchema,\r\n validateOnChange: true,\r\n validateOnMount: true,\r\n enableReinitialize: true,\r\n initialErrors: { StuFirstName: 'Required' }\r\n })\r\n\r\n const TextField_Props = (name, label, maxLength) => {\r\n const { values, errors, touched, handleBlur, handleChange } = stuForm\r\n return {\r\n name,\r\n label,\r\n fullWidth: true,\r\n variant: 'outlined',\r\n error: errors[name] && touched[name],\r\n helperText: errors[name] && touched[name] && errors[name],\r\n InputLabelProps: { shrink: true },\r\n value: values[name] ?? '',\r\n onBlur: handleBlur,\r\n onChange: handleChange,\r\n inputProps: {\r\n maxLength: maxLength\r\n }\r\n }\r\n }\r\n\r\n const handleClickSave = async e => {\r\n e.preventDefault()\r\n setLoading(true)\r\n\r\n let formData = stuForm.values\r\n if (isEdit) {\r\n setBranchId('CC')\r\n setGroupId('CC-CC')\r\n\r\n try {\r\n const res = await doPost(`student/updateNewStudentInfo`, {\r\n ...formData,\r\n UserFullName: `${sessionHelper().firstName} ${sessionHelper().lastName}`\r\n })\r\n if (res && res.data.success) {\r\n setToast({ ...toast, open: true, message: res.data.message, type: 'success' })\r\n setReloadStu(reload => reload + 1)\r\n setIsEdit(false)\r\n setNewStudent(undefined)\r\n }\r\n } catch (err) {\r\n setToast({ ...toast, open: true, message: err.message, type: 'error' })\r\n } finally {\r\n setLoading(false)\r\n }\r\n } else {\r\n setBranchId(formData.stuBranchId)\r\n setGroupId(formData.stuGroupId)\r\n\r\n try {\r\n const res = await doPost(`student/registerStudent`, {\r\n ...formData,\r\n UserFullName: `${sessionHelper().firstName} ${sessionHelper().lastName}`,\r\n RegisterMode: 0\r\n })\r\n if (res && res.data.success) {\r\n setToast({ ...toast, open: true, message: res.data.message, type: 'success' })\r\n setReloadStu(reload => reload + 1)\r\n stuForm.resetForm({\r\n values: {\r\n ...initValue,\r\n stuBranchId: branchId,\r\n stuGroupId: groupId,\r\n stuUnionId: formData.stuUnionId,\r\n stuTeamCode: formData.stuTeamCode\r\n }\r\n })\r\n }\r\n } catch (err) {\r\n setToast({ ...toast, open: true, message: err.message, type: 'error' })\r\n } finally {\r\n setLoading(false)\r\n }\r\n }\r\n }\r\n\r\n const handleChangeBranch = e => {\r\n e.preventDefault()\r\n stuForm.setFieldValue('stuBranchId', e.target.value)\r\n\r\n const tmp = lstBranch.find(g => g.branchId === e.target.value).group\r\n stuForm.setFieldValue('stuGroupId', tmp[0].groupId)\r\n }\r\n\r\n const handleCancel = e => {\r\n e.preventDefault()\r\n\r\n setIsEdit(false)\r\n setNewStudent(undefined)\r\n setBranchId('CC')\r\n setGroupId('CC-CC')\r\n }\r\n\r\n useEffect(() => {\r\n if (get(stuForm.values, 'stuGroupId') !== 'CC-CC') {\r\n stuForm.setFieldValue('stuUnionId', undefined)\r\n stuForm.setFieldValue('stuTeamCode', undefined)\r\n }\r\n }, [get(stuForm.values, 'stuGroupId')])\r\n\r\n console.log('stuForm', stuForm.values)\r\n return (\r\n Đang tải...}>\r\n \r\n
\r\n
\r\n

Thêm mới Đoàn sinh

\r\n
\r\n
\r\n \r\n \r\n \r\n {/* Thông tin về Phân Đoàn */}\r\n \r\n \r\n \r\n \r\n Thông tin quản lý\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {lstBranch\r\n ?.filter(b => b.branchId !== 'NON')\r\n .map((branch, i) => (\r\n \r\n {branch.branchName}\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n {lstBranch\r\n ?.find(g => g.branchId === stuForm.values['stuBranchId'])\r\n ?.group.map((group, i) => (\r\n \r\n {group.groupName}\r\n \r\n ))}\r\n \r\n \r\n {get(stuForm.values, 'stuGroupId') === 'CC-CC' && (\r\n <>\r\n \r\n \r\n {lstUnion?.map(union => (\r\n \r\n {union.unionCode}\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n {Array.from(Array(lstUnion.find(u => Number(u.unionId) === Number(get(stuForm.values, 'stuUnionId')))?.totalTeam).keys()).map(team => (\r\n \r\n {team + 1}\r\n \r\n ))}\r\n \r\n \r\n \r\n )}\r\n \r\n\r\n \r\n \r\n \r\n \r\n Thông tin Đoàn sinh\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n stuForm.setFieldValue('stuGender', e.target.checked)}\r\n checked={stuForm.values['stuGender']}\r\n control={}\r\n label=\"Nam\"\r\n labelPlacement=\"end\"\r\n />\r\n stuForm.setFieldValue('stuGender', !e.target.checked)}\r\n checked={!stuForm.values['stuGender']}\r\n control={}\r\n label=\"Nữ\"\r\n labelPlacement=\"end\"\r\n />\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n Thông tin Cha Mẹ Đoàn sinh\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n {isEdit && (\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default RegisterForm\r\n","import React, { useState } from 'react'\r\nimport { useSetRecoilState, useRecoilValue } from 'recoil'\r\nimport { Card, Tooltip, IconButton, Typography, Divider, Grid } from '@material-ui/core'\r\n\r\nimport { RegisterMode } from 'app/enums'\r\n\r\n//Icons\r\nimport ExpandLessIcon from '@material-ui/icons/ExpandLess'\r\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore'\r\n\r\nimport { NewStudentSelected, IsEditNewStu, NewStudentQuery } from './recoil'\r\n\r\nconst StudentList = () => {\r\n const [collapse, setCollapse] = useState(true)\r\n const setSelectedStudent = useSetRecoilState(NewStudentSelected)\r\n const setIsEdit = useSetRecoilState(IsEditNewStu)\r\n const lstNewStudent = useRecoilValue(NewStudentQuery)\r\n\r\n const handleCollapse = () => {\r\n setCollapse(!collapse)\r\n }\r\n\r\n const handleRowClick = (e, student) => {\r\n e.preventDefault()\r\n\r\n setSelectedStudent(student)\r\n setIsEdit(true)\r\n }\r\n\r\n return (\r\n <>\r\n {lstNewStudent?.map((item, i) => (\r\n \r\n \r\n
\r\n
\r\n

\r\n Đăng ký {Number(item?.mode) === RegisterMode.Offline ? 'Offline' : 'Online'} - {item?.students?.length}\r\n

\r\n
\r\n
\r\n \r\n \r\n {collapse ? : }\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n ))}\r\n \r\n )\r\n}\r\n\r\nexport default StudentList\r\n","// Core\r\nimport React, { useState, Suspense, useEffect, useCallback } from 'react'\r\nimport { Grid, TextField, InputAdornment } from '@material-ui/core'\r\nimport { useRecoilState } from 'recoil'\r\n\r\n// Icon\r\nimport SearchIcon from '@material-ui/icons/Search'\r\n\r\n// External\r\nimport PageSkeleton from 'components/Loading/page-skeleton'\r\n\r\n// Internal\r\nimport RegisterForm from './RegisterForm'\r\nimport StudentList from './StudentList'\r\nimport { NewStudentSearchKey } from './recoil'\r\n\r\nconst RegisterOffline = () => {\r\n const [searchKey, setSearchKey] = useRecoilState(NewStudentSearchKey)\r\n\r\n const SearchTextInput = ({ text }) => {\r\n const [searchText, setSearchText] = useState('')\r\n\r\n const handleKeyUp = e => {\r\n e.preventDefault()\r\n if (e.key === 'Enter' || e.keyCode === 13) {\r\n setSearchKey(searchText)\r\n }\r\n }\r\n\r\n const onChangeSearchText = useCallback(\r\n e => {\r\n setSearchText(e.target.value)\r\n },\r\n [searchText]\r\n )\r\n\r\n useEffect(() => {\r\n if (text) setSearchText(text)\r\n }, [])\r\n\r\n return (\r\n \r\n \r\n \r\n )\r\n }}\r\n onChange={onChangeSearchText}\r\n onKeyUp={handleKeyUp}\r\n value={searchText}\r\n style={{ backgroundColor: 'white' }}\r\n placeholder=\"Nhập tên Đoàn sinh\"\r\n />\r\n )\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n }>\r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default RegisterOffline\r\n","import { atom, selector } from 'recoil'\r\nimport { doGet } from 'utils/axios'\r\n\r\nimport _ from 'lodash'\r\n\r\nimport sessionHelper from 'utils/sessionHelper'\r\n\r\nexport const GroupSelected = atom({\r\n key: 'GroupSelected',\r\n default: undefined\r\n})\r\n\r\nexport const UnionSelected = atom({\r\n key: 'UnionSelected',\r\n default: undefined\r\n})\r\n\r\nexport const TabSelected = atom({\r\n key: 'TabSelected',\r\n default: 0\r\n})\r\n\r\nexport const IsEdit = atom({\r\n key: 'IsEdit',\r\n default: false\r\n})\r\n\r\nexport const StudentSelectedId = atom({\r\n key: 'StudentSelectedId',\r\n default: undefined\r\n})\r\n\r\nexport const ReloadInfo = atom({\r\n key: 'ReloadInfo',\r\n default: 0\r\n})\r\n\r\nexport const GroupSummaryInfoSelector = selector({\r\n key: 'GroupSummaryInfoSelector',\r\n get: async ({ get }) => {\r\n const { userId, scholasticId } = sessionHelper()\r\n const selectedGroup = get(GroupSelected)\r\n\r\n const data = selectedGroup\r\n ? {\r\n scholasticId,\r\n userId: selectedGroup.leaderId\r\n }\r\n : { scholasticId, userId }\r\n\r\n var res = await doGet(`dashboard/groupSummaryInfo`, data)\r\n\r\n if (res && res.data.data) {\r\n const { data } = res.data\r\n\r\n return data.groupSummary\r\n }\r\n\r\n return null\r\n }\r\n})\r\n\r\nexport const UnionInGroupSelector = selector({\r\n key: 'UnionInGroupSelector',\r\n get: async ({ get }) => {\r\n const selectedGroup = get(GroupSelected)\r\n const scholasticId = sessionHelper().scholasticId\r\n\r\n if (selectedGroup) {\r\n let res = await doGet(`assignment/getListUnionInGroup`, {\r\n scholasticId: scholasticId,\r\n userId: selectedGroup.leaderId\r\n })\r\n\r\n if (res && res.data.success) {\r\n return _.orderBy(res.data.data, ['unionCode'], ['asc'])\r\n }\r\n }\r\n return []\r\n }\r\n})\r\n\r\nexport const StudentsInUnionSelector = selector({\r\n key: 'StudentsInUnionSelector',\r\n get: async ({ get }) => {\r\n get(ReloadInfo)\r\n const selectedGroup = get(GroupSelected)\r\n const unionIdSelected = get(UnionSelected)\r\n const tabSelected = get(TabSelected)\r\n const viewMode = ['default', 'score', 'attendance']\r\n\r\n if (unionIdSelected && selectedGroup) {\r\n const classId = selectedGroup.id\r\n\r\n const res = await doGet(`student/getStudentInUnion`, { classId, unionId: unionIdSelected, viewMode: viewMode[tabSelected] })\r\n\r\n if (res && res.data.success) {\r\n const { data } = res.data\r\n\r\n const distinctTeam = [...new Set(data?.map(x => x.studentClass.find(sc => Number(sc.classId) === Number(classId))?.team))]\r\n const lstStudent = []\r\n\r\n for (const t of distinctTeam) {\r\n lstStudent.push({ team: t, students: [] })\r\n }\r\n\r\n for (const student of data) {\r\n lstStudent.forEach(t => {\r\n if (t.team === student.studentClass.find(sc => Number(sc.classId) === Number(classId)).team) {\r\n if (student.studentClass.find(sc => Number(sc.classId) === Number(classId)).isTeamLead) {\r\n t.students.push({ ...student, isTeamLead: true })\r\n } else {\r\n t.students.push({ ...student, isTeamLead: false })\r\n }\r\n }\r\n })\r\n }\r\n\r\n return _.orderBy(lstStudent, ['team'], ['asc'])\r\n }\r\n }\r\n\r\n return []\r\n }\r\n})\r\n\r\nexport const AssignmentOfUnionSelector = selector({\r\n key: 'AssignmentOfUnionSelector',\r\n get: async ({ get }) => {\r\n const groupSelected = get(GroupSelected)\r\n const unionIdSelected = get(UnionSelected)\r\n\r\n if (unionIdSelected && groupSelected) {\r\n const classId = groupSelected.id\r\n\r\n const res = await doGet(`assignment/getAssignmentInUnion`, { classId, unionId: unionIdSelected })\r\n if (res && res.data.success) {\r\n return res.data.data\r\n }\r\n }\r\n\r\n return []\r\n }\r\n})\r\n","import React from 'react'\r\nimport { Collapse, Fab, List, ListItem, ListItemText, Menu, Tooltip } from '@material-ui/core'\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\nimport { faFileExcel, faDownload, faFilePdf } from '@fortawesome/free-solid-svg-icons'\r\nimport { useRecoilValue, useSetRecoilState } from 'recoil'\r\n\r\nimport ExpandLess from '@material-ui/icons/ExpandLess'\r\nimport ExpandMore from '@material-ui/icons/ExpandMore'\r\n\r\nimport { doDownload } from 'utils/axios'\r\nimport { SemesterEnum } from 'app/enums'\r\nimport sessionHelper from 'utils/sessionHelper'\r\nimport { GroupSelected } from 'pages/BanQuanTri/GroupInfo/recoil'\r\nimport { loadingState, toastState } from 'recoils/atoms'\r\n\r\nconst StudentStartYearTemplateId = process.env.REACT_APP_START_YEAR_DOC_ID\r\n\r\nexport default function HeaderDownload() {\r\n const [anchorEl, setAnchorEl] = React.useState(null)\r\n const [expandScore, setExpandScore] = React.useState(false)\r\n\r\n const setToast = useSetRecoilState(toastState)\r\n const setLoading = useSetRecoilState(loadingState)\r\n const classSelected = useRecoilValue(GroupSelected)\r\n\r\n function handleClick(event) {\r\n setAnchorEl(event.currentTarget)\r\n }\r\n\r\n function handleClose() {\r\n setAnchorEl(null)\r\n setExpandScore(false)\r\n }\r\n\r\n function handleExpandScore() {\r\n setExpandScore(!expandScore)\r\n }\r\n\r\n async function handleDownloadStudentInfo(e) {\r\n e.preventDefault()\r\n handleClose()\r\n\r\n const params = {\r\n scholasticId: sessionHelper().scholasticId,\r\n classId: classSelected.id,\r\n userId: classSelected.leaderId,\r\n isFromManager: true\r\n }\r\n\r\n return doDownload('file/getGroupStudentInfoCSV', params)\r\n }\r\n\r\n async function handleDownloadGroupScore(e, semesterCode) {\r\n e.preventDefault()\r\n handleClose()\r\n\r\n const params = {\r\n scholasticId: sessionHelper().scholasticId,\r\n semesterCode,\r\n classId: classSelected.id,\r\n userId: classSelected.leaderId\r\n }\r\n\r\n return doDownload('download/groupResultExcelFile', params)\r\n }\r\n\r\n async function handleDownloadStudentStartYear() {\r\n handleClose()\r\n setLoading(true)\r\n\r\n try {\r\n const data = {\r\n StudentId: [],\r\n ClassId: classSelected.id,\r\n ScholasticId: sessionHelper().scholasticId,\r\n UserId: classSelected.leaderId,\r\n TemplateId: StudentStartYearTemplateId,\r\n IsPreview: false\r\n }\r\n\r\n await doDownload('download/downloadPreviewForm', data)\r\n setLoading(false)\r\n } catch (err) {\r\n setToast({ open: true, message: err.message, type: 'error' })\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
Tải DS Đoàn sinh đầu năm
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
Tải DS thông tin Đoàn sinh
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
Tải kết quả Học tập
\r\n
{expandScore ? : }
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n handleDownloadGroupScore(e, SemesterEnum.semesterOne)} style={{ textAlign: 'center' }}>\r\n \r\n \r\n handleDownloadGroupScore(e, SemesterEnum.semesterTwo)} style={{ textAlign: 'center' }}>\r\n \r\n \r\n handleDownloadGroupScore(e, SemesterEnum.total)} style={{ textAlign: 'center' }}>\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n )\r\n}\r\n","import React, { useState, useEffect } from 'react'\r\nimport { Grid, InputLabel, Select, MenuItem, Typography, Hidden } from '@material-ui/core'\r\nimport { useRecoilState, useRecoilValue, useSetRecoilState } from 'recoil'\r\n\r\nimport { GroupSelected, TabSelected, UnionSelected } from 'pages/BanQuanTri/GroupInfo/recoil'\r\nimport { totalGroupSummaryQuery } from 'pages/Dashboard/recoil'\r\nimport sessionHelper from 'utils/sessionHelper'\r\n\r\nimport HeaderDownload from './HeaderDownload'\r\n\r\nexport default function GroupListSection() {\r\n const { classId } = sessionHelper()\r\n\r\n const classes = useRecoilValue(totalGroupSummaryQuery)\r\n\r\n const [groupSelected, setGroupSelected] = useRecoilState(GroupSelected)\r\n const [val, setVal] = useState(classId !== 0 ? classId : classes[0].id)\r\n\r\n const setUnionSelected = useSetRecoilState(UnionSelected)\r\n const setTabView = useSetRecoilState(TabSelected)\r\n\r\n const handleMenuChange = e => {\r\n const selectedVal = e.target.value\r\n setVal(selectedVal)\r\n }\r\n\r\n useEffect(() => {\r\n if (classId !== 0) {\r\n setGroupSelected(classes.find(cl => cl.id === classId))\r\n } else {\r\n setGroupSelected(classes[0])\r\n }\r\n }, [classId, classes, setGroupSelected])\r\n\r\n useEffect(() => {\r\n setUnionSelected(undefined)\r\n setTabView(0)\r\n setGroupSelected(classes.find(cl => cl.id === Number(val)))\r\n }, [val, setGroupSelected, classes, setUnionSelected])\r\n\r\n return (\r\n \r\n \r\n Chọn Phân đoàn\r\n \r\n \r\n \r\n \r\n \r\n Phân đoàn trưởng:\r\n \r\n \r\n \r\n {groupSelected?.leader?.holyName?.name ?? ''} {groupSelected?.leader?.firstName ?? ''} {groupSelected?.leader?.lastName ?? ''}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n","import React from 'react'\r\nimport { Card, Grid } from '@material-ui/core'\r\nimport { useRecoilValue } from 'recoil'\r\n\r\nimport _ from 'lodash'\r\nimport accounting from 'accounting'\r\n\r\n// icons\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\nimport { faUsers, faUserSlash, faUserPlus, faUser } from '@fortawesome/free-solid-svg-icons'\r\n\r\n// components\r\nimport CountUp from 'react-countup'\r\n\r\nimport { GroupSummaryInfoSelector } from 'pages/BanQuanTri/GroupInfo/recoil'\r\n\r\nexport default function GroupSummaryInfo() {\r\n const groupSummaryInfo = useRecoilValue(GroupSummaryInfoSelector)\r\n\r\n const totalStudentInGroup = _.sumBy(groupSummaryInfo?.summaryInfo, i => i.totalStudent)\r\n const totalNewStudentInGroup = _.sumBy(groupSummaryInfo?.summaryInfo, i => i.totalNewStudent)\r\n const totalOldStudentInGroup = _.sumBy(groupSummaryInfo?.summaryInfo, i => i.totalOldStudent)\r\n const totalStudentLeaveInGroup = _.sumBy(groupSummaryInfo?.summaryInfo, i => i.totalStudentLeave + i.totalStudentChangeChurch)\r\n const totalStudentStayInGroup = _.sumBy(groupSummaryInfo?.summaryInfo, i => i.totalStayInClass)\r\n\r\n return (\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
Tổng Đoàn sinh
\r\n
\r\n
\r\n \r\n
\r\n
\r\n 100%\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
Đoàn sinh đầu năm
\r\n
\r\n
\r\n \r\n
\r\n
\r\n {accounting.toFixed((totalOldStudentInGroup / totalStudentInGroup) * 100, 2)} %\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
Đoàn sinh ở lại
\r\n
\r\n
\r\n \r\n
\r\n
\r\n {accounting.toFixed((totalStudentStayInGroup / totalStudentInGroup) * 100, 2)} %\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
Đoàn sinh mới
\r\n
\r\n
\r\n \r\n
\r\n
\r\n {accounting.toFixed((totalNewStudentInGroup / totalStudentInGroup) * 100, 2)} %\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
Nghỉ luôn | Chuyển xứ
\r\n
\r\n
\r\n \r\n
\r\n
\r\n {accounting.toFixed((totalStudentLeaveInGroup / totalStudentInGroup) * 100, 2)}%\r\n
\r\n
\r\n
\r\n
\r\n )\r\n}\r\n","import React, { Fragment, useState } from 'react'\r\nimport { ButtonGroup, Button, CardContent, Typography, Hidden, Tabs, Tab } from '@material-ui/core'\r\nimport { useTheme } from '@material-ui/core/styles'\r\nimport useMediaQuery from '@material-ui/core/useMediaQuery'\r\n\r\nimport { useRecoilState, useRecoilValue } from 'recoil'\r\nimport Slider from 'react-slick'\r\n\r\nimport { UnionSelected, UnionInGroupSelector, TabSelected } from 'pages/BanQuanTri/GroupInfo/recoil'\r\n\r\nexport default function GroupUnionList() {\r\n const theme = useTheme()\r\n const isMobile = useMediaQuery(theme.breakpoints.down('sm'))\r\n // const [isSelectedUnion, setIsSelectedUnion] = useState(false)\r\n\r\n const unionInGroup = useRecoilValue(UnionInGroupSelector)\r\n const [selectedUnion, setSelectedUnion] = useRecoilState(UnionSelected)\r\n const [tabValue, setTabValue] = useRecoilState(TabSelected)\r\n\r\n const handleChange = (event, newValue) => {\r\n event.preventDefault()\r\n setTabValue(newValue)\r\n }\r\n\r\n function handleClickUnion(unionId) {\r\n setSelectedUnion(unionId)\r\n // setTabValue(0)\r\n // setIsSelectedUnion(true)\r\n }\r\n\r\n const settings = {\r\n dots: false,\r\n infinite: false,\r\n speed: 500,\r\n slidesToShow: isMobile ? 2.5 : 5.5,\r\n slidesToScroll: isMobile ? 2 : 3,\r\n nextArrow: <>,\r\n prevArrow: <>\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n {unionInGroup?.map(union => (\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n {unionInGroup?.map(union => (\r\n handleClickUnion(union.unionId)} key={union.unionId}>\r\n \r\n Chi đoàn {union.unionCode}\r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n )\r\n}\r\n","import React from 'react'\r\nimport { Grid, Card, IconButton, Tooltip, Divider, Table, makeStyles } from '@material-ui/core'\r\n\r\n//Icons\r\nimport ExpandLessIcon from '@material-ui/icons/ExpandLess'\r\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore'\r\nimport moment from 'moment'\r\nimport { useSetRecoilState } from 'recoil'\r\nimport { IsEdit, StudentSelectedId } from '../recoil'\r\n\r\nconst useStyle = makeStyles({\r\n pinCell: {\r\n position: 'sticky',\r\n left: 0,\r\n zIndex: 1,\r\n backgroundColor: 'white',\r\n\r\n '&::after': {\r\n position: 'absolute',\r\n right: 0,\r\n top: 0,\r\n bottom: 0,\r\n width: '2px',\r\n zIndex: 2,\r\n content: '\"\"',\r\n backgroundColor: '#dbdcef'\r\n }\r\n }\r\n})\r\n\r\nexport default function UnionStudentInfoItem({ item }) {\r\n const styleClass = useStyle()\r\n\r\n const [collapse, setCollapse] = React.useState(true)\r\n const setIsEditMode = useSetRecoilState(IsEdit)\r\n const setStudentSelectedId = useSetRecoilState(StudentSelectedId)\r\n\r\n const isClickOnStudent = studentId => {\r\n setStudentSelectedId(studentId)\r\n setIsEditMode(true)\r\n }\r\n if (!item) return <>\r\n\r\n return (\r\n \r\n
setCollapse(!collapse)} style={{ cursor: 'pointer' }}>\r\n
\r\n {item.team === 0 &&

Chưa phân đội - {item.students?.length}

}\r\n {item.team !== 0 && (\r\n

\r\n Đội: {item.team} - {item.students?.length}\r\n

\r\n )}\r\n
\r\n \r\n
\r\n \r\n \r\n {collapse ? : }\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n )\r\n}\r\n","import React from 'react'\r\nimport { useRecoilValue } from 'recoil'\r\nimport { StudentsInUnionSelector, TabSelected } from 'pages/BanQuanTri/GroupInfo/recoil'\r\nimport UnionStudentInfoItem from './UnionStudentInfoItem'\r\n\r\nexport default function UnionStudentInfo() {\r\n const tabValue = useRecoilValue(TabSelected)\r\n const unionStudentInfo = useRecoilValue(StudentsInUnionSelector)\r\n\r\n return <>{tabValue === 0 && unionStudentInfo.length > 0 && unionStudentInfo?.map(item => )}\r\n}\r\n","import React, { Fragment, Suspense } from 'react'\r\nimport { useRecoilState, useRecoilValue } from 'recoil'\r\nimport { Grid, LinearProgress, Typography } from '@material-ui/core'\r\n\r\n// states\r\nimport { HolyNameQuery } from 'recoils/selectors'\r\nimport { AssignmentOfUnionSelector } from 'pages/BanQuanTri/GroupInfo/recoil'\r\n\r\n// utils\r\nimport StringUtils from 'utils/StringUtils'\r\nimport { TeacherInfoDialogAtom } from 'components/Dialog/recoil'\r\nimport { doGet } from 'utils/axios'\r\nimport { TeacherInfoDialog } from 'components/Dialog'\r\n\r\nexport default function UnionAssignmentInfo() {\r\n const holyNames = useRecoilValue(HolyNameQuery)\r\n const users = useRecoilValue(AssignmentOfUnionSelector)\r\n const [infoDialog, setInfoDialog] = useRecoilState(TeacherInfoDialogAtom)\r\n\r\n if (!users || users.length === 0) return <>\r\n\r\n async function handleShowInfo(userId) {\r\n const teacherInfo = await doGet('user/getUser', { userId: userId })\r\n if (teacherInfo && teacherInfo.data.success) {\r\n setInfoDialog({ ...infoDialog, open: true, info: teacherInfo.data.data })\r\n }\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n HUYNH TRƯỞNG PHỤ TRÁCH\r\n \r\n\r\n \r\n {users.map(user => (\r\n \r\n handleShowInfo(user.id)}>\r\n {StringUtils.holyNameLookup(holyNames, user.holyNameId)} {user.firstName} {user.lastName}\r\n \r\n \r\n ))}\r\n \r\n \r\n }>\r\n \r\n \r\n \r\n )\r\n}\r\n","import React, { Fragment, useState } from 'react'\r\nimport { Card, Divider, Grid, Hidden, IconButton, makeStyles, Table, Tooltip } from '@material-ui/core'\r\nimport StyledCheckbox from 'components/UI/StyledCheckbox'\r\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore'\r\nimport ExpandLessIcon from '@material-ui/icons/ExpandLess'\r\nimport { isNil } from 'lodash'\r\nimport { IsEdit, StudentSelectedId } from '../recoil'\r\nimport { useSetRecoilState } from 'recoil'\r\n\r\nconst useStyle = makeStyles({\r\n pinCell: {\r\n position: 'sticky',\r\n left: 0,\r\n zIndex: 1,\r\n backgroundColor: 'white',\r\n\r\n '&::after': {\r\n position: 'absolute',\r\n right: 0,\r\n top: 0,\r\n bottom: 0,\r\n width: '2.5px',\r\n zIndex: 3,\r\n content: '\"\"',\r\n backgroundColor: '#E5E6F5'\r\n }\r\n }\r\n})\r\n\r\nexport default function UnionStudentScoreItem({ team }) {\r\n const styleClass = useStyle()\r\n const [collapse, setCollapse] = useState(true)\r\n\r\n function handleClickTeam() {\r\n setCollapse(!collapse)\r\n }\r\n\r\n const setIsEditMode = useSetRecoilState(IsEdit)\r\n const setStudentSelectedId = useSetRecoilState(StudentSelectedId)\r\n\r\n const isClickOnStudent = studentId => {\r\n setStudentSelectedId(studentId)\r\n setIsEditMode(true)\r\n }\r\n\r\n return (\r\n \r\n \r\n
\r\n
\r\n

\r\n Đội: {team.team} - {team.students.length}\r\n

\r\n
\r\n \r\n
\r\n \r\n \r\n {collapse ? : }\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n
\r\n
\r\n )\r\n}\r\n","import React from 'react'\r\nimport UnionStudentScoreItem from './UnionStudentScoreItem'\r\nimport { useRecoilValue } from 'recoil'\r\nimport { StudentsInUnionSelector, TabSelected } from '../recoil'\r\n\r\nexport default function UnionStudentScore() {\r\n const tabValue = useRecoilValue(TabSelected)\r\n const teams = useRecoilValue(StudentsInUnionSelector)\r\n\r\n return <>{tabValue === 1 && teams.map((team, index) => )}\r\n}\r\n","import { atom, selector } from 'recoil'\r\nimport _ from 'lodash'\r\n\r\nimport { doGet } from 'utils/axios'\r\nimport sessionHelper from 'utils/sessionHelper'\r\nimport { Roles, SemesterEnum } from 'app/enums'\r\n\r\nexport const ReloadStudentAbsent = atom({\r\n key: 'ReloadStudentAbsent',\r\n default: 0\r\n})\r\n\r\nexport const OpenAbsentForm = atom({\r\n key: 'OpenAbsentForm',\r\n default: false\r\n})\r\n\r\nexport const UnionCodeFilter = atom({\r\n key: 'UnionCodeFilter',\r\n default: 1\r\n})\r\n\r\nexport const AbsentUnionSelected = atom({\r\n key: 'AbsentUnionSelected',\r\n default: undefined\r\n})\r\n\r\nexport const SundaySelected = atom({\r\n key: 'SundaySelected',\r\n default: []\r\n})\r\n\r\nexport const SundayVisible = atom({\r\n key: 'SundayVisible',\r\n default: []\r\n})\r\n\r\nexport const ShowConfirmDialog = atom({\r\n key: 'ShowConfirmDialog',\r\n default: false\r\n})\r\n\r\nexport const AbsentSelected = atom({\r\n key: 'AbsentSelected',\r\n default: undefined\r\n})\r\n\r\nexport const ReloadAbsentStudentList = atom({\r\n key: 'ReloadAbsentStudentList',\r\n default: false\r\n})\r\n\r\nexport const ReloadCountAbsents = atom({\r\n key: 'ReloadCountAbsents',\r\n default: true\r\n})\r\n\r\nexport const ReloadStudentDetailsWithAbsentList = atom({\r\n key: 'ReloadStudentDetailsWithAbsentList',\r\n default: []\r\n})\r\n\r\nexport const AbsentSemesterSelected = atom({\r\n key: 'AbsentSemesterSelected',\r\n default: SemesterEnum.semesterOne\r\n})\r\n\r\n// export const SemesterCode = atom({\r\n// key: 'SemesterCode',\r\n// default: SemesterEnum.semesterOne\r\n// })\r\n\r\nexport const LoadStudentAbsent = selector({\r\n key: 'LoadStudentAbsent',\r\n get: async ({ get }) => {\r\n get(ReloadStudentAbsent)\r\n const unionCode = get(UnionCodeFilter)\r\n const unionId = get(AbsentUnionSelected)\r\n if (!unionId) return null\r\n\r\n const { classId, userId, scholasticId, roles } = sessionHelper()\r\n\r\n try {\r\n const res = await doGet(`student/getAbsent`, { scholasticId: scholasticId, classCode: classId, userId: userId })\r\n if (res && res.data.success && res.data.data) {\r\n const result = []\r\n\r\n for (let stu of res.data.data) {\r\n let [year, month] = stu.dateAbsent.match(/\\d+/g)\r\n\r\n if (\r\n // unionId = 0 là PĐT, unionId = 1 là Kỷ Luật\r\n roles.includes(Roles.PhanDoanTruong) || roles.includes(Roles.KyLuat)\r\n ? stu.student.studentClass.find(sc => sc.class?.scholasticId === Number(scholasticId))?.union?.unionCode === unionCode\r\n : stu.student.studentClass.find(sc => sc.class?.scholasticId === Number(scholasticId))?.union?.unionId === unionId\r\n ) {\r\n if (!result.find(re => re.year === `${month}/${year}`)) result.push({ year: `${month}/${year}`, item: [] })\r\n result.forEach(re => {\r\n if (re.year === `${month}/${year}`) re.item.push(stu)\r\n })\r\n }\r\n }\r\n\r\n return result\r\n }\r\n } catch (err) {\r\n return null\r\n }\r\n }\r\n})\r\n\r\nexport const LoadSundayList = selector({\r\n key: 'LoadSundayList',\r\n get: async () => {\r\n const { scholasticId } = sessionHelper()\r\n\r\n try {\r\n const res = await doGet(`student/getSchoolDates`, { scholasticId, semesterCode: 'null' })\r\n\r\n if (res && res.data.success) {\r\n return res.data.data.map(item => item.schoolDate)\r\n }\r\n } catch (err) {\r\n return []\r\n }\r\n }\r\n})\r\n\r\nexport const LoadSundayListWithSemester = selector({\r\n key: 'LoadSundayListWithSemester',\r\n get: async ({ get }) => {\r\n const { scholasticId } = sessionHelper()\r\n const semesterCode = get(AbsentSemesterSelected)\r\n\r\n try {\r\n const res = await doGet(`student/getSchoolDates`, { scholasticId, semesterCode })\r\n\r\n if (res && res.data.success) {\r\n return res.data.data.map(item => item.schoolDate)\r\n }\r\n } catch (err) {\r\n return []\r\n }\r\n }\r\n})\r\n\r\nexport const StudentListQuery = selector({\r\n key: 'studentListQuery',\r\n get: async ({ get }) => {\r\n get(ReloadAbsentStudentList)\r\n const { classId } = sessionHelper()\r\n const unionId = get(AbsentUnionSelected)\r\n\r\n try {\r\n const res = await doGet(`student/getStudentInUnion`, { classId, unionId })\r\n\r\n if (res && res.data.success) {\r\n const { data } = res.data\r\n\r\n const distinctTeam = [...new Set(data?.map(x => x.studentClass.find(sc => Number(sc.classId) === Number(classId))?.team))]\r\n const lstStudent = []\r\n\r\n for (const t of distinctTeam) {\r\n lstStudent.push({ team: t, students: [] })\r\n }\r\n\r\n for (const student of data) {\r\n lstStudent.forEach(t => {\r\n if (t.team === student.studentClass.find(sc => Number(sc.classId) === Number(classId)).team) {\r\n if (student.studentClass.find(sc => Number(sc.classId) === Number(classId)).isTeamLead) {\r\n t.students.push({ ...student, isTeamLead: true })\r\n } else {\r\n t.students.push({ ...student, isTeamLead: false })\r\n }\r\n }\r\n })\r\n }\r\n\r\n return _.orderBy(lstStudent, ['team'], ['asc'])\r\n }\r\n\r\n return []\r\n } catch (err) {\r\n return []\r\n }\r\n }\r\n})\r\n\r\nexport const GetTeamsInUnionQuery = selector({\r\n key: 'GetTeamsInUnionQuery',\r\n get: async ({ get }) => {\r\n const unionId = get(AbsentUnionSelected)\r\n const { classId } = sessionHelper()\r\n\r\n if (unionId) {\r\n const res = await doGet(`class/getTeamsInUnion`, { classId, unionId })\r\n if (res && res.data.success) {\r\n const { data } = res.data\r\n return data\r\n }\r\n }\r\n return []\r\n }\r\n})\r\n\r\nexport const StudentForSelectQuery = selector({\r\n key: 'StudentForSelectQuery',\r\n get: async () => {\r\n const { userId, scholasticId, classId, unionId, roles } = sessionHelper()\r\n const isGetAll = roles.includes(Roles.PhanDoanTruong) || roles.includes(Roles.HocTap)\r\n\r\n const res = await doGet(`student/getStudents`, { scholasticId, userId, classId, unionId, isGetAll })\r\n\r\n if (res && res.data.success) {\r\n const students = res.data.data\r\n\r\n return students.map(student => {\r\n return { id: student.id, name: `${student.stuHolyname.name} ${student.stuFirstName} ${student.stuLastName}` }\r\n })\r\n }\r\n return []\r\n }\r\n})\r\n","import React, { useState, useEffect } from 'react'\r\nimport { makeStyles, withStyles } from '@material-ui/core/styles'\r\nimport FormControl from '@material-ui/core/FormControl'\r\nimport NativeSelect from '@material-ui/core/NativeSelect'\r\nimport InputBase from '@material-ui/core/InputBase'\r\nimport Tooltip from '@material-ui/core/Tooltip'\r\n\r\n// import moment from 'moment'\r\n\r\nimport sessionHelper from 'utils/sessionHelper'\r\nimport { doPost } from 'utils/axios'\r\n\r\nimport { absentTypeOptionsEnum, Roles, saveAbsentDataModeEnum } from 'app/enums'\r\n\r\nconst BootstrapInput = withStyles(theme => ({\r\n root: {\r\n 'label + &': {\r\n marginTop: theme.spacing(3)\r\n }\r\n },\r\n input: {\r\n borderRadius: 4,\r\n position: 'relative',\r\n backgroundColor: theme.palette.background.paper,\r\n border: '1px solid #ced4da',\r\n fontSize: 13,\r\n padding: '10px 26px 10px 12px',\r\n transition: theme.transitions.create(['border-color', 'box-shadow']),\r\n // Use the system font instead of the default Roboto font.\r\n fontFamily: [\r\n '-apple-system',\r\n 'BlinkMacSystemFont',\r\n '\"Segoe UI\"',\r\n 'Roboto',\r\n '\"Helvetica Neue\"',\r\n 'Arial',\r\n 'sans-serif',\r\n '\"Apple Color Emoji\"',\r\n '\"Segoe UI Emoji\"',\r\n '\"Segoe UI Symbol\"'\r\n ].join(','),\r\n '&:focus': {\r\n borderRadius: 4,\r\n borderColor: '#80bdff',\r\n boxShadow: '0 0 0 0.2rem rgba(0,123,255,.25)'\r\n }\r\n }\r\n}))(InputBase)\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n margin: {\r\n margin: theme.spacing(1)\r\n }\r\n}))\r\n\r\nexport default function ControlledOpenSelect({ Permission, date, dropdownAbsentMode, studentId, absentObj, handleReloadCountAbsents, classId = 0 }) {\r\n const classes = useStyles()\r\n\r\n const TooltipProps = absentObj?.isCalculated\r\n ? {\r\n disableHoverListener: false,\r\n disableFocusListener: false,\r\n enterTouchDelay: 5\r\n }\r\n : {\r\n disableHoverListener: true,\r\n disableFocusListener: true\r\n }\r\n\r\n const [absentType, setAbsentType] = useState(absentTypeOptionsEnum.NoAbsent) // Manage state of absent mode before and after change\r\n\r\n const handleChange = async event => {\r\n event.preventDefault()\r\n\r\n const { roles } = sessionHelper()\r\n const data = {\r\n StudentId: studentId,\r\n Reason: '',\r\n DateAbsents: [date],\r\n IsActive: true,\r\n AbsentMode: dropdownAbsentMode,\r\n HasPermission: Boolean(Permission),\r\n userId: sessionHelper().userId,\r\n classId: roles.includes(Roles.BanDieuHanh) ? classId : sessionHelper().classId, // If user is BDH, then we will use classId from props, else we will use classId from session\r\n scholasticId: sessionHelper().scholasticId\r\n }\r\n\r\n let body = {}\r\n const newAttendanceOption = event.target.value // New Attendance value\r\n // setAbsentType(selectedAttendanceOption)\r\n\r\n // setSelectedColor(\r\n // selectedAttendanceOption === absentTypeOptionsEnum.Permission\r\n // ? absentTypeOptionsColorEnum[absentTypeOptionsEnum.Permission]\r\n // : absentTypeOptionsColorEnum[selectedAttendanceOption]\r\n // )\r\n\r\n // If new absent mode is not NoAbsent, then we will prepare data to send to server\r\n if (newAttendanceOption !== absentTypeOptionsEnum.NoAbsent) {\r\n // If old absent mode is NoAbsent, then we will add data\r\n // if not (it means switching from permission to non-permission or vice verca), then we will modify data\r\n body = {\r\n ...data,\r\n HasPermission: Boolean(Number(newAttendanceOption)),\r\n mode: absentType !== absentTypeOptionsEnum.NoAbsent ? saveAbsentDataModeEnum.Modify : saveAbsentDataModeEnum.Add,\r\n modes: [dropdownAbsentMode]\r\n }\r\n } else {\r\n body = { ...absentObj, mode: saveAbsentDataModeEnum.Delete, modes: [dropdownAbsentMode] }\r\n }\r\n\r\n try {\r\n await doPost(`student/absent`, body)\r\n handleReloadCountAbsents()\r\n } catch (err) {}\r\n }\r\n\r\n useEffect(() => {\r\n setAbsentType(Permission)\r\n }, [Permission, setAbsentType])\r\n\r\n return (\r\n \r\n \r\n } disabled={absentObj?.isCalculated}>\r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n","import React, { Fragment, useState, useEffect } from 'react'\r\nimport { Hidden, makeStyles } from '@material-ui/core'\r\nimport { AbsentMode, absentTypeOptionsEnum } from '../../../../app/enums'\r\nimport moment from 'moment'\r\nimport _ from 'lodash'\r\nimport { useRecoilState, useRecoilValue, useSetRecoilState } from 'recoil'\r\nimport { IsEdit, StudentSelectedId } from '../recoil'\r\nimport ControlledOpenSelect from 'pages/Students/Absent/Selection'\r\nimport sessionHelper from '../../../../utils/sessionHelper'\r\nimport { doGet } from '../../../../utils/axios'\r\nimport { AbsentSemesterSelected } from '../../../Students/Absent/recoil'\r\n\r\nconst useStyle = makeStyles({\r\n pinCell: {\r\n position: 'sticky',\r\n left: 0,\r\n backgroundColor: 'white',\r\n zIndex: 1,\r\n\r\n '&::after': {\r\n position: 'absolute',\r\n right: 0,\r\n top: 0,\r\n bottom: 0,\r\n width: '2.5px',\r\n zIndex: 2,\r\n content: '\"\"',\r\n backgroundColor: '#E5E6F5'\r\n }\r\n },\r\n tableHeader: {\r\n borderLeft: '2px solid #dcdef1',\r\n textAlign: 'center'\r\n }\r\n})\r\n\r\nexport default function StudentAttendanceDetail({ sundayList, student }) {\r\n const classStyle = useStyle()\r\n\r\n const [absentInfo, setAbsentInfo] = useState(student.absents)\r\n\r\n const setStudentSelectedId = useSetRecoilState(StudentSelectedId)\r\n const [isEditMode, setIsEditMode] = useRecoilState(IsEdit)\r\n\r\n const [totalMassAbsents, setTotalMassAbsents] = useState(0)\r\n const [totalClassAbsents, setTotalClassAbsents] = useState(0)\r\n const [reloadStudentAbsents, setReloadStudentAbsents] = useState(false)\r\n const [reloadCountAbsents, setReloadCountAbsents] = useState(false)\r\n\r\n const semesterCode = useRecoilValue(AbsentSemesterSelected)\r\n\r\n const isClickOnStudent = studentId => {\r\n if (isEditMode) return\r\n setStudentSelectedId(studentId)\r\n setIsEditMode(true)\r\n }\r\n\r\n useEffect(() => {\r\n async function fetchData() {\r\n const { scholasticId } = sessionHelper()\r\n\r\n const res = await doGet(`student/count-absents`, { studentId: student.id, classId: student.studentClass[0].classId, scholasticId, semesterCode })\r\n\r\n if (res && res.data.success) {\r\n setTotalMassAbsents(res.data.data?.totalMassPermission + res.data.data?.totalMassNonPermission)\r\n setTotalClassAbsents(res.data.data?.totalClassPermission + res.data.data?.totalClassNonPermission)\r\n setReloadCountAbsents(false)\r\n }\r\n }\r\n\r\n if (student && reloadCountAbsents) {\r\n fetchData().finally()\r\n }\r\n }, [reloadCountAbsents, student])\r\n\r\n useEffect(() => {\r\n async function fetchData() {\r\n const { scholasticId } = sessionHelper()\r\n const res = await doGet(`student/absents`, { studentId: student.id, classId: student.studentClass[0].classId, scholasticId, semesterCode })\r\n\r\n if (res && res.data.success) {\r\n const { absents } = res.data.data\r\n setAbsentInfo(absents)\r\n setReloadStudentAbsents(false)\r\n }\r\n }\r\n\r\n if (reloadStudentAbsents) {\r\n fetchData().finally()\r\n }\r\n }, [reloadStudentAbsents])\r\n\r\n useEffect(() => {\r\n setReloadCountAbsents(true)\r\n setReloadStudentAbsents(true)\r\n }, [sundayList])\r\n\r\n const handleReloadCountAbsents = async () => {\r\n setReloadStudentAbsents(true)\r\n setReloadCountAbsents(true)\r\n }\r\n\r\n const checkAbsentDatesOfStudentHasCoincideSundayDate = (sunday, absentDates) => {\r\n const currentAbsents = absentDates?.filter(absent => moment.utc(absent.dateAbsent).isSame(moment.utc(sunday)))\r\n\r\n return [currentAbsents?.find(ab => ab.absentMode === AbsentMode.Mass) ?? null, currentAbsents?.find(ab => ab.absentMode === AbsentMode.Class) ?? null]\r\n }\r\n\r\n return (\r\n isClickOnStudent(student.id)}>\r\n \r\n {student.stuHolyname?.name} \r\n \r\n
\r\n
\r\n {student.stuFirstName} {student.stuLastName}\r\n \r\n {totalMassAbsents}\r\n {totalClassAbsents}\r\n {sundayList.map(date => {\r\n const [massAbsent, classAbsent] = checkAbsentDatesOfStudentHasCoincideSundayDate(date, absentInfo)\r\n\r\n const massPermission = !_.isNil(massAbsent)\r\n ? massAbsent.hasPermission\r\n ? absentTypeOptionsEnum.Permission\r\n : absentTypeOptionsEnum.NonPermission\r\n : absentTypeOptionsEnum.NoAbsent\r\n const classPermission = !_.isNil(classAbsent)\r\n ? classAbsent.hasPermission\r\n ? absentTypeOptionsEnum.Permission\r\n : absentTypeOptionsEnum.NonPermission\r\n : absentTypeOptionsEnum.NoAbsent\r\n\r\n return (\r\n \r\n {!isEditMode ? (\r\n <>\r\n {!_.isNil(massAbsent?.hasPermission) ? (massAbsent.hasPermission ? 'P' : 'KP') : ''}\r\n {!_.isNil(classAbsent?.hasPermission) ? (classAbsent.hasPermission ? 'P' : 'KP') : ''}\r\n \r\n ) : (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n )\r\n })}\r\n \r\n )\r\n}\r\n","import React, { Fragment, useState } from 'react'\r\nimport { Card, Grid, IconButton, makeStyles, Tooltip } from '@material-ui/core'\r\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore'\r\nimport ExpandLessIcon from '@material-ui/icons/ExpandLess'\r\nimport { useRecoilValue } from 'recoil'\r\nimport { LoadSundayListWithSemester } from '../../../Students/Absent/recoil'\r\nimport moment from 'moment'\r\nimport StudentAttendanceDetail from './StudentAttendanceDetail'\r\n\r\nconst useStyle = makeStyles({\r\n pinCell: {\r\n position: 'sticky',\r\n left: 0,\r\n backgroundColor: 'white',\r\n zIndex: 1,\r\n\r\n '&::after': {\r\n position: 'absolute',\r\n right: 0,\r\n top: 0,\r\n bottom: 0,\r\n width: '2.5px',\r\n zIndex: 2,\r\n content: '\"\"',\r\n backgroundColor: '#E5E6F5'\r\n }\r\n },\r\n tableHeader: {\r\n borderLeft: '2px solid #dcdef1',\r\n textAlign: 'center'\r\n }\r\n})\r\n\r\nexport default function UnionStudentAttendanceItem({ team }) {\r\n const classStyle = useStyle()\r\n const [collapse, setCollapse] = useState(true)\r\n\r\n const handleShowStudent = () => {\r\n setCollapse(!collapse)\r\n }\r\n\r\n const sundays = useRecoilValue(LoadSundayListWithSemester)\r\n\r\n const formatDate = date => {\r\n return moment.utc(date).format('DD/MM/YYYY')\r\n }\r\n\r\n const FormattedDates = sundays.map(date => formatDate(date))\r\n\r\n return (\r\n \r\n \r\n
\r\n
\r\n

\r\n Đội: {team.team} - {team.students.length}\r\n

\r\n
\r\n \r\n
\r\n \r\n \r\n {collapse ? : }\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n )\r\n}\r\n","import React, { useEffect } from 'react'\r\n\r\nimport { useRecoilState, useRecoilValue } from 'recoil'\r\nimport { AbsentSemesterSelected } from '../recoil'\r\n\r\nimport { Button, ButtonGroup } from '@material-ui/core'\r\n\r\nimport { SemesterEnum } from 'app/enums'\r\n// import { CurrentSemesterQuery } from 'recoils/selectors'\r\n// import sessionHelper from 'utils/sessionHelper'\r\n// import { doGet } from 'utils/axios'\r\n\r\nconst DayViewSelections = () => {\r\n // const setSundaySelected = useSetRecoilState(SundaySelected)\r\n // const currentSemester = useRecoilValue(CurrentSemesterQuery)\r\n // const setReloadAbsentStudentList = useSetRecoilState(ReloadAbsentStudentList)\r\n // const setReloadCountAbsents = useSetRecoilState(ReloadCountAbsents)\r\n const [semester, setSemester] = useRecoilState(AbsentSemesterSelected)\r\n\r\n // useEffect(() => {\r\n // if (currentSemester.semesterCode !== 1) setSemester(SemesterEnum.semesterTwo)\r\n // }, [])\r\n\r\n // useEffect(() => {\r\n // async function fetchSundayList() {\r\n // const { scholasticId } = sessionHelper()\r\n //\r\n // try {\r\n // const res = await doGet(`student/getSchoolDates`, { scholasticId, semesterCode })\r\n //\r\n // if (res && res.data.success) {\r\n // return res.data.data.map(item => item.schoolDate)\r\n // }\r\n // } catch (err) {\r\n // return []\r\n // }\r\n // }\r\n //\r\n // fetchSundayList()\r\n // .then(res => setSundaySelected(res))\r\n // .catch(err => setSundaySelected([]))\r\n // }, [semesterCode])\r\n console.log('render')\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default DayViewSelections\r\n","import React, { Suspense } from 'react'\r\nimport { useRecoilValue } from 'recoil'\r\nimport { StudentsInUnionSelector, TabSelected } from '../recoil'\r\nimport UnionStudentAttendanceItem from './UnionStudentAttendanceItem'\r\nimport DayViewSelections from 'pages/Students/Absent/components/DayViewSelection'\r\nimport { Skeleton } from '@material-ui/lab'\r\n\r\nexport default function UnionStudentAttendance() {\r\n const tabValue = useRecoilValue(TabSelected)\r\n const teams = useRecoilValue(StudentsInUnionSelector)\r\n\r\n if (tabValue !== 2) {\r\n return <>\r\n }\r\n\r\n return (\r\n <>\r\n \r\n {teams.map((team, index) => (\r\n }>\r\n \r\n \r\n ))}\r\n \r\n )\r\n}\r\n","import React from 'react'\r\nimport { Button, Grid, Tab, Tabs } from '@material-ui/core'\r\nimport { KeyboardArrowLeft } from '@material-ui/icons'\r\nimport { useRecoilState, useSetRecoilState } from 'recoil'\r\nimport { IsEdit, TabSelected } from '../recoil'\r\n\r\nexport default function EditModeHeader() {\r\n const setIsEdit = useSetRecoilState(IsEdit)\r\n const [tabValue, setTabValue] = useRecoilState(TabSelected)\r\n const handleChange = (event, newValue) => {\r\n event.preventDefault()\r\n setTabValue(newValue)\r\n }\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n","import React, { useEffect } from 'react'\r\nimport { FormControl, FormControlLabel, FormGroup, Grid, InputAdornment, Radio } from '@material-ui/core'\r\nimport { KeyboardDatePicker } from '@material-ui/pickers'\r\nimport {\r\n faBirthdayCake,\r\n faChurch,\r\n faFemale,\r\n faHandHolding,\r\n faHandHoldingWater,\r\n faHands,\r\n faHome,\r\n faMale,\r\n faPenAlt,\r\n faPhone,\r\n faPhoneAlt,\r\n faPrayingHands,\r\n faUserTie\r\n} from '@fortawesome/free-solid-svg-icons'\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\n\r\nimport { useFormik } from 'formik'\r\nimport { useRecoilState, useRecoilValue } from 'recoil'\r\nimport moment from 'moment'\r\n\r\nimport sessionHelper from 'utils/sessionHelper'\r\nimport Yup from 'utils/Yup'\r\nimport { doPost } from 'utils/axios'\r\n\r\nimport { HolyNameQuery } from 'recoils/selectors'\r\nimport { toastState } from 'recoils/atoms'\r\n\r\nimport { ReloadInfo } from '../recoil'\r\n\r\nimport { InlineTextField } from 'components/Controls'\r\nimport HolyName from 'pages/Students/FindStudent/HolyName'\r\n\r\nexport default function EditStudentInfo({ tabValue, student }) {\r\n const lstHolyName = useRecoilValue(HolyNameQuery)\r\n const [reloadInfo, setReloadInfo] = useRecoilState(ReloadInfo)\r\n const [toast, setToast] = useRecoilState(toastState)\r\n\r\n const validationSchema = Yup.object({\r\n studentMoreInfo: Yup.string().nullable(),\r\n note: Yup.string().nullable()\r\n })\r\n\r\n const stuForm = useFormik({\r\n initialValues: student ? { ...student, stuHolyId: student.stuHolyname.id } : {},\r\n validation: validationSchema,\r\n validateOnChange: true,\r\n validateOnMount: true,\r\n enableReinitialize: true\r\n })\r\n\r\n const DatePicker_Props = (name, label, cusIcon) => {\r\n const { values, errors, touched, handleBlur, handleChange } = stuForm\r\n return {\r\n name,\r\n label,\r\n fullWidth: true,\r\n inputVariant: 'outlined',\r\n error: errors[name] && touched[name],\r\n helperText: errors[name] && touched[name] && errors[name],\r\n InputLabelProps: { shrink: true },\r\n format: 'dd/MM/yyyy',\r\n value: values[name] ?? null,\r\n onBlur: handleBlur,\r\n onChange: handleChange,\r\n KeyboardButtonProps: {\r\n 'aria-label': 'change date'\r\n },\r\n InputProps: {\r\n startAdornment: (\r\n \r\n \r\n \r\n )\r\n }\r\n }\r\n }\r\n\r\n const handleSaveNotLoading = async (field, newValue, isMoreInfo = false) => {\r\n let val = stuForm.values\r\n\r\n if (field === 'stuHolyId') {\r\n const newHolyName = lstHolyName.find(item => item.id === newValue)\r\n val = { ...val, stuHolyname: newHolyName }\r\n }\r\n\r\n if (isMoreInfo) {\r\n if (field === 'stuFatherHolyId' || field === 'stuMotherHolyId') {\r\n const holyNameField = field === 'stuFatherHolyId' ? 'stuFatherHolyName' : 'stuMotherHolyName'\r\n const newHolyName = lstHolyName.find(item => item.id === newValue)\r\n stuForm.setFieldValue(`studentMoreInfo.${holyNameField}`, newHolyName)\r\n }\r\n stuForm.setFieldValue(`studentMoreInfo.${field}`, newValue)\r\n val = {\r\n ...val,\r\n userFullName: `${sessionHelper().firstName} ${sessionHelper().lastName}`,\r\n isIncludeMoreInfo: true,\r\n studentMoreInfo: { ...val.studentMoreInfo, [field]: newValue }\r\n }\r\n } else {\r\n stuForm.setFieldValue(field, newValue)\r\n val = { ...val, [field]: newValue, userFullName: `${sessionHelper().firstName} ${sessionHelper().lastName}` }\r\n }\r\n try {\r\n var res = await doPost(`student/updateStudent`, val)\r\n if (res && res.data.success) {\r\n setToast({ ...toast, open: true, message: res.data.message, type: 'success' })\r\n setReloadInfo(reloadInfo + 1)\r\n } else {\r\n setToast({ ...toast, open: true, message: res.data.message, type: 'error' })\r\n }\r\n } catch (err) {\r\n setToast({ ...toast, open: true, message: err.message, type: 'error' })\r\n }\r\n }\r\n\r\n const handleDateChange = (field, date, isMoreInfo = false) => {\r\n try {\r\n if (date === 'Invalid date' || date === 'Invalid Date') return\r\n if (moment(date).format('YYYY-MM-DD') === 'Invalid date' && date) return\r\n handleSaveNotLoading(field, isMoreInfo ? moment(date).format('YYYY-MM-DD') : date, isMoreInfo)\r\n } catch (err) {\r\n return\r\n }\r\n }\r\n\r\n const handleCheckChange = (field, newVal) => {\r\n try {\r\n handleSaveNotLoading(field, newVal)\r\n } catch (err) {\r\n return\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n window.scrollTo(0, 0)\r\n }, [])\r\n\r\n return (\r\n tabValue === 0 && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n label=\"Nam\"\r\n labelPlacement=\"end\"\r\n onChange={e => handleCheckChange('stuGender', e.target.checked)}\r\n />\r\n }\r\n label=\"Nữ\"\r\n labelPlacement=\"end\"\r\n onChange={e => handleCheckChange('stuGender', !e.target.checked)}\r\n />\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n handleDateChange('stuDob', date)} />\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n handleDateChange('stuBaptismDate', date, true)}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n handleDateChange('stuEucharistDate', date, true)}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n handleDateChange('stuConfirmationDate', date, true)}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n )\r\n}\r\n","import React, { useEffect, useState } from 'react'\r\nimport { TextField } from '@material-ui/core'\r\n\r\nexport default function ScoreTextField(props) {\r\n const { value, handleSave, name, isNumber, minWidth, label = '', fullWidth = false, isEditable = true } = props\r\n\r\n const [isValid, setIsValid] = useState(true)\r\n const [currentVal, setCurrentVal] = useState(value === 0 || !value ? '' : value)\r\n const [newVal, setNewVal] = useState(value === 0 || !value ? '' : value)\r\n\r\n function handleOnChange(e) {\r\n const changedVal = e.target.value\r\n\r\n if (isNumber && Number(changedVal) !== Number(currentVal ?? 0)) {\r\n const regex = RegExp(/^\\d*\\.?\\d*$/g)\r\n if (!regex.test(changedVal) || Number(changedVal) > 10) {\r\n setIsValid(false)\r\n } else {\r\n setIsValid(true)\r\n }\r\n }\r\n\r\n setNewVal(changedVal)\r\n }\r\n\r\n function handleOnBlur(e) {\r\n if (isNumber && isValid) {\r\n setCurrentVal(newVal)\r\n handleSave(name, newVal)\r\n }\r\n\r\n if (!isNumber && newVal !== currentVal) {\r\n setCurrentVal(newVal)\r\n handleSave(name, newVal)\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n setNewVal(value ?? '')\r\n }, [value])\r\n\r\n return (\r\n \r\n )\r\n}\r\n","import React from 'react'\r\nimport { Grid, makeStyles } from '@material-ui/core'\r\nimport { Semester, SemesterEnum } from 'app/enums'\r\nimport ScoreTextField from 'components/Controls/ScoreTextField'\r\nimport StyledCheckbox from 'components/UI/StyledCheckbox'\r\nimport { doPost } from 'utils/axios'\r\nimport sessionHelper from 'utils/sessionHelper'\r\nimport { useRecoilState, useSetRecoilState } from 'recoil'\r\nimport { toastState } from 'recoils/atoms'\r\nimport { ReloadInfo } from '../recoil'\r\n\r\nconst useStyle = makeStyles({\r\n pinCell: {\r\n position: 'sticky',\r\n left: 0,\r\n backgroundColor: 'white',\r\n zIndex: 1,\r\n\r\n '&::after': {\r\n position: 'absolute',\r\n right: 0,\r\n top: 0,\r\n bottom: 0,\r\n width: '2.5px',\r\n zIndex: 2,\r\n content: '\"\"',\r\n backgroundColor: '#E5E6F5'\r\n }\r\n },\r\n gridHeader: {\r\n backgroundColor: '#f5f6fa',\r\n textAlign: 'center',\r\n\r\n borderBottom: '2px solid #dcdef1'\r\n },\r\n gridItem: {\r\n textAlign: 'center'\r\n },\r\n gridEnd: {\r\n borderLeft: '2px solid #dcdef1',\r\n textAlign: 'center',\r\n\r\n borderBottom: '2px solid #dcdef1'\r\n },\r\n gridStartLeft: {\r\n textAlign: 'center',\r\n\r\n borderLeft: '2px solid #dcdef1'\r\n }\r\n})\r\n\r\nexport default function EditStudentScoreInfo({ semesterCode, student }) {\r\n const classStyle = useStyle()\r\n const [toast, setToast] = useRecoilState(toastState)\r\n const setReloadInfo = useSetRecoilState(ReloadInfo)\r\n let scoreData = {}\r\n switch (semesterCode) {\r\n case SemesterEnum.semesterOne:\r\n scoreData = student.semesterOne.length > 0 ? student.semesterOne[0] : {}\r\n break\r\n case SemesterEnum.semesterTwo:\r\n scoreData = student.semesterTwo.length > 0 ? student.semesterTwo[0] : {}\r\n break\r\n case SemesterEnum.total:\r\n scoreData = student.total.length > 0 ? student.total[0] : {}\r\n break\r\n }\r\n\r\n const createNewFormScore = () => {\r\n const formScore = [\r\n { Key: 'FifteenTest', Label: 'FifteenTest', Require: false, Value: '', Coefficient: 1 },\r\n { Key: 'LessonTest', Label: 'LessonTest', Require: false, Value: '', Coefficient: 2 },\r\n { Key: 'SemesterTest', Label: 'SemesterTest', Require: false, Value: '', Coefficient: 3 }\r\n ]\r\n return formScore\r\n }\r\n\r\n async function handleSaveScore(name, newVal) {\r\n const { scholasticId } = sessionHelper()\r\n const avg = name === 'average' ? (newVal === 0 || !newVal ? null : newVal) : null\r\n\r\n const newScore = {\r\n ...scoreData,\r\n [name]: newVal,\r\n average: avg,\r\n semesterCode,\r\n studentId: student.id,\r\n scholasticId\r\n }\r\n if (semesterCode !== SemesterEnum.total) {\r\n const oldScoreFrom = scoreData?.scoreForm == null ? '' : JSON.parse(scoreData.scoreForm)\r\n\r\n if (oldScoreFrom === '') {\r\n const newScoreForm = createNewFormScore()\r\n if (newScoreForm.find(item => item.Key === name)) {\r\n newScoreForm.find(item => item.Key === name).Value = newVal\r\n }\r\n newScore['scoreForm'] = JSON.stringify(newScoreForm)\r\n } else {\r\n const newScoreForm = oldScoreFrom?.map(item => {\r\n if (item.Key === name) {\r\n return { ...item, Value: newVal }\r\n }\r\n return item\r\n })\r\n newScore['scoreForm'] = JSON.stringify(newScoreForm)\r\n }\r\n }\r\n\r\n try {\r\n const res = await doPost(`student/updateStudentScore`, newScore)\r\n if (res && res.data.success) {\r\n setToast({ ...toast, open: true, message: 'Cập nhật thành công', type: 'success' })\r\n setReloadInfo(prev => prev + 1)\r\n }\r\n } catch (err) {\r\n console.log(err)\r\n setToast({ ...toast, open: true, message: err.data.message, type: 'error' })\r\n }\r\n }\r\n\r\n console.log('scoreData', scoreData)\r\n\r\n const scoreForm = scoreData ? (scoreData?.scoreForm ? JSON.parse(scoreData.scoreForm) : []) : []\r\n const isSemesterSocreInfo = semesterCode === SemesterEnum.semesterOne || semesterCode === SemesterEnum.semesterTwo\r\n const headerName = Semester.find(semester => semester.Id === semesterCode).Name\r\n\r\n return (\r\n \r\n \r\n {headerName}\r\n \r\n {isSemesterSocreInfo ? (\r\n <>\r\n \r\n \r\n Key === 'FifteenTest')?.Value}\r\n minWidth=\"50px\"\r\n fullWidth\r\n />\r\n \r\n \r\n Key === 'LessonTest')?.Value}\r\n minWidth=\"50px\"\r\n fullWidth\r\n />\r\n \r\n \r\n \r\n \r\n Key === 'SemesterTest')?.Value}\r\n minWidth=\"50px\"\r\n fullWidth\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ) : (\r\n <>\r\n \r\n \r\n semester.Id === SemesterEnum.semesterOne).Name}`}\r\n value={scoreData?.avgSemesterOne}\r\n minWidth=\"50px\"\r\n fullWidth\r\n />\r\n \r\n \r\n \r\n \r\n semester.Id === SemesterEnum.semesterTwo).Name}`}\r\n value={scoreData?.avgSemesterTwo}\r\n minWidth=\"50px\"\r\n fullWidth\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n {scoreData[0]?.beUpClass ? Lên lớp : Ở lại}\r\n
\r\n
\r\n
\r\n \r\n \r\n {' '}\r\n \r\n \r\n \r\n )}\r\n
\r\n )\r\n}\r\n","import React from 'react'\r\nimport { Grid, makeStyles } from '@material-ui/core'\r\nimport { SemesterEnum } from 'app/enums'\r\nimport EditStudentScoreInfo from './EditStudentScoreInfo'\r\nimport { StudentSelectedId, StudentsInUnionSelector } from '../recoil'\r\nimport { useRecoilValue } from 'recoil'\r\n\r\nconst useStyle = makeStyles({\r\n gridItem: {\r\n border: '2px solid #dcdef1'\r\n }\r\n})\r\n\r\nexport default function EditStudentScore({ tabValue }) {\r\n const classStyle = useStyle()\r\n const union = useRecoilValue(StudentsInUnionSelector)\r\n const studentSelectedId = useRecoilValue(StudentSelectedId)\r\n const student = union.flatMap(team => team.students).find(student => student.id === studentSelectedId)\r\n return (\r\n tabValue === 1 && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n )\r\n}\r\n","import React, { Fragment } from 'react'\r\nimport { Card, makeStyles } from '@material-ui/core'\r\nimport { useRecoilValue } from 'recoil'\r\nimport { LoadSundayListWithSemester } from 'pages/Students/Absent/recoil'\r\nimport StudentAttendanceDetail from './StudentAttendanceDetail'\r\nimport moment from 'moment'\r\n\r\nconst useStyle = makeStyles({\r\n pinCell: {\r\n position: 'sticky',\r\n left: 0,\r\n backgroundColor: 'white',\r\n zIndex: 1,\r\n\r\n '&::after': {\r\n position: 'absolute',\r\n right: 0,\r\n top: 0,\r\n bottom: 0,\r\n width: '2.5px',\r\n zIndex: 2,\r\n content: '\"\"',\r\n backgroundColor: '#E5E6F5'\r\n }\r\n },\r\n tableHeader: {\r\n borderLeft: '2px solid #dcdef1',\r\n textAlign: 'center'\r\n }\r\n})\r\nexport default function EditStudentAttendanceItem({ student }) {\r\n const classStyle = useStyle()\r\n\r\n const sundays = useRecoilValue(LoadSundayListWithSemester)\r\n\r\n const formatDate = date => {\r\n return moment.utc(date).format('DD/MM/YYYY')\r\n }\r\n\r\n const FormattedDates = sundays.map(date => formatDate(date))\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n {FormattedDates.map(stringDate => (\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n {FormattedDates.map(stringDate => (\r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n Tổng\r\n \r\n {stringDate}\r\n
Tên Thánh, Họ và TênTổng LễTổng HọcLễHọc
\r\n
\r\n
\r\n
\r\n )\r\n}\r\n","import React, { Suspense } from 'react'\r\nimport DayViewSelections from 'pages/Students/Absent/components/DayViewSelection'\r\nimport EditStudentAttendanceItem from './EditStudentAttendanceItem'\r\nimport { StudentSelectedId, StudentsInUnionSelector } from '../recoil'\r\nimport { useRecoilValue } from 'recoil'\r\n\r\nexport default function EditStudentAttendance({ tabValue }) {\r\n const union = useRecoilValue(StudentsInUnionSelector)\r\n const studentSelectedId = useRecoilValue(StudentSelectedId)\r\n const student = union.flatMap(team => team.students).find(student => student.id === studentSelectedId)\r\n return (\r\n tabValue === 2 && (\r\n <>\r\n \r\n\r\n Loading...

}>\r\n \r\n
\r\n \r\n )\r\n )\r\n}\r\n","import React from 'react'\r\nimport { Grid } from '@material-ui/core'\r\nimport EditStudentInfo from './EditStudentInfo'\r\nimport EditStudentScore from './EditStudentScore'\r\nimport { useRecoilValue } from 'recoil'\r\nimport { StudentSelectedId, StudentsInUnionSelector, TabSelected } from '../recoil'\r\nimport EditStudentAttendance from './EditStudentAttendance'\r\n\r\nexport default function EditModeInfo() {\r\n const tabValue = useRecoilValue(TabSelected)\r\n const union = useRecoilValue(StudentsInUnionSelector)\r\n const studentSelectedId = useRecoilValue(StudentSelectedId)\r\n const student = union.flatMap(team => team.students).find(student => student.id === studentSelectedId)\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n","import React, { Fragment, Suspense } from 'react'\r\n\r\nimport PageSkeleton from 'components/Loading/page-skeleton'\r\n\r\nimport GroupListSection from 'pages/BanQuanTri/GroupInfo/components/GroupListSection'\r\nimport GroupSummaryInfo from 'pages/BanQuanTri/GroupInfo/components/GroupSummaryInfo'\r\nimport GroupUnionList from 'pages/BanQuanTri/GroupInfo/components/GroupUnionList'\r\nimport UnionStudentInfo from 'pages/BanQuanTri/GroupInfo/components/UnionStudentInfo'\r\nimport UnionAssignmentInfo from 'pages/BanQuanTri/GroupInfo/components/UnionAssignmentInfo'\r\nimport UnionStudentScore from './components/UnionStudentScore'\r\nimport UnionStudentAttendance from './components/UnionStudentAttendance'\r\nimport { useRecoilValue } from 'recoil'\r\nimport { IsEdit } from './recoil'\r\nimport EditModeHeader from './components/EditModeHeader'\r\nimport EditModeInfo from './components/EditModeInfo'\r\n\r\nexport default function GroupInfo() {\r\n const isEdit = useRecoilValue(IsEdit)\r\n return (\r\n \r\n {isEdit ? (\r\n \r\n Loading....}>\r\n \r\n \r\n\r\n }>\r\n \r\n \r\n \r\n ) : (\r\n \r\n Loading....}>\r\n \r\n \r\n\r\n }>\r\n \r\n \r\n\r\n }>\r\n \r\n \r\n\r\n }>\r\n \r\n \r\n\r\n }>\r\n \r\n \r\n\r\n }>\r\n \r\n \r\n\r\n }>\r\n \r\n \r\n \r\n )}\r\n \r\n )\r\n}\r\n","import { atom, selector } from 'recoil'\r\nimport sessionHelper from 'utils/sessionHelper'\r\n\r\nimport { UserStatus } from 'app/enums'\r\nimport { doGet } from 'utils/axios'\r\n\r\nexport const ReloadAssignmentsAtom = atom({\r\n key: 'ReloadAssignments',\r\n default: 0\r\n})\r\n\r\nexport const ReloadUsersQueryAtom = atom({\r\n key: 'ReloadUsersQueryAtom',\r\n default: 0\r\n})\r\n\r\nexport const ClassSelector = selector({\r\n key: 'ClassSelector',\r\n get: async ({ get }) => {\r\n get(ReloadAssignmentsAtom)\r\n const scholasticId = sessionHelper().scholasticId\r\n\r\n const res = await doGet(`class/getClass`, { scholasticId: scholasticId })\r\n\r\n if (res && res.data.success) {\r\n return res.data.data\r\n }\r\n\r\n return []\r\n }\r\n})\r\n\r\nexport const UsersAvailableSelector = selector({\r\n key: 'UsersAvailableSelector',\r\n get: async ({ get }) => {\r\n get(ReloadAssignmentsAtom)\r\n\r\n const res = await doGet(`user/getUserAssign`, { scholasticId: sessionHelper().scholasticId })\r\n\r\n if (res && res.data.success) {\r\n const result = res.data.data.map(item => {\r\n return {\r\n id: item.id,\r\n label: item.fullName\r\n }\r\n })\r\n\r\n return result\r\n }\r\n\r\n return []\r\n }\r\n})\r\n\r\nexport const UsersQuerySelector = selector({\r\n key: 'UsersQuerySelector',\r\n get: async ({ get }) => {\r\n get(ReloadUsersQueryAtom)\r\n\r\n const res = await doGet(`user/getUsers`, { scholasticId: sessionHelper().scholasticId })\r\n\r\n if (res && res.data.success) {\r\n return res.data.data\r\n .filter(user => user.status === UserStatus.Active)\r\n .map(item => {\r\n return { id: item.id, label: item.fullName }\r\n })\r\n }\r\n\r\n return []\r\n }\r\n})\r\n","import React from 'react'\r\nimport { Grid, TextField } from '@material-ui/core'\r\nimport match from 'autosuggest-highlight/match'\r\nimport parse from 'autosuggest-highlight/parse'\r\nimport { Autocomplete } from '@material-ui/lab'\r\nimport { useRecoilState, useRecoilValue, useSetRecoilState } from 'recoil'\r\nimport { ReloadAssignmentsAtom, ReloadUsersQueryAtom, UsersQuerySelector } from '../recoil'\r\nimport { loadingState, toastState } from 'recoils/atoms'\r\n\r\nimport { useFormik } from 'formik'\r\nimport Yup from 'utils/Yup'\r\nimport { doPost } from 'utils/axios'\r\nimport sessionHelper from 'utils/sessionHelper'\r\nimport { nanoid } from 'nanoid'\r\n\r\nexport default function GroupLeader({ info }) {\r\n const users = useRecoilValue(UsersQuerySelector)\r\n\r\n const [toast, setToast] = useRecoilState(toastState)\r\n const setLoading = useSetRecoilState(loadingState)\r\n\r\n const setReloadUsers = useSetRecoilState(ReloadUsersQueryAtom)\r\n const setReloadClass = useSetRecoilState(ReloadAssignmentsAtom)\r\n\r\n const formData = useFormik({\r\n initialValues: { id: info.leaderId, label: info.leader.fullName },\r\n validationSchema: Yup.object({}),\r\n validateOnChange: true,\r\n validateOnMount: true,\r\n enableReinitialize: true\r\n })\r\n\r\n const handleAgree = async (e, newValue) => {\r\n e.preventDefault()\r\n setLoading(true)\r\n try {\r\n const res = await doPost(`user/assignLeader`, {\r\n classId: info.id,\r\n oldLeaderId: info.leaderId,\r\n newLeaderId: newValue.id,\r\n modifiedBy: sessionHelper().fullName\r\n })\r\n if (res && res.data.success) {\r\n await formData.setValues(newValue)\r\n setToast({ ...toast, open: true, message: res.data.message, type: 'success' })\r\n setReloadUsers(reload => reload + 1)\r\n setReloadClass(reload => reload + 1)\r\n }\r\n } catch (err) {\r\n setToast({ ...toast, open: true, message: err.message, type: 'error' })\r\n } finally {\r\n setLoading(false)\r\n }\r\n }\r\n\r\n return (\r\n \r\n \r\n Phân đoàn trưởng\r\n \r\n \r\n {\r\n handleAgree(e, newValue)\r\n }}\r\n disableClearable\r\n id={`leader-${nanoid(2)}`}\r\n options={users.filter(user => user.id !== formData.values['id'])}\r\n renderOption={(option, { inputValue }) => {\r\n const matches = match(`${option.label}`, inputValue)\r\n const parts = parse(`${option.label}`, matches)\r\n return (\r\n
\r\n {/**/}\r\n {/* {`${option?.firstName?.substring(0, 1)}${option?.lastName?.substring(0, 1)}`}*/}\r\n {/**/}\r\n
\r\n {parts.map((part, index) => (\r\n \r\n {part.text}\r\n \r\n ))}\r\n
\r\n
\r\n )\r\n }}\r\n getOptionLabel={option => option.label}\r\n renderInput={params => (\r\n \r\n )}\r\n />\r\n
\r\n
\r\n )\r\n}\r\n","import React, { useState } from 'react'\r\nimport { Button, Grid, TextField } from '@material-ui/core'\r\nimport { nanoid } from 'nanoid'\r\nimport match from 'autosuggest-highlight/match'\r\nimport parse from 'autosuggest-highlight/parse'\r\nimport { Autocomplete } from '@material-ui/lab'\r\nimport { useRecoilState, useRecoilValue, useSetRecoilState } from 'recoil'\r\nimport { ReloadAssignmentsAtom, UsersAvailableSelector } from '../recoil'\r\nimport { useFormik } from 'formik'\r\nimport Yup from 'utils/Yup'\r\nimport { doPost } from 'utils/axios'\r\nimport { loadingState, toastState } from 'recoils/atoms'\r\n\r\nexport default function GroupMember({ info }) {\r\n const setLoading = useSetRecoilState(loadingState)\r\n const [toast, setToast] = useRecoilState(toastState)\r\n\r\n const usersAvailable = useRecoilValue(UsersAvailableSelector)\r\n const setReloadAssignment = useSetRecoilState(ReloadAssignmentsAtom)\r\n const [changed, setChanged] = useState(false)\r\n\r\n const assignments = info.assignment.map(item => {\r\n return {\r\n id: item.appUserId,\r\n label: item.user.fullName\r\n }\r\n })\r\n\r\n const assignmentForm = useFormik({\r\n initialValues: assignments.filter(item => item.id !== info.leaderId),\r\n validationSchema: Yup.object({}),\r\n validateOnChange: true,\r\n validateOnMount: true,\r\n enableReinitialize: true\r\n })\r\n\r\n const handleCancelChange = () => {\r\n assignmentForm.resetForm()\r\n setChanged(false)\r\n }\r\n\r\n const handleSaveChange = async () => {\r\n setLoading(true)\r\n\r\n const data = {\r\n classId: info.id,\r\n members: assignmentForm.values\r\n }\r\n\r\n try {\r\n const res = await doPost(`assignment/updateClassAssignment`, data)\r\n\r\n if (res && res.data.success) {\r\n setLoading(false)\r\n setToast({ ...toast, open: true, message: res.data.message, type: 'success' })\r\n setChanged(false)\r\n setReloadAssignment(old => old + 1)\r\n }\r\n } catch (err) {\r\n setLoading(false)\r\n setToast({ ...toast, open: true, message: err.message, type: 'error' })\r\n }\r\n }\r\n\r\n return (\r\n \r\n \r\n Thành viên\r\n \r\n \r\n {\r\n await assignmentForm.setValues(newValue)\r\n setChanged(true)\r\n }}\r\n // onBlur={handleCancelChange}\r\n disableClearable\r\n value={assignmentForm.values}\r\n id={`member-${nanoid(2)}`}\r\n options={usersAvailable}\r\n renderOption={(option, { inputValue }) => {\r\n const matches = match(`${option.label}`, inputValue)\r\n const parts = parse(`${option.label}`, matches)\r\n return (\r\n
\r\n
\r\n {parts.map((part, index) => (\r\n \r\n {part.text}\r\n \r\n ))}\r\n
\r\n
\r\n )\r\n }}\r\n getOptionLabel={option => option.label}\r\n renderInput={params => (\r\n \r\n )}\r\n />\r\n
\r\n {changed && (\r\n \r\n \r\n \r\n \r\n )}\r\n
\r\n )\r\n}\r\n","import React, { Suspense } from 'react'\r\nimport { Card, CardContent, Divider, Grid, LinearProgress } from '@material-ui/core'\r\n\r\nimport GroupLeader from './GroupLeader'\r\nimport GroupMember from './GroupMember'\r\n\r\nexport default function GroupInfo({ info }) {\r\n return (\r\n \r\n
\r\n
\r\n

{info.group.groupName}

\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n }>\r\n \r\n \r\n \r\n \r\n }>\r\n \r\n \r\n \r\n \r\n \r\n
\r\n )\r\n}\r\n","import React from 'react'\r\nimport { Grid } from '@material-ui/core'\r\n\r\nimport { useRecoilValue } from 'recoil'\r\n\r\nimport { ClassSelector } from '../recoil'\r\nimport { nanoid } from 'nanoid'\r\nimport GroupInfo from './GroupInfo'\r\n\r\nexport default function Groups() {\r\n const classes = useRecoilValue(ClassSelector)\r\n\r\n return (\r\n \r\n {classes?.map((item, index) => (\r\n \r\n \r\n \r\n ))}\r\n \r\n )\r\n}\r\n","import React, { Fragment, Suspense } from 'react'\r\nimport { LinearProgress } from '@material-ui/core'\r\nimport Groups from './components/Groups'\r\n\r\nexport default function TeacherAssignment() {\r\n return (\r\n \r\n }>\r\n
\r\n \r\n
\r\n
\r\n
\r\n )\r\n}\r\n","import React from 'react'\r\nimport { useRecoilValue, useRecoilState, useSetRecoilState } from 'recoil'\r\nimport { Card, CardContent, Grid, FormControl, FormControlLabel, FormGroup, CardActions, Button, Divider, TextField, MenuItem } from '@material-ui/core'\r\n\r\nimport { get } from 'lodash'\r\n\r\nimport { useFormik } from 'formik'\r\nimport { doPost } from 'utils/axios'\r\nimport sessionHelper from 'utils/sessionHelper'\r\nimport Yup from 'utils/Yup'\r\nimport { RegisterMode } from 'app/enums'\r\n\r\nimport { HolyNameQuery, UnionRegisterQuery } from 'recoils/selectors'\r\nimport { loadingState, reloadHolyName, toastState } from 'recoils/atoms'\r\nimport StyledRadio from 'components/UI/StyledRadio'\r\nimport ShortTextField from 'components/Controls/ShortTextField'\r\nimport AutocompleteTextField from 'components/Controls/AutocompleteTextField'\r\nimport KeyboardDateField from 'components/Controls/KeyboardDateField'\r\n\r\nimport { ReloadStudentGroup } from 'pages/PhanDoanTruong/ManageStudentsGroup/recoil'\r\n\r\nconst initValue = {\r\n stuHolyId: 1,\r\n isIncludeMoreInfo: false,\r\n stuGender: true,\r\n stuFatherHolyId: 1,\r\n stuMotherHolyId: 1\r\n}\r\n\r\nconst RegisterForm = () => {\r\n const lstHolyName = useRecoilValue(HolyNameQuery)\r\n const lstUnion = useRecoilValue(UnionRegisterQuery(sessionHelper().groupId))\r\n\r\n const [toast, setToast] = useRecoilState(toastState)\r\n\r\n const setLoading = useSetRecoilState(loadingState)\r\n const setReloadStudent = useSetRecoilState(ReloadStudentGroup)\r\n const setReloadHolyName = useSetRecoilState(reloadHolyName)\r\n\r\n const validationSchema = Yup.object({\r\n stuFirstName: Yup.string().required('Không để trống').max(100, 'Không nhập nhiều hơn 100 ký tự.'),\r\n stuLastName: Yup.string().required('Không để trống').max(50, 'Không nhập nhiều hơn 50 ký tự.'),\r\n stuNote: Yup.string().max(250, 'Không nhập nhiều hơn 250 ký tự.').nullable(),\r\n stuMotherFullName: Yup.string().max(150, 'Không nhập nhiều hơn 150 ký tự.').nullable(),\r\n stuFatherFullName: Yup.string().max(150, 'Không nhập nhiều hơn 150 ký tự.').nullable(),\r\n stuMotherPhone: Yup.string()\r\n .max(11, 'Không nhập nhiều hơn 11 ký tự.')\r\n .matches(/^[0-9]+$/g, {\r\n message: 'Không đúng định dạng',\r\n excludeEmptyString: true\r\n })\r\n .nullable(),\r\n stuFatherPhone: Yup.string()\r\n .max(11, 'Không nhập nhiều hơn 11 ký tự.')\r\n .matches(/^[0-9]+$/g, {\r\n message: 'Không đúng định dạng',\r\n excludeEmptyString: true\r\n })\r\n .nullable()\r\n })\r\n\r\n const stuForm = useFormik({\r\n initialValues: { ...initValue },\r\n validationSchema: validationSchema,\r\n validateOnChange: true,\r\n enableReinitialize: true,\r\n initialErrors: { stuFirstName: 'Required' }\r\n })\r\n\r\n const handleClickSave = async e => {\r\n e.preventDefault()\r\n setLoading(true)\r\n\r\n const formData = stuForm.values\r\n\r\n const checkReloadHolyNameList = get(formData, 'stuHolyId') === 0 || get(formData, 'stuFatherHolyId') === 0 || get(formData, 'stuMotherHolyId') === 0\r\n\r\n try {\r\n const res = await doPost(`student/registerStudent`, {\r\n ...formData,\r\n\r\n RegisterMode: RegisterMode.Offline,\r\n IsFromLeadOfGroup: true,\r\n UserId: sessionHelper().userId,\r\n ScholasticId: sessionHelper().scholasticId,\r\n ClassId: sessionHelper().classId\r\n })\r\n if (res && res.data.success) {\r\n setToast({ ...toast, open: true, message: res.data.message, type: 'success' })\r\n setReloadStudent(old => old + 1)\r\n stuForm.resetForm({\r\n values: {\r\n ...initValue,\r\n stuUnionId: formData.stuUnionId,\r\n stuTeamCode: formData.stuTeamCode\r\n }\r\n })\r\n if (checkReloadHolyNameList) {\r\n setReloadHolyName(old => old + 1)\r\n }\r\n }\r\n } catch (err) {\r\n setToast({ ...toast, open: true, message: err.message, type: 'error' })\r\n } finally {\r\n setLoading(false)\r\n }\r\n }\r\n\r\n const handleClearForm = () => {\r\n stuForm.resetForm({ values: { ...initValue } })\r\n }\r\n\r\n const TextField_Props = (name, label, maxLength) => {\r\n const { values, errors, touched, handleBlur, handleChange } = stuForm\r\n return {\r\n name,\r\n label,\r\n fullWidth: true,\r\n variant: 'outlined',\r\n error: errors[name] && touched[name],\r\n helperText: errors[name] && touched[name] && errors[name],\r\n InputLabelProps: { shrink: true },\r\n value: values[name] ?? '',\r\n onBlur: handleBlur,\r\n onChange: handleChange,\r\n inputProps: {\r\n maxLength: maxLength\r\n }\r\n }\r\n }\r\n\r\n return (\r\n \r\n
\r\n
\r\n

Thêm Đoàn sinh mới

\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Thông tin quản lý\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n {lstUnion?.map(union => (\r\n \r\n {union.unionCode}\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n {Array.from(Array(lstUnion.find(u => Number(u.unionId) === Number(get(stuForm.values, 'stuUnionId')))?.totalTeam).keys()).map(team => (\r\n \r\n {team + 1}\r\n \r\n ))}\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n Thông tin Đoàn sinh\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n stuForm.setFieldValue('stuGender', e.target.checked)}\r\n checked={stuForm.values['stuGender']}\r\n control={}\r\n label=\"Nam\"\r\n labelPlacement=\"end\"\r\n />\r\n stuForm.setFieldValue('stuGender', !e.target.checked)}\r\n checked={!stuForm.values['stuGender']}\r\n control={}\r\n label=\"Nữ\"\r\n labelPlacement=\"end\"\r\n />\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n Thông tin Cha Mẹ Đoàn sinh\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n )\r\n}\r\n\r\nexport default RegisterForm\r\n","import React, { useState } from 'react'\r\nimport { List, ListItem, Tooltip, Fab, Menu } from '@material-ui/core'\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\nimport { faFileExcel, faDownload } from '@fortawesome/free-solid-svg-icons'\r\nimport { useRecoilState } from 'recoil'\r\n\r\nimport { ChooseFileInfoDialogAtom } from 'components/Dialog/recoil'\r\nimport { doDownload } from 'utils/axios'\r\n\r\nexport default function HeaderAction() {\r\n const [anchorEl, setAnchorEl] = useState(null)\r\n\r\n const [dialog, setDialog] = useRecoilState(ChooseFileInfoDialogAtom)\r\n\r\n const handleOpen = event => {\r\n setAnchorEl(event.currentTarget)\r\n }\r\n\r\n const handleDownloadStudentInfo = async e => {\r\n e.preventDefault()\r\n handleClose()\r\n\r\n return doDownload('file/getRegisterFile')\r\n }\r\n\r\n const handleUploadStudentInfoFile = () => {\r\n setDialog({ ...dialog, openChooseFileDialog: true, pageCall: 'PDT-AddStudentGroup' })\r\n handleClose()\r\n }\r\n\r\n const handleClose = () => {\r\n setAnchorEl(null)\r\n }\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
Tải file nhập Đoàn sinh
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n \r\n
Thêm Đoàn sinh từ file
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n )\r\n}\r\n","import React from 'react'\r\nimport { Grid, Hidden } from '@material-ui/core'\r\n\r\nimport { ChooseInfoFileDialog } from 'components/Dialog'\r\n\r\nimport RegisterForm from './RegisterForm'\r\nimport HeaderAction from './HeaderAction'\r\n\r\nexport default function AddNewStudent() {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n )\r\n}\r\n","import React, { useState } from 'react'\r\nimport { useRecoilValue, useRecoilState } from 'recoil'\r\nimport { Fab, Menu, Tooltip, List, ListItem, Collapse, ListItemText } from '@material-ui/core'\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\nimport { faFileExcel, faFileUpload, faDownload, faFilePdf } from '@fortawesome/free-solid-svg-icons'\r\n\r\nimport ExpandLess from '@material-ui/icons/ExpandLess'\r\nimport ExpandMore from '@material-ui/icons/ExpandMore'\r\n\r\nimport { SemesterEnum } from 'app/enums'\r\nimport sessionHelper from 'utils/sessionHelper'\r\n\r\nimport { ChooseFileDialogAtom, GroupScoreResultDialogAtom } from 'components/Dialog/recoil'\r\n\r\nimport { SemesterSelected } from 'recoils/atoms'\r\nimport { doDownload } from 'utils/axios'\r\n\r\nexport default function HeaderAction() {\r\n const [expand, setExpand] = useState(false)\r\n const [anchorEl, setAnchorEl] = useState(null)\r\n const [expandDownloadDoc, setExpandDownloadDoc] = useState(false)\r\n\r\n const semester = useRecoilValue(SemesterSelected)\r\n\r\n const [dialog, setDialog] = useRecoilState(ChooseFileDialogAtom)\r\n const [dialogResult, setDialogResult] = useRecoilState(GroupScoreResultDialogAtom)\r\n\r\n const handleClick = event => {\r\n setAnchorEl(event.currentTarget)\r\n }\r\n\r\n const handleExpand = () => {\r\n setExpand(!expand)\r\n }\r\n\r\n const handleClose = () => {\r\n setAnchorEl(null)\r\n setExpand(false)\r\n setExpandDownloadDoc(false)\r\n }\r\n\r\n const handleDownloadExcel = async (e, semesterCode) => {\r\n e.preventDefault()\r\n handleClose()\r\n\r\n const params = {\r\n scholasticId: sessionHelper().scholasticId,\r\n classId: sessionHelper().classId,\r\n userId: sessionHelper().userId,\r\n semester: semesterCode,\r\n groupId: sessionHelper().groupId\r\n }\r\n\r\n await doDownload('file/getGroupScoreCSV', params)\r\n }\r\n\r\n const handleUploadExcel = () => {\r\n setDialog({ ...dialog, openChooseFileDialog: true, pageCall: 'PDT-StudentGroupScore', semesterId: semester })\r\n handleClose()\r\n }\r\n\r\n // const handleDownloadResult = async (event, semesterCode) => {\r\n // event.preventDefault()\r\n // let templateId = '',\r\n // title = ''\r\n //\r\n // if (semesterCode === SemesterEnum.semesterOne) {\r\n // templateId = process.env.REACT_APP_FROM_RESULT_SEMESTER_ONE_ID\r\n // title = 'HKI'\r\n // }\r\n //\r\n // if (semesterCode === SemesterEnum.total) {\r\n // templateId = process.env.REACT_APP_FROM_RESULT_TOTAL_ID\r\n // title = 'Cả năm'\r\n // }\r\n //\r\n // setDialogResult({ ...dialogResult, open: true, templateId: templateId, title: title })\r\n // handleClose()\r\n // }\r\n\r\n const handleDownloadGroupResult = async (event, semesterCode) => {\r\n event.preventDefault()\r\n handleClose()\r\n\r\n const params = {\r\n scholasticId: sessionHelper().scholasticId,\r\n classId: sessionHelper().classId,\r\n userId: sessionHelper().userId,\r\n semesterCode\r\n }\r\n\r\n await doDownload('download/groupResultExcelFile', params)\r\n }\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n setExpandDownloadDoc(!expandDownloadDoc)}>\r\n
\r\n
\r\n
\r\n \r\n
Tải kết quả Học tập
\r\n
{expandDownloadDoc ? : }
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n handleDownloadGroupResult(e, SemesterEnum.semesterOne)} style={{ textAlign: 'center' }}>\r\n \r\n \r\n handleDownloadGroupResult(e, SemesterEnum.semesterTwo)} style={{ textAlign: 'center' }}>\r\n \r\n \r\n handleDownloadGroupResult(e, SemesterEnum.total)} style={{ textAlign: 'center' }}>\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
Tải mẫu nhập điểm
\r\n
{expand ? : }
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n handleDownloadExcel(e, SemesterEnum.semesterOne)} style={{ textAlign: 'center' }}>\r\n \r\n \r\n handleDownloadExcel(e, SemesterEnum.semesterTwo)} style={{ textAlign: 'center' }}>\r\n \r\n \r\n handleDownloadExcel(e, SemesterEnum.total)} style={{ textAlign: 'center' }}>\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
Nhập điểm từ file
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n )\r\n}\r\n","import * as React from 'react'\r\nimport { Skeleton } from '@material-ui/lab'\r\n\r\nconst RowSkeleton = () => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default RowSkeleton\r\n","import React, { Fragment, useEffect, useState } from 'react'\r\nimport { useRecoilValue, useRecoilState } from 'recoil'\r\nimport red from '@material-ui/core/colors/red'\r\nimport { makeStyles, Hidden } from '@material-ui/core'\r\n\r\nimport StyledCheckbox from 'components/UI/StyledCheckbox'\r\nimport { AbsentMode, SemesterEnum } from 'app/enums'\r\nimport { toastState } from 'recoils/atoms'\r\nimport sessionHelper from 'utils/sessionHelper'\r\nimport { doGet, doPost } from 'utils/axios'\r\n\r\nimport { SemesterSelected } from 'recoils/atoms'\r\nimport ScoreTextField from 'components/Controls/ScoreTextField'\r\n\r\nconst useStyle = makeStyles({\r\n pinCell: {\r\n position: 'sticky',\r\n left: 0,\r\n backgroundColor: 'white',\r\n zIndex: 1,\r\n\r\n '&::after': {\r\n position: 'absolute',\r\n right: 0,\r\n top: 0,\r\n bottom: 0,\r\n width: '2.5px',\r\n zIndex: 2,\r\n content: '\"\"',\r\n backgroundColor: '#E5E6F5'\r\n }\r\n }\r\n})\r\n\r\nconst StudentUnionTeamBodyItem = ({ studentId }) => {\r\n const classStyle = useStyle()\r\n\r\n const [student, setStudent] = useState(undefined)\r\n const [reload, setReload] = useState(0)\r\n const [beUpClass, setBeUpClass] = useState(false)\r\n\r\n const semester = useRecoilValue(SemesterSelected)\r\n const [toast, setToast] = useRecoilState(toastState)\r\n\r\n const handleRowClick = e => {\r\n e.preventDefault()\r\n }\r\n\r\n const handleCheckUpClass = async e => {\r\n const val = e.target.checked\r\n const { scholasticId, firstName, lastName } = sessionHelper()\r\n\r\n const newData = {\r\n scholasticId,\r\n userFullName: `${firstName} ${lastName}`,\r\n studentId: student.id,\r\n beUpClass: val\r\n }\r\n\r\n try {\r\n const res = await doPost(`student/updateBeUpClass`, newData)\r\n if (res && res.data.success) {\r\n setToast({ ...toast, open: true, message: res.data.message, type: 'success' })\r\n setBeUpClass(val)\r\n }\r\n } catch (err) {\r\n setToast({ ...toast, open: true, message: err.data.message, type: 'error' })\r\n }\r\n }\r\n\r\n const sumAbsents = () => {\r\n let classAb, massAb\r\n\r\n if (semester === SemesterEnum.semesterOne) {\r\n classAb = student?.absents?.filter(ab => ab.absentMode === AbsentMode.Class && ab.semesterCode === 1)\r\n massAb = student?.absents?.filter(ab => ab.absentMode === AbsentMode.Mass && ab.semesterCode === 1)\r\n }\r\n\r\n if (semester === SemesterEnum.semesterTwo) {\r\n classAb = student?.absents?.filter(ab => ab.absentMode === AbsentMode.Class && ab.semesterCode === 2)\r\n massAb = student?.absents?.filter(ab => ab.absentMode === AbsentMode.Mass && ab.semesterCode === 2)\r\n }\r\n\r\n if (semester === SemesterEnum.total) {\r\n classAb = student?.absents?.filter(ab => ab.absentMode === AbsentMode.Class)\r\n massAb = student?.absents?.filter(ab => ab.absentMode === AbsentMode.Mass)\r\n }\r\n\r\n return {\r\n classHasPermission: classAb?.filter(ca => ca.hasPermission)?.length > 0 ? classAb?.filter(ca => ca.hasPermission)?.length : '',\r\n classNonPermission: classAb?.filter(ca => !ca.hasPermission)?.length > 0 ? classAb?.filter(ca => !ca.hasPermission)?.length : '',\r\n massHasPermission: massAb?.filter(ca => ca.hasPermission)?.length > 0 ? massAb?.filter(ca => ca.hasPermission)?.length : '',\r\n massNonPermission: massAb?.filter(ca => !ca.hasPermission)?.length > 0 ? massAb?.filter(ca => !ca.hasPermission)?.length : ''\r\n }\r\n }\r\n\r\n async function handleSaveScore(name, newVal) {\r\n const { scholasticId } = sessionHelper()\r\n const avg = name === 'average' ? (newVal === 0 || !newVal ? null : newVal) : null\r\n\r\n const newScore = {\r\n ...student.score,\r\n [name]: newVal,\r\n average: avg,\r\n semesterCode: semester,\r\n studentId: student.id,\r\n scholasticId\r\n }\r\n\r\n if (semester !== SemesterEnum.total) {\r\n const oldScoreFrom = student.score.scoreForm == null ? '' : JSON.parse(student.score.scoreForm)\r\n const newScoreForm = oldScoreFrom?.map(item => {\r\n if (item.Key === name) {\r\n return { ...item, Value: newVal }\r\n }\r\n return item\r\n })\r\n newScore['scoreForm'] = JSON.stringify(newScoreForm)\r\n }\r\n\r\n try {\r\n const res = await doPost(`student/updateStudentScore`, newScore)\r\n if (res && res.data.success) {\r\n // setToast({ ...toast, open: true, message: 'Cập nhật thành công', type: 'success' })\r\n setReload(old => old + 1)\r\n }\r\n } catch (err) {\r\n setToast({ ...toast, open: true, message: err.data.message, type: 'error' })\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n async function fetch() {\r\n const { groupId, scholasticId } = sessionHelper()\r\n\r\n const res = await doGet('student/getStudentScoreInTeam', {\r\n groupId,\r\n studentId,\r\n semesterCode: semester,\r\n scholasticId\r\n })\r\n if (res && res.data.success) {\r\n const { data } = res.data\r\n\r\n setStudent({ ...student, ...data })\r\n }\r\n }\r\n\r\n if (!student) fetch().finally()\r\n }, [])\r\n\r\n useEffect(() => {\r\n if (student?.score) {\r\n setBeUpClass(student?.score?.beUpClass)\r\n }\r\n }, [student])\r\n\r\n useEffect(() => {\r\n async function fetch() {\r\n const { groupId, scholasticId } = sessionHelper()\r\n\r\n const res = await doGet('student/getStudentScoreInTeam', {\r\n groupId,\r\n studentId,\r\n semesterCode: semester,\r\n scholasticId\r\n })\r\n if (res && res.data.success) {\r\n const { data } = res.data\r\n\r\n setStudent({ ...student, ...data })\r\n }\r\n }\r\n\r\n if (reload > 0) {\r\n fetch().finally()\r\n }\r\n }, [reload])\r\n\r\n return (\r\n \r\n {student && (semester === SemesterEnum.semesterOne || semester === SemesterEnum.semesterTwo) && (\r\n 0 ? red[200] : 'inherit'\r\n }}\r\n >\r\n \r\n {student.holyName} \r\n \r\n
\r\n
\r\n {student.firstName} {student.lastName}\r\n \r\n {JSON.parse(student.score?.scoreForm)?.map(item => (\r\n \r\n \r\n \r\n ))}\r\n {student.score?.attendanceScore}\r\n \r\n \r\n \r\n {student.score?.ranking}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* Nghỉ học có phép */}\r\n {sumAbsents().classHasPermission}\r\n {/* Nghỉ học không phép */}\r\n {sumAbsents().classNonPermission}\r\n {/* Nghỉ lễ phép */}\r\n {sumAbsents().massHasPermission}\r\n {/* Nghỉ lễ không phép */}\r\n {sumAbsents().massNonPermission}\r\n \r\n )}\r\n\r\n {student && semester === SemesterEnum.total && (\r\n 0 ? red[100] : 'inherit'\r\n }}\r\n >\r\n \r\n {student.holyName} \r\n \r\n
\r\n
\r\n {student.firstName} {student.lastName}\r\n \r\n {student.score?.gpa}\r\n {student.score?.attendance}\r\n \r\n \r\n \r\n {student.score?.ranking ?? ''}\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* Nghỉ học có phép */}\r\n {sumAbsents().classHasPermission}\r\n {/* Nghỉ học không phép */}\r\n {sumAbsents().classNonPermission}\r\n {/* Nghỉ lễ phép */}\r\n {sumAbsents().massHasPermission}\r\n {/* Nghỉ lễ không phép */}\r\n {sumAbsents().massNonPermission}\r\n \r\n \r\n \r\n \r\n )}\r\n
\r\n )\r\n}\r\n\r\nexport default StudentUnionTeamBodyItem\r\n","import React, { Suspense, useEffect, useState } from 'react'\r\nimport { useRecoilValue } from 'recoil'\r\n\r\nimport RowSkeleton from 'components/Loading/row-skeleton'\r\nimport { TeamScoreSelected, UnionScoreSelected } from 'recoils/atoms'\r\n\r\nimport StudentUnionTeamBodyItem from 'pages/PhanDoanTruong/ManageScoreGroup/StudentUnionTeamBodyItem'\r\nimport { doGet } from 'utils/axios'\r\n\r\nimport sessionHelper from 'utils/sessionHelper'\r\n\r\nconst StudentUnionTeamBody = ({ team }) => {\r\n const teamSelected = useRecoilValue(TeamScoreSelected)\r\n const unionSelected = useRecoilValue(UnionScoreSelected)\r\n\r\n const [ids, setIds] = useState([])\r\n\r\n useEffect(() => {\r\n async function fetchData(teamId) {\r\n const res = await doGet('student/getStudentIdsInTeam', {\r\n classId: sessionHelper().classId,\r\n unionId: unionSelected,\r\n team: teamId\r\n })\r\n if (res && res.data.success) {\r\n const { data } = res.data\r\n setIds(data)\r\n }\r\n }\r\n\r\n if (teamSelected.includes(team)) {\r\n fetchData(team).finally()\r\n }\r\n }, [teamSelected, unionSelected])\r\n\r\n return (\r\n <>\r\n {ids?.map(id => (\r\n } key={`body-team-${id}`}>\r\n \r\n \r\n ))}\r\n \r\n )\r\n}\r\n\r\nexport default StudentUnionTeamBody\r\n","import { Card, Grid, Tooltip, IconButton, Divider, Table, makeStyles } from '@material-ui/core'\r\n\r\nimport { useRecoilValue, useSetRecoilState } from 'recoil'\r\nimport React, { Fragment, useState } from 'react'\r\nimport ExpandLessIcon from '@material-ui/icons/ExpandLess'\r\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore'\r\nimport { SemesterSelected, TeamScoreSelected } from 'recoils/atoms'\r\n\r\nimport { ScoreFormTitle, SemesterEnum } from 'app/enums'\r\nimport StudentUnionTeamBody from './StudentUnionTeamBody'\r\n\r\nconst columnsTotal = [\r\n { id: 1, label: 'TB Học tập', align: 'center' },\r\n { id: 2, label: 'Chuyên cần', align: 'center' },\r\n { id: 3, label: 'TB Cả năm', align: 'center' },\r\n { id: 4, label: 'Xếp loại', align: 'center' }\r\n]\r\n\r\nconst useStyle = makeStyles({\r\n pinCell: {\r\n position: 'sticky',\r\n left: 0,\r\n zIndex: 1,\r\n\r\n '&::after': {\r\n position: 'absolute',\r\n right: 0,\r\n top: 0,\r\n bottom: 0,\r\n width: '2.5px',\r\n zIndex: 2,\r\n content: '\"\"',\r\n backgroundColor: '#E5E6F5'\r\n }\r\n }\r\n})\r\n\r\nconst StudentUnionTeam = ({ team, totalStudents, defaultScoreForm }) => {\r\n const styleClass = useStyle()\r\n const [collapse, setCollapse] = useState(true)\r\n\r\n const semester = useRecoilValue(SemesterSelected)\r\n const setTeamSelected = useSetRecoilState(TeamScoreSelected)\r\n\r\n function handleClickTeam() {\r\n setTeamSelected(items => [...new Set([...items, team])])\r\n setCollapse(!collapse)\r\n }\r\n\r\n const columns = () => {\r\n const scoreForm = JSON.parse(defaultScoreForm)\r\n const result = []\r\n\r\n scoreForm.map((item, index) =>\r\n result.push({\r\n id: index + 1,\r\n label: ScoreFormTitle[item.Label],\r\n align: 'center'\r\n })\r\n )\r\n\r\n return result\r\n }\r\n return (\r\n \r\n
\r\n
\r\n {team === 0 &&

Chưa phân đội - {totalStudents}

}\r\n {team !== 0 && (\r\n

\r\n Đội: {team} - {totalStudents}\r\n

\r\n )}\r\n
\r\n \r\n
\r\n \r\n \r\n {collapse ? : }\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n
\r\n )\r\n}\r\n\r\nexport default StudentUnionTeam\r\n","import { atom, selector, selectorFamily } from 'recoil'\r\nimport _ from 'lodash'\r\nimport { doGet } from 'utils/axios'\r\nimport sessionHelper from 'utils/sessionHelper'\r\nimport { UnionQuery } from 'recoils/selectors'\r\nimport { SemesterSelected, UnionScoreSelected } from 'recoils/atoms'\r\n\r\nexport const SearchGroupScore = atom({\r\n key: 'searchGroupScore',\r\n default: undefined\r\n})\r\n\r\nexport const ReloadGroupScore = atom({\r\n key: 'reloadGroupScore',\r\n default: 1\r\n})\r\n\r\n// export const StudentScoreInUnionSelector = selector({\r\n// key: 'StudentScoreInUnionSelector',\r\n// get: async ({ get }) => {\r\n// const unionId = get(UnionScoreSelected)\r\n// const semesterCode = get(SemesterSelected)\r\n//\r\n// const { scholasticId, classId, userId } = sessionHelper()\r\n//\r\n// const res = await doGet(`student/getScoreByUnionId`, {\r\n// scholasticId,\r\n// userId,\r\n// classId,\r\n// getAttendance: true,\r\n// unionId,\r\n// semesterCode\r\n// })\r\n// if (res && res.data.success) {\r\n// const { data } = res.data\r\n// return data.reduce((group, stu) => {\r\n// const { currentClass } = stu\r\n// group[currentClass.team] = group[currentClass.team] ?? []\r\n// group[currentClass.team].push(stu)\r\n//\r\n// return group\r\n// }, {})\r\n// }\r\n// return null\r\n// }\r\n// })\r\n\r\nexport const StudentScoreInTeamSelector = selectorFamily({\r\n key: 'StudentScoreInTeamSelector',\r\n get:\r\n studentId =>\r\n async ({ get }) => {\r\n const semesterCode = get(SemesterSelected)\r\n const { groupId, scholasticId } = sessionHelper()\r\n\r\n const res = await doGet(`student/getStudentScoreInTeam`, { groupId, scholasticId, studentId, semesterCode })\r\n if (res && res.data.success) {\r\n const { data } = res.data\r\n\r\n return data\r\n }\r\n return null\r\n }\r\n})\r\n\r\nexport const GetUnionTeamsInfoSelector = selector({\r\n key: 'GetUnionTeamsInfoSelector',\r\n get: async ({ get }) => {\r\n const unionId = get(UnionScoreSelected)\r\n const { classId } = sessionHelper()\r\n\r\n if (unionId) {\r\n const res = await doGet(`class/getTeamsInUnion`, { classId, unionId })\r\n if (res && res.data.success) {\r\n const { data } = res.data\r\n return data\r\n }\r\n }\r\n return []\r\n }\r\n})\r\n\r\nexport const StudentsGroupScore = selector({\r\n key: 'studentsGroupScore',\r\n get: async ({ get }) => {\r\n get(ReloadGroupScore)\r\n\r\n const userId = sessionHelper().userId\r\n const scholasticId = Number(sessionHelper().scholasticId)\r\n const classId = sessionHelper().classId\r\n\r\n const lstUnion = get(UnionQuery)\r\n\r\n var res = await doGet(`student/getStudentInGroup`, { scholasticId, userId, classId, getAttendance: true })\r\n\r\n if (res && res.data.success) {\r\n const lstStudent = []\r\n\r\n // Tạo mảng danh sách chi đoàn\r\n for (const t of lstUnion) {\r\n lstStudent.push({ unionId: t.unionId, unionCode: t.unionCode, students: [] })\r\n }\r\n if (res.data.data) {\r\n let { data } = res.data\r\n\r\n // Đưa từng Đoàn sinh vô chi đoàn\r\n for (const stu of data) {\r\n stu.semesterOne = stu.semesterOne?.filter(sr => sr.scholasticId === scholasticId)\r\n stu.semesterTwo = stu.semesterTwo?.filter(sr => sr.scholasticId === scholasticId)\r\n stu.total = stu.total?.filter(sr => sr.scholasticId === scholasticId)\r\n\r\n const stuUnionId = stu?.studentClass?.find(sc => sc.classId === stu.classId)?.unionId\r\n if (stuUnionId !== 1) {\r\n lstStudent.forEach(t => {\r\n if (t.unionId === stuUnionId) {\r\n t.students.push(stu)\r\n }\r\n })\r\n }\r\n }\r\n return _.orderBy(lstStudent, ['unionId'], ['asc'])\r\n }\r\n }\r\n return null\r\n }\r\n})\r\n","import React, { Fragment } from 'react'\r\nimport { useRecoilValue } from 'recoil'\r\n\r\nimport StudentUnionTeam from 'pages/PhanDoanTruong/ManageScoreGroup/StudentUnionTeam'\r\nimport { GetUnionTeamsInfoSelector } from 'pages/PhanDoanTruong/ManageScoreGroup/recoil'\r\nimport { GroupSettingsQuery } from 'recoils/selectors'\r\n\r\nconst StudentUnion = () => {\r\n const teams = useRecoilValue(GetUnionTeamsInfoSelector)\r\n const groupSettings = useRecoilValue(GroupSettingsQuery)\r\n\r\n return (\r\n \r\n {teams?.map(item => (\r\n \r\n ))}\r\n \r\n )\r\n}\r\n\r\nexport default StudentUnion\r\n","import { Button, ButtonGroup, CardContent, Hidden, Typography } from '@material-ui/core'\r\nimport Slider from 'react-slick'\r\nimport React, { Fragment, useEffect } from 'react'\r\nimport { useRecoilState, useRecoilValue } from 'recoil'\r\nimport { UnionScoreSelected } from 'recoils/atoms'\r\nimport { UnionQuery } from 'recoils/selectors'\r\n\r\nconst settings = {\r\n dots: false,\r\n infinite: false,\r\n speed: 500,\r\n slidesToShow: 2.5,\r\n slidesToScroll: 2,\r\n nextArrow: <>,\r\n prevArrow: <>\r\n}\r\n\r\nexport default function SelectUnion() {\r\n const lstUnion = useRecoilValue(UnionQuery)\r\n\r\n const [selectedUnion, setSelectedUnion] = useRecoilState(UnionScoreSelected)\r\n\r\n const handleClickUnion = unionId => {\r\n setSelectedUnion(unionId)\r\n }\r\n\r\n useEffect(() => {\r\n if (!selectedUnion) setSelectedUnion(lstUnion[0]?.unionId)\r\n }, [selectedUnion, setSelectedUnion, lstUnion])\r\n\r\n return (\r\n \r\n \r\n \r\n {lstUnion?.map(union => (\r\n \r\n ))}\r\n \r\n \r\n\r\n \r\n \r\n {lstUnion?.map(union => (\r\n handleClickUnion(union.unionId)} key={union.unionId}>\r\n \r\n Chi đoàn {union.unionCode}\r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n )\r\n}\r\n","import React, { Suspense } from 'react'\r\nimport { Grid, ButtonGroup, Button, Hidden } from '@material-ui/core'\r\nimport { useRecoilState } from 'recoil'\r\n\r\nimport { Semester } from 'app/enums'\r\nimport { ChooseFileDialog, GroupScoreResultDialog } from 'components/Dialog'\r\n\r\nimport { SemesterSelected } from 'recoils/atoms'\r\n\r\nimport HeaderAction from 'pages/PhanDoanTruong/ManageScoreGroup//HeaderAction'\r\nimport StudentUnion from 'pages/PhanDoanTruong/ManageScoreGroup/StudentUnion'\r\nimport PageSkeleton from 'components/Loading/page-skeleton'\r\nimport SelectUnion from './SelectUnion'\r\n\r\nconst ManageScoreGroup = () => {\r\n const [semester, setSemester] = useRecoilState(SemesterSelected)\r\n\r\n const Body = () => {\r\n return (\r\n
\r\n \r\n \r\n \r\n {Semester.map(s => (\r\n \r\n ))}\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
\r\n \r\n\r\n
\r\n }>\r\n \r\n \r\n
\r\n )\r\n }\r\n return (\r\n Đang tải Danh sách điểm ...}>\r\n \r\n\r\n {/* DIALOG */}\r\n {/* */}\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default ManageScoreGroup\r\n","import React from 'react'\r\nimport { Typography } from '@material-ui/core'\r\nimport { useRecoilValue, useRecoilState, useSetRecoilState } from 'recoil'\r\n\r\nimport { StudentDialogAtom } from 'components/Dialog/recoil'\r\n\r\nimport { ViewModes, StudentStatus } from 'app/enums'\r\nimport { ViewMode, PageYOffset } from 'recoils/atoms'\r\nimport { HolyNameQuery } from 'recoils/selectors'\r\n\r\nconst StudentTeamItem = ({ student, unionId, index }) => {\r\n const lstHolyname = useRecoilValue(HolyNameQuery)\r\n const viewMode = useRecoilValue(ViewMode)\r\n\r\n // const [toast, setToast] = useRecoilState(toastState)\r\n const [studentDialog, setStudentDialog] = useRecoilState(StudentDialogAtom)\r\n\r\n // const setLoading = useSetRecoilState(loadingState)\r\n const setPageYOffset = useSetRecoilState(PageYOffset)\r\n\r\n const handleClickRow = () => {\r\n setPageYOffset(window.pageYOffset)\r\n setStudentDialog({ ...studentDialog, stuDialog: true, pageCall: 'PDT-Student', student: student })\r\n }\r\n\r\n // const handleAddAbsent = async (e, hasPermission) => {\r\n // e.preventDefault()\r\n // setLoading(true)\r\n //\r\n // const val = {\r\n // StudentId: student.id,\r\n // DateAbsent: new Date(),\r\n // IsActive: true,\r\n // Mode: 0,\r\n // ScholasticId: sessionHelper().scholasticId,\r\n // UserFullName: `${sessionHelper().firstName} ${sessionHelper().lastName}`,\r\n // UserId: sessionHelper().userId,\r\n // ClassId: sessionHelper().classId,\r\n // HasPermission: hasPermission,\r\n // Modes: [e.target.value]\r\n // }\r\n //\r\n // try {\r\n // var res = await doPost(`student/absent`, val)\r\n // if (res && res.data.success) {\r\n // setLoading(false)\r\n // setToast({ ...toast, open: true, message: res.data.message, type: 'success' })\r\n // }\r\n // } catch (err) {\r\n // setLoading(false)\r\n // setToast({ ...toast, open: true, message: err.message, type: 'error' })\r\n // }\r\n // }\r\n\r\n // const checkDisabled = status => {\r\n // return status === StudentStatus.ChangeChurch || status === StudentStatus.LeaveStudy\r\n // }\r\n\r\n const findClassName = student => {\r\n if (student.status === StudentStatus.ChangeChurch) {\r\n return 'tr-student__change-church'\r\n }\r\n\r\n if (student.status === StudentStatus.LeaveStudy) {\r\n return 'tr-student__absent'\r\n }\r\n\r\n if (student.isNewStudent) {\r\n return 'tr-student__new-student'\r\n }\r\n\r\n return ''\r\n }\r\n\r\n return (\r\n \r\n {viewMode !== ViewModes.DiemDanh && {index}}\r\n \r\n \r\n {lstHolyname.find(h => h.id === student.stuHolyId).name}\r\n
\r\n {student.stuFirstName} {student.stuLastName}\r\n
\r\n \r\n {/*{unionId !== 1 && viewMode === ViewModes.DiemDanh && team !== 0 && (*/}\r\n {/* <>*/}\r\n {/* */}\r\n {/* {viewMode === ViewModes.DiemDanh && viewAbsentMode === AbsentMode.Mass && (*/}\r\n {/* handleAddAbsent(e, true)} />} />*/}\r\n {/* )}*/}\r\n {/* {viewMode === ViewModes.DiemDanh && viewAbsentMode === AbsentMode.Class && (*/}\r\n {/* handleAddAbsent(e, true)} />} />*/}\r\n {/* )}*/}\r\n {/* */}\r\n {/* */}\r\n {/* {viewMode === ViewModes.DiemDanh && viewAbsentMode === AbsentMode.Mass && (*/}\r\n {/* handleAddAbsent(e, false)} />} />*/}\r\n {/* )}*/}\r\n {/* {viewMode === ViewModes.DiemDanh && viewAbsentMode === AbsentMode.Class && (*/}\r\n {/* handleAddAbsent(e, false)} />} />*/}\r\n {/* )}*/}\r\n {/* */}\r\n {/* */}\r\n {/*)}*/}\r\n {unionId !== 1 && viewMode === ViewModes.DanhSachNghi && (\r\n \r\n {student.status === StudentStatus.ChangeChurch && Chuyển xứ}\r\n {student.status === StudentStatus.LeaveStudy && Nghỉ luôn}\r\n \r\n )}\r\n \r\n )\r\n}\r\n\r\nexport default StudentTeamItem\r\n","import React, { useState } from 'react'\r\nimport { Grid, Card, Tooltip, IconButton, Divider } from '@material-ui/core'\r\nimport { useRecoilValue } from 'recoil'\r\n\r\n//Icons\r\nimport ExpandLessIcon from '@material-ui/icons/ExpandLess'\r\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore'\r\n\r\nimport { ViewMode } from 'recoils/atoms'\r\nimport { ViewModes } from 'app/enums'\r\n\r\nimport StudentTeamItem from './StudentTeamItem'\r\n\r\nconst StudentTeam = ({ item, unionId }) => {\r\n const viewMode = useRecoilValue(ViewMode)\r\n\r\n const [collapse, setCollapse] = useState(true)\r\n // const [viewAbsentMode, setViewAbsentMode] = useState(AbsentMode.Mass)\r\n\r\n const handleCollapse = () => {\r\n setCollapse(!collapse)\r\n }\r\n\r\n return (\r\n <>\r\n {item?.students?.length > 0 && (\r\n \r\n
\r\n
\r\n {item.team === 0 &&

Chưa phân đội - {item?.students?.length}

}\r\n {item.team !== 0 && (\r\n

\r\n Đội: {item.team} - {item?.students?.length}\r\n

\r\n )}\r\n
\r\n \r\n
\r\n \r\n \r\n {collapse ? : }\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n {item?.students?.length > 0 && (\r\n \r\n )}\r\n
\r\n )}\r\n \r\n )\r\n}\r\n\r\nexport default StudentTeam\r\n","import React, { useState } from 'react'\r\nimport { Card, Grid, Tooltip, IconButton, CardContent, Divider } from '@material-ui/core'\r\nimport _ from 'lodash'\r\nimport { useRecoilValue } from 'recoil'\r\n\r\n//Icons\r\nimport ExpandLessIcon from '@material-ui/icons/ExpandLess'\r\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore'\r\n\r\nimport { ViewMode } from 'recoils/atoms'\r\nimport { ViewModes, StudentStatus } from 'app/enums'\r\n\r\nimport StudentTeam from './StudentTeam'\r\nimport StudentTeamItem from './StudentTeamItem'\r\n\r\nconst StudentGroup = ({ item }) => {\r\n const [collapse, setCollapse] = useState(true)\r\n\r\n const viewMode = useRecoilValue(ViewMode)\r\n\r\n const distinctTeam = [...new Set(item.students.map(x => x.studentClass.find(sc => sc.classId === x.classId && sc.unionId === item.unionId)?.team))]\r\n const lstStudentInTeam = [{ team: 0, students: [] }]\r\n\r\n for (const t of distinctTeam) {\r\n if (t !== 0) lstStudentInTeam.push({ team: t, students: [] })\r\n }\r\n\r\n for (const stu of item.students) {\r\n lstStudentInTeam.forEach(t => {\r\n if (t.team === stu.studentClass.find(sc => sc.classId === stu.classId && sc.unionId === item.unionId)?.team) {\r\n t.students.push(stu)\r\n }\r\n })\r\n }\r\n\r\n const filterAbsent = () => {\r\n if (viewMode === ViewModes.DanhSachNghi) {\r\n lstStudentInTeam.forEach(item => {\r\n // if (item.team !== 0)\r\n item.students = item.students.filter(stu => stu.status === StudentStatus.ChangeChurch || stu.status === StudentStatus.LeaveStudy)\r\n // else item.students = []\r\n })\r\n }\r\n // else {\r\n // lstStudentInTeam.forEach(item => {\r\n // if (item.team !== 0) item.students = _.filter(item.students, { status: StudentStatus.Active })\r\n // })\r\n // }\r\n\r\n if (viewMode === ViewModes.DanhSachOLai) {\r\n lstStudentInTeam.forEach(item => {\r\n // if (item.team !== 0) {\r\n item.students = item.students.filter(stu => stu.studentClass[0].stayInClass)\r\n // } else {\r\n // item.students = []\r\n // }\r\n })\r\n }\r\n\r\n return lstStudentInTeam\r\n }\r\n\r\n const handleCollapse = () => {\r\n setCollapse(!collapse)\r\n }\r\n\r\n // console.log(lstStudentInTeam)\r\n\r\n return (\r\n <>\r\n {item?.students?.length > 0 && (\r\n \r\n
\r\n
\r\n {item.unionId === 1 &&

Chưa phân Chi đoàn - {item?.students?.length}

}\r\n {item.unionId !== 1 && (\r\n

\r\n Chi đoàn: {item.unionCode} - {item?.students?.length} |{' '}\r\n {item?.students?.filter(i => i.status === StudentStatus.ChangeChurch || i.status === StudentStatus.LeaveStudy)?.length} |{' '}\r\n {item?.students?.filter(i => i.studentClass[0].stayInClass)?.length}\r\n

\r\n )}\r\n
\r\n \r\n
\r\n \r\n \r\n {collapse ? : }\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n {/* === 1 là những đoàn sinh chưa phân Chi đoàn */}\r\n {item.unionId === 1 && (\r\n \r\n )}\r\n {/* !== 1 là những đoàn sinh đã được phân Chi đoàn */}\r\n {item.unionId !== 1 && (\r\n \r\n )}\r\n
\r\n )}\r\n \r\n )\r\n}\r\n\r\nexport default StudentGroup\r\n","import React, { Fragment, useState } from 'react'\r\nimport { List, ListItem, Tooltip, Fab, Menu } from '@material-ui/core'\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\nimport { faFileExcel, faDownload, faFilePdf } from '@fortawesome/free-solid-svg-icons'\r\nimport { useSetRecoilState, useRecoilState } from 'recoil'\r\n\r\nimport sessionHelper from 'utils/sessionHelper'\r\nimport { doDownload } from 'utils/axios'\r\nimport { loadingState, toastState } from 'recoils/atoms'\r\nimport { ChooseFileInfoDialogAtom } from 'components/Dialog/recoil'\r\n\r\nconst templateId = process.env.REACT_APP_START_YEAR_DOC_ID\r\n\r\nexport default function HeaderAction() {\r\n const [anchorEl, setAnchorEl] = useState(null)\r\n\r\n const setToast = useSetRecoilState(toastState)\r\n const setLoading = useSetRecoilState(loadingState)\r\n\r\n const [dialog, setDialog] = useRecoilState(ChooseFileInfoDialogAtom)\r\n\r\n const handleOpen = event => {\r\n setAnchorEl(event.currentTarget)\r\n }\r\n\r\n const handleDownload = async e => {\r\n e.preventDefault()\r\n setLoading(true)\r\n handleClose()\r\n\r\n try {\r\n const data = {\r\n StudentId: [],\r\n ClassId: sessionHelper().classId,\r\n ScholasticId: sessionHelper().scholasticId,\r\n UserId: sessionHelper().userId,\r\n TemplateId: templateId,\r\n IsPreview: false\r\n }\r\n\r\n await doDownload('download/downloadPreviewForm', data)\r\n setLoading(false)\r\n } catch (err) {\r\n setToast({ open: true, message: err.message, type: 'error' })\r\n }\r\n }\r\n\r\n const handleDownloadStudentInfo = async e => {\r\n e.preventDefault()\r\n handleClose()\r\n\r\n const params = {\r\n scholasticId: sessionHelper().scholasticId,\r\n classId: sessionHelper().classId,\r\n userId: sessionHelper().userId\r\n }\r\n\r\n return doDownload('file/getGroupStudentInfoCSV', params)\r\n }\r\n\r\n const handleUploadStudentInfoFile = () => {\r\n setDialog({ ...dialog, openChooseFileDialog: true, pageCall: 'PDT-StudentGroup' })\r\n handleClose()\r\n }\r\n\r\n const handleClose = () => {\r\n setAnchorEl(null)\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
Tải DS Đoàn sinh đầu năm
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n \r\n
Tải thông tin Đoàn sinh
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n \r\n
Nhập thông tin Đoàn sinh
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n )\r\n}\r\n","import React, { Fragment, Suspense, useEffect } from 'react'\r\nimport { useRecoilValue, useRecoilState } from 'recoil'\r\nimport { Grid, Typography, ButtonGroup, Button } from '@material-ui/core'\r\nimport _ from 'lodash'\r\n\r\nimport { AbsentDialog, StudentDialog, DialerDialog, ChooseInfoFileDialog, ChangeGroupModal } from 'components/Dialog'\r\nimport { ViewModes } from 'app/enums'\r\nimport { ViewMode, PageYOffset } from 'recoils/atoms'\r\n\r\nimport { StudentsGroupQuery } from './recoil'\r\nimport StudentGroup from './StudentGroup'\r\nimport HeaderAction from './HeaderAction'\r\n\r\nconst ManageStudentsGroup = () => {\r\n const lstStudent = useRecoilValue(StudentsGroupQuery)\r\n const positionY = useRecoilValue(PageYOffset)\r\n\r\n const [mode, setMode] = useRecoilState(ViewMode)\r\n\r\n const lstNoUnion = lstStudent?.filter(i => i.unionId === 1)\r\n const lstInGroup = lstStudent?.filter(i => i.unionId !== 1)\r\n const haveStudentNoUnion = _.size(lstNoUnion ? lstNoUnion[0].students : []) > 0\r\n\r\n useEffect(() => {\r\n window.scroll(0, positionY)\r\n }, [lstStudent, positionY])\r\n\r\n const body = () => {\r\n return (\r\n \r\n {lstStudent && (\r\n \r\n \r\n \r\n {/**/}\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n )}\r\n\r\n {!lstStudent && (\r\n \r\n \r\n Chưa có Đoàn sinh trong Phân đoàn.\r\n \r\n \r\n )}\r\n\r\n {haveStudentNoUnion &&\r\n lstNoUnion.map(item => (\r\n \r\n \r\n \r\n ))}\r\n\r\n \r\n {lstInGroup?.map(\r\n item =>\r\n item.students.length > 0 && (\r\n \r\n \r\n \r\n )\r\n )}\r\n \r\n \r\n )\r\n }\r\n\r\n return (\r\n Đang tải Danh sách Đoàn sinh ...}>\r\n {body()}\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default ManageStudentsGroup\r\n","import React from 'react'\r\nimport { Typography, Tooltip, IconButton } from '@material-ui/core'\r\nimport { useRecoilValue, useSetRecoilState, useRecoilState } from 'recoil'\r\nimport StyledCheckbox from 'components/UI/StyledCheckbox'\r\n\r\nimport red from '@material-ui/core/colors/red'\r\nimport ClearTwoToneIcon from '@material-ui/icons/ClearTwoTone'\r\nimport sessionHelper, { setLocalStoreData } from 'utils/sessionHelper'\r\nimport { doPost } from 'utils/axios'\r\n\r\nimport { HolyNameQuery } from 'recoils/selectors'\r\nimport { toastState, loadingState } from 'recoils/atoms'\r\nimport { RolesDialogAtom } from 'components/Dialog/recoil'\r\n\r\nimport { ReloadUserInGroup, AssignmentIdSelected } from './recoil'\r\n\r\nconst UserListItem = ({ assign }) => {\r\n const lstHolyName = useRecoilValue(HolyNameQuery)\r\n const setLoading = useSetRecoilState(loadingState)\r\n const setReloadUsers = useSetRecoilState(ReloadUserInGroup)\r\n const [toast, setToast] = useRecoilState(toastState)\r\n const [assignIds, setAssignIds] = useRecoilState(AssignmentIdSelected)\r\n let [rolesDialog, setRolesDialog] = useRecoilState(RolesDialogAtom)\r\n\r\n const handleCheckUser = e => {\r\n const val = Number(e.target.value)\r\n const itemExist = assignIds.find(v => v === val)\r\n if (itemExist) {\r\n setAssignIds(assignIds.filter(i => i !== val))\r\n } else {\r\n setAssignIds([...assignIds, val])\r\n }\r\n }\r\n\r\n const handleRemoveUnion = async e => {\r\n e.preventDefault()\r\n setLoading(true)\r\n\r\n const newData = {\r\n UnionId: 1,\r\n ModifiedBy: `${sessionHelper().firstName} ${sessionHelper().lastName}`,\r\n AssignmentId: [assign.id]\r\n }\r\n try {\r\n const res = await doPost(`assignment/updateUnion`, newData)\r\n if (res && res.data.success) {\r\n setLoading(false)\r\n setReloadUsers(reload => reload + 1)\r\n setToast({ ...toast, open: true, message: res.data.message, type: 'success' })\r\n if (assign.appUserId == sessionHelper().userId) {\r\n setLocalStoreData('unionId', 1)\r\n window.location.reload()\r\n }\r\n }\r\n } catch (err) {\r\n setToast({ ...toast, open: true, message: err.data.message, type: 'error' })\r\n }\r\n }\r\n\r\n const handleClickRow = () => {\r\n setRolesDialog({ ...rolesDialog, open: true, pageCall: 'PDT-AssignUnion', user: assign?.user })\r\n }\r\n\r\n return (\r\n \r\n {assign?.unionId === 1 && (\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n {lstHolyName.find(h => h.id === assign?.user.holyNameId)?.name} {assign?.user.firstName} {assign?.user.lastName}\r\n \r\n \r\n {assign?.unionId !== 1 && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n )\r\n}\r\n\r\nexport default UserListItem\r\n","import React, { Suspense, useState } from 'react'\r\nimport { Card, Tooltip, IconButton, Grid } from '@material-ui/core'\r\nimport _ from 'lodash'\r\nimport { useRecoilValue } from 'recoil'\r\n\r\n//Icons\r\nimport ExpandLessIcon from '@material-ui/icons/ExpandLess'\r\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore'\r\n\r\nimport { UnionQuery } from 'recoils/selectors'\r\nimport UserListItem from './UserListItem'\r\n\r\nconst UserList = ({ item }) => {\r\n const [collapse, setCollapse] = useState(false)\r\n const lstUnion = useRecoilValue(UnionQuery)\r\n\r\n const handleCollapse = () => {\r\n setCollapse(!collapse)\r\n }\r\n\r\n return (\r\n \r\n \r\n
\r\n
\r\n {item.unionId === 1 &&

Chưa phân chi đoàn - {item?.assigns?.length}

}\r\n {item.unionId !== 1 && (\r\n

\r\n Chi đoàn: {lstUnion?.find(u => u.unionId === item.unionId)?.unionCode} - {item?.assigns?.length}\r\n

\r\n )}\r\n
\r\n \r\n
\r\n \r\n \r\n {collapse ? : }\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default UserList\r\n","import React, { Fragment, Suspense, useState } from 'react'\r\nimport { Grid, Card, TextField, InputAdornment, MenuItem, Tooltip, Fab, Typography, Button } from '@material-ui/core'\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\nimport { useRecoilValue, useSetRecoilState, useRecoilState } from 'recoil'\r\n\r\n// External\r\nimport { doPost } from 'utils/axios'\r\nimport sessionHelper, { setLocalStoreData } from 'utils/sessionHelper'\r\n\r\nimport ModalSkeleton from 'components/Loading/modal-skeleton'\r\nimport { RolesDialog } from 'components/Dialog'\r\n\r\nimport { UnionQuery } from 'recoils/selectors'\r\nimport { toastState, loadingState } from 'recoils/atoms'\r\n\r\n// Internal\r\nimport UserList from './UserList'\r\nimport { UserInGroupQuery, AssignmentIdSelected, ReloadUserInGroup } from './recoil'\r\n\r\n// icons\r\nimport AddTwoToneIcon from '@material-ui/icons/AddTwoTone'\r\nimport { faCheck } from '@fortawesome/free-solid-svg-icons'\r\n\r\nconst AssignUserUnion = () => {\r\n const lstAssignment = useRecoilValue(UserInGroupQuery)\r\n const lstUnion = useRecoilValue(UnionQuery)\r\n\r\n const [assignIds, setAssignIds] = useRecoilState(AssignmentIdSelected)\r\n const [toast, setToast] = useRecoilState(toastState)\r\n\r\n const setLoading = useSetRecoilState(loadingState)\r\n const setReloadUsers = useSetRecoilState(ReloadUserInGroup)\r\n\r\n const [union, setUnion] = useState('')\r\n\r\n let isAssignTeaching = false\r\n for (let assign of lstAssignment) {\r\n if (assign.assigns.find(a => a.appUserId == sessionHelper().userId)) {\r\n isAssignTeaching = true\r\n break\r\n }\r\n }\r\n\r\n const gridHaveNoUnion = [\r\n { xs: 12, md: 6, lg: 8 },\r\n { xs: 12, md: 12, lg: 6 }\r\n ]\r\n const gridHaveUnion = [{ xs: 12 }, { xs: 12, md: 6, lg: 4 }]\r\n const responGrid = lstAssignment ? (lstAssignment[0]?.unionId === 1 ? gridHaveNoUnion : gridHaveUnion) : []\r\n\r\n const handleDisabled = () => {\r\n return !(assignIds.length > 0 && union !== '')\r\n }\r\n\r\n const isLeaderAssign = () => {\r\n for (let assignId of assignIds) {\r\n const assignInfo = lstAssignment[0].assigns.find(a => a.id === assignId)\r\n if (assignInfo.appUserId == sessionHelper().userId) {\r\n return true\r\n }\r\n }\r\n return false\r\n }\r\n\r\n const handleClickSave = async e => {\r\n e.preventDefault()\r\n setLoading(true)\r\n\r\n const isReloadPage = isLeaderAssign()\r\n\r\n const newData = {\r\n UnionId: union,\r\n ModifiedBy: `${sessionHelper().firstName} ${sessionHelper().lastName}`,\r\n AssignmentId: assignIds\r\n }\r\n try {\r\n const res = await doPost(`assignment/updateUnion`, newData)\r\n if (res && res.data.success) {\r\n setLoading(false)\r\n setReloadUsers(reload => reload + 1)\r\n setToast({ ...toast, open: true, message: res.data.message, type: 'success' })\r\n setAssignIds([])\r\n if (isReloadPage) {\r\n setLocalStoreData('unionId', union)\r\n window.location.reload()\r\n }\r\n }\r\n } catch (err) {\r\n setToast({ ...toast, open: true, message: err.message, type: 'error' })\r\n }\r\n }\r\n\r\n const assignLeaderForTeaching = async e => {\r\n e.preventDefault()\r\n setLoading(true)\r\n\r\n const data = {\r\n ClassId: sessionHelper().classId,\r\n AppUserId: sessionHelper().userId\r\n }\r\n\r\n try {\r\n const res = await doPost(`user/assignLeaderForTeaching`, data)\r\n if (res && res.data.success) {\r\n setLoading(false)\r\n setReloadUsers(reload => reload + 1)\r\n setToast({ ...toast, open: true, message: res.data.message, type: 'success' })\r\n }\r\n } catch (err) {\r\n setToast({ ...toast, open: true, message: err.message, type: 'error' })\r\n }\r\n }\r\n\r\n const body = () => {\r\n return (\r\n \r\n {lstAssignment && lstAssignment.length > 0 && (\r\n <>\r\n \r\n \r\n \r\n CĐ:\r\n }}\r\n value={union}\r\n onChange={e => setUnion(e.target.value)}>\r\n {lstUnion.map((option, i) => {\r\n return (\r\n \r\n {option.unionCode}\r\n \r\n )\r\n })}\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n  \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n\r\n {lstAssignment && lstAssignment.length === 0 && (\r\n \r\n \r\n Chưa có Huynh trưởng/Dự trưởng trong Phân đoàn.\r\n \r\n \r\n )}\r\n\r\n \r\n {lstAssignment && lstAssignment[0]?.unionId === 1 && (\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n\r\n \r\n {lstAssignment &&\r\n lstAssignment?.map((item, index) => {\r\n if (item.unionId !== 1) {\r\n return (\r\n \r\n \r\n \r\n )\r\n }\r\n return <>\r\n })}\r\n \r\n \r\n \r\n )\r\n }\r\n\r\n return (\r\n Đang tải Danh sách Huynh trưởng ...}>\r\n {body()}\r\n\r\n }>\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default AssignUserUnion\r\n","import { atom, selector } from 'recoil'\r\n\r\nimport { orderBy } from 'lodash'\r\n\r\nimport sessionHelper from 'utils/sessionHelper'\r\nimport { doGet } from 'utils/axios'\r\nimport { UnionQuery } from 'recoils/selectors'\r\nimport { Roles } from 'app/enums'\r\n\r\nexport const ReloadStudents = atom({\r\n key: 'reloadStudents',\r\n default: 0\r\n})\r\n\r\nexport const NewUnionIdSelected = atom({\r\n key: 'newUnionIdSelected',\r\n default: undefined\r\n})\r\n\r\nexport const ActiveButton = atom({\r\n key: 'activeButton',\r\n default: 0\r\n})\r\n\r\nexport const ActiveStep = atom({\r\n key: 'activeStep',\r\n default: 0\r\n})\r\n\r\nexport const StudentSelected = atom({\r\n key: 'studentSelected',\r\n default: []\r\n})\r\n\r\nexport const TypeSelected = atom({\r\n key: 'typeSelected',\r\n default: 0\r\n})\r\n\r\nexport const UnionSelected = atom({\r\n key: 'unionSelected',\r\n default: 0\r\n})\r\n\r\nexport const UnionLeftSide = atom({\r\n key: 'UnionIdLeftSide',\r\n default: 1\r\n})\r\n\r\nexport const TeamLeftSide = atom({\r\n key: 'TeamIdLeftSide',\r\n default: 0\r\n})\r\n\r\nexport const UnionRightSide = atom({\r\n key: 'unionIdRightSide',\r\n default: 1\r\n})\r\n\r\nexport const TeamRightSide = atom({\r\n key: 'TeamRightSide',\r\n default: 0\r\n})\r\n\r\nexport const StudentsQuery = selector({\r\n key: 'studentsQuery',\r\n get: async ({ get }) => {\r\n get(ReloadStudents)\r\n const lstUnion = get(UnionQuery)\r\n\r\n const { userId, scholasticId, classId, unionId, roles } = sessionHelper()\r\n const isGetAll = roles.includes(Roles.PhanDoanTruong) || roles.includes(Roles.HocTap)\r\n\r\n const res = await doGet(`student/getStudents`, { scholasticId, userId, classId, unionId, isGetAll })\r\n\r\n if (res && res.data.success) {\r\n const lstStudent = [{ unionId: 1, unionCode: 0, students: [] }]\r\n\r\n // Tạo mảng danh sách chi đoàn\r\n for (const t of lstUnion) {\r\n lstStudent.push({ unionId: t.unionId, unionCode: t.unionCode, students: [] })\r\n }\r\n if (res.data.data) {\r\n const stuRes = res.data.data\r\n\r\n // Đưa từng Đoàn sinh vô chi đoàn\r\n for (const stu of stuRes) {\r\n const stuUnionId = stu?.studentClass?.find(sc => sc.classId === stu.classId)?.unionId\r\n if (stuUnionId === 1) {\r\n lstStudent[0].students.push(stu)\r\n } else {\r\n lstStudent.forEach(t => {\r\n if (t.unionId === stuUnionId) {\r\n t.students.push(stu)\r\n }\r\n })\r\n }\r\n }\r\n return orderBy(lstStudent, ['union'], ['asc'])\r\n }\r\n }\r\n return null\r\n }\r\n})\r\n","import { Grid, Button } from '@material-ui/core'\r\nimport React, { useEffect, useState } from 'react'\r\nimport { useSetRecoilState } from 'recoil'\r\n\r\nimport { changeOptionEnum } from 'app/enums'\r\nimport { TypeSelected, StudentSelected } from '../recoil'\r\n\r\nexport default function HeaderAction() {\r\n const setTypeSelected = useSetRecoilState(TypeSelected)\r\n const setStudentSelected = useSetRecoilState(StudentSelected)\r\n\r\n useEffect(() => {\r\n setTypeSelected(changeOptionEnum.Union)\r\n }, [setTypeSelected])\r\n\r\n const [activeButton, setActiveButton] = useState('Union')\r\n\r\n const handleClickTeamOption = e => {\r\n setTypeSelected(changeOptionEnum.Team)\r\n setActiveButton('Team')\r\n setStudentSelected([])\r\n }\r\n\r\n const handleClickUnionOption = e => {\r\n setTypeSelected(changeOptionEnum.Union)\r\n setActiveButton('Union')\r\n setStudentSelected([])\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n","import React, { useEffect } from 'react'\r\nimport { useTheme } from '@material-ui/core/styles'\r\nimport Button from '@material-ui/core/Button'\r\nimport KeyboardArrowLeft from '@material-ui/icons/KeyboardArrowLeft'\r\nimport KeyboardArrowRight from '@material-ui/icons/KeyboardArrowRight'\r\nimport SwipeableViews from 'react-swipeable-views'\r\nimport { Grid } from '@material-ui/core'\r\n\r\nimport { useRecoilState, useSetRecoilState } from 'recoil'\r\nimport { UnionSelected, ActiveButton, ActiveStep } from '../recoil'\r\n\r\nfunction SwipeableTextMobileStepper({ lstUnion }) {\r\n const theme = useTheme()\r\n const [unionSelected, setUnionSelected] = useRecoilState(UnionSelected)\r\n\r\n const setActiveButton = useSetRecoilState(ActiveButton)\r\n const [activeStep, setActiveStep] = useRecoilState(ActiveStep)\r\n\r\n useEffect(() => {\r\n const indexOfCurrentUnionInList = lstUnion.findIndex(union => union.unionId === unionSelected?.unionId)\r\n indexOfCurrentUnionInList === -1 ? setActiveStep(0) : setActiveStep(indexOfCurrentUnionInList)\r\n setActiveButton(unionSelected?.unionId)\r\n }, [lstUnion, setActiveButton, setActiveStep, unionSelected])\r\n\r\n const maxSteps = lstUnion.length\r\n\r\n const handleNext = () => {\r\n setActiveButton(lstUnion[activeStep + 1].unionId)\r\n setUnionSelected(lstUnion[activeStep + 1])\r\n setActiveStep(prevActiveStep => prevActiveStep + 1)\r\n }\r\n\r\n const handleBack = () => {\r\n setActiveButton(lstUnion[activeStep - 1].unionId)\r\n setUnionSelected(lstUnion[activeStep - 1])\r\n setActiveStep(prevActiveStep => prevActiveStep - 1)\r\n }\r\n\r\n const handleStepChange = step => {\r\n setActiveButton(lstUnion[step].unionId)\r\n setUnionSelected(lstUnion[step])\r\n setActiveStep(step)\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {lstUnion.map((union, index) => (\r\n
\r\n {Math.abs(activeStep - index) <= 2 ? (\r\n \r\n ) : null}\r\n
\r\n ))}\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n
\r\n )\r\n}\r\n\r\nexport default SwipeableTextMobileStepper\r\n","import { Grid, Button } from '@material-ui/core'\r\nimport { KeyboardArrowUp, KeyboardArrowDown, KeyboardArrowLeft, KeyboardArrowRight } from '@material-ui/icons'\r\nimport useMediaQuery from '@material-ui/core/useMediaQuery'\r\nimport { useTheme } from '@material-ui/core/styles'\r\n\r\nimport React from 'react'\r\nimport { useRecoilValue, useSetRecoilState, useRecoilState } from 'recoil'\r\n\r\nimport { StudentSelected, TypeSelected, ReloadStudents } from '../recoil'\r\nimport { changeOptionEnum } from 'app/enums'\r\nimport sessionHelper from 'utils/sessionHelper'\r\nimport { doPost } from 'utils/axios'\r\n\r\nexport default function Transition({ leftOption, rightOption }) {\r\n const theme = useTheme()\r\n const isMobile = useMediaQuery(theme.breakpoints.down('sm'))\r\n\r\n const typeSelected = useRecoilValue(TypeSelected)\r\n const setReloadStudents = useSetRecoilState(ReloadStudents)\r\n const [studentIdsSelected, setStudentIdsSelected] = useRecoilState(StudentSelected)\r\n\r\n const studentsLeftSide =\r\n typeSelected === changeOptionEnum.Union ? studentIdsSelected.filter(stu => stu.union === leftOption) : studentIdsSelected.filter(stu => stu.team === leftOption)\r\n const studentsRightSide =\r\n typeSelected === changeOptionEnum.Union ? studentIdsSelected.filter(stu => stu.union === rightOption) : studentIdsSelected.filter(stu => stu.team === rightOption)\r\n\r\n const sendData = async (destinationId, studentIdsMoved) => {\r\n const { classId, userId, scholasticId, fullName: modifiedBy } = sessionHelper()\r\n let api = 'student/'\r\n let data = {\r\n studentIds: studentIdsMoved,\r\n scholasticId,\r\n classId,\r\n modifiedBy,\r\n userId\r\n }\r\n if (typeSelected === changeOptionEnum.Union) {\r\n data = { ...data, newUnionId: destinationId }\r\n api += 'updateStudentsUnion'\r\n } else {\r\n data = { ...data, team: destinationId }\r\n api += 'updateStudentTeam'\r\n }\r\n\r\n try {\r\n const res = await doPost(api, data)\r\n if (res && res.data.success) {\r\n const remainStudentIds = studentIdsSelected.filter(stu => !studentIdsMoved.includes(stu.stuId))\r\n setStudentIdsSelected(remainStudentIds)\r\n setReloadStudents(prev => prev + 1)\r\n }\r\n } catch (err) {}\r\n }\r\n\r\n const handleForwardButtonClick = async () => {\r\n const destinationId = rightOption\r\n const studentIds = studentsLeftSide.map(stu => stu.stuId)\r\n await sendData(destinationId, studentIds)\r\n }\r\n\r\n const handleBackwardButtonClick = async () => {\r\n const destinationId = leftOption\r\n const studentIds = studentsRightSide.map(stu => stu.stuId)\r\n await sendData(destinationId, studentIds)\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n","import React, { useState, useEffect } from 'react'\r\nimport { Typography } from '@material-ui/core'\r\nimport { useRecoilState } from 'recoil'\r\n\r\nimport StyledCheckbox from 'components/UI/StyledCheckbox'\r\n\r\nimport { StudentSelected } from '../recoil'\r\nimport { doGet } from 'utils/axios'\r\n\r\nconst StudentsUnionTeamItem = ({ id, index, union, team }) => {\r\n const [studentDetails, setStudentDetails] = useState({})\r\n\r\n useEffect(() => {\r\n async function getStudentDetails(id) {\r\n if (id) {\r\n const res = await doGet('student/getStudentDetails', { studentId: id })\r\n if (res && res.data.success) {\r\n setStudentDetails(res.data.data)\r\n }\r\n }\r\n }\r\n\r\n getStudentDetails(id).finally()\r\n }, [id])\r\n\r\n const [studentSelected, setStudentSelected] = useRecoilState(StudentSelected)\r\n\r\n const handleClickStudent = (e, stuId) => {\r\n e.preventDefault()\r\n\r\n if (studentSelected.some(stu => stu.stuId === id)) {\r\n setStudentSelected(studentSelected.filter(stu => stu.stuId !== stuId))\r\n } else {\r\n setStudentSelected([...studentSelected, { stuId, union, team }])\r\n }\r\n }\r\n\r\n return (\r\n handleClickStudent(e, id)}>\r\n \r\n stu.stuId === id)} />\r\n \r\n {index}\r\n \r\n \r\n {studentDetails?.stuHolyname?.name}\r\n
\r\n {studentDetails?.stuFirstName} {studentDetails?.stuLastName}\r\n
\r\n \r\n \r\n )\r\n}\r\n\r\nexport default StudentsUnionTeamItem\r\n","import StyledCheckbox from 'components/UI/StyledCheckbox'\r\n\r\nimport React, { useEffect, useState } from 'react'\r\nimport { useRecoilState, useRecoilValue } from 'recoil'\r\nimport { union } from 'lodash'\r\n\r\nimport { StudentSelected, ReloadStudents } from '../recoil'\r\nimport StudentsUnionTeamItem from '../components/StudentsUnionTeamItem'\r\nimport { doGet } from 'utils/axios'\r\nimport sessionHelper from 'utils/sessionHelper'\r\n\r\nexport default function TeamDetail({ team, unionId }) {\r\n const [studentIdsSelected, setStudentIdsSelected] = useRecoilState(StudentSelected)\r\n const [stuIdsInTeam, setStuIdsInTeam] = useState([])\r\n const reloadStudents = useRecoilValue(ReloadStudents)\r\n\r\n useEffect(() => {\r\n async function fetchData(teamId, unionId) {\r\n if (unionId) {\r\n const res = await doGet('student/getStudentIdsInTeam', {\r\n classId: sessionHelper().classId,\r\n unionId: unionId,\r\n team: teamId\r\n })\r\n if (res && res.data.success) {\r\n const { data } = res.data\r\n setStuIdsInTeam(data)\r\n }\r\n }\r\n }\r\n\r\n fetchData(team, unionId)\r\n }, [team, unionId, reloadStudents])\r\n\r\n const handleCheckAll = e => {\r\n const teamStudentIds = stuIdsInTeam\r\n const lstIdSelected = studentIdsSelected.map(stu => stu.id)\r\n if (e.target.checked) {\r\n const res = union(lstIdSelected, teamStudentIds)\r\n res.length > 0\r\n ? setStudentIdsSelected([\r\n ...studentIdsSelected,\r\n ...res\r\n .filter(id => !lstIdSelected.includes(id))\r\n .map(id => ({\r\n stuId: id,\r\n unionId,\r\n team\r\n }))\r\n ])\r\n : setStudentIdsSelected([...teamStudentIds.map(id => ({ stuId: id, union: unionId, team }))])\r\n } else {\r\n setStudentIdsSelected(studentIdsSelected.filter(stu => stu.team !== team))\r\n }\r\n }\r\n\r\n const handleChecked = () => {\r\n const teamStudentIds = stuIdsInTeam\r\n const checked = studentIdsSelected.filter(stu => teamStudentIds.includes(stu.stuId))\r\n\r\n return checked?.length === teamStudentIds?.length && teamStudentIds?.length !== 0\r\n }\r\n\r\n if (!stuIdsInTeam) return <>\r\n return (\r\n <>\r\n {stuIdsInTeam.length > 0 && (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {stuIdsInTeam.length < 0 ? (\r\n <>Chưa có Đoàn sinh\r\n ) : (\r\n stuIdsInTeam.map((id, index) => )\r\n )}\r\n \r\n
\r\n \r\n STTTên Thánh, Họ và Tên
\r\n
\r\n )}\r\n \r\n )\r\n}\r\n","import { Grid, TextField, InputAdornment, MenuItem } from '@material-ui/core'\r\n\r\nimport React, { useEffect, useState } from 'react'\r\nimport { useRecoilValue, useRecoilState } from 'recoil'\r\nimport { UnionSelected, TeamLeftSide, TeamRightSide, StudentSelected } from '../recoil'\r\n\r\nimport Transition from '../components/Transition'\r\nimport TeamDetail from './TeamDetail'\r\nimport { doGet } from 'utils/axios'\r\n\r\nconst UnionTeam = () => {\r\n const unionSelected = useRecoilValue(UnionSelected)\r\n const [studentIdsSelected, setStudentIdsSelected] = useRecoilState(StudentSelected)\r\n const [teams, setTeams] = useState([])\r\n\r\n useEffect(() => {\r\n async function fetchData() {\r\n const unionId = unionSelected?.unionId\r\n if (unionId) {\r\n const res = await doGet('assignment/getTeamInUnion', { unionId })\r\n const totalTeam = res.data.data\r\n setTeams(Array.from({ length: totalTeam + 1 }, (_, i) => i))\r\n }\r\n }\r\n\r\n fetchData().finally()\r\n }, [unionSelected])\r\n\r\n const [rightTeam, setRightTeam] = useRecoilState(TeamRightSide)\r\n const [leftTeam, setLeftTeam] = useRecoilState(TeamLeftSide)\r\n\r\n useEffect(() => {\r\n setRightTeam(0)\r\n setLeftTeam(0)\r\n }, [unionSelected])\r\n\r\n const handleChangeRight = e => {\r\n const value = e.target.value\r\n setStudentIdsSelected(studentIdsSelected.filter(stu => stu.team !== rightTeam))\r\n setRightTeam(value)\r\n }\r\n\r\n const handleChangeLeft = e => {\r\n const value = e.target.value\r\n setStudentIdsSelected(studentIdsSelected.filter(stu => stu.team !== leftTeam))\r\n setLeftTeam(value)\r\n }\r\n\r\n return (\r\n <>\r\n \r\n \r\n {leftTeam !== 0 ? 'Đội:' : ''}\r\n }}\r\n value={leftTeam}\r\n onChange={e => handleChangeLeft(e)}\r\n style={{ textAlign: 'center' }}>\r\n {teams?.map((team, i) => {\r\n if (team !== rightTeam || rightTeam === 0) {\r\n return (\r\n \r\n {team !== 0 ? team : 'Chưa phân đội'}\r\n \r\n )\r\n }\r\n })}\r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n {rightTeam !== 0 ? 'Đội:' : ''}\r\n }}\r\n value={rightTeam}\r\n onChange={e => handleChangeRight(e)}\r\n style={{ textAlign: 'center' }}>\r\n {teams?.map((team, i) => {\r\n if (team !== leftTeam || leftTeam === 0) {\r\n return (\r\n \r\n {team !== 0 ? team : 'Chưa phân đội'}\r\n \r\n )\r\n }\r\n })}\r\n \r\n\r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default UnionTeam\r\n","import { Grid, Button } from '@material-ui/core'\r\nimport { useTheme } from '@material-ui/core/styles'\r\nimport useMediaQuery from '@material-ui/core/useMediaQuery'\r\n\r\nimport React, { useEffect, useState } from 'react'\r\nimport { useRecoilValue, useSetRecoilState, useRecoilState } from 'recoil'\r\nimport { UnionSelected, StudentsQuery, TeamLeftSide, TeamRightSide, ActiveButton } from '../recoil'\r\n\r\nimport SwipeableTextMobileStepper from '../components/CarouselUi'\r\nimport UnionTeam from './UnionTeam'\r\n\r\nexport default function ChangeTeam() {\r\n const theme = useTheme()\r\n const isMobile = useMediaQuery(theme.breakpoints.down('sm'))\r\n\r\n const studentsUnion = useRecoilValue(StudentsQuery)\r\n\r\n const filterUnion = studentsUnion.filter(su => su.unionId !== 1)\r\n\r\n const setUnionSelected = useSetRecoilState(UnionSelected)\r\n const [activeButton, setActiveButton] = useRecoilState(ActiveButton)\r\n const setLeftTeam = useSetRecoilState(TeamLeftSide)\r\n const setRightTeam = useSetRecoilState(TeamRightSide)\r\n\r\n const [isInit, setIsInit] = useState(true)\r\n\r\n useEffect(() => {\r\n //Auto select the first union button\r\n if (!isInit) return\r\n setActiveButton(filterUnion[0].unionId)\r\n setUnionSelected(filterUnion[0])\r\n setIsInit(false)\r\n }, [setActiveButton, setUnionSelected, filterUnion, isInit, setIsInit])\r\n\r\n const handleClickUnionOption = union => {\r\n setUnionSelected(union)\r\n setActiveButton(union.unionId)\r\n setLeftTeam(0)\r\n setRightTeam(0)\r\n }\r\n\r\n return (\r\n <>\r\n {isMobile ? (\r\n \r\n ) : (\r\n \r\n {filterUnion.map(union => {\r\n return (\r\n \r\n handleClickUnionOption(union)}\r\n style={{ whiteSpace: 'nowrap' }}>\r\n Chi đoàn {union.unionCode} - {union?.students.length}\r\n \r\n \r\n )\r\n })}\r\n \r\n )}\r\n \r\n \r\n )\r\n}\r\n","import React, { useState, useEffect } from 'react'\r\nimport { Grid, Tooltip, IconButton, Divider, CardContent } from '@material-ui/core'\r\nimport { useRecoilState, useRecoilValue } from 'recoil'\r\nimport { union } from 'lodash'\r\n//Icons\r\nimport ExpandLessIcon from '@material-ui/icons/ExpandLess'\r\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore'\r\n\r\nimport StyledCheckbox from 'components/UI/StyledCheckbox'\r\n\r\nimport StudentsUnionTeamItem from '../components/StudentsUnionTeamItem'\r\nimport { StudentSelected, ReloadStudents } from '../recoil'\r\nimport { doGet } from 'utils/axios'\r\nimport sessionHelper from 'utils/sessionHelper'\r\n\r\nconst StudentsUnionTeam = ({ team, unionId }) => {\r\n const [stuIdsInTeam, setStuIdsInTeam] = useState([])\r\n const reloadStudents = useRecoilValue(ReloadStudents)\r\n useEffect(() => {\r\n async function fetchData(teamId, unionId) {\r\n const res = await doGet('student/getStudentIdsInTeam', {\r\n classId: sessionHelper().classId,\r\n unionId: unionId,\r\n team: teamId\r\n })\r\n if (res && res.data.success) {\r\n const { data } = res.data\r\n setStuIdsInTeam(data)\r\n }\r\n }\r\n\r\n fetchData(team, unionId).finally()\r\n }, [team, unionId, reloadStudents])\r\n\r\n const [collapse, setCollapse] = useState(true)\r\n\r\n const [studentIdsSelected, setStudentIdsSelected] = useRecoilState(StudentSelected)\r\n\r\n const handleCheckAll = e => {\r\n if (e.target.checked) {\r\n const lstIdSelected = studentIdsSelected.map(stu => stu.stuId)\r\n const res = union(lstIdSelected, stuIdsInTeam)\r\n res.length > 0\r\n ? setStudentIdsSelected([\r\n ...studentIdsSelected,\r\n ...res\r\n .filter(id => !lstIdSelected.includes(id))\r\n .map(id => ({\r\n stuId: id,\r\n union: unionId,\r\n team\r\n }))\r\n ])\r\n : setStudentIdsSelected([...stuIdsInTeam.map(id => ({ stuId: id, union: unionId, team }))])\r\n } else {\r\n setStudentIdsSelected(studentIdsSelected.filter(stu => stu.union !== unionId || stu.team !== team))\r\n }\r\n }\r\n\r\n const handleChecked = () => {\r\n const checked = studentIdsSelected.filter(stu => stuIdsInTeam.includes(stu.stuId))\r\n\r\n return checked.length === stuIdsInTeam.length\r\n }\r\n\r\n return (\r\n <>\r\n {stuIdsInTeam.length > 0 && (\r\n
setCollapse(!collapse)}>\r\n
\r\n {team === 0 &&

Chưa phân đội - {stuIdsInTeam.length}

}\r\n {team !== 0 && (\r\n

\r\n Đội: {team} - {stuIdsInTeam.length}\r\n

\r\n )}\r\n
\r\n \r\n
\r\n \r\n \r\n {collapse ? : }\r\n \r\n \r\n
\r\n
\r\n
\r\n )}\r\n {!collapse && stuIdsInTeam.length >= 1 && (\r\n <>\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {stuIdsInTeam.length <= 0 && <>Chưa có Đoàn sinh}\r\n {stuIdsInTeam.map((id, index) => (\r\n \r\n ))}\r\n \r\n
\r\n \r\n STTTên Thánh, Họ và Tên
\r\n
\r\n
\r\n \r\n \r\n )}\r\n \r\n )\r\n}\r\n\r\nexport default StudentsUnionTeam\r\n","import React, { useState, useEffect } from 'react'\r\nimport { Card } from '@material-ui/core'\r\nimport StyledCheckbox from 'components/UI/StyledCheckbox'\r\n\r\nimport { useRecoilValue, useRecoilState } from 'recoil'\r\nimport { ReloadStudents, StudentSelected } from '../recoil'\r\n\r\nimport StudentsUnionTeam from './StudentsUnionTeam'\r\nimport StudentsUnionTeamItem from '../components/StudentsUnionTeamItem'\r\nimport { doGet } from 'utils/axios'\r\nimport sessionHelper from 'utils/sessionHelper'\r\n\r\nconst StudentsUnion = ({ unionId }) => {\r\n const [lsTeam, setLsTeam] = useState([])\r\n const [stuIdsNotInAnyUnion, setStuIdsNotInAnyUnion] = useState([])\r\n const [studentIdsSelected, setStudentIdsSelected] = useRecoilState(StudentSelected)\r\n\r\n const reloadStudents = useRecoilValue(ReloadStudents)\r\n\r\n useEffect(() => {\r\n async function fetchData() {\r\n if (unionId !== 1) {\r\n const res = await doGet(`assignment/getTeamInUnion`, { unionId })\r\n const totalTeam = res.data.data\r\n setLsTeam(Array.from({ length: totalTeam + 1 }, (_, i) => i))\r\n } else {\r\n const { classId } = sessionHelper()\r\n const res = await doGet(`student/getStudentInUnion`, { classId, unionId })\r\n setStuIdsNotInAnyUnion(res.data.data?.map(stu => stu.id))\r\n }\r\n }\r\n\r\n fetchData().finally()\r\n }, [unionId, reloadStudents])\r\n\r\n const handleCheckAll = e => {\r\n if (e.target.checked) {\r\n setStudentIdsSelected([...stuIdsNotInAnyUnion.map(id => ({ stuId: id, union: 0, team: -1 }))])\r\n } else {\r\n setStudentIdsSelected([...studentIdsSelected.filter(stu => stu.union !== 0 || stu.team !== -1)])\r\n }\r\n }\r\n\r\n const handleChecked = () => {\r\n return studentIdsSelected.length === stuIdsNotInAnyUnion.length\r\n }\r\n\r\n return (\r\n \r\n {unionId === 1 && stuIdsNotInAnyUnion?.length >= 1 && (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {stuIdsNotInAnyUnion?.map((id, index) => (\r\n \r\n ))}\r\n \r\n
\r\n \r\n STTTên Thánh, Họ và Tên
\r\n
\r\n )}\r\n {unionId !== 1 && (\r\n <>\r\n {lsTeam.map((team, index) => (\r\n \r\n ))}\r\n \r\n )}\r\n
\r\n )\r\n}\r\n\r\nexport default StudentsUnion\r\n","import { Grid, TextField, InputAdornment, MenuItem } from '@material-ui/core'\r\n\r\nimport React, { useEffect } from 'react'\r\nimport { useRecoilValue, useRecoilState } from 'recoil'\r\nimport { UnionRightSide, UnionLeftSide, StudentsQuery, StudentSelected } from '../recoil'\r\n\r\nimport Transition from '../components/Transition'\r\nimport StudentUnion from './StudentsUnion'\r\n\r\nexport default function ChangeUnion() {\r\n const studentsUnion = useRecoilValue(StudentsQuery)\r\n const [studentIdsSelected, setStudentIdsSelected] = useRecoilState(StudentSelected)\r\n\r\n const [leftUnion, setLeftUnion] = useRecoilState(UnionLeftSide)\r\n const [rightUnion, setRightUnion] = useRecoilState(UnionRightSide)\r\n\r\n useEffect(() => {\r\n setLeftUnion(studentsUnion[0]?.unionId)\r\n setRightUnion(studentsUnion[0]?.unionId)\r\n }, [setLeftUnion, setRightUnion, studentsUnion])\r\n\r\n const handleChangeUnionOptionLeft = e => {\r\n const unionIdSelected = e.target.value\r\n setStudentIdsSelected(studentIdsSelected.filter(stu => stu.union !== leftUnion))\r\n setLeftUnion(unionIdSelected)\r\n }\r\n\r\n const handleChangeUnionOptionRight = e => {\r\n const unionIdSelected = e.target.value\r\n setStudentIdsSelected(studentIdsSelected.filter(stu => stu.union !== rightUnion))\r\n setRightUnion(unionIdSelected)\r\n }\r\n\r\n return (\r\n \r\n \r\n {leftUnion === 1 ? '' : 'Chi đoàn:'}\r\n }}\r\n value={leftUnion}\r\n onChange={handleChangeUnionOptionLeft}\r\n style={{ textAlign: 'center' }}>\r\n {studentsUnion?.map((option, i) => {\r\n if (option.unionId !== rightUnion || option.unionId === 1) {\r\n return (\r\n \r\n {option.unionId === 1 ? 'Chưa phân chi đoàn' : option.unionCode}\r\n {` - ${option.students.length}`}\r\n \r\n )\r\n }\r\n })}\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n {rightUnion === 1 ? '' : 'Chi đoàn:'}\r\n }}\r\n value={rightUnion}\r\n onChange={handleChangeUnionOptionRight}\r\n style={{ textAlign: 'center' }}>\r\n {studentsUnion?.map((option, i) => {\r\n if (option.unionId !== leftUnion || option.unionId === 1) {\r\n return (\r\n \r\n {option.unionId === 1 ? 'Chưa phân chi đoàn' : option.unionCode}\r\n {` - ${option.students.length}`}\r\n \r\n )\r\n }\r\n })}\r\n \r\n \r\n \r\n \r\n )\r\n}\r\n","import React from 'react'\r\nimport { Grid } from '@material-ui/core'\r\n\r\nimport { useRecoilValue } from 'recoil'\r\nimport { TypeSelected } from './recoil'\r\nimport { changeOptionEnum } from 'app/enums'\r\n\r\nimport HeaderAction from './components/HeaderAction'\r\nimport ChangeTeam from './ChangeTeam/ChangeTeam'\r\nimport ChangeUnion from './ChangeUnion/ChangeUnion'\r\n\r\nconst ChangeStudentUnion = () => {\r\n const typeSelected = useRecoilValue(TypeSelected)\r\n return (\r\n \r\n \r\n\r\n {typeSelected === changeOptionEnum.Team && }\r\n\r\n {typeSelected === changeOptionEnum.Union && }\r\n \r\n )\r\n}\r\n\r\nexport default ChangeStudentUnion\r\n","import { atom, selector, selectorFamily } from 'recoil'\r\nimport _ from 'lodash'\r\nimport { doGet } from 'utils/axios'\r\nimport sessionHelper from 'utils/sessionHelper'\r\nimport { SemesterEnum } from 'app/enums'\r\nimport { SemesterSelected } from 'recoils/atoms'\r\n\r\nexport const ReloadStudentList = atom({\r\n key: 'ReloadStudentList',\r\n default: 0\r\n})\r\n\r\nexport const StudentListQuery = selector({\r\n key: 'studentListState',\r\n get: async ({ get }) => {\r\n get(ReloadStudentList)\r\n const { classId, scholasticId, unionId } = sessionHelper()\r\n //\r\n\r\n try {\r\n const res = await doGet(`student/getStudentInClass`, { classCode: classId, unionId: unionId })\r\n if (res && res.data.success && res.data.data) {\r\n const distinctTeam = [...new Set(res.data.data.map(x => x.studentClass.find(sc => Number(sc.classId) === Number(classId)).team))]\r\n const lstStudent = []\r\n console.log(distinctTeam)\r\n for (const t of distinctTeam) {\r\n if (t !== 0) lstStudent.push({ team: t, students: [] })\r\n }\r\n for (const stu of res.data.data) {\r\n stu.semesterOne = stu.semesterOne?.filter(sr => Number(sr.scholasticId) === Number(scholasticId))\r\n stu.semesterTwo = stu.semesterTwo?.filter(sr => Number(sr.scholasticId) === Number(scholasticId))\r\n stu.total = stu.total?.filter(sr => Number(sr.scholasticId) === Number(scholasticId))\r\n\r\n lstStudent.forEach(t => {\r\n if (t.team === stu.studentClass.find(sc => Number(sc.classId) === Number(classId)).team) {\r\n t.students.push(stu)\r\n }\r\n })\r\n }\r\n return _.orderBy(lstStudent, ['team'], ['asc'])\r\n }\r\n } catch (err) {\r\n return null\r\n }\r\n }\r\n})\r\n\r\nexport const ShowDetail = atom({\r\n key: 'showDetail',\r\n default: []\r\n})\r\n\r\nexport const WorkingSemester = atom({\r\n key: 'workingSemester',\r\n default: SemesterEnum.semesterOne\r\n})\r\n\r\nexport const GetTeamsInfoSelector = selector({\r\n key: 'GetTeamsInfoSelector',\r\n get: async () => {\r\n const { classId, unionId } = sessionHelper()\r\n\r\n const res = await doGet(`class/getTeamsInUnion`, { classId, unionId })\r\n if (res && res.data.success) {\r\n const { data } = res.data\r\n return data\r\n }\r\n\r\n return []\r\n }\r\n})\r\n\r\n// export const StudentScoreInUnionSelector = selector({\r\n// key: 'StudentScoreInUnionSelector',\r\n// get: async ({ get }) => {\r\n// const semesterCode = get(SemesterSelected)\r\n//\r\n// const { scholasticId, classId, userId, unionId } = sessionHelper()\r\n//\r\n// const res = await doGet(`student/getScoreByUnionId`, {\r\n// scholasticId,\r\n// userId,\r\n// classId,\r\n// getAttendance: true,\r\n// unionId,\r\n// semesterCode\r\n// })\r\n// if (res && res.data.success) {\r\n// const { data } = res.data\r\n// return data.reduce((group, stu) => {\r\n// const { currentClass } = stu\r\n// group[currentClass.team] = group[currentClass.team] ?? []\r\n// group[currentClass.team].push(stu)\r\n//\r\n// return group\r\n// }, {})\r\n// }\r\n// return null\r\n// }\r\n// })\r\n\r\nexport const StudentScoreInTeamSelector = selectorFamily({\r\n key: 'StudentScoreInTeamSelector',\r\n get:\r\n studentId =>\r\n async ({ get }) => {\r\n const semesterCode = get(SemesterSelected)\r\n const { scholasticId } = sessionHelper()\r\n\r\n const res = await doGet(`student/getStudentScoreInTeam`, { scholasticId, studentId, semesterCode })\r\n if (res && res.data.success) {\r\n const { data } = res.data\r\n\r\n return data\r\n }\r\n return null\r\n }\r\n})\r\n","import React, { useState } from 'react'\r\nimport { Menu, Tooltip, List, ListItem, Collapse, ListItemText, Fab } from '@material-ui/core'\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\nimport { faDownload, faFilePdf, faFileExcel, faFileUpload } from '@fortawesome/free-solid-svg-icons'\r\n\r\nimport { useRecoilValue, useRecoilState } from 'recoil'\r\nimport { StudentListQuery } from './recoil'\r\n\r\nimport sessionHelper from 'utils/sessionHelper'\r\nimport { ChooseFileDialogAtom, ScoreDownloadDialogAtom } from 'components/Dialog/recoil'\r\n\r\nimport ExpandLess from '@material-ui/icons/ExpandLess'\r\nimport ExpandMore from '@material-ui/icons/ExpandMore'\r\nimport { doDownload } from 'utils/axios'\r\n\r\nexport default function HeaderAction() {\r\n let [anchorEl, setAnchorEl] = useState(null)\r\n let lstStudent = useRecoilValue(StudentListQuery)\r\n let [scoreDownload, setScoreDownload] = useRecoilState(ScoreDownloadDialogAtom)\r\n let [dialog, setDialog] = useRecoilState(ChooseFileDialogAtom)\r\n const [open, setOpen] = useState(false)\r\n\r\n const handleExpand = () => {\r\n setOpen(!open)\r\n }\r\n\r\n const handleClick = event => {\r\n setAnchorEl(event.currentTarget)\r\n }\r\n\r\n const handleClose = () => {\r\n setOpen(false)\r\n setAnchorEl(null)\r\n }\r\n\r\n const handleDownloadPDF = () => {\r\n setScoreDownload({ ...scoreDownload, openScoreDownload: true, lstStudent: lstStudent })\r\n handleClose()\r\n }\r\n\r\n const handleDownloadExcel = async (e, semesterCode) => {\r\n e.preventDefault()\r\n const params = {\r\n ScholasticId: sessionHelper().scholasticId,\r\n ClassId: sessionHelper().classId,\r\n SemesterCode: semesterCode,\r\n UnionId: sessionHelper().unionId,\r\n GroupId: sessionHelper().groupId\r\n }\r\n\r\n await doDownload('file/getScoreCSV', params)\r\n handleClose()\r\n }\r\n\r\n const handleUploadExcel = () => {\r\n setDialog({ ...dialog, openChooseFileDialog: true, pageCall: 'HT-StudentScore' })\r\n handleClose()\r\n }\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
Tải biểu mẫu
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
Tải mẫu nhập điểm
\r\n
{open ? : }
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n handleDownloadExcel(e, 1)} style={{ textAlign: 'center' }}>\r\n \r\n \r\n handleDownloadExcel(e, 2)} style={{ textAlign: 'center' }}>\r\n \r\n \r\n handleDownloadExcel(e, 0)} style={{ textAlign: 'center' }}>\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
Nhập điểm từ file
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n )\r\n}\r\n","import React, { Fragment, useEffect, useState } from 'react'\r\nimport { useRecoilValue, useRecoilState } from 'recoil'\r\nimport red from '@material-ui/core/colors/red'\r\nimport { makeStyles, Hidden } from '@material-ui/core'\r\n\r\nimport StyledCheckbox from 'components/UI/StyledCheckbox'\r\nimport { AbsentMode, SemesterEnum } from 'app/enums'\r\nimport { toastState } from 'recoils/atoms'\r\nimport sessionHelper from 'utils/sessionHelper'\r\nimport { doGet, doPost } from 'utils/axios'\r\n\r\nimport { SemesterSelected } from 'recoils/atoms'\r\nimport ScoreTextField from 'components/Controls/ScoreTextField'\r\n\r\nconst useStyle = makeStyles({\r\n pinCell: {\r\n position: 'sticky',\r\n left: 0,\r\n backgroundColor: 'white',\r\n zIndex: 1,\r\n\r\n '&::after': {\r\n position: 'absolute',\r\n right: 0,\r\n top: 0,\r\n bottom: 0,\r\n width: '2.5px',\r\n zIndex: 2,\r\n content: '\"\"',\r\n backgroundColor: '#E5E6F5'\r\n }\r\n }\r\n})\r\n\r\nconst StudentTotalScoreDetails = ({ studentId }) => {\r\n const classStyle = useStyle()\r\n\r\n const [student, setStudent] = useState(undefined)\r\n const [reload, setReload] = useState(0)\r\n const [beUpClass, setBeUpClass] = useState(false)\r\n\r\n const semester = useRecoilValue(SemesterSelected)\r\n const [toast, setToast] = useRecoilState(toastState)\r\n\r\n const handleRowClick = e => {\r\n // console.log(e)\r\n e.preventDefault()\r\n }\r\n\r\n const handleCheckUpClass = async e => {\r\n const val = e.target.checked\r\n const { scholasticId, firstName, lastName } = sessionHelper()\r\n // console.log(e)\r\n const newData = {\r\n scholasticId,\r\n userFullName: `${firstName} ${lastName}`,\r\n studentId: student.id,\r\n beUpClass: val\r\n }\r\n\r\n try {\r\n const res = await doPost(`student/updateBeUpClass`, newData)\r\n if (res && res.data.success) {\r\n setToast({ ...toast, open: true, message: res.data.message, type: 'success' })\r\n setBeUpClass(val)\r\n }\r\n } catch (err) {\r\n setToast({ ...toast, open: true, message: err.data.message, type: 'error' })\r\n }\r\n }\r\n\r\n const sumAbsents = () => {\r\n let classAb, massAb\r\n\r\n if (semester === SemesterEnum.semesterOne) {\r\n classAb = student?.absents?.filter(ab => ab.absentMode === AbsentMode.Class && ab.semesterCode === 1)\r\n massAb = student?.absents?.filter(ab => ab.absentMode === AbsentMode.Mass && ab.semesterCode === 1)\r\n }\r\n\r\n if (semester === SemesterEnum.semesterTwo) {\r\n classAb = student?.absents?.filter(ab => ab.absentMode === AbsentMode.Class && ab.semesterCode === 2)\r\n massAb = student?.absents?.filter(ab => ab.absentMode === AbsentMode.Mass && ab.semesterCode === 2)\r\n }\r\n\r\n if (semester === SemesterEnum.total) {\r\n classAb = student?.absents?.filter(ab => ab.absentMode === AbsentMode.Class)\r\n massAb = student?.absents?.filter(ab => ab.absentMode === AbsentMode.Mass)\r\n }\r\n\r\n return {\r\n classHasPermission: classAb?.filter(ca => ca.hasPermission)?.length > 0 ? classAb?.filter(ca => ca.hasPermission)?.length : '',\r\n classNonPermission: classAb?.filter(ca => !ca.hasPermission)?.length > 0 ? classAb?.filter(ca => !ca.hasPermission)?.length : '',\r\n massHasPermission: massAb?.filter(ca => ca.hasPermission)?.length > 0 ? massAb?.filter(ca => ca.hasPermission)?.length : '',\r\n massNonPermission: massAb?.filter(ca => !ca.hasPermission)?.length > 0 ? massAb?.filter(ca => !ca.hasPermission)?.length : ''\r\n }\r\n }\r\n\r\n async function handleSaveScore(name, newVal) {\r\n const { scholasticId } = sessionHelper()\r\n const avg = name === 'average' ? (newVal === 0 || !newVal ? null : newVal) : null\r\n\r\n const newScore = {\r\n ...student.score,\r\n [name]: newVal,\r\n average: avg,\r\n semesterCode: semester,\r\n studentId: student.id,\r\n scholasticId\r\n }\r\n if (semester !== SemesterEnum.total) {\r\n const oldScoreFrom = student.score.scoreForm == null ? '' : JSON.parse(student.score.scoreForm)\r\n const newScoreForm = oldScoreFrom?.map(item => {\r\n if (item.Key === name) {\r\n return { ...item, Value: newVal }\r\n }\r\n return item\r\n })\r\n newScore['scoreForm'] = JSON.stringify(newScoreForm)\r\n }\r\n\r\n try {\r\n const res = await doPost(`student/updateStudentScore`, newScore)\r\n if (res && res.data.success) {\r\n // setToast({ ...toast, open: true, message: 'Cập nhật thành công', type: 'success' })\r\n setReload(old => old + 1)\r\n }\r\n } catch (err) {\r\n console.log(err)\r\n setToast({ ...toast, open: true, message: err.data.message, type: 'error' })\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n async function fetch() {\r\n const { scholasticId, groupId } = sessionHelper()\r\n\r\n const res = await doGet('student/getStudentScoreInTeam', {\r\n studentId,\r\n semesterCode: semester,\r\n scholasticId,\r\n groupId\r\n })\r\n if (res && res.data.success) {\r\n const { data } = res.data\r\n\r\n setStudent({ ...student, ...data })\r\n }\r\n }\r\n\r\n if (!student) fetch().finally()\r\n }, [studentId, semester, setStudent])\r\n\r\n useEffect(() => {\r\n if (student?.score) {\r\n setBeUpClass(student?.score?.beUpClass)\r\n }\r\n }, [student, setBeUpClass])\r\n\r\n useEffect(() => {\r\n async function fetch() {\r\n const { scholasticId } = sessionHelper()\r\n\r\n const res = await doGet('student/getStudentScoreInTeam', { studentId, semesterCode: semester, scholasticId })\r\n if (res && res.data.success) {\r\n const { data } = res.data\r\n\r\n setStudent({ ...student, ...data })\r\n }\r\n }\r\n\r\n if (reload > 0) {\r\n fetch().finally()\r\n }\r\n }, [reload])\r\n\r\n return (\r\n \r\n {student && (semester === SemesterEnum.semesterOne || semester === SemesterEnum.semesterTwo) && (\r\n 0 ? red[200] : 'inherit'\r\n }}\r\n >\r\n \r\n {student.holyName} \r\n \r\n
\r\n
\r\n {student.firstName} {student.lastName}\r\n \r\n {JSON.parse(student.score?.scoreForm)?.map(item => (\r\n \r\n \r\n \r\n ))}\r\n {student.score?.attendanceScore}\r\n \r\n \r\n \r\n {student.score?.ranking}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* Nghỉ học có phép */}\r\n {sumAbsents().classHasPermission}\r\n {/* Nghỉ học không phép */}\r\n {sumAbsents().classNonPermission}\r\n {/* Nghỉ lễ phép */}\r\n {sumAbsents().massHasPermission}\r\n {/* Nghỉ lễ không phép */}\r\n {sumAbsents().massNonPermission}\r\n \r\n )}\r\n\r\n {student && semester === SemesterEnum.total && (\r\n 0 ? red[100] : 'inherit'\r\n }}\r\n >\r\n \r\n {student.holyName} \r\n \r\n
\r\n
\r\n {student.firstName} {student.lastName}\r\n \r\n {student.score?.gpa}\r\n {student.score?.attendance}\r\n \r\n \r\n \r\n {student.score?.ranking ?? ''}\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* Nghỉ học có phép */}\r\n {sumAbsents().classHasPermission}\r\n {/* Nghỉ học không phép */}\r\n {sumAbsents().classNonPermission}\r\n {/* Nghỉ lễ phép */}\r\n {sumAbsents().massHasPermission}\r\n {/* Nghỉ lễ không phép */}\r\n {sumAbsents().massNonPermission}\r\n \r\n \r\n \r\n \r\n )}\r\n
\r\n )\r\n}\r\n\r\nexport default StudentTotalScoreDetails\r\n","import React, { Suspense, useEffect, useState } from 'react'\r\nimport { useRecoilValue } from 'recoil'\r\n\r\nimport RowSkeleton from 'components/Loading/row-skeleton'\r\n\r\nimport { TeamScoreSelected } from 'recoils/atoms'\r\nimport { doGet } from 'utils/axios'\r\n\r\nimport sessionHelper from 'utils/sessionHelper'\r\n\r\nimport StudentTotalScoreDetails from './StudentTotalScoreDetails'\r\n\r\nconst StudentTeamItemDetails = ({ team }) => {\r\n const teamSelected = useRecoilValue(TeamScoreSelected)\r\n const { unionId } = sessionHelper()\r\n\r\n const [ids, setIds] = useState([])\r\n\r\n useEffect(() => {\r\n async function fetchData(teamId) {\r\n const res = await doGet('student/getStudentIdsInTeam', {\r\n classId: sessionHelper().classId,\r\n unionId: unionId,\r\n team: teamId\r\n })\r\n if (res && res.data.success) {\r\n const { data } = res.data\r\n setIds(data)\r\n }\r\n }\r\n\r\n if (teamSelected.includes(team)) {\r\n fetchData(team).finally()\r\n }\r\n }, [team, teamSelected, setIds])\r\n\r\n return (\r\n <>\r\n {ids?.map(id => (\r\n } key={`body-team-${id}`}>\r\n \r\n \r\n ))}\r\n \r\n )\r\n}\r\n\r\nexport default StudentTeamItemDetails\r\n","import StudentTeamItemDetails from './StudentTeamItemDetails'\r\n\r\nimport { Card, Grid, Tooltip, IconButton, Divider, Table, makeStyles, Hidden } from '@material-ui/core'\r\nimport React, { Fragment, useState } from 'react'\r\nimport { useRecoilValue, useSetRecoilState } from 'recoil'\r\n\r\nimport ExpandLessIcon from '@material-ui/icons/ExpandLess'\r\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore'\r\n\r\nimport { ScoreFormTitle, SemesterEnum } from 'app/enums'\r\n\r\nimport { SemesterSelected, TeamScoreSelected } from 'recoils/atoms'\r\n\r\nconst columnsTotal = [\r\n { id: 1, label: 'TB học tập', align: 'center' },\r\n { id: 2, label: 'TB chuyên cần', align: 'center' },\r\n { id: 3, label: 'TB Cả năm', align: 'center' },\r\n { id: 4, label: 'Xếp loại', align: 'center' }\r\n]\r\n\r\nconst useStyle = makeStyles({\r\n pinCell: {\r\n position: 'sticky',\r\n left: 0,\r\n zIndex: 1,\r\n\r\n '&::after': {\r\n position: 'absolute',\r\n right: 0,\r\n top: 0,\r\n bottom: 0,\r\n width: '2.5px',\r\n zIndex: 2,\r\n content: '\"\"',\r\n backgroundColor: '#E5E6F5'\r\n }\r\n }\r\n})\r\n\r\nconst UnionTeamItem = ({ team, totalStudents, defaultScoreForm }) => {\r\n const styleClass = useStyle()\r\n const [collapse, setCollapse] = useState(true)\r\n\r\n const semester = useRecoilValue(SemesterSelected)\r\n const setTeamSelected = useSetRecoilState(TeamScoreSelected)\r\n\r\n function handleClickTeam() {\r\n setTeamSelected(items => [...new Set([...items, team])])\r\n setCollapse(!collapse)\r\n }\r\n\r\n const columns = () => {\r\n const scoreForm = JSON.parse(defaultScoreForm)\r\n const result = []\r\n\r\n scoreForm.map((item, index) =>\r\n result.push({\r\n id: index + 1,\r\n label: ScoreFormTitle[item.Label],\r\n align: 'center'\r\n })\r\n )\r\n\r\n return result\r\n }\r\n\r\n return (\r\n \r\n
\r\n
\r\n {team === 0 &&

Chưa phân đội - {totalStudents}

}\r\n {team !== 0 && (\r\n

\r\n Đội: {team} - {totalStudents}\r\n

\r\n )}\r\n
\r\n \r\n
\r\n \r\n \r\n {collapse ? : }\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n
\r\n )\r\n}\r\n\r\nexport default UnionTeamItem\r\n","import React, { Fragment } from 'react'\r\n\r\nimport { useRecoilValue } from 'recoil'\r\nimport { GetTeamsInfoSelector } from './recoil'\r\n\r\nimport UnionTeamItem from './UnionTeamItem'\r\nimport { GroupSettingsQuery } from 'recoils/selectors'\r\n\r\nconst UnionTeams = () => {\r\n const teams = useRecoilValue(GetTeamsInfoSelector)\r\n const groupSettings = useRecoilValue(GroupSettingsQuery)\r\n\r\n return (\r\n \r\n {teams?.map(item => (\r\n \r\n ))}\r\n \r\n )\r\n}\r\n\r\nexport default UnionTeams\r\n","import React, { Suspense } from 'react'\r\nimport { Grid, ButtonGroup, Button, Hidden } from '@material-ui/core'\r\nimport { useRecoilState } from 'recoil'\r\n\r\nimport { Semester } from 'app/enums'\r\nimport { ChooseFileDialog, GroupScoreResultDialog } from 'components/Dialog'\r\n\r\nimport { SemesterSelected } from 'recoils/atoms'\r\nimport HeaderAction from './HeaderAction'\r\n\r\nimport UnionTeams from './UnionTeams'\r\n\r\nimport PageSkeleton from 'components/Loading/page-skeleton'\r\n\r\nconst ManageStudentScore = () => {\r\n const [semester, setSemester] = useRecoilState(SemesterSelected)\r\n\r\n const Body = () => {\r\n return (\r\n
\r\n \r\n \r\n \r\n {Semester.map(s => (\r\n \r\n ))}\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
\r\n }>\r\n \r\n \r\n
\r\n )\r\n }\r\n return (\r\n Đang tải Danh sách điểm ...}>\r\n \r\n\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default ManageStudentScore\r\n","import React, { Fragment } from 'react'\r\n\r\nexport const SumFieldAbsent = ({ totalAbsents }) => {\r\n return {totalAbsents}\r\n}\r\n\r\nexport const SumAbsent = ({ totalMassAbsents, totalClassAbsents }) => {\r\n return (\r\n \r\n \r\n \r\n \r\n )\r\n}\r\n","import { Hidden, makeStyles } from '@material-ui/core'\r\nimport { AbsentMode, absentTypeOptionsEnum } from 'app/enums'\r\nimport React, { Fragment, useEffect, useState } from 'react'\r\nimport ControlledOpenSelect from '../Selection'\r\nimport moment from 'moment/moment'\r\n\r\nimport { doGet } from 'utils/axios'\r\nimport sessionHelper from 'utils/sessionHelper'\r\nimport { Skeleton } from '@material-ui/lab'\r\n\r\nimport { SumAbsent } from './SumAbsent'\r\nimport { totalAbsentsColorEnum } from 'app/enums'\r\nimport { red, yellow, grey } from '@material-ui/core/colors'\r\n\r\nimport { useRecoilValue } from 'recoil'\r\nimport { AbsentSemesterSelected } from '../recoil'\r\n\r\nconst useStyle = makeStyles({\r\n pinCell: {\r\n position: 'sticky',\r\n left: 0,\r\n backgroundColor: 'white',\r\n zIndex: 1,\r\n\r\n '&::after': {\r\n position: 'absolute',\r\n right: 0,\r\n top: 0,\r\n bottom: 0,\r\n width: '2.5px',\r\n zIndex: 2,\r\n content: '\"\"',\r\n backgroundColor: '#E5E6F5'\r\n }\r\n }\r\n})\r\n\r\nconst setBackGroundColor = totalClassAbsent => {\r\n return totalClassAbsent < 2\r\n ? totalAbsentsColorEnum.normal\r\n : totalClassAbsent >= 2 && totalClassAbsent < 4\r\n ? yellow[totalAbsentsColorEnum.alarm]\r\n : totalClassAbsent === 4\r\n ? red[totalAbsentsColorEnum.warning]\r\n : grey[totalAbsentsColorEnum.out]\r\n}\r\n\r\nexport default function ({ lstHolyName, SundayList, studentId }) {\r\n const classStyle = useStyle()\r\n\r\n const [studentInfo, setStudentInfo] = useState()\r\n\r\n const [totalMassAbsents, setTotalMassAbsents] = useState(0)\r\n const [totalClassAbsents, setTotalClassAbsents] = useState(0)\r\n const [reloadStudentAbsents, setReloadStudentAbsents] = useState(true)\r\n const [reloadCountAbsents, setReloadCountAbsents] = useState(false)\r\n\r\n const semesterCode = useRecoilValue(AbsentSemesterSelected)\r\n\r\n useEffect(() => {\r\n async function fetchData() {\r\n const { classId, scholasticId } = sessionHelper()\r\n const res = await doGet(`student/absents`, { studentId, classId, scholasticId, semesterCode })\r\n\r\n if (res && res.data.success) {\r\n setStudentInfo(res.data.data)\r\n setReloadStudentAbsents(false)\r\n }\r\n }\r\n\r\n if (reloadStudentAbsents) {\r\n fetchData().finally()\r\n }\r\n }, [reloadStudentAbsents])\r\n\r\n useEffect(() => {\r\n async function fetchData() {\r\n const { classId, scholasticId } = sessionHelper()\r\n const res = await doGet(`student/count-absents`, { studentId, classId, scholasticId, semesterCode })\r\n\r\n if (res && res.data.success) {\r\n setTotalMassAbsents(res.data.data?.totalMassPermission + res.data.data?.totalMassNonPermission)\r\n setTotalClassAbsents(res.data.data?.totalClassPermission + res.data.data?.totalClassNonPermission)\r\n setReloadCountAbsents(false)\r\n }\r\n }\r\n\r\n if (studentInfo && reloadCountAbsents) {\r\n fetchData().finally()\r\n }\r\n }, [reloadCountAbsents, studentInfo])\r\n\r\n useEffect(() => {\r\n setReloadCountAbsents(true)\r\n setReloadStudentAbsents(true)\r\n }, [SundayList])\r\n\r\n const checkAbsentDatesOfStudentHasCoincideSundayDate = (sunday, absentDates) => {\r\n const currentAbsents = absentDates?.filter(absent => moment.utc(absent.dateAbsent).isSame(moment.utc(sunday)))\r\n\r\n return [currentAbsents?.find(ab => ab.absentMode === AbsentMode.Mass) ?? null, currentAbsents?.find(ab => ab.absentMode === AbsentMode.Class) ?? null]\r\n }\r\n\r\n const handleReloadCountAbsents = async () => {\r\n setReloadStudentAbsents(true)\r\n setReloadCountAbsents(true)\r\n }\r\n\r\n if (!studentInfo)\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n )\r\n\r\n return (\r\n \r\n \r\n {lstHolyName.find(h => h.id === studentInfo?.stuHolyId)?.name ?? ''} \r\n \r\n
\r\n
\r\n {studentInfo?.stuFirstName} {studentInfo?.stuLastName}\r\n \r\n \r\n {SundayList.map(date => {\r\n const [massAbsent, classAbsent] = checkAbsentDatesOfStudentHasCoincideSundayDate(date, studentInfo?.absents)\r\n const massPermission = massAbsent ? (massAbsent.hasPermission ? absentTypeOptionsEnum.Permission : absentTypeOptionsEnum.NonPermission) : absentTypeOptionsEnum.NoAbsent\r\n const classPermission = classAbsent ? (classAbsent.hasPermission ? absentTypeOptionsEnum.Permission : absentTypeOptionsEnum.NonPermission) : absentTypeOptionsEnum.NoAbsent\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n })}\r\n \r\n )\r\n}\r\n","import React, { Fragment } from 'react'\r\nimport { useRecoilValue } from 'recoil'\r\n\r\nimport { LoadSundayListWithSemester } from './recoil'\r\nimport AttendanceItemDetails from './components/AttendanceItemDetails'\r\nimport { HolyNameQuery } from 'recoils/selectors'\r\nimport { makeStyles } from '@material-ui/core'\r\nimport moment from 'moment/moment'\r\n\r\nconst useStyle = makeStyles({\r\n pinCell: {\r\n position: 'sticky',\r\n left: 0,\r\n backgroundColor: 'white',\r\n zIndex: 1,\r\n\r\n '&::after': {\r\n position: 'absolute',\r\n right: 0,\r\n top: 0,\r\n bottom: 0,\r\n width: '2.5px',\r\n zIndex: 2,\r\n content: '\"\"',\r\n backgroundColor: '#E5E6F5'\r\n }\r\n },\r\n tableHeader: {\r\n borderLeft: '2px solid #dcdef1',\r\n textAlign: 'center'\r\n }\r\n})\r\n\r\nconst StudentAttendanceItem = ({ studentIds, team }) => {\r\n const classStyle = useStyle()\r\n\r\n const lstHolyName = useRecoilValue(HolyNameQuery)\r\n const sundays = useRecoilValue(LoadSundayListWithSemester)\r\n\r\n const formatDate = date => {\r\n return moment.utc(date).format('DD/MM/YYYY')\r\n }\r\n\r\n const FormattedDates = sundays.map(date => formatDate(date))\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {FormattedDates.map(stringDate => (\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n {FormattedDates.map(stringDate => (\r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n {studentIds.map(id => (\r\n \r\n ))}\r\n \r\n
\r\n Tổng\r\n \r\n {stringDate}\r\n
Tên Thánh, Họ và TênTổng LễTổng HọcLễHọc
\r\n
\r\n )\r\n}\r\n\r\nexport default StudentAttendanceItem\r\n","import React, { Suspense, useEffect, useState } from 'react'\r\nimport { Grid, Card, Tooltip, IconButton, LinearProgress } from '@material-ui/core'\r\n\r\n//Icons\r\nimport ExpandLessIcon from '@material-ui/icons/ExpandLess'\r\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore'\r\n\r\nimport StudentAttendanceItem from './StudentAttendanceItem'\r\nimport { AbsentUnionSelected } from './recoil'\r\nimport { useRecoilValue } from 'recoil'\r\nimport { doGet } from 'utils/axios'\r\nimport sessionHelper from 'utils/sessionHelper'\r\n\r\nconst StudentAttendance = ({ team }) => {\r\n const [collapse, setCollapse] = useState(true)\r\n const [stuIds, setStuIds] = useState([])\r\n\r\n const handleShowStudent = () => {\r\n setCollapse(!collapse)\r\n }\r\n\r\n const unionIdSelected = useRecoilValue(AbsentUnionSelected)\r\n\r\n // const sundaySelected = useRecoilValue(LoadSundayListWithSemester)\r\n\r\n // const [sundayVisible, setSundayVisible] = useRecoilState(SundayVisible)\r\n\r\n // const handleScroll = () => {\r\n // if (sundayVisible.length === sundaySelected.length) return\r\n //\r\n // setSundayVisible(sundaySelected)\r\n // }\r\n\r\n useEffect(() => {\r\n async function fetchData(teamId) {\r\n const res = await doGet('student/getStudentIdsInTeam', {\r\n classId: sessionHelper().classId,\r\n unionId: unionIdSelected,\r\n team: teamId\r\n })\r\n if (res && res.data.success) {\r\n const { data } = res.data\r\n setStuIds(data)\r\n }\r\n }\r\n\r\n if (collapse === false) {\r\n fetchData(team.team).finally()\r\n }\r\n }, [collapse, team.team, unionIdSelected])\r\n\r\n // useEffect(() => {\r\n // //if there are more than 7 sundays, we will only show 7 sundays\r\n // sundaySelected.length > 7 ? setSundayVisible(sundaySelected.slice(0, 7)) : setSundayVisible(sundaySelected)\r\n // }, [sundaySelected])\r\n\r\n return (\r\n \r\n \r\n
\r\n
\r\n

Đội: {team.team}

\r\n
\r\n \r\n
\r\n \r\n \r\n {collapse ? : }\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default StudentAttendance\r\n","import React, { useEffect } from 'react'\r\nimport { Grid, Card, TextField, InputAdornment, MenuItem } from '@material-ui/core'\r\n\r\nimport sessionHelper from 'utils/sessionHelper'\r\nimport { Roles } from 'app/enums'\r\nimport { useRecoilState, useRecoilValue } from 'recoil'\r\nimport { AbsentUnionSelected, UnionCodeFilter } from './recoil'\r\nimport { UnionQuery } from 'recoils/selectors'\r\n\r\nimport DayViewSelections from './components/DayViewSelection'\r\n\r\nexport default function HeaderAction() {\r\n const lstUnion = useRecoilValue(UnionQuery)\r\n const [unionFilter, setUnionFilter] = useRecoilState(UnionCodeFilter)\r\n const [, setUnionSelected] = useRecoilState(AbsentUnionSelected)\r\n\r\n useEffect(() => {\r\n // get uninon of roles ky luat and hoc tap at first\r\n if (sessionHelper().roles.includes(Roles.KyLuat) || sessionHelper().roles.includes(Roles.HocTap)) {\r\n const unionCode = lstUnion?.find(u => Number(u.unionId) === Number(sessionHelper().unionId))?.unionCode\r\n if (unionCode) setUnionFilter(unionCode)\r\n }\r\n\r\n // Set the default union appearing first for role phan doan truong\r\n if (sessionHelper().roles.includes(Roles.PhanDoanTruong)) {\r\n setUnionFilter(1)\r\n setUnionSelected(lstUnion[0].unionId)\r\n } else {\r\n setUnionSelected(sessionHelper().unionId)\r\n }\r\n }, [])\r\n\r\n const canShowListUnion = () => {\r\n return sessionHelper().roles.includes(Roles.PhanDoanTruong) || sessionHelper().roles.includes(Roles.KyLuat) || sessionHelper().roles.includes(Roles.HocTap)\r\n }\r\n\r\n const handleChange = e => {\r\n const value = e.target.value\r\n\r\n setUnionFilter(value)\r\n setUnionSelected(lstUnion.find(union => union.unionCode === value).unionId)\r\n }\r\n\r\n return (\r\n \r\n \r\n {canShowListUnion() && (\r\n \r\n Chi đoàn:\r\n }}\r\n value={unionFilter}\r\n onChange={e => handleChange(e)}\r\n style={{ textAlign: 'center' }}>\r\n {lstUnion?.map((option, i) => {\r\n return (\r\n \r\n {option.unionCode}\r\n \r\n )\r\n })}\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n","import React, { Suspense } from 'react'\r\nimport { Grid, LinearProgress, Typography } from '@material-ui/core'\r\nimport { useRecoilValue } from 'recoil'\r\n\r\nimport { GetTeamsInUnionQuery } from './recoil'\r\nimport StudentAttendance from './StudentAttendance'\r\nimport HeaderAction from './HeaderAction'\r\n\r\nconst ManageAbsent = () => {\r\n const teams = useRecoilValue(GetTeamsInUnionQuery)\r\n\r\n return (\r\n \r\n \r\n \r\n Điểm danh Đoàn sinh sẽ được tự động tính điểm vào sáng thứ 4 hằng tuần để đảm bảo thời gian nhập và chỉnh sửa nếu có sai sót.\r\n
\r\n Những ngày đã tính điểm chuyên cần sẽ không thể chỉnh sửa lại được.\r\n
\r\n
\r\n\r\n }>\r\n \r\n \r\n\r\n }>\r\n {teams.map(team => (\r\n \r\n ))}\r\n \r\n
\r\n )\r\n}\r\n\r\nexport default ManageAbsent\r\n","import React, { Fragment } from 'react'\r\nimport { useRecoilState, useRecoilValue, useSetRecoilState } from 'recoil'\r\nimport { Typography, Select, MenuItem, FormControlLabel } from '@material-ui/core'\r\n\r\n// import StyledRadio from 'components/UI/StyledRadio'\r\nimport { StudentDialogAtom } from 'components/Dialog/recoil'\r\n\r\nimport { ViewModes, StudentStatus } from 'app/enums'\r\nimport { HolyNameQuery } from 'recoils/selectors'\r\nimport { doPost } from 'utils/axios'\r\nimport sessionHelper from 'utils/sessionHelper'\r\nimport { toastState, loadingState } from 'recoils/atoms'\r\nimport { ViewMode } from 'recoils/atoms'\r\n\r\nimport { ReloadStudentClass, AssignmentQuery } from './recoil'\r\n\r\nconst StudentTeamItem = ({ student, team, index }) => {\r\n const lstHolyName = useRecoilValue(HolyNameQuery)\r\n const lstTeam = useRecoilValue(AssignmentQuery)\r\n const viewMode = useRecoilValue(ViewMode)\r\n\r\n const setLoading = useSetRecoilState(loadingState)\r\n const setReloadStudent = useSetRecoilState(ReloadStudentClass)\r\n\r\n const [toast, setToast] = useRecoilState(toastState)\r\n const [studentDialog, setStudentDialog] = useRecoilState(StudentDialogAtom)\r\n\r\n const handleChange = async e => {\r\n e.preventDefault()\r\n setLoading(true)\r\n\r\n const newTeam = e.target.value\r\n try {\r\n const res = await doPost(`student/updateStudentTeam`, {\r\n studentIds: [student.id],\r\n classId: sessionHelper().classId,\r\n team: newTeam\r\n })\r\n\r\n if (res && res.data.success) {\r\n setLoading(false)\r\n setToast({ ...toast, open: true, message: res.data.message, type: 'success' })\r\n setReloadStudent(reload => reload + 1)\r\n }\r\n } catch (err) {\r\n setToast({ ...toast, open: true, message: err.message, type: 'error' })\r\n }\r\n }\r\n\r\n // const handleAddAbsent = async (e, hasPermission) => {\r\n // e.preventDefault()\r\n // setLoading(true)\r\n //\r\n // const val = {\r\n // StudentId: student.id,\r\n // DateAbsent: new Date(),\r\n // IsActive: true,\r\n // Mode: 0,\r\n // ScholasticId: sessionHelper().scholasticId,\r\n // UserFullName: `${sessionHelper().firstName} ${sessionHelper().lastName}`,\r\n // UserId: sessionHelper().userId,\r\n // ClassId: sessionHelper().classId,\r\n // HasPermission: hasPermission,\r\n // Modes: [e.target.value]\r\n // }\r\n //\r\n // try {\r\n // var res = await doPost(`student/absent`, val)\r\n // if (res && res.data.success) {\r\n // setLoading(false)\r\n // setToast({ ...toast, open: true, message: res.data.message, type: 'success' })\r\n // }\r\n // } catch (err) {\r\n // setLoading(false)\r\n // setToast({ ...toast, open: true, message: err.message, type: 'error' })\r\n // }\r\n // }\r\n\r\n const checkDisabled = status => {\r\n return status === StudentStatus.ChangeChurch || status === StudentStatus.LeaveStudy\r\n }\r\n\r\n const handleRowClick = () => {\r\n setStudentDialog({ ...studentDialog, stuDialog: true, pageCall: 'HT-Student', student: student })\r\n }\r\n\r\n const findClassName = student => {\r\n if (student.status === StudentStatus.ChangeChurch) {\r\n return 'tr-student__change-church'\r\n }\r\n\r\n if (student.status === StudentStatus.LeaveStudy) {\r\n return 'tr-student__absent'\r\n }\r\n\r\n if (student.isNewStudent) {\r\n return 'tr-student__new-student'\r\n }\r\n\r\n return ''\r\n }\r\n\r\n return (\r\n \r\n {viewMode === ViewModes.XepDoi && (\r\n \r\n \r\n \r\n \r\n {index}\r\n \r\n )}\r\n \r\n {student?.studentClass?.find(sl => sl.classId === Number(sessionHelper().classId))?.isTeamLead && }\r\n \r\n {lstHolyName.find(h => h.id === student.stuHolyId).name}\r\n
\r\n {student.stuFirstName} {student.stuLastName}\r\n
\r\n \r\n \r\n {student.status === StudentStatus.ChangeChurch && Chuyển xứ}\r\n {student.status === StudentStatus.LeaveStudy && Nghỉ luôn}\r\n {student.studentClass[0].stayInClass && Ở lại lớp}\r\n \r\n {/**/}\r\n {/* {team !== 0 && viewMode === ViewModes.DiemDanh && viewAbsentMode === AbsentMode.Mass && (*/}\r\n {/* handleAddAbsent(e, true)} />} />*/}\r\n {/* )}*/}\r\n {/* {team !== 0 && viewMode === ViewModes.DiemDanh && viewAbsentMode === AbsentMode.Class && (*/}\r\n {/* handleAddAbsent(e, true)} />} />*/}\r\n {/* )}*/}\r\n {/**/}\r\n {/**/}\r\n {/* {team !== 0 && viewMode === ViewModes.DiemDanh && viewAbsentMode === AbsentMode.Mass && (*/}\r\n {/* handleAddAbsent(e, false)} />} />*/}\r\n {/* )}*/}\r\n {/* {team !== 0 && viewMode === ViewModes.DiemDanh && viewAbsentMode === AbsentMode.Class && (*/}\r\n {/* handleAddAbsent(e, false)} />} />*/}\r\n {/* )}*/}\r\n {/**/}\r\n \r\n )\r\n}\r\n\r\nexport default StudentTeamItem\r\n","import React, { useState } from 'react'\r\nimport { Grid, Card, Tooltip, IconButton, Divider } from '@material-ui/core'\r\nimport { useRecoilValue } from 'recoil'\r\n\r\n//Icons\r\nimport ExpandLessIcon from '@material-ui/icons/ExpandLess'\r\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore'\r\n\r\nimport StudentTeamItem from './StudentTeamItem'\r\nimport { ViewMode } from 'recoils/atoms'\r\nimport { ViewModes, StudentStatus } from 'app/enums'\r\n\r\nconst StudentTeam = ({ item }) => {\r\n const [collapse, setCollapse] = useState(true)\r\n const viewMode = useRecoilValue(ViewMode)\r\n // const [viewAbsentMode, setViewAbsentMode] = useState(AbsentMode.Mass)\r\n\r\n const handleCollapse = () => {\r\n setCollapse(!collapse)\r\n }\r\n\r\n return (\r\n \r\n
\r\n
\r\n {item.team === 0 &&

Chưa phân đội - {item?.students?.length}

}\r\n {item.team !== 0 && (\r\n

\r\n Đội: {item.team} - {item?.students?.length} | {item?.students?.filter(i => i.status !== StudentStatus.Active)?.length} |{' '}\r\n {item?.students?.filter(i => i.studentClass[0].stayInClass)?.length}\r\n

\r\n )}\r\n
\r\n \r\n
\r\n \r\n \r\n {collapse ? : }\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n )\r\n}\r\n\r\nexport default StudentTeam\r\n","import React, { useState } from 'react'\r\nimport { List, ListItem, Tooltip, Fab, Menu } from '@material-ui/core'\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\nimport { faFileExcel, faDownload } from '@fortawesome/free-solid-svg-icons'\r\nimport { useSetRecoilState, useRecoilState } from 'recoil'\r\n\r\nimport sessionHelper from 'utils/sessionHelper'\r\n// import { doPost } from 'utils/axios'\r\n// import { toastState } from 'recoils/atoms'\r\nimport { ChooseFileInfoDialogAtom } from 'components/Dialog/recoil'\r\nimport { doDownload } from 'utils/axios'\r\n\r\n// const templateId = process.env.REACT_APP_START_YEAR_DOC_ID\r\n\r\nexport default function HeaderAction() {\r\n const [anchorEl, setAnchorEl] = useState(null)\r\n\r\n // const setToast = useSetRecoilState(toastState)\r\n\r\n const [dialog, setDialog] = useRecoilState(ChooseFileInfoDialogAtom)\r\n\r\n const handleOpen = event => {\r\n setAnchorEl(event.currentTarget)\r\n }\r\n\r\n // const handleDownload = async e => {\r\n // e.preventDefault()\r\n\r\n // handleClose()\r\n\r\n // try {\r\n // const data = {\r\n // StudentId: [],\r\n // ClassId: sessionHelper().classId,\r\n // ScholasticId: sessionHelper().scholasticId,\r\n // UserId: sessionHelper().userId,\r\n // TemplateId: templateId,\r\n // IsPreview: false\r\n // }\r\n\r\n // const res = await doPost(`download/previewForm`, data)\r\n // if (res && res.data.success) {\r\n // const { data } = res.data\r\n // window.open(`${apiEndpoint}/file/get?fileName=${data}`, '_parent')\r\n // }\r\n // } catch (err) {\r\n // setToast({ open: true, message: err.message, type: 'error' })\r\n // }\r\n // }\r\n\r\n const handleDownloadStudentInfo = async e => {\r\n e.preventDefault()\r\n handleClose()\r\n\r\n const params = {\r\n classId: sessionHelper().classId,\r\n unionId: sessionHelper().unionId\r\n }\r\n\r\n return doDownload('file/getClassStudentInfoCSV', params)\r\n }\r\n\r\n const handleUploadStudentInfoFile = () => {\r\n setDialog({ ...dialog, openChooseFileDialog: true, pageCall: 'HT-StudentClass' })\r\n handleClose()\r\n }\r\n\r\n const handleAddNewStudent = () => {\r\n setDialog({ ...dialog, openChooseFileDialog: true, pageCall: 'HT-AddNewStudentFromFile' })\r\n handleClose()\r\n }\r\n\r\n const handleClose = () => {\r\n setAnchorEl(null)\r\n }\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
Tải thông tin Đoàn sinh
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n \r\n
Cập nhật thông tin Đoàn sinh
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n \r\n
Thêm mới Đoàn sinh từ file
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n )\r\n}\r\n","import React, { Fragment, Suspense } from 'react'\r\nimport { useRecoilValue, useRecoilState } from 'recoil'\r\nimport { Grid, Typography, ButtonGroup, Button } from '@material-ui/core'\r\nimport _ from 'lodash'\r\n\r\nimport { ViewMode } from 'recoils/atoms'\r\nimport { ViewModes } from 'app/enums'\r\nimport { AbsentDialog, ChooseInfoFileDialog, DialerDialog, StudentDialog } from 'components/Dialog'\r\n\r\nimport { StudentsQuery } from './recoil'\r\nimport StudentTeam from './StudentTeam'\r\nimport HeaderAction from './HeaderAction'\r\n\r\nconst ManageStudentsClass = () => {\r\n const lstStudent = useRecoilValue(StudentsQuery)\r\n const [mode, setMode] = useRecoilState(ViewMode)\r\n\r\n const lstNoTeam = lstStudent?.filter(i => i.team === 0)\r\n const lstInClass = lstStudent?.filter(i => i.team !== 0)\r\n const haveStudentNoTeam = _.size(lstNoTeam && lstNoTeam.length > 0 ? lstNoTeam[0].students : []) > 0\r\n\r\n const body = () => {\r\n return (\r\n <>\r\n \r\n \r\n \r\n {lstStudent && (\r\n \r\n {/**/}\r\n \r\n \r\n \r\n )}\r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n {!lstStudent && (\r\n \r\n Bạn chưa được phân Chi đoàn hoặc chưa có Đoàn sinh trong Chi đoàn.\r\n \r\n )}\r\n\r\n {haveStudentNoTeam &&\r\n lstNoTeam?.map((item, index) => (\r\n \r\n \r\n \r\n ))}\r\n\r\n \r\n {lstInClass?.length > 0 &&\r\n lstInClass.map((item, index) => (\r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n )\r\n }\r\n\r\n return (\r\n Đang tải danh sách Đoàn sinh ...}>\r\n {body()}\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default ManageStudentsClass\r\n","import React, { lazy, Suspense } from 'react'\r\nimport { Redirect } from 'react-router-dom'\r\n\r\n//import master pages\r\nimport ErrorLayout from 'layouts/ErrorLayout'\r\nimport AuthenticationLayout from 'layouts/AuthenticationLayout'\r\nimport { CombinedLayout } from 'layouts/layout-blueprints'\r\n\r\n//components\r\nimport PageSkeleton from 'components/Loading/page-skeleton'\r\nimport CardSkeleton from 'components/Loading/card-skeleton'\r\n\r\nimport FindStudents from 'pages/Students/FindStudent'\r\nimport MyProfile from 'pages/Users/MyProfile'\r\n\r\nimport FormDownload from 'pages/Form'\r\n// BQT\r\nimport RegisterOffline from 'pages/BanQuanTri/RegisterOffline'\r\nimport GroupInfo from 'pages/BanQuanTri/GroupInfo'\r\nimport TeacherAssignment from './pages/BanQuanTri/TeacherAssignment'\r\n// PDT\r\nimport AddNewStudent from 'pages/PhanDoanTruong/AddNewStudent'\r\nimport ManageScoreGroup from 'pages/PhanDoanTruong/ManageScoreGroup'\r\nimport { default as StudentGroup } from 'pages/PhanDoanTruong/ManageStudentsGroup'\r\nimport AssignUserUnion from 'pages/PhanDoanTruong/AssignUserUnion'\r\nimport ChangeStudentUnion from 'pages/PhanDoanTruong/ChangeStudentUnion'\r\n//HT\r\nimport ManageStudentScore from 'pages/HuynhTruong/ManageStudentScore'\r\nimport { default as StudentAbsent } from 'pages/Students/Absent'\r\nimport { default as StudentClass } from 'pages/HuynhTruong/ManageStudentClass'\r\n\r\nexport default [\r\n {\r\n path: '/',\r\n exact: true,\r\n component: () => \r\n },\r\n {\r\n path: ['/Login', '/ResetPassword', '/VerifyNewUser'],\r\n component: AuthenticationLayout,\r\n routes: [\r\n {\r\n path: '/login',\r\n exact: true,\r\n component: lazy(() => import('pages/Authentication/Login'))\r\n },\r\n {\r\n path: '/VerifyNewUser/:email',\r\n exact: true,\r\n component: lazy(() => import('pages/Authentication/VerifyNewUser'))\r\n },\r\n {\r\n path: '/ResetPassword/:token',\r\n exact: true,\r\n component: lazy(() => import('pages/Authentication/ResetPassword'))\r\n },\r\n {\r\n component: () => \r\n }\r\n ]\r\n },\r\n {\r\n path: ['/errors'],\r\n component: ErrorLayout,\r\n routes: [\r\n {\r\n path: '/errors/error-404',\r\n exact: true,\r\n component: lazy(() => import('pages/Error/Error404'))\r\n },\r\n {\r\n path: '/errors/error-500',\r\n exact: true,\r\n component: lazy(() => import('pages/Error/Error500'))\r\n },\r\n {\r\n component: () => \r\n }\r\n ]\r\n },\r\n {\r\n path: ['/Dashboard', '/MyProfile', '/FindStudent', '/Report', '/Form', '/BQT', '/PDT', '/HT'],\r\n component: CombinedLayout,\r\n routes: [\r\n {\r\n path: '/Dashboard',\r\n exact: true,\r\n component: lazy(() => import('pages/Dashboard'))\r\n },\r\n {\r\n path: '/MyProfile',\r\n exact: true,\r\n component: () => (\r\n }>\r\n \r\n \r\n )\r\n },\r\n {\r\n path: '/FindStudent/:stuId',\r\n exact: true,\r\n component: () => (\r\n }>\r\n \r\n \r\n )\r\n },\r\n {\r\n path: '/Report',\r\n exact: true,\r\n component: lazy(() => import('pages/Report'))\r\n },\r\n {\r\n path: '/Form',\r\n exact: true,\r\n component: () => (\r\n }>\r\n \r\n \r\n )\r\n },\r\n // Ban Điều hành\r\n {\r\n path: '/BQT/GroupInfo',\r\n exact: true,\r\n component: () => (\r\n }>\r\n \r\n \r\n )\r\n },\r\n {\r\n path: '/BQT/RegisterOffline',\r\n exact: true,\r\n component: () => (\r\n }>\r\n \r\n \r\n )\r\n },\r\n // {\r\n // path: '/BQT/AssignLeader',\r\n // exact: true,\r\n // component: lazy(() => import('pages/BanQuanTri/AssignLeader'))\r\n // },\r\n {\r\n path: '/BQT/TeacherAssignment',\r\n exact: true,\r\n component: () => (\r\n }>\r\n \r\n \r\n )\r\n },\r\n {\r\n path: '/BQT/AssignUserRoles',\r\n exact: true,\r\n component: lazy(() => import('pages/BanQuanTri/AssignRoles'))\r\n },\r\n {\r\n path: '/BQT/ManageForms',\r\n exact: true,\r\n component: lazy(() => import('pages/BanQuanTri/ManageForms'))\r\n },\r\n // Phân đoàn trưởng\r\n {\r\n path: '/PDT/StudentGroup',\r\n exact: true,\r\n component: () => (\r\n }>\r\n \r\n \r\n )\r\n },\r\n {\r\n path: '/PDT/StudentGroupScore',\r\n exact: true,\r\n component: () => (\r\n }>\r\n \r\n \r\n )\r\n },\r\n {\r\n path: '/PDT/AssignUserUnion',\r\n exact: true,\r\n component: () => (\r\n }>\r\n \r\n \r\n )\r\n },\r\n {\r\n path: '/PDT/GroupAbsent',\r\n exact: true,\r\n component: () => (\r\n }>\r\n \r\n \r\n )\r\n },\r\n {\r\n path: '/PDT/AddNewStudent',\r\n exact: true,\r\n component: () => (\r\n }>\r\n \r\n \r\n )\r\n },\r\n {\r\n path: '/PDT/ChangeStudentUnion',\r\n exact: true,\r\n component: () => (\r\n }>\r\n \r\n \r\n )\r\n },\r\n // Huynh trưởng\r\n {\r\n path: '/HT/StudentClass',\r\n exact: true,\r\n component: () => (\r\n }>\r\n \r\n \r\n )\r\n },\r\n {\r\n path: '/HT/StudentScore',\r\n exact: true,\r\n component: () => (\r\n }>\r\n .\r\n \r\n )\r\n },\r\n {\r\n path: '/HT/ClassAbsent',\r\n exact: true,\r\n component: () => (\r\n }>\r\n \r\n \r\n )\r\n },\r\n // Error page\r\n {\r\n component: () => \r\n }\r\n ]\r\n }\r\n]\r\n","import React from 'react'\r\n\r\nimport { makeStyles } from '@material-ui/core/styles'\r\nimport useScrollTrigger from '@material-ui/core/useScrollTrigger'\r\nimport Zoom from '@material-ui/core/Zoom'\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n position: 'fixed',\r\n bottom: theme.spacing(2),\r\n right: theme.spacing(2),\r\n zIndex: 20\r\n }\r\n}))\r\n\r\nexport default function ScrollToTop(props) {\r\n const { children, window } = props\r\n const classes = useStyles()\r\n // Note that you normally won't need to set the window ref as useScrollTrigger\r\n // will default to window.\r\n // This is only being set here because the demo is in an iframe.\r\n const trigger = useScrollTrigger({\r\n target: window ? window() : undefined,\r\n disableHysteresis: true,\r\n threshold: 400\r\n })\r\n\r\n const handleClick = event => {\r\n const anchor = (event.target.ownerDocument || document).querySelector('#root')\r\n\r\n if (anchor) {\r\n anchor.scrollIntoView({ behavior: 'smooth', block: 'start' })\r\n }\r\n }\r\n\r\n return (\r\n \r\n
\r\n {children}\r\n
\r\n
\r\n )\r\n}\r\n","import Joyride, { STATUS } from 'react-joyride'\r\nimport React from 'react'\r\nimport { useRecoilState } from 'recoil'\r\nimport { ShowTourIntroduction } from 'recoils/atoms'\r\n\r\nconst Introduction = () => {\r\n const [{ run, steps }, setTour] = useRecoilState(ShowTourIntroduction)\r\n\r\n const handleCallback = data => {\r\n const { status } = data\r\n const finishedStatuses = [STATUS.FINISHED, STATUS.SKIPPED]\r\n\r\n if (finishedStatuses.includes(status)) {\r\n setTour({ run: false, steps: [] })\r\n }\r\n }\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nexport default Introduction","import React, { useEffect } from 'react'\r\nimport { useRecoilValue } from 'recoil'\r\nimport { Router } from 'react-router-dom'\r\nimport { renderRoutes } from 'react-router-config'\r\nimport { createBrowserHistory } from 'history'\r\nimport { ThemeProvider } from '@material-ui/styles'\r\nimport './assets/base.scss'\r\nimport MuiTheme from './theme'\r\nimport CssBaseline from '@material-ui/core/CssBaseline'\r\nimport { createTheme, Fab } from '@material-ui/core'\r\nimport routes from './routes'\r\nimport { themeColor } from 'recoils/atoms'\r\nimport { MuiPickersUtilsProvider } from '@material-ui/pickers'\r\nimport DateFnsUtils from '@date-io/date-fns'\r\n\r\nimport ScrollToTop from './components/ScrollToTop'\r\nimport KeyboardArrowUpIcon from '@material-ui/icons/KeyboardArrowUp'\r\nimport { NotificationPermissionSelector } from 'recoils/selectors'\r\nimport Introduction from './components/Introduction'\r\n\r\nexport const history = createBrowserHistory()\r\n\r\nconst App = () => {\r\n const _themeColor = useRecoilValue(themeColor)\r\n const _notificationPermission = useRecoilValue(NotificationPermissionSelector)\r\n\r\n useEffect(() => {\r\n localStorage.setItem('si_primaryColor', _themeColor.primary)\r\n localStorage.setItem('si_secondaryColor', _themeColor.secondary)\r\n }, [_themeColor])\r\n\r\n useEffect(() => {\r\n localStorage.setItem('notification', _notificationPermission)\r\n }, [_notificationPermission])\r\n\r\n const overrideColor = {\r\n primary: {\r\n main: _themeColor.primary\r\n },\r\n secondary: {\r\n main: _themeColor.secondary\r\n }\r\n }\r\n\r\n const theme = {\r\n ...MuiTheme,\r\n palette: { ...MuiTheme.palette, ...overrideColor },\r\n breakpoints: {\r\n values: {\r\n xs: 0,\r\n sm: 600,\r\n md: 900,\r\n lg: 1200,\r\n xl: 1536\r\n }\r\n }\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n {renderRoutes(routes)}\r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default App\r\n","import { selector, selectorFamily } from 'recoil'\r\nimport _ from 'lodash'\r\n\r\nimport { Roles } from 'app/enums'\r\nimport { doGet } from 'utils/axios'\r\nimport sessionHelper from 'utils/sessionHelper'\r\nimport FileUtils from 'utils/FileUtils'\r\n\r\nimport { storageState } from 'recoils/firebase'\r\n\r\nimport { themeOptionsState, reloadTemplates, reloadListUnion, reloadUserAvatar, UserImageAtom, reloadHolyName } from './atoms'\r\nimport { isMobile, isTablet } from 'react-device-detect'\r\n\r\nexport const themeOptionsActions = selector({\r\n key: 'themeOptionsActions',\r\n set: ({ set, get }, action) => {\r\n const themeOptions = get(themeOptionsState)\r\n set(themeOptionsState, { ...themeOptions, [action.name]: action.value })\r\n }\r\n})\r\n\r\nexport const HolyNameQuery = selector({\r\n key: 'HolyNameQuery',\r\n get: async ({ get }) => {\r\n get(reloadHolyName)\r\n\r\n try {\r\n if (sessionHelper().token) {\r\n const res = await doGet(`holyname/getall`)\r\n\r\n if (res && res.data && res.data.success) return _.orderBy(res.data.data, ['name'], ['asc'])\r\n else return []\r\n }\r\n } catch (err) {\r\n return null\r\n }\r\n }\r\n})\r\n\r\nexport const BranchQuery = selector({\r\n key: 'BranchQuery',\r\n get: async () => {\r\n let res = await doGet(`class/getBranch`)\r\n\r\n if (res && res.data.success) return _.orderBy(res.data.data, ['branchOrder'], ['asc'])\r\n else return []\r\n }\r\n})\r\n\r\nexport const GroupQuery = selector({\r\n key: 'GroupQuery',\r\n get: async () => {\r\n let res = await doGet(`class/getGroup`)\r\n\r\n if (res && res.data.success) return res.data.data\r\n else return []\r\n }\r\n})\r\n\r\nexport const UnionQuery = selector({\r\n key: 'UnionQuery',\r\n get: async () => {\r\n const userId = sessionHelper().userId\r\n const scholasticId = sessionHelper().scholasticId\r\n\r\n let res = await doGet(`assignment/getListUnionInGroup`, { scholasticId: scholasticId, userId: userId })\r\n\r\n if (res && res.data.success) {\r\n return _.orderBy(res.data.data, ['unionCode'], ['asc'])\r\n }\r\n return []\r\n }\r\n})\r\n\r\nexport const UnionRegisterQuery = selectorFamily({\r\n key: 'UnionRegisterQuery',\r\n get:\r\n groupId =>\r\n async ({ get }) => {\r\n get(reloadListUnion)\r\n if (groupId) {\r\n const res = await doGet(`assignment/getUnionByGroupId`, { groupId })\r\n\r\n if (res && res.data.success) {\r\n return _.orderBy(res.data.data, ['unionCode'], ['asc'])\r\n }\r\n }\r\n return []\r\n }\r\n})\r\n\r\nexport const TemplatesQuery = selector({\r\n key: 'TemplatesQuery',\r\n get: async ({ get }) => {\r\n get(reloadTemplates)\r\n\r\n const userRoles = sessionHelper().roles\r\n const res = await doGet(`template/get`)\r\n\r\n if (res && res.data.success) {\r\n const result = []\r\n const { data } = res.data\r\n\r\n if (userRoles.includes(Roles.BanDieuHanh)) return data\r\n\r\n data.forEach(item => {\r\n userRoles.forEach(role => {\r\n if (item.roleTemplate & role) result.push(item)\r\n })\r\n })\r\n\r\n return _.orderBy(result, ['name'], ['asc'])\r\n }\r\n return []\r\n }\r\n})\r\n\r\nexport const UserAvatarQuery = selector({\r\n key: 'GetUserAvatar',\r\n get: async ({ get }) => {\r\n get(reloadUserAvatar)\r\n\r\n const storage = get(storageState)\r\n\r\n const { userId, croppedAvatarId, avatarId } = sessionHelper()\r\n\r\n const avatarFiles = await FileUtils.getFiles(storage, `avatars/${userId}`)\r\n\r\n const userAvatar = avatarFiles.find(img => img.fileName === `${croppedAvatarId}.png`)\r\n const previewAvatar = avatarFiles.find(img => img.fileName === `${avatarId}.png`)\r\n\r\n return {\r\n avatarUrl: userAvatar ? userAvatar.url : null,\r\n previewUrl: previewAvatar ? previewAvatar.url : null\r\n }\r\n }\r\n})\r\n\r\nexport const UserImageSelector = selector({\r\n key: 'UserImageSelector',\r\n get: async ({ get }) => {\r\n const userInfo = get(UserImageAtom)\r\n if (userInfo && userInfo.id && userInfo.croppedAvatarId) {\r\n const storage = get(storageState)\r\n\r\n const avatarFiles = await FileUtils.getFiles(storage, `avatars/${userInfo.id}`)\r\n const userAvatar = avatarFiles.find(img => img.fileName === `${userInfo.croppedAvatarId}.png`)\r\n\r\n return userAvatar?.url ?? ''\r\n }\r\n return ''\r\n }\r\n})\r\n\r\nexport const GroupSettingsQuery = selector({\r\n key: 'GroupSettingsQuery',\r\n get: async () => {\r\n const { groupId } = sessionHelper()\r\n if (!groupId) return undefined\r\n\r\n const res = await doGet('setting/getGroupSettings', { groupId })\r\n if (res && res.data.success) return res.data.data\r\n }\r\n})\r\n\r\nexport const CurrentSemesterQuery = selector({\r\n key: 'CurrentSemesterQuery',\r\n get: async () => {\r\n const { scholasticId } = sessionHelper()\r\n if (!scholasticId) return undefined\r\n\r\n const res = await doGet('scores/current-semester', { scholasticId })\r\n if (res && res.data.success) return res.data.data\r\n }\r\n})\r\n\r\nexport const NotificationPermissionSelector = selector({\r\n key: 'NotificationPermissionSelector',\r\n get: async () => {\r\n if (!isMobile && !isTablet) {\r\n const permission = (await Notification.permission) ?? ''\r\n return `${permission}`\r\n }\r\n return undefined\r\n }\r\n})\r\n","import * as Yup from 'yup'\r\n\r\nfunction requiredWith(ref, expectedValue, msg) {\r\n return this.test({\r\n name: 'requiredWith',\r\n exclusive: false,\r\n message: msg,\r\n test(value) {\r\n return this.resolve(ref) !== expectedValue || (this.resolve(ref) === expectedValue && !!value)\r\n }\r\n })\r\n}\r\n\r\nfunction atLeastOneOf(list, msg) {\r\n return this.test({\r\n name: 'atLeastOneOf',\r\n exclusive: false,\r\n message: msg,\r\n test(value) {\r\n return list.some(f => value[f] != null)\r\n }\r\n })\r\n}\r\n\r\nYup.addMethod(Yup.mixed, 'requiredWith', requiredWith)\r\nYup.addMethod(Yup.mixed, 'atLeastOneOf', atLeastOneOf)\r\n\r\nexport default Yup\r\n","import * as React from 'react'\r\nimport { Skeleton } from '@material-ui/lab'\r\nimport { Modal as MuiModal, Card, CardHeader, CardContent, Divider } from '@material-ui/core'\r\n\r\nimport { makeStyles } from '@material-ui/core/styles'\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n position: 'absolute',\r\n top: '50%',\r\n left: '50%',\r\n transform: 'translate(-50%, -50%)',\r\n outline: 'none',\r\n boxShadow: theme.shadows[20],\r\n width: 1080,\r\n height: 700,\r\n maxHeight: '100%',\r\n overflowY: 'auto',\r\n maxWidth: '100%'\r\n },\r\n actions: {\r\n justifyContent: 'flex-end'\r\n }\r\n}))\r\n\r\nconst ModalSkeleton = ({ loading }) => {\r\n const classes = useStyles()\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default ModalSkeleton\r\n","import { withStyles } from '@material-ui/core/styles'\r\nimport { Card } from '@material-ui/core'\r\n\r\nconst CardOnModal = withStyles(theme => ({\r\n root: {\r\n position: 'absolute',\r\n top: '50%',\r\n left: '50%',\r\n transform: 'translate(-50%, -50%)',\r\n outline: 'none',\r\n boxShadow: theme.shadows[20],\r\n width: 1080,\r\n maxHeight: '100%',\r\n overflowY: 'auto',\r\n maxWidth: '100%'\r\n }\r\n}))(Card)\r\n\r\nexport default CardOnModal\r\n","export { default as ShortTextField } from './ShortTextField'\r\nexport { default as AutocompleteTextField } from './AutocompleteTextField'\r\nexport { default as KeyboardDateField } from './KeyboardDateField'\r\nexport { default as InlineTextField } from './InlineTextField'\r\n","import {atom} from 'recoil'\r\nimport {StudentStatus} from '../../app/enums'\r\n\r\nexport const OpenAbsentDialog = atom({\r\n key: 'openAbsentDialog',\r\n default: false\r\n})\r\n\r\nexport const StudentAbsent = atom({\r\n key: 'studentAbsent',\r\n default: undefined\r\n})\r\n\r\nexport const RolesDialogAtom = atom({\r\n key: 'rolesDialog',\r\n default: {\r\n open: false,\r\n pageCall: undefined,\r\n user: undefined\r\n }\r\n})\r\n\r\nexport const StudentDialogAtom = atom({\r\n key: 'studentDialogAtom',\r\n default: {\r\n stuDialog: false,\r\n pageCall: undefined,\r\n student: undefined\r\n }\r\n})\r\n\r\nexport const PhoneCallDialogAtom = atom({\r\n key: 'PhoneCallDialogAtom',\r\n default: {\r\n phoneCallDialog: false,\r\n phoneNo: undefined\r\n }\r\n})\r\n\r\nexport const ScoreDownloadDialogAtom = atom({\r\n key: 'scoreDownloadDialogAtom',\r\n default: {\r\n openScoreDownload: false,\r\n lstStudent: [],\r\n teamCollapse: []\r\n }\r\n})\r\n\r\nexport const ChooseFileDialogAtom = atom({\r\n key: 'chooseFileDialogAtom',\r\n default: {\r\n openChooseFileDialog: false,\r\n pageCall: undefined,\r\n semesterId: undefined\r\n }\r\n})\r\n\r\nexport const ChooseFileInfoDialogAtom = atom({\r\n key: 'chooseFileInfoDialogAtom',\r\n default: {\r\n openChooseFileDialog: false,\r\n pageCall: undefined\r\n }\r\n})\r\n\r\nexport const DocumentPreviewDialogAtom = atom({\r\n key: 'documentPreviewDialogAtom',\r\n default: {\r\n openPreviewDialog: false,\r\n document: undefined,\r\n studentId: undefined,\r\n templateType: undefined,\r\n studentClassId: undefined\r\n }\r\n})\r\n\r\nexport const ChangeGroupModalAtom = atom({\r\n key: 'changeGroupModalAtom',\r\n default: {\r\n openDialog: false,\r\n student: undefined,\r\n closeParent: false\r\n }\r\n})\r\n\r\nexport const GroupScoreResultDialogAtom = atom({\r\n key: 'GroupScoreResultDialogAtom',\r\n default: {\r\n open: false,\r\n templateId: undefined,\r\n title: ''\r\n }\r\n})\r\n\r\nexport const TeacherInfoDialogAtom = atom({\r\n key: 'TeacherInfoDialogAtom',\r\n default: {\r\n open: false,\r\n info: undefined\r\n }\r\n})\r\n\r\nexport const ChangeUserPasswordDialogAtom = atom({\r\n key: 'ChangeUserPasswordDialogAtom',\r\n default: {\r\n open: false,\r\n info: undefined\r\n }\r\n})\r\n\r\nexport const ChangeUserStatusDialogAtom = atom({\r\n key: 'ChangeUserStatusDialogAtom',\r\n default: {\r\n open: false,\r\n info: undefined\r\n }\r\n})\r\n\r\nexport const UserInfoDialogAtom = atom({\r\n key: 'UserInfoDialogAtom',\r\n default: {\r\n open: false,\r\n info: undefined\r\n }\r\n})\r\n\r\nexport const NewUserDialogAtom = atom({\r\n key: 'NewUserDialogAtom',\r\n default: {\r\n open: false\r\n }\r\n})\r\n\r\nexport const StudyComebackDialogAtom = atom({\r\n key: 'StudyComebackDialogAtom',\r\n default: {\r\n open: false,\r\n student: null\r\n }\r\n})\r\n\r\nexport const NewPhoneCallDialogAtom = atom({\r\n key: 'NewPhoneCallDialogAtom',\r\n default: {\r\n open: false,\r\n fatherPhone: undefined,\r\n motherPhone: undefined\r\n }\r\n})\r\n\r\nexport const ChangeStudentStatusDialogAtom = atom({\r\n key: 'ChangeStudentStatusDialogAtom',\r\n default: {\r\n open: false,\r\n student: null,\r\n latestStatus: null\r\n }\r\n})\r\n","import { atom, selector } from 'recoil'\r\nimport { doGet } from 'utils/axios'\r\n\r\nimport sessionHelper from 'utils/sessionHelper'\r\n\r\n/// atom\r\nexport const selectedClass = atom({\r\n key: 'selectedClass',\r\n default: undefined\r\n})\r\n\r\nexport const classSummaryQuery = selector({\r\n key: 'classSummaryQuery',\r\n get: async () => {\r\n const { classId, unionId, scholasticId } = sessionHelper()\r\n\r\n var res = await doGet(`dashboard/classSummary`, { scholasticId: scholasticId, classId: classId, unionId: unionId })\r\n\r\n if (res && res.data.data) {\r\n // console.log(res.data)\r\n const { data } = res.data\r\n\r\n return data.classSummary\r\n }\r\n\r\n return null\r\n }\r\n})\r\n\r\nexport const groupSummaryQuery = selector({\r\n key: 'groupSummaryQuery',\r\n get: async ({ get }) => {\r\n const { userId, scholasticId } = sessionHelper()\r\n const classInfo = get(selectedClass)\r\n\r\n const data = classInfo\r\n ? {\r\n scholasticId,\r\n userId: classInfo.leaderId\r\n }\r\n : { scholasticId, userId }\r\n\r\n var res = await doGet(`dashboard/groupSummary`, data)\r\n\r\n if (res && res.data.data) {\r\n const { data } = res.data\r\n\r\n return data.groupSummary\r\n }\r\n\r\n return null\r\n }\r\n})\r\n\r\nexport const totalGroupSummaryQuery = selector({\r\n key: 'totalGroupSummaryQuery',\r\n get: async () => {\r\n const { scholasticId } = sessionHelper()\r\n\r\n var res = await doGet(`dashboard/totalGroupInfoSummary`, { scholasticId })\r\n\r\n if (res && res.data.data) {\r\n const { data } = res.data\r\n // console.log(data)\r\n return data\r\n }\r\n\r\n return null\r\n }\r\n})\r\n","import React from 'react'\r\nimport logo from 'assets/images/loading/waiting.gif'\r\n\r\nconst SuspenseLoading = () => {\r\n return (\r\n <>\r\n
\r\n
\r\n \"loading\"\r\n
\r\n
Đợi chúng tôi xử lý dữ liệu.
\r\n
\r\n \r\n )\r\n}\r\n\r\nexport default SuspenseLoading\r\n","import React from 'react'\r\nimport { useRecoilState, useSetRecoilState } from 'recoil'\r\nimport { ChangeUserPasswordDialogAtom } from './recoil'\r\nimport { Button, CardContent, Dialog, DialogActions, DialogContent, DialogTitle, Divider, Grid, TextField, Typography } from '@material-ui/core'\r\nimport { useTheme } from '@material-ui/core/styles'\r\nimport useMediaQuery from '@material-ui/core/useMediaQuery'\r\nimport Yup from 'utils/Yup'\r\nimport { useFormik } from 'formik'\r\nimport { loadingState, toastState } from 'recoils/atoms'\r\nimport { doPost } from 'utils/axios'\r\n\r\nexport default function ChangeUserPasswordDialog() {\r\n const theme = useTheme()\r\n const fullScreen = useMediaQuery(theme.breakpoints.down('sm'))\r\n\r\n const setLoading = useSetRecoilState(loadingState)\r\n const [toast, setToast] = useRecoilState(toastState)\r\n const [dialog, setDialog] = useRecoilState(ChangeUserPasswordDialogAtom)\r\n const { open, info } = dialog\r\n\r\n const useFormValidationFrom = Yup.object({\r\n NewPassword: Yup.string().required('Không được bỏ trống.').min(6).max(255),\r\n ConfirmPassword: Yup.string()\r\n .oneOf([Yup.ref('NewPassword')], 'Phải giống mật khẩu mới.')\r\n .required('Không được bỏ trống.')\r\n .min(6)\r\n .max(255)\r\n })\r\n\r\n const changePasswordForm = useFormik({\r\n initialValues: { userId: info?.id, email: info?.email, NewPassword: '', ConfirmPassword: '' },\r\n validationSchema: useFormValidationFrom,\r\n validateOnChange: true,\r\n validateOnMount: true,\r\n enableReinitialize: true,\r\n initialErrors: {}\r\n })\r\n\r\n const TextField_Props = (name, label = name, isRequired = false, placeholder = '', maxLength = 255) => {\r\n const { values, errors, touched, handleBlur, handleChange } = changePasswordForm\r\n return {\r\n name,\r\n label,\r\n fullWidth: true,\r\n variant: 'outlined',\r\n error: errors[name] && touched[name],\r\n helperText: errors[name] && touched[name] && errors[name],\r\n InputLabelProps: { shrink: true },\r\n value: values[name],\r\n onBlur: handleBlur,\r\n onChange: handleChange,\r\n required: isRequired,\r\n inputProps: {\r\n maxLength: maxLength\r\n },\r\n placeholder: placeholder\r\n }\r\n }\r\n\r\n const handleCloseDialog = () => {\r\n setDialog({ ...dialog, open: false, info: undefined })\r\n changePasswordForm.resetForm({ values: {} })\r\n }\r\n\r\n const handleChangePassword = async () => {\r\n setLoading(true)\r\n\r\n const newPassword = changePasswordForm.values['NewPassword']\r\n const userId = changePasswordForm.values['userId']\r\n\r\n try {\r\n const res = await doPost(`user/forceChangePassword`, { userId, newPassword })\r\n if (res && res.data.success) {\r\n setToast({ ...toast, open: true, message: res.data.message, type: 'success' })\r\n handleCloseDialog()\r\n } else {\r\n setToast({ ...toast, open: true, message: res.data.message, type: 'error' })\r\n }\r\n } catch (err) {\r\n setToast({ ...toast, open: true, message: err.message, type: 'error' })\r\n } finally {\r\n setLoading(false)\r\n }\r\n }\r\n\r\n return (\r\n \r\n Thay đổi mật khẩu\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n","import React from 'react'\r\nimport { useTheme } from '@material-ui/core/styles'\r\nimport useMediaQuery from '@material-ui/core/useMediaQuery'\r\nimport { Button, CardContent, Dialog, DialogActions, DialogContent, DialogTitle, Divider, FormControl, FormControlLabel, FormGroup, Grid, TextField } from '@material-ui/core'\r\nimport { useRecoilState, useSetRecoilState } from 'recoil'\r\nimport { loadingState, toastState } from 'recoils/atoms'\r\nimport { ChangeUserStatusDialogAtom } from './recoil'\r\nimport Yup from 'utils/Yup'\r\nimport { useFormik } from 'formik'\r\nimport { doPost } from 'utils/axios'\r\nimport sessionHelper from 'utils/sessionHelper'\r\nimport StyledRadio from 'components/UI/StyledRadio'\r\nimport { UserStatus } from 'app/enums'\r\n\r\nexport default function ChangeUserStatusDialog() {\r\n const theme = useTheme()\r\n const fullScreen = useMediaQuery(theme.breakpoints.down('sm'))\r\n\r\n const setLoading = useSetRecoilState(loadingState)\r\n const [toast, setToast] = useRecoilState(toastState)\r\n const [dialog, setDialog] = useRecoilState(ChangeUserStatusDialogAtom)\r\n const { open, info } = dialog\r\n\r\n const useFormValidationFrom = Yup.object()\r\n\r\n const changeStatusForm = useFormik({\r\n initialValues: { id: info?.id, status: info?.status, note: info?.note },\r\n validationSchema: useFormValidationFrom,\r\n validateOnChange: true,\r\n validateOnMount: true,\r\n enableReinitialize: true,\r\n initialErrors: {}\r\n })\r\n\r\n const TextField_Props = (name, label = name, isRequired = false, placeholder = '', maxLength = 255) => {\r\n const { values, errors, touched, handleBlur, handleChange } = changeStatusForm\r\n return {\r\n name,\r\n label,\r\n fullWidth: true,\r\n variant: 'outlined',\r\n error: errors[name] && touched[name],\r\n helperText: errors[name] && touched[name] && errors[name],\r\n InputLabelProps: { shrink: true },\r\n value: values[name],\r\n onBlur: handleBlur,\r\n onChange: handleChange,\r\n required: isRequired,\r\n inputProps: {\r\n maxLength: maxLength\r\n },\r\n placeholder: placeholder\r\n }\r\n }\r\n\r\n const handleCloseDialog = () => {\r\n setDialog({ ...dialog, open: false, info: undefined })\r\n changeStatusForm.resetForm({ values: {} })\r\n }\r\n\r\n const handleChangeStatus = async () => {\r\n setLoading(true)\r\n\r\n const values = changeStatusForm.values\r\n const updatedBy = sessionHelper().fullName\r\n\r\n try {\r\n const res = await doPost(`user/statusUpdate`, { ...values, updatedBy })\r\n if (res && res.data.success) {\r\n setToast({ ...toast, open: true, message: res.data.message, type: 'success' })\r\n handleCloseDialog()\r\n } else {\r\n setToast({ ...toast, open: true, message: res.data.message, type: 'error' })\r\n }\r\n } catch (err) {\r\n setToast({ ...toast, open: true, message: err.message, type: 'error' })\r\n } finally {\r\n setLoading(false)\r\n }\r\n }\r\n\r\n return (\r\n \r\n Thay đổi trạng thái\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n changeStatusForm.setFieldValue('status', UserStatus.Active)}\r\n checked={changeStatusForm.values['status'] === UserStatus.Active}\r\n control={}\r\n label=\"Đang hoạt động\"\r\n labelPlacement=\"end\"\r\n />\r\n changeStatusForm.setFieldValue('status', UserStatus.Absent)}\r\n checked={changeStatusForm.values['status'] === UserStatus.Absent}\r\n control={}\r\n label=\"Nghỉ luôn\"\r\n labelPlacement=\"end\"\r\n />\r\n changeStatusForm.setFieldValue('status', UserStatus.Deleted)}\r\n checked={changeStatusForm.values['status'] === UserStatus.Deleted}\r\n control={}\r\n label=\"Xóa\"\r\n labelPlacement=\"end\"\r\n />\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n","import React from 'react'\r\nimport { useTheme } from '@material-ui/core/styles'\r\nimport useMediaQuery from '@material-ui/core/useMediaQuery'\r\nimport { useRecoilState, useRecoilValue, useSetRecoilState } from 'recoil'\r\nimport { loadingState, toastState } from 'recoils/atoms'\r\nimport {\r\n Button,\r\n CardContent,\r\n Dialog,\r\n DialogActions,\r\n DialogContent,\r\n DialogTitle,\r\n Divider,\r\n FormControl,\r\n FormControlLabel,\r\n FormGroup,\r\n FormLabel,\r\n Grid,\r\n InputAdornment,\r\n MenuItem,\r\n TextField\r\n} from '@material-ui/core'\r\nimport { GroupQuery, HolyNameQuery } from 'recoils/selectors'\r\nimport { useFormik } from 'formik'\r\nimport { UserInfoDialogAtom } from './recoil'\r\nimport Yup from 'utils/Yup'\r\nimport { AutocompleteTextField, KeyboardDateField, ShortTextField } from '../Controls'\r\n\r\nimport { Roles } from 'app/enums'\r\nimport StyledCheckbox from 'components/UI/StyledCheckbox'\r\nimport StyledRadio from 'components/UI/StyledRadio'\r\nimport { KeyboardDatePicker } from '@material-ui/pickers'\r\nimport moment from 'moment/moment'\r\nimport { doPost } from 'utils/axios'\r\nimport _ from 'lodash'\r\n\r\nimport sessionHelper from 'utils/sessionHelper'\r\n\r\nexport default function UserInfoDialog({ reloadUserList }) {\r\n const theme = useTheme()\r\n const fullScreen = useMediaQuery(theme.breakpoints.down('sm'))\r\n\r\n const setLoading = useSetRecoilState(loadingState)\r\n const [toast, setToast] = useRecoilState(toastState)\r\n const [dialog, setDialog] = useRecoilState(UserInfoDialogAtom)\r\n const { open, info } = dialog\r\n\r\n const holyNames = useRecoilValue(HolyNameQuery)\r\n const groups = useRecoilValue(GroupQuery)\r\n\r\n const useFormValidationFrom = Yup.object({})\r\n\r\n const userForm = useFormik({\r\n initialValues: { ...info, assignment: { ...info?.assignment, oldGroupName: info?.assignment.groupName } },\r\n validationSchema: useFormValidationFrom,\r\n validateOnChange: true,\r\n validateOnMount: true,\r\n enableReinitialize: true\r\n })\r\n\r\n const handleCloseDialog = () => {\r\n setDialog({ ...dialog, open: false })\r\n userForm.resetForm()\r\n }\r\n\r\n const handleChangeUserInfo = async () => {\r\n setLoading(true)\r\n const val = userForm.values\r\n\r\n try {\r\n const res = await doPost(`user/update`, {\r\n ...val,\r\n assignment: {\r\n ...val.assignment,\r\n ScholasticId: sessionHelper().scholasticId,\r\n ModifiedBy: sessionHelper().fullName\r\n }\r\n })\r\n if (res && res.data.success) {\r\n setLoading(false)\r\n handleCloseDialog()\r\n setToast({ ...toast, open: true, message: res.data.message, type: 'success' })\r\n reloadUserList()\r\n }\r\n } catch (err) {\r\n setToast({ ...toast, open: true, message: err.message, type: 'error' })\r\n }\r\n }\r\n\r\n const handleCheckLevel = e => {\r\n const val = Number(e.target.value)\r\n if (val) {\r\n let newData = []\r\n if (val === Roles.DuTruong) {\r\n newData = [...userForm.values['role'].filter(id => id !== Roles.HuynhTruong), val]\r\n } else {\r\n newData = [...userForm.values['role'].filter(id => id !== Roles.DuTruong), val]\r\n }\r\n\r\n userForm.setFieldValue('role', newData)\r\n }\r\n }\r\n\r\n const handleCheckRole = e => {\r\n const val = Number(e.target.value)\r\n if (val) {\r\n const roleExist = userForm.values['role'].includes(val)\r\n\r\n let newData = []\r\n if (roleExist) {\r\n newData = [...userForm.values['role'].filter(id => id !== val)]\r\n } else {\r\n newData = [...userForm.values['role'], val]\r\n }\r\n\r\n userForm.setFieldValue('role', newData)\r\n }\r\n }\r\n\r\n const checkIncludesRole = (current, role) => {\r\n if (current && current.length > 0) {\r\n return current.includes(role)\r\n }\r\n return false\r\n }\r\n\r\n const DatePicker_Props = (name, label, format) => {\r\n const { values, errors, touched, handleBlur, handleChange } = userForm\r\n return {\r\n name,\r\n label,\r\n fullWidth: true,\r\n inputVariant: 'outlined',\r\n error: _.get(errors, name) && _.get(touched, name),\r\n helperText: _.get(errors, name) && _.get(touched, name) && _.get(errors, name),\r\n value: _.get(values, name) ?? null,\r\n InputLabelProps: { shrink: true },\r\n format: format,\r\n autoOk: true,\r\n onBlur: handleBlur,\r\n onChange: handleChange,\r\n KeyboardButtonProps: {\r\n 'aria-label': 'change date'\r\n }\r\n }\r\n }\r\n\r\n const TextField_Props = (name, label) => {\r\n const { values, errors, touched, handleBlur, handleChange } = userForm\r\n return {\r\n name,\r\n label,\r\n fullWidth: true,\r\n variant: 'outlined',\r\n error: _.get(errors, name) && _.get(touched, name),\r\n helperText: _.get(errors, name) && _.get(touched, name) && _.get(errors, name),\r\n value: _.get(values, name) ?? null,\r\n InputLabelProps: { shrink: true },\r\n onBlur: handleBlur,\r\n onChange: handleChange\r\n }\r\n }\r\n\r\n const handleChangeDate = (date, name, isCheckFuture) => {\r\n if (isCheckFuture && moment(date).isBefore(new Date())) {\r\n userForm.setFieldValue(name, date)\r\n } else {\r\n userForm.setFieldValue(name, date)\r\n }\r\n }\r\n\r\n return (\r\n \r\n Thông tin Huynh trưởng | Dự trưởng\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Thông tin cá nhân\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n userForm.setFieldValue('gender', e.target.checked)\r\n }}\r\n checked={userForm.values['gender']}\r\n control={}\r\n label=\"Nam\"\r\n labelPlacement=\"end\"\r\n />\r\n {\r\n userForm.setFieldValue('gender', !e.target.checked)\r\n }}\r\n checked={!userForm.values['gender']}\r\n control={}\r\n label=\"Nữ\"\r\n labelPlacement=\"end\"\r\n />\r\n \r\n \r\n \r\n\r\n {/* row 2 */}\r\n \r\n +84\r\n }}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n handleChangeDate(date, 'patronDate')} />\r\n \r\n \r\n handleChangeDate(date, 'joinedYear')} views={['year']} />\r\n \r\n\r\n \r\n \r\n \r\n \r\n Xứ Đoàn\r\n \r\n \r\n \r\n \r\n\r\n {/* row 3 */}\r\n \r\n \r\n \r\n Cấp bậc\r\n \r\n {/* */}\r\n }\r\n label=\"Dự trưởng\"\r\n />\r\n }\r\n label=\"Huynh trưởng\"\r\n />\r\n {/* */}\r\n \r\n \r\n \r\n \r\n \r\n Chức vụ\r\n \r\n \r\n }\r\n label=\"Phân đoàn trưởng\"\r\n />\r\n }\r\n label=\"Ngành trưởng\"\r\n />\r\n }\r\n label=\"Phụng vụ\"\r\n />\r\n }\r\n label=\"Học tập\"\r\n />\r\n }\r\n label=\"Kỷ luật\"\r\n />\r\n }\r\n label=\"Sinh hoạt\"\r\n />\r\n\r\n }\r\n label=\"Ban điều hành\"\r\n />\r\n \r\n \r\n \r\n \r\n \r\n {groups?.map((group, i) => (\r\n \r\n {group.groupName}\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n","import React from 'react'\r\nimport { useTheme } from '@material-ui/core/styles'\r\nimport useMediaQuery from '@material-ui/core/useMediaQuery'\r\nimport { Dialog, DialogTitle, Divider, DialogContent, Button, DialogActions, CardContent, Grid } from '@material-ui/core'\r\nimport { useRecoilState, useSetRecoilState } from 'recoil'\r\nimport { NewUserDialogAtom } from './recoil'\r\nimport Yup from 'utils/Yup'\r\nimport { useFormik } from 'formik'\r\nimport { ShortTextField } from '../Controls'\r\nimport { loadingState, toastState } from 'recoils/atoms'\r\nimport { doPost } from 'utils/axios'\r\n\r\nexport default function NewUserDialog({ reloadUserList }) {\r\n const theme = useTheme()\r\n const fullScreen = useMediaQuery(theme.breakpoints.down('sm'))\r\n\r\n const [dialog, setDialog] = useRecoilState(NewUserDialogAtom)\r\n const { open } = dialog\r\n\r\n const setLoading = useSetRecoilState(loadingState)\r\n const [toast, setToast] = useRecoilState(toastState)\r\n\r\n const registerFormValidationFrom = Yup.object({\r\n email: Yup.string().required('Không được bỏ trống').max(255).email('Email không đúng định dạng'),\r\n firstName: Yup.string().required('Không được bỏ trống').max(150),\r\n lastName: Yup.string().required('Không được bỏ trống').max(100)\r\n })\r\n\r\n const registerForm = useFormik({\r\n initialValues: {},\r\n validationSchema: registerFormValidationFrom,\r\n validateOnChange: true,\r\n validateOnMount: true,\r\n enableReinitialize: true\r\n })\r\n\r\n const handleCloseDialog = () => {\r\n setDialog({ ...dialog, open: false })\r\n registerForm.resetForm()\r\n }\r\n\r\n const handleCreateUser = async () => {\r\n setLoading(true)\r\n\r\n const val = registerForm.values\r\n try {\r\n const res = await doPost(`user/create`, val)\r\n if (res && res.data.success) {\r\n setLoading(false)\r\n handleCloseDialog()\r\n setToast({ ...toast, open: true, message: res.data.message, type: 'success' })\r\n reloadUserList()\r\n } else {\r\n setLoading(false)\r\n setToast({ ...toast, open: true, message: res.data.message, type: 'error' })\r\n }\r\n } catch (err) {\r\n setToast({ ...toast, open: true, message: err.message, type: 'error' })\r\n }\r\n }\r\n\r\n return (\r\n \r\n Thêm mới\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n","import React from 'react'\r\nimport { Checkbox } from '@material-ui/core'\r\nimport { makeStyles } from '@material-ui/core/styles'\r\nimport clsx from 'clsx'\r\n\r\nconst useStyles = makeStyles({\r\n root: {\r\n '&:hover': {\r\n backgroundColor: 'transparent'\r\n }\r\n },\r\n icon: {\r\n borderRadius: 3,\r\n width: 16,\r\n height: 16,\r\n boxShadow: 'inset 0 0 0 1px rgba(16,22,26,.2), inset 0 -1px 0 rgba(16,22,26,.1)',\r\n backgroundColor: '#f5f8fa',\r\n backgroundImage: 'linear-gradient(180deg,hsla(0,0%,100%,.8),hsla(0,0%,100%,0))',\r\n '$root.Mui-focusVisible &': {\r\n outline: '2px auto rgba(19,124,189,.6)',\r\n outlineOffset: 2\r\n },\r\n 'input:hover ~ &': {\r\n backgroundColor: '#ebf1f5'\r\n },\r\n 'input:disabled ~ &': {\r\n boxShadow: 'none',\r\n background: 'rgba(206,217,224,.5)'\r\n }\r\n },\r\n checkedIcon: {\r\n backgroundColor: '#137cbd',\r\n backgroundImage: 'linear-gradient(180deg,hsla(0,0%,100%,.1),hsla(0,0%,100%,0))',\r\n '&:before': {\r\n display: 'block',\r\n width: 16,\r\n height: 16,\r\n backgroundImage:\r\n \"url(\\\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath\" +\r\n \" fill-rule='evenodd' clip-rule='evenodd' d='M12 5c-.28 0-.53.11-.71.29L7 9.59l-2.29-2.3a1.003 \" +\r\n \"1.003 0 00-1.42 1.42l3 3c.18.18.43.29.71.29s.53-.11.71-.29l5-5A1.003 1.003 0 0012 5z' fill='%23fff'/%3E%3C/svg%3E\\\")\",\r\n content: '\"\"'\r\n },\r\n 'input:hover ~ &': {\r\n backgroundColor: '#106ba3'\r\n }\r\n }\r\n})\r\n\r\nconst StyledCheckbox = props => {\r\n const classes = useStyles()\r\n\r\n return (\r\n }\r\n icon={}\r\n inputProps={{ 'aria-label': 'decorative checkbox', readOnly: props.readOnly }}\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\nexport default StyledCheckbox\r\n","import React from 'react'\r\nimport { Dialog, DialogContent, CircularProgress } from '@material-ui/core'\r\nimport { useRecoilValue } from 'recoil'\r\nimport { loadingState } from 'recoils/atoms'\r\n\r\nconst Loading = () => {\r\n const loadingFlag = useRecoilValue(loadingState)\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default Loading\r\n","import React from 'react'\r\nimport PropTypes from 'prop-types'\r\n// import classNames from 'classnames'\r\n// import CheckCircleIcon from '@material-ui/icons/CheckCircle'\r\n// import ErrorIcon from '@material-ui/icons/Error'\r\n// import InfoIcon from '@material-ui/icons/Info'\r\nimport CloseIcon from '@material-ui/icons/Close'\r\nimport IconButton from '@material-ui/core/IconButton'\r\n// import SnackbarContent from '@material-ui/core/SnackbarContent'\r\n// import WarningIcon from '@material-ui/icons/Warning'\r\nimport { makeStyles } from '@material-ui/styles'\r\nimport { Alert, AlertTitle } from '@material-ui/lab'\r\n\r\n// const variantIcon = {\r\n// success: CheckCircleIcon,\r\n// warning: WarningIcon,\r\n// error: ErrorIcon,\r\n// info: InfoIcon\r\n// }\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n success: {\r\n backgroundColor: '#43a047'\r\n },\r\n error: {\r\n backgroundColor: '#d32f2f'\r\n },\r\n info: {\r\n backgroundColor: '#2D323E'\r\n },\r\n warning: {\r\n backgroundColor: '#ffa000'\r\n },\r\n icon: {\r\n fontSize: 20\r\n },\r\n iconVariant: {\r\n opacity: 0.9,\r\n marginRight: '1px'\r\n },\r\n message: {\r\n display: 'flex',\r\n alignItems: 'center'\r\n }\r\n}))\r\n\r\nconst ToastMessageWrapper = props => {\r\n const classes = useStyles()\r\n const { className, message, onClose, variant, title, ...other } = props\r\n\r\n return (\r\n \r\n \r\n \r\n ]}\r\n {...other}>\r\n {title === '' ? `${variant.charAt(0).toUpperCase() + variant.slice(1)}!` : title}\r\n {message}\r\n \r\n )\r\n}\r\n\r\nToastMessageWrapper.propTypes = {\r\n className: PropTypes.string,\r\n message: PropTypes.node,\r\n onClose: PropTypes.func,\r\n variant: PropTypes.oneOf(['success', 'warning', 'error', 'info']).isRequired\r\n}\r\n\r\nexport default ToastMessageWrapper\r\n","import React from 'react'\r\nimport Snackbar from '@material-ui/core/Snackbar'\r\nimport { useRecoilState } from 'recoil'\r\nimport { toastState } from 'recoils/atoms'\r\nimport ToastMessageWrapper from './ToastMessageWrapper'\r\nconst Toast = () => {\r\n const [toast, setToast] = useRecoilState(toastState)\r\n\r\n const handleClose = (event, reason) => {\r\n if (reason === 'clickaway') {\r\n return\r\n }\r\n\r\n setToast({ ...toast, open: false })\r\n }\r\n return (\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default Toast\r\n","module.exports = __webpack_public_path__ + \"static/media/waiting.b5087172.gif\";","module.exports = __webpack_public_path__ + \"static/media/people-1.30c78132.jpg\";","module.exports = __webpack_public_path__ + \"static/media/people-3.42385d5f.jpg\";","module.exports = __webpack_public_path__ + \"static/media/no_image.709c9b72.jpg\";","module.exports = __webpack_public_path__ + \"static/media/Background.945ba71e.jpg\";","import React, { Suspense } from 'react'\r\nimport ReactDOM from 'react-dom'\r\nimport { RecoilRoot } from 'recoil'\r\n\r\nimport SuspenseLoading from 'components/SuspenseLoading'\r\n\r\nimport App from './App'\r\nimport { saveLocalStorage } from 'utils/sessionHelper'\r\n\r\nimport { isMobile, isTablet } from 'react-device-detect'\r\n\r\nconst registerServiceWorker = async () => {\r\n if ('serviceWorker' in navigator) {\r\n try {\r\n await navigator.serviceWorker.register('/service-worker.js')\r\n } catch (error) {\r\n console.error('Service Worker registration failed:', error)\r\n }\r\n }\r\n}\r\n\r\nconst requestNotificationPermission = async () => {\r\n if ('Notification' in window) {\r\n try {\r\n const permission = await Notification.requestPermission()\r\n saveLocalStorage('notification', permission ?? '')\r\n console.log('Notification permission:', permission)\r\n } catch (error) {\r\n console.error('Error requesting notification permission:', error)\r\n }\r\n }\r\n}\r\n\r\nconst initApp = async () => {\r\n if (!isMobile && !isTablet) {\r\n await registerServiceWorker()\r\n await requestNotificationPermission()\r\n }\r\n}\r\n\r\ninitApp()\r\n\r\nconst Wrapper = () => {\r\n return (\r\n \r\n }>\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nReactDOM.render(, document.getElementById('root'))\r\n","// Ngành\r\nexport const Branch = [\r\n { Id: 'CC', Name: 'Chiên Con' },\r\n { Id: 'Au', Name: 'Ấu nhi' },\r\n { Id: 'Thieu', Name: 'Thiếu nhi' },\r\n { Id: 'Nghia', Name: 'Nghĩa sĩ' },\r\n { Id: 'Hiep', Name: 'Hiệp sĩ' }\r\n]\r\n\r\n// Phân Đoàn\r\nexport const Group = [\r\n { Id: 'CC-CC', Name: 'Chiên Con' },\r\n { Id: 'Au-KT', Name: 'Khai tâm' },\r\n { Id: 'Au-RL1', Name: 'Rước lễ 1' },\r\n { Id: 'Au-RL2', Name: 'Rước lễ 2' },\r\n { Id: 'Thieu-TS1', Name: 'Thêm sức 1' },\r\n { Id: 'Thieu-TS2', Name: 'Thêm sức 2' },\r\n { Id: 'Thieu-TS3', Name: 'Thêm sức 3' },\r\n { Id: 'Nghia-BD1', Name: 'Bao đồng 1' },\r\n { Id: 'Nghia-BD2', Name: 'Bao đồng 2' },\r\n { Id: 'Nghia-BD3', Name: 'Bao đồng 3' },\r\n { Id: 'Nghia-BD4', Name: 'Bao đồng 4' },\r\n { Id: 'Hiep-VD1', Name: 'Vào đời 1' },\r\n { Id: 'Hiep-VD2', Name: 'Vào đời 2' }\r\n]\r\n\r\nexport const UniqueCodeEnum = [\r\n { Id: 101, Name: 'Register' },\r\n { Id: 102, Name: 'Reset password' }\r\n]\r\n\r\nexport const Roles = {\r\n DuTruong: 4,\r\n HuynhTruong: 8,\r\n PhanDoanTruong: 16,\r\n NganhTruong: 32,\r\n KyLuat: 64,\r\n SinhHoat: 128,\r\n PhungVu: 256,\r\n Admin: 2,\r\n HocTap: 512,\r\n BanDieuHanh: 1024\r\n}\r\n\r\nexport const Functions = {\r\n StudentClass: 2,\r\n StudentScore: 3,\r\n StudentAbsent: 4,\r\n StudentSearch: 5,\r\n StudentGroup: 6,\r\n StudentOfflineRegister: 9,\r\n UsersAssignment: 10,\r\n UserRoles: 11,\r\n UserUnion: 12,\r\n UserLeader: 13,\r\n StudentGroupScore: 14,\r\n ManageForm: 15,\r\n DocumentDownload: 16,\r\n Dashboard: 100\r\n}\r\n\r\nexport const Morality = [\r\n { Id: 201, Name: 'Tốt' },\r\n { Id: 202, Name: 'Đạt' },\r\n { Id: 203, Name: 'Chưa đạt' }\r\n // {Id: 202, Name: 'Khá'},\r\n // {Id: 203, Name: 'TB'},\r\n // {Id: 204, Name: 'Yếu'},\r\n // {Id: 205, Name: 'Kém'}\r\n]\r\n\r\nexport const Semester = [\r\n { Id: 301, Name: 'Học kỳ I' },\r\n { Id: 302, Name: 'Học kỳ II' },\r\n { Id: 303, Name: 'Cả năm' }\r\n]\r\n\r\nexport const SemesterEnum = {\r\n semesterOne: 301,\r\n semesterTwo: 302,\r\n total: 303\r\n}\r\n\r\nexport const ViewModes = {\r\n DiemDanh: 0,\r\n XepDoi: 1,\r\n XepChiDoan: 2,\r\n DanhSachNghi: 3,\r\n DanhSachDS: 4,\r\n DanhSachOLai: 5\r\n}\r\n\r\nexport const AbsentMode = {\r\n Mass: 1,\r\n Class: 2\r\n}\r\n\r\nexport const StudentStatus = {\r\n InActive: 0,\r\n Active: 1,\r\n LeaveStudy: 2,\r\n ChangeChurch: 3,\r\n Deleted: 4\r\n}\r\n\r\nexport const TemplateType = {\r\n Document: 0,\r\n Report: 2,\r\n SystemTemplate: 4\r\n}\r\n\r\nexport const UserStatus = {\r\n Absent: 0,\r\n NewUser: 1,\r\n Active: 2,\r\n Deleted: 3\r\n}\r\n\r\nexport const Ranking = ['Xuất sắc', 'Giỏi', 'Khá', 'Trung bình', 'Yếu', 'Kém']\r\n\r\nexport const RegisterMode = {\r\n Offline: 0,\r\n Online: 1\r\n}\r\n\r\nexport const absentTypeOptionsColorEnum = {\r\n 0: 'red',\r\n 1: 'green',\r\n '-1': 'black'\r\n}\r\n\r\nexport const absentTypeOptionsEnum = {\r\n Permission: '1',\r\n NonPermission: '0',\r\n NoAbsent: '-1'\r\n}\r\n\r\nexport const saveAbsentDataModeEnum = {\r\n Add: 0,\r\n Modify: 1,\r\n Delete: 3\r\n}\r\n\r\nexport const totalAbsentsColorEnum = {\r\n normal: 'inherit',\r\n alarm: 200,\r\n warning: 300,\r\n out: 300\r\n}\r\n\r\nexport const changeOptionEnum = {\r\n Union: 1,\r\n Team: 2\r\n}\r\n\r\nexport const ScoreFormTitle = {\r\n FifteenTest: '15\\u0027',\r\n LessonTest: '1 tiết',\r\n SemesterTest: 'HK',\r\n GPA: 'TB Học tập',\r\n Average: 'TB',\r\n Morality: 'Đạo đức',\r\n Comment: 'Nhận xét',\r\n Ranking: 'Xếp loại'\r\n}\r\n\r\nexport const NotificationType = {\r\n UpdateStudentInformation: 5001,\r\n ChangeStudentStatus: 5002,\r\n CreateNewStudent: 5003,\r\n\r\n UpdateStudentScoreSemesterOne: 6001,\r\n UpdateStudentScoreSemesterTwo: 6002,\r\n UpdateStudentScoreTotal: 6003\r\n}\r\n","import * as React from 'react'\r\nimport { Skeleton } from '@material-ui/lab'\r\nimport { Card, Grid } from '@material-ui/core'\r\n\r\nconst PageSkeleton = () => {\r\n return (\r\n \r\n \r\n \r\n
\r\n
\r\n

\r\n \r\n

\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n

\r\n \r\n

\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default PageSkeleton\r\n","import React from 'react'\r\nimport clsx from 'clsx'\r\nimport { makeStyles } from '@material-ui/core/styles'\r\nimport Radio from '@material-ui/core/Radio'\r\n\r\nconst useStyles = makeStyles({\r\n root: {\r\n '&:hover': {\r\n backgroundColor: 'transparent'\r\n }\r\n },\r\n icon: {\r\n borderRadius: '50%',\r\n width: 16,\r\n height: 16,\r\n boxShadow: 'inset 0 0 0 1px rgba(16,22,26,.2), inset 0 -1px 0 rgba(16,22,26,.1)',\r\n backgroundColor: '#f5f8fa',\r\n backgroundImage: 'linear-gradient(180deg,hsla(0,0%,100%,.8),hsla(0,0%,100%,0))',\r\n '$root.Mui-focusVisible &': {\r\n outline: '2px auto rgba(19,124,189,.6)',\r\n outlineOffset: 2\r\n },\r\n 'input:hover ~ &': {\r\n backgroundColor: '#ebf1f5'\r\n },\r\n 'input:disabled ~ &': {\r\n boxShadow: 'none',\r\n background: 'rgba(206,217,224,.5)'\r\n }\r\n },\r\n checkedIcon: {\r\n backgroundColor: '#137cbd',\r\n backgroundImage: 'linear-gradient(180deg,hsla(0,0%,100%,.1),hsla(0,0%,100%,0))',\r\n '&:before': {\r\n display: 'block',\r\n width: 16,\r\n height: 16,\r\n backgroundImage: 'radial-gradient(#fff,#fff 28%,transparent 32%)',\r\n content: '\"\"'\r\n },\r\n 'input:hover ~ &': {\r\n backgroundColor: '#106ba3'\r\n }\r\n }\r\n})\r\n\r\n// Inspired by blueprintjs\r\nfunction StyledRadio(props) {\r\n const classes = useStyles()\r\n\r\n return (\r\n }\r\n icon={}\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\nexport default StyledRadio\r\n","import React, { Fragment } from 'react'\r\nimport { CircularProgress, Button } from '@material-ui/core'\r\n\r\nimport { makeStyles } from '@material-ui/core/styles'\r\nimport { green } from '@material-ui/core/colors'\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n display: 'flex',\r\n alignItems: 'center'\r\n },\r\n wrapper: {\r\n // margin: theme.spacing(1),\r\n position: 'relative'\r\n },\r\n buttonSuccess: {\r\n backgroundColor: green[500],\r\n '&:hover': {\r\n backgroundColor: green[700]\r\n }\r\n },\r\n fabProgress: {\r\n color: green[500],\r\n position: 'absolute',\r\n top: -6,\r\n left: -6,\r\n zIndex: 1\r\n },\r\n buttonProgress: {\r\n color: green[500],\r\n position: 'absolute',\r\n top: '50%',\r\n left: '50%',\r\n marginTop: -12,\r\n marginLeft: -12\r\n }\r\n}))\r\n\r\nexport default function ButtonLoading(props) {\r\n const classes = useStyles()\r\n\r\n const { btnText, loading, disabled, handleButtonClick, type, startIcon, introClass } = props\r\n return (\r\n \r\n
\r\n \r\n {btnText}\r\n \r\n {loading && }\r\n
\r\n
\r\n )\r\n}\r\n","import React from 'react'\r\nimport { TextField } from '@material-ui/core'\r\n\r\nimport { get } from 'lodash'\r\nimport StringUtils from 'utils/StringUtils'\r\n\r\nexport default function ShortTextField({ formik, name, label = '', required = false, autoCapitalize = false, readOnly = false, maxLength, onClick, inputProps }) {\r\n const forFormik = () => {\r\n const { values, errors, touched, handleBlur, handleChange } = formik\r\n\r\n return {\r\n name,\r\n label,\r\n fullWidth: true,\r\n variant: 'outlined',\r\n InputLabelProps: { shrink: true },\r\n error: get(errors, name) && get(touched, name),\r\n helperText: get(errors, name) && get(touched, name) && get(errors, name),\r\n value: autoCapitalize ? StringUtils.capitalize(get(values, name)) : get(values, name) ?? '',\r\n onBlur: handleBlur,\r\n onChange: handleChange,\r\n inputProps: {\r\n maxLength: maxLength\r\n },\r\n InputProps: {\r\n ...inputProps,\r\n readOnly: readOnly\r\n }\r\n }\r\n }\r\n\r\n return \r\n}\r\n","import React, { useEffect, useState } from 'react'\r\nimport IconButton from '@material-ui/core/IconButton'\r\nimport InputAdornment from '@material-ui/core/InputAdornment'\r\n\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\nimport { TextField, ClickAwayListener } from '@material-ui/core'\r\nimport DoneIcon from '@material-ui/icons/Done'\r\nimport ClearIcon from '@material-ui/icons/Clear'\r\nimport accounting from 'accounting'\r\n\r\nexport default function InlineTextField({\r\n label,\r\n value,\r\n handleChanged,\r\n isNumber,\r\n isCurrency = false,\r\n isRequired = false,\r\n isEditable = false,\r\n isMoreInfo = false,\r\n handleClickIcon,\r\n icon,\r\n ...rest\r\n}) {\r\n const inputRef = React.useRef()\r\n const [localValue, setLocalValue] = useState(value)\r\n const [showAction, setShowAction] = useState(false)\r\n const [valueBeforeChange] = useState(value)\r\n const [isValid, setIsValid] = useState(false)\r\n\r\n const handleChange = e => {\r\n if (isNumber) {\r\n const regex = RegExp(/^\\d*\\.?\\d*$/g)\r\n if (!regex.test(e.target.value)) {\r\n setIsValid(true)\r\n } else {\r\n setIsValid(false)\r\n }\r\n }\r\n setLocalValue(e.target.value)\r\n }\r\n\r\n const cancelChange = () => {\r\n setLocalValue(value)\r\n setShowAction(false)\r\n setIsValid(false)\r\n }\r\n\r\n const handleFocus = e => {\r\n setShowAction(true)\r\n }\r\n\r\n const handleClickOk = () => {\r\n if (isValid) return\r\n handleChanged(rest.field, localValue, isMoreInfo)\r\n setShowAction(false)\r\n }\r\n\r\n const handleClick = e => {\r\n if (handleClickIcon) handleClickIcon(e, localValue)\r\n }\r\n\r\n useEffect(() => {\r\n setLocalValue(value)\r\n }, [value])\r\n\r\n useEffect(() => {\r\n setLocalValue(valueBeforeChange)\r\n }, [valueBeforeChange])\r\n\r\n return (\r\n <>\r\n {!showAction && (\r\n \r\n \r\n \r\n ),\r\n readOnly: true\r\n }}\r\n />\r\n )}\r\n {showAction && (\r\n \r\n \r\n \r\n \r\n ),\r\n endAdornment: isEditable ? (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ) : (\r\n <>\r\n ),\r\n readOnly: !isEditable\r\n }}\r\n {...rest}\r\n />\r\n \r\n )}\r\n \r\n )\r\n}\r\n","import jwt from 'jsonwebtoken'\r\nimport _ from 'lodash'\r\nimport StringUtils from './StringUtils'\r\nimport { Roles } from '../app/enums'\r\nimport * as moment from 'moment'\r\n\r\nconst LOGIN_INFO_KEY = 'login_info'\r\nconst secretKey = process.env.REACT_APP_SECRET_KEY\r\n\r\nexport function saveLocalStorage(key, value) {\r\n localStorage.setItem(key, value)\r\n}\r\n\r\nexport function getLocalStorage(key) {\r\n return localStorage.getItem(key)\r\n}\r\n\r\nexport function setLocalStoreData(key, data) {\r\n const localData = JSON.parse(localStorage.getItem(LOGIN_INFO_KEY))\r\n localData[key] = data\r\n\r\n localStorage.setItem(LOGIN_INFO_KEY, JSON.stringify(localData))\r\n}\r\n\r\nexport function saveLoginData(data) {\r\n localStorage.setItem(LOGIN_INFO_KEY, JSON.stringify(data))\r\n}\r\n\r\nexport function deleteLoginData() {\r\n localStorage.removeItem(LOGIN_INFO_KEY)\r\n}\r\n\r\nexport function checkSession() {\r\n return localStorage.getItem(LOGIN_INFO_KEY) ? true : false\r\n}\r\n\r\nexport function getMaxRole(roles = [], isCheckLoginUser = true) {\r\n if (roles.length > 0) {\r\n let maxRoles = _.max(\r\n roles.map(e => {\r\n return e.id\r\n })\r\n )\r\n return StringUtils.buildRoleName(maxRoles)\r\n } else {\r\n /// Trường hợp check User đang login\r\n if (isCheckLoginUser) {\r\n const localData = JSON.parse(localStorage.getItem(LOGIN_INFO_KEY))\r\n\r\n let maxRoles = _.max(localData.roles)\r\n return StringUtils.buildRoleName(maxRoles)\r\n }\r\n\r\n /// nếu có UserId mà k có roles th return \"\"\r\n return ''\r\n }\r\n}\r\n\r\nexport function getLevel(roles = [], isCheckLoginUser = true) {\r\n if (roles.length > 0) {\r\n const rolesId = roles.map(e => {\r\n return e.id\r\n })\r\n if (rolesId.includes(Roles.HuynhTruong)) return 'HT'\r\n if (rolesId.includes(Roles.DuTruong)) return 'DT'\r\n return ''\r\n } else {\r\n if (isCheckLoginUser) {\r\n const localData = JSON.parse(localStorage.getItem(LOGIN_INFO_KEY))\r\n\r\n if (localData.roles.includes(Roles.HuynhTruong)) return 'HT'\r\n if (localData.roles.includes(Roles.DuTruong)) return 'DT'\r\n return ''\r\n }\r\n\r\n return ''\r\n }\r\n}\r\n\r\nexport function isAdmin() {\r\n const localData = JSON.parse(localStorage.getItem(LOGIN_INFO_KEY))\r\n return localData.roles.includes(Roles.Admin)\r\n}\r\n\r\nexport function isBanDieuHanh() {\r\n const localData = JSON.parse(localStorage.getItem(LOGIN_INFO_KEY))\r\n return localData.roles.includes(Roles.BanDieuHanh)\r\n}\r\n\r\nexport function checkLoginToken() {\r\n try {\r\n const loginInfo = localStorage.getItem(LOGIN_INFO_KEY)\r\n\r\n if (loginInfo == null) {\r\n return false\r\n }\r\n\r\n const token = JSON.parse(loginInfo).token\r\n if (token) {\r\n const auth = jwt.verify(token, secretKey)\r\n if (auth) {\r\n const now = moment().utc().unix()\r\n if (now >= auth.exp) {\r\n deleteLoginData()\r\n return false\r\n } else {\r\n return true\r\n }\r\n }\r\n }\r\n\r\n deleteLoginData()\r\n return false\r\n } catch (err) {\r\n return false\r\n }\r\n}\r\n\r\nconst sessionHelper = () => {\r\n return { ...JSON.parse(localStorage.getItem(LOGIN_INFO_KEY)) }\r\n}\r\n\r\nexport default sessionHelper\r\n","module.exports = __webpack_public_path__ + \"static/media/hero-1.0e8b2be5.jpg\";","import { Roles } from 'app/enums'\r\nimport _ from 'lodash'\r\n\r\nexport default {\r\n capitalize(val) {\r\n if (typeof val !== 'string') return ''\r\n return val\r\n .toString()\r\n .split(' ')\r\n .map(s => s.charAt(0).toUpperCase() + s.substring(1))\r\n .join(' ')\r\n },\r\n buildRoleName(roleId) {\r\n let res = ''\r\n switch (Number(roleId)) {\r\n case Roles.Admin:\r\n res = 'Admin'\r\n break\r\n case Roles.BanDieuHanh:\r\n res = 'Ban điều hành'\r\n break\r\n case Roles.SinhHoat:\r\n res = 'Sinh hoạt'\r\n break\r\n case Roles.KyLuat:\r\n res = 'Kỷ luật'\r\n break\r\n case Roles.NganhTruong:\r\n res = 'Ngành trưởng'\r\n break\r\n case Roles.PhanDoanTruong:\r\n res = 'Phân đoàn trưởng'\r\n break\r\n case Roles.HuynhTruong:\r\n res = 'Huynh trưởng'\r\n break\r\n case Roles.DuTruong:\r\n res = 'Dự trưởng'\r\n break\r\n case Roles.HocTap:\r\n res = 'Học tập'\r\n break\r\n case Roles.PhungVu:\r\n res = 'Phụng vụ'\r\n break\r\n default:\r\n res = ''\r\n break\r\n }\r\n\r\n return res\r\n },\r\n getMaxRole(roles = []) {\r\n const role = _.max(roles)\r\n switch (role) {\r\n case Roles.BanDieuHanh:\r\n return Roles.BanDieuHanh\r\n\r\n case Roles.PhanDoanTruong:\r\n return Roles.PhanDoanTruong\r\n\r\n default:\r\n return Roles.HuynhTruong\r\n }\r\n },\r\n holyNameLookup(holynames, lookupId) {\r\n const res = holynames.find(h => h.id === lookupId)?.name || ''\r\n return res === '...' ? '' : res\r\n },\r\n toString(o) {\r\n let newObject = { ...o }\r\n\r\n Object.keys(newObject).forEach(k => {\r\n if (typeof newObject[k] === 'number') {\r\n newObject[k] = '' + newObject[k]\r\n }\r\n })\r\n\r\n return newObject\r\n }\r\n}\r\n"],"sourceRoot":""}