{"version":3,"sources":["config/vars.js","provider/BackdropProvider.js","provider/LocaleProvider.js","provider/SnackbarProvider.js","layout/Logo.js","api/api.js","provider/AuthDataProvider.js","components/PeriodSelector.js","icons/index.js","layout/Dashboard/DashboardNavbar.js","layout/NavItem.js","layout/NavCategory.js","layout/Dashboard/SidebarCategory/adminCategory.js","layout/Dashboard/DashboardSidebar.js","layout/Dashboard/SidebarCategory/organizationAdminCategory.js","layout/Dashboard/SidebarCategory/studentCategory.js","layout/Dashboard/SidebarCategory/parentCategory.js","layout/Dashboard/DashboardLayout.js","layout/Main/MainNavbar.js","layout/Main/MainLayout.js","components/DataTable/DataTable.js","utils/utils.js","components/DataTable/DataTableNoLimit.js","layout/LayoutTitle.js","layout/PeriodSelectorV2.js","layout/LayoutContainer.js","components/LoadingView.js","pages/Dashboard/Dashboard.js","icons/Facebook.js","pages/Login/Login.js","pages/NotFound.js","utils/formikProps.js","pages/Settings.js","pages/Organization/OrganizationInfo.js","components/EditDialog.js","components/SearchInput.js","pages/Organization/OrganizationPeriodList.js","pages/Organization/OrganizationFilterList.js","components/ClassSelector.js","pages/Account/StudentList.js","pages/Account/StudentUpload.js","pages/Account/AdminList.js","pages/Account/AdminUpload.js","pages/Dashboard/ClassRanking.js","pages/Dashboard/UserRanking.js","pages/Point/PointRuleCategories.js","pages/Point/PointRules.js","pages/Attendance/AttendanceRules.js","pages/Attendance/AttendanceHistory.js","pages/DeviceList.js","pages/Notice/Notice.js","components/TransferTable.js","pages/Point/PointRedeem.js","pages/Point/PointReward.js","components/DataTable/PagingTable.js","pages/Point/PointHistory.js","pages/User/Overview.js","pages/User/Profile.js","pages/Attendance/TakeAttendance.js","pages/Notice/NoticeEdit.js","pages/Login/SetupPassoword.js","pages/User/NoticeDetail.js","pages/Memo/Memo.js","pages/Memo/MemoPublish.js","pages/User/MemoDetail.js","components/NoRecordItem.js","components/SubjectSelector.js","pages/Game/GameList.js","components/Formik/ImageUploader.js","components/Game/QuestionCard.js","pages/Game/GameDetail.js","pages/Game/GameEdit.js","pages/User/UserGameList.js","pages/Game/GameRecord.js","pages/Account/StudentRecord.js","pages/User/AttendanceRecord.js","components/RuleSelector.js","pages/User/PointRecord.js","pages/User/SubmittedHomeworkRecord.js","pages/User/UnfinishedHomeworkRecord.js","pages/User/Notice.js","pages/User/Memo.js","pages/Account/StudentAttendanceRecord.js","pages/Account/StudentPointRecord.js","pages/Parent/ParentPointReward.js","pages/Point/PointRedeemRules .js","pages/Badge/BadgeRule.js","pages/Badge/BadgeList.js","pages/User/Badge.js","pages/QrCodeView.js","pages/Birthday/BirthdaySetting.js","components/DatePicker.js","components/PeriodWarning.js","pages/Homework/SubmittedHomework.js","pages/Homework/UnfinishedHomework.js","pages/Homework/HomeworkRecord/SubmittedHomeworkRecord.js","pages/Homework/HomeworkRecord/UnfinishedHomeworkRecord.js","pages/Homework/HomeworkHistory/ClassSubmittedRecord.js","pages/Homework/HomeworkHistory/SubmittedHomeworkHistory.js","pages/Homework/HomeworkHistory/UnfinishedHomeworkHistory.js","pages/Homework/HomeworkHistory/HomeworkHistory.js","pages/Homework/HomeworkType/AddHomeworkTypeDialog.js","pages/Homework/HomeworkType/EditHomeworkTypeDialog.js","pages/Homework/HomeworkType/HomeworkType.js","pages/Homework/Statistics/SubmittedHomeworkChart.js","pages/Homework/Statistics/UnfinishedHomeworkChart.js","pages/Homework/Statistics/HomeworkStatistics.js","pages/Homework/Statistics/StudentHomeworkStatistics.js","pages/Homework/HomeworkSetting.js","pages/Subject/SubjectDialog.js","pages/LearningResource/PreviewElement.js","pages/LearningResource/ResourceActionDialog.js","pages/LearningResource/LearningResource.js","routes.js","pages/Subject/SubjectSetting.js","pages/ExternalSite.js","theme/index.js","theme/GlobalStyles.js","App.js","index.js"],"names":["module","exports","env","process","extenalURL","gameMC","gameInteractive","server","url","BackdropContext","createContext","useBackDrop","context","useContext","open","close","props","children","useState","setOpen","state","Provider","value","Backdrop","style","color","zIndex","CircularProgress","_","require","LocaleContext","React","yup","useLocale","translate","Function","getLanguage","getLanguages","replaceParams","t","setLanguage","getLanguageLabel","moment","available","setAvailable","useEffect","getJSON","a","setTranslations","en","zh","setDefaultLanguage","setLanguageCookie","lang","localStorage","getItem","switchLanguage","key","includes","setItem","getDefaultLanguage","setLocale","mixed","required","label","path","notType","string","min","max","length","matches","number","addMethod","message","this","test","v","isValid","size","isObject","str","rest","toString","obj","Object","keys","params","result","console","log","replace","SnackbarContext","useSnack","error","info","ResultSnackbar","snack","setSnack","timeout","level","handleClose","Snackbar","onClose","anchorOrigin","vertical","horizontal","TransitionComponent","Grow","autoHideDuration","Alert","variant","severity","SnackbarProvider","msg","setTimeout","warn","Logo","alt","src","height","axios","Axios","create","baseURL","vars","headers","interceptors","request","use","config","token","response","data","Promise","reject","useApi","authToken","organization_id","current_period","selectedPeriod","useAuthData","nav","useNavigate","logout","removeItem","API","login","username","email","password","type","parent_password","post","then","res","catch","status","code","getTotalReward","period_id","get","groupBy","period","getTotalRedeem","getCurrentPeriod","i","_id","name","start","Date","start_at","toDateString","end","end_at","getUserRanking","getClassRanking","parentReward","pointRule_id","getOrganizationInfo","setOrganiationInfo","resolve","updateOrganizationInfo","updates","put","activatePeriod","id","getPeriodList","setPeriodList","updatePeriod","addPeriod","getDevices","addDevice","updateDevice","attendanceRule","pointRule","description","isEnableDeviceFunction","uploadCsv","formData","batchCreateUser","newUsers","users","e","updateUser","isActive","role","privilege","deleteUser","delete","getStudentList","pid","getStudentById","resetUserPassword","user_iD","getStudentProfiles","profileId","pointActions","attendanceActions","getAdminList","addAdmin","batchCreateAdmin","newAdmins","getUserInfo","setPassword","new_password","setParentPassword","getPointRuleCategories","setCategories","noCache","cache","undefined","addRuleCategory","newCategory","updateRuleCategory","getPointRules","isReward","addPointRule","newRule","updatePointRule","update","deletePointRule","getOrganizationFilters","setFilterList","toArray","updateOrganizationFilters","attribute","addOrganizationFilters","deletePointHistory","history_id","studentReward","profiles","counts","studentRedeemByProfile","studentRedeem","pointRules","profile","studentCheckin","device","studentCheckout","getPointHistories","u_id","dateRange","user","getPointHistoriesV2","search","getProfileRankingByPointCategory","profile_id","ruleCategory_id","ruleCategory","getAttendanceList","query","getAttendanceRules","addAttendanceRules","updateAttendanceRules","rule_id","getUserPointHistories","getUserAttendanceList","getUserProfile","getUserPeriod","p_id","getGameList","getGameData","gameId","questions","sessions","records","getGameRecordDetails","game","createGame","newGame","batchUploadBlobs","updateGame","addQuestion","options","text","image","gameType","updateQuestion","form","fields","FormData","field","append","files","file","set","fieldname","batchUploadBlobsWithNameSize","getNotices","getNoticeById","addNotice","notice","attachments","map","Blob","filter","f","isNil","updateNotice","updateNoticeInfo","body","batchDeleteNotice","notices","getMemo","getMemoById","addMemo","memo","updateMemoInfo","batchDeleteMemo","memos","addBadgeRule","getBadgeRuleList","updateBadgeRule","deleteBadgeRule","getBadge","getBadgeGroupByRule","getBoardGameList","getBoardGameStats","getBoardGameDashboardData","getBoardGameSession","getBoardGameProfileStats","sessionId","date","homeworkType_id","subject","submitHomeworkRange","unfinishHomeworkRange","startDate","endDate","subjectId","values","subjects","bodyFormData","name_zh","name_en","filters","page","limit","AuthDataContext","userInfo","organization","currentPeriod","setCurrentPeriod","refresh","setSelectedPeriod","AuthDataProvider","api","selectedPeriodByPathObject","setSelectedPeriodByPathObject","authUserInfo","useSWR","orgUserInfo","refreshInterval","location","useLocation","pathname","useMemo","useCallback","s","__v","mutate","redirectWhenNoPeriod","PeriodSelector","default_id","selected","setSelected","periods","global","periodList","reversePeriodList","reverse","TextField","select","onChange","target","minWidth","MenuItem","Icons","AddIcon","CakeIcon","SearchIcon","DeleteIcon","RemoveIcon","VisibilityIcon","EditIcon","DeleteForeverIcon","AttachFileIcon","CheckIcon","CloseIcon","GetAppIcon","FavouriteIcon","ArrowLeftIcon","ArrowRightIcon","ArrowBackIcon","AirplayIcon","PublishIcon","NoticeIcon","InputIcon","VpnKeyIcon","EmailIcon","SportsEsportsIcon","HelpOutlineIcon","LaunchIcon","FiHelpCircle","IoIosHelpCircleOutline","IoHelpCircleOutline","IoHelpSharp","FaAward","PictureAsPdfIcon","InsertDriveFileIcon","SdStorageIcon","DashboardNavbar","onMobileNavOpen","AppBar","elevation","Toolbar","pl","Hidden","mdUp","IconButton","onClick","sx","ml","mr","width","to","Typography","isParent","checkRole","Box","flexGrow","logo","Avatar","border","pr","display","xs","sm","Tooltip","title","href","backgroundColor","NavItem","Icon","icon","active","matchPath","ListItem","disableGutters","py","Button","component","NavLink","fontWeight","justifyContent","letterSpacing","textTransform","NavCategory","useStyles","makeStyles","item","DashboardSidebar","onMobileClose","isOpen","openMobile","classes","openState","setOpenState","handleExpand","index","flag","categories","modules","pages","exact","show","badge","birthday","learningResource","homework","organizationAdminCategory","adminCategory","parentCategory","studentCategory","category_index","category","category_page_index","content","flexDirection","Divider","px","List","handleToggleExpand","className","page_index","Collapse","in","unmountOnExit","Drawer","anchor","PaperProps","mdDown","top","defaultProps","DashboardLayoutRoot","styled","theme","overflow","DashboardLayoutWrapper","flex","paddingTop","breakpoints","up","paddingLeft","DashboardLayoutContainer","DashboardLayoutContent","Footer","textAlign","margin","fontSize","DashboardLayout","isNavigationDrawerOpen","setIsNavigationDrawerOpen","document","getElementById","scrollTo","getFullYear","MainNavbar","MainLayoutRoot","palette","background","paper","MainLayoutWrapper","MainLayoutContainer","MainLayoutContent","MainLayout","table","whiteSpace","opacity","padding","DataTable","rows","row_id","heads","_orderBy","_order","placeHolder","loading","rowClassName","rowsPerPage","rowsPerPageOptions","rowsRef","rowOnClick","checked","setChecked","setPage","order","setOrder","orderBy","setOrderBy","setLimit","sorted","rowLength","chunks","chunk","emptyRows","Math","headCells","bodyCells","current","handleCheckAll","newChecked","isChecked","findIndex","Card","Table","classNames","TableHead","TableRow","cell","TableCell","Checkbox","disabled","indeterminate","sort","TableSortLabel","direction","event","handleSort","hideSortIcon","TableBody","bodyCell","hover","render","window","cancelBubble","stopPropagation","row","pull","push","handleCheck","colSpan","TablePagination","count","onPageChange","newPage","onRowsPerPageChange","labelRowsPerPage","json2csv","parse","csv","readFile","callBack","accept","input","createElement","onchange","click","readFileAsText","fileReader","FileReader","onload","readAsText","csv2JsonArray","fromString","jsonArray","maped","temp","forEach","fname","exportCsv","array","filename","hiddenElement","encodeURI","download","format","searchFilter","searchFields","fieldMatched","isString","isFunction","RegExp","isArray","every","searchField","arr","split","some","datesArray","from","interval","ret","fromDate","toDate","add","monthsArray","DataTableNoLimit","random","LayoutTitle","goBack","backSrc","mb","p","ALLOWED_PATHS","READONLY_PATHS","PeriodSelectorV2","authData","visible","readOnly","fullWidth","mt","LayoutContainer","helmetTitle","Component","ActionComponent","Container","Helmet","Stack","alignItems","LoadingView","m","root","spacing","paddingRight","paddingBottom","marginBottom","backdrop","drawer","cardTitle","tableCell","borderLeft","Dashboard","totalReward","setReward","totalRedeem","setRedeem","userRanking","setUserRanking","classRanking","setClassRanking","currentPeriodInfo","setCurrentPeriodInfo","isLoading","setIsLoading","periodRes","Grid","container","banner","aspectRatio","objectFit","CardContent","gutterBottom","align","CardHeader","actions","action","slice","Facebook","SvgIcon","d","quote","neutral","backgroundImage","backgroundSize","backgroundRepeat","backgroundPosition","langIcon","lineHeight","local","cursor","RolesTab","Tabs","currentTab","setCurrentTab","indicatorColor","textColor","centered","Tab","outline","Login","navigate","touchedText","touchedPassword","errors","textFieldName","setup_password","formik","useFormik","initialValues","validationSchema","Yup","shape","when","is","onSubmit","finally","setSubmitting","handleBlur","setValues","handleChange","handleSubmit","isSubmitting","touched","resetForm","md","position","right","mx","Boolean","helperText","onBlur","float","flexFlow","visibility","NotFound","maxWidth","isError","Languages","setLang","FormControl","Select","op","CardActions","Password","confirm_password","object","nullable","parent","helper","autoComplete","formikProps","Settings","auth","pb","wordBreak","imageuploader","bottom","borderRadius","borderColor","OrganizationInfo","setinfo","setRules","enableReinitialize","maxFilesize","renderImg","old_src","URL","createObjectURL","prefix","InputProps","InputLabel","shrink","setFieldValue","utils","FormHelperText","dialog","EditDialog","handleSave","confirmText","TitleComponent","cancelText","confirmDisabled","dialogTitle","setDialogTitle","Dialog","preventDefault","DialogTitle","pt","DialogContent","overflowY","maxHeight","DialogActions","SearchInput","setSearch","placeholder","startAdornment","InputAdornment","OrganizationPeriodList","dialogMode","setDialogMode","selectedRow","setSelectedRow","setActivated","getData","schema","default","bool","handleSwitch","handleAdd","cast","handleEdit","r","InputLabelProps","defaultValue","OrganizationFilterList","filterList","oneOf","filtered","ClassSelector","autocomplete","all","multiple","allOption","selectedValue","Autocomplete","openOnFocus","autoHighlight","disableClearable","isOptionEqualToValue","option","concat","getOptionLabel","c","renderTags","tagValue","getTagProps","Chip","renderInput","StudentList","backDrop","useRef","studentList","setStudentList","selectedStudent","setSelectedStudent","setFilter","strict","notOneOf","class","trim","class_no","date_of_birth","isValidDate","filteredList","cumulative_point","point","marginLeft","toolbar","StudentUploadTable","padStart","headCell","validateForm","oldStudent","find","newValue","oldValue","isChanged","StudentUpload","newStudentList","setNewStudentList","of","handleCsv","handleConfirm","countBy","new","AdminList","tab","setTab","activeCategories","setActiveCategories","adminList","all_action","rowfilter","borderBottom","_rowsPerPage","FormControlLabel","control","setAdminList","newAdminList","setNewAdminList","spacer","caption","sortRank","selectedCategory","pointsByRuleCategories","total","totalpoints","ClassRanking","setSelectedCategory","k","UserRanking","PointRuleCategories","parentCategories","setParentCategories","PointRules","rules","parentRules","setParentRules","getRules","quota_type","quota_count","abs","toNumber","handleConfirmDelete","AttendanceRules","AttendanceHistory","attendanceLIst","setAttendanceLIst","created_at","toLocaleString","DeviceList","devices","setDevices","activeDevices","setActiveDevices","attendanceRules","setAttendanceRules","redeemRules","setRedeemRules","prettyBytes","LeftTable","onRowInvalid","varient","intersection","Rightable","differenceBy","TransferTable","list","leftHeads","rightHeads","left","lg","RedeemTransferTable","student_point","totalRedeemPoints","reduce","b","handleMoveRight","splice","handleMoveLeft","handleClearRow","ByRules","selectedRules","validateOnMount","rule","getStudentData","studentFiltered","paragraph","ListItemText","primary","flexBasis","student","button","ByProfiles","selectedRule","setSelectedRule","classFiltered","ruleFiltered","PointRedeem","PointReward","searchStudent","setSearchStudent","ruleCategories","setRuleCategories","parentRuleCategories","setParentRuleCategories","selectedParentCategory","errorCode","parentRuleFiltered","displayEmpty","n","times","usePagination","_page","_limit","_limitOptions","limitOptions","PointHistory","pagination","setActions","setTotal","lastUpdate","setLastUpdate","setDateRange","timer","rawData","setRawData","getRows","order_by","last_updated_at","h","pre","next","clearTimeout","handleDeleteOne","exportAll","created_by","exportFiltered","filterd","fm","point_rule","handleSearch","useMutation","handleExportAll","handleExportAllMutation","handleExport","handleExportMutation","PagingTable","handleDelete","COLORS","BirthdayBanner","thisYearBirthDay","dayDiff","diff","startOf","day_show_before","day_before_birthday","day_show_after","day_after_birthday","birthday_message","day","near_birthday_message","Overview","pointHistory","setPointHistory","pointRecord","setPointRecord","attendanceHistory","setAttendanceHistory","submittedHomeworkRecord","setSubmittedHomeworkRecord","unFinishedHomeworkRecord","setUnfinishedHomeworkRecord","getStudentSubmittedHomeworkRecord","getStudentUnfinishedHomeworkRecord","ResponsiveContainer","PieChart","Legend","Pie","entries","points","outerRadius","dataKey","nameKey","cx","cy","fill","isAnimationActive","labelLine","percent","round","entry","Cell","Profile","profileRecord","setProfileRecord","TakeAttendance","checkin","classFitered","NoticeEdit","isEdit","setNotice","notice_id","useParams","attachs","multiline","inputProps","minHeight","textOverflow","removeAttach","htmlFor","SetupPassoword","setUserInfo","setFieldError","NoticeDetail","user_info","is_read","is_favourite","_notice","marginRight","Memo","setMemo","isDialogOpen","setIsDialogOpen","MemoPublish","to_student","to_parent","Paper","MemoDetail","_memo","NoRecordItem","grid","SubjectSelector","useQuery","getSubjects","allSubject","_e","_c","selectedSubject","subjectIdList","ImageUploader","QuestionCard","question","OptionComponent","hasImage","smUp","divider","overflowX","borderRight","smDown","nowrap","isAns","noWrap","DataBox","justify","alignSelf","gameConfig","interactive","maxAns","UserGameList","setSelectedSubject","g","gameList","gamesFilteredBySubject","isEmpty","my","rel","orientation","flexItem","join","SessionRecord","gameData","session","isCorrect","answers","correct","sumBy","incorrect","accuracy","pointExchanged","QuestionRecord","flattenDeep","sum","flexWrap","TabPanel","GameRecord","setGame","setGameData","totalSession","setTotalSession","totalUser","setTotalUser","unique","union","UAttendanceRecord","RuleSelector","UPointRecord","USubmittedHomeworkRecord","record","setRecord","UUnfinishedHomeworkRecord","listStyle","listItem","lastItem","listText","marginTop","transition","pager","isRead","StudentAttendanceRecord","userId","StudentPointRecord","ParentPointReward","PointRedeemRules","BadgeRule","setPointRules","setattendanceRules","reward_by","threshold_by","threshold","cutoff_period","cutoff_limit","image_url","BadgeList","badgeList","setBadgeList","Badge","badges","setBadges","selectedBadge","setSelectedBadge","getUngainedBadges","badge_rule","tex","alignItem","last_created_at","queryString","uid","userSelect","BrithdaySetting","CustomDatePicker","selectedDate","setSelectedDate","minDate","maxDate","LocalizationProvider","dateAdapter","AdapterMoment","DesktopDatePicker","inputFormat","newDate","PeriodWarning","SubmittedHomework","isTableLoading","setIsTableLoading","isShowWarning","setIsShowWarning","profileMap","setProfileMap","putHomeworkSubmitRecord","_res","homework_date_range","Map","setSubmitRecordToProfileMap","submitRecords","isInClassFiltered","setAllStudentToSubmitted","getSubmittedHomeworkRecord","profilesArr","Array","selectedPeriodObject","isAfter","subtract","RadioGroup","Radio","pink","UnfinishedHomework","setAllSubject","homeworkCategory","setHomeworkCategory","homeworkType","setHomeworkType","isOutdated","setIsOutdated","remarkMap","remark","putUnfinishedHomeworkRecord","getHomeworkType","err","remarks","homeworkTypeFiltered","flow","debounce","remarkValue","newSelectedStudent","handleRemarkChange","_index","ListItemButton","SubmittedHomeworkRecord","UnfinishedHomeworkRecord","ClassSubmittedRecord","setDate","getClassSubmittedRecord","refetchOnWindowFocus","isFetching","FormGroup","_class","isSubmited","Switch","labelPlacement","SubmittedHomeworkHistory","setRecords","setIsSubmitting","deleteSubmittedHomeworkRecordByID","UnfinishedHomeworkHistory","getUnfinishedHomework","deleteUnfinishedHomeworkRecordByID","homework_type","HomeworkHistory","AddHomeworkTypeDialog","Name","setName","Subject","setSubject","submitting","checkString","isComplete","putHomeworkType","EditHomeworkTypeDialog","setIsActive","deleteHomeworkTypeByID","HomeworkType","_props","addDialog","setAddDialog","refreshPage","SubmittedHomeworkChart","setData","setStartDate","setEndDate","getSubmittedHomeworkStat","BarChart","gradeData","CartesianGrid","strokeDasharray","XAxis","YAxis","Bar","stackId","classData","stackOffset","Brush","CustomTooltip","payload","payloads","UnfinishedHomeworkChart","rechartData","setRechartData","getUnfinishedHomeworkStat","ReferenceLine","y","stroke","strokeWidth","HomeworkSetting","integer","boolean","putHomeworkDateRange","SubjectDialog","mode","setDialogProps","setSubjects","getSubjectById","inactiveSubjectById","createSubject","handleCreate","updateSubjectById","PreviewElement","ext","isPdf","ResourceCreateDialog","queryClient","useQueryClient","isUploading","setFilters","setFilename","clickDelete","setClickDelete","isDeleting","setIsDeleting","putResources","createResources","invalidateQueries","handleDeleteResource","deleteResource","setTouched","hidden","RoleChecker","roles","routes","element","molecular","setProfile","amount","unsubmitted","submitted","dataInMonth","dataInDay","AdminUpload","selectedClass","setSelectedClass","setGameList","gameListBySubject","setGameListBySubject","setSearh","deboundedSearch","fuse","Fuse","isCaseSensitive","useExtendedSearch","fuesParams","$or","fuseResult","$and","pointCorrect","pointIncorrect","pointExchangeRate","hasPointConfig","hasMoreInsight","indexOf","hasSessionRecord","startIcon","seleceted","setSeleceted","tesxt","ToggleButton","remove","placeItems","setNotices","is_public","BirthdaySetting","pageSize","paginationModel","setPaginationModel","getResources","storagePecentage","storage","usedStorage","totalStorage","chipColor","resources","columns","headerName","sortable","renderCell","file_extension","valueGetter","gap","DataGrid","rowHeight","pageSizeOptions","onPaginationModelChange","paginationMode","rowCount","totalPages","dialogProps","updateSubjectsOrder","setList","disableRipple","links","link","verticalAlign","numberOfPage","pageInfo","setPageInfo","favouriteChecked","setFavouriteChecked","sortBy","_notices","ceil","totalLength","filteredNotice","filteredMemo","setUnFinishedHomeworkRecord","QrCodeView","createTheme","xl","colors","common","white","contrastText","main","indigo","secondary","grey","components","MuiAutocomplete","MuiTab","styleOverrides","MuiDialog","MuiDialogActions","MuiContainer","MuiTextField","MuiInputBase","MuiAppBar","MuiButton","MuiCardHeader","MuiSelect","MuiCardActions","borderTop","shadows","typography","h1","h2","h3","h4","h5","h6","overline","createStyles","boxSizing","html","textDecoration","GlobalStyles","QueryClient","defaultOptions","queries","App","useRoutes","ReactGA","initialize","pageview","client","StyledEngineProvider","injectFirst","ThemeProvider","BackdropProvider","ReactDOM"],"mappings":"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","file":"static/js/main.08f2ac40.chunk.js","sourcesContent":["const devUrl = 'http://localhost:5001';\n// const devUrl = 'https://pointant-class.azurewebsites.net';\nmodule.exports = {\n env: process.env.NODE_ENV,\n extenalURL: {\n gameMC: 'https://pointantclassgame.blob.core.windows.net/mc1/index.html#',\n gameInteractive:\n 'https://interactivequiz.z7.web.core.windows.net/admin/pointant_class'\n },\n server: {\n url:\n process.env.NODE_ENV === 'development'\n ? devUrl\n : 'https://pointant-class.azurewebsites.net'\n }\n};\n","import { Backdrop, CircularProgress, makeStyles } from '@material-ui/core'\nimport React, { useState, useEffect, useContext, createContext } from 'react'\n\n\nconst BackdropContext = createContext()\n\nexport function useBackDrop() {\n const context = useContext(BackdropContext)\n return {\n open: context.open,\n close: context.close\n }\n}\n\n\nexport const DataBackdrop = ({ open }) => {\n return (\n \n \n \n )\n}\n\n\nexport default (props) => {\n const { children } = props\n const [open, setOpen] = useState(false)\n\n const state = {\n open: () => setOpen(true),\n close: () => setOpen(false)\n }\n\n return (\n \n {open && \n \n }\n {children}\n \n )\n}","import React, { useContext, useEffect, useLayoutEffect, useState } from 'react'\nimport PropTypes, { object } from 'prop-types'\n\n// Translation Higher Order Component\nimport {\n setTranslations,\n setDefaultLanguage,\n setLanguageCookie,\n setLanguage,\n translate,\n getLanguage,\n getLanguages,\n\n getDefaultLanguage,\n} from 'react-switch-lang'\nimport axios from 'axios'\nimport { useLocation, useParams } from 'react-router'\nimport en from 'src/lang/en/translation.json'\nimport zh from 'src/lang/zh/translation.json'\n// Do this two lines only when setting up the application\n\nconst _ = require('lodash')\nconst LocaleContext = React.createContext()\nconst yup = require('yup')\n\nexport function useLocale() {\n return useContext(LocaleContext) || {\n translate: new Function(),\n getLanguage: new Function(),\n getLanguages,\n replaceParams: new Function(),\n t: new Function(),\n setLanguage: new Function(),\n getLanguageLabel: new Function()\n }\n}\nconst moment = require('moment-timezone')\n\nconst LocaleProvider = (props) => {\n\n\n // const location = useLocation()\n // const params = useParams()\n // const [path, setPath] = useState();\n // useEffect(() => {\n // var p = location.pathname\n // for (const key of _.keys(params)) {\n // p = _.replace(p, params[key], 'id')\n // }\n // setPath(p)\n // }, [location.pathname]);\n\n const [available, setAvailable] = useState(false);\n const { children, t } = props\n\n useEffect(() => {\n getJSON()\n }, [])\n const config = {\n headers: {\n 'Cache-Control': 'no-cache',\n 'Pragma': 'no-cache',\n 'Expires': '0',\n }\n }\n\n const getJSON = async () => {\n // var en = await axios.get('/lang/en.json', config).then(res => res.data)\n // var zh = await axios.get('/lang/zh.json', config).then(res => res.data)\n setTranslations({ en, zh })\n setDefaultLanguage('zh')\n setLanguageCookie()\n var lang = localStorage.getItem('language')\n switchLanguage(lang)\n setAvailable(true)\n }\n\n const switchLanguage = (key) => {\n if (getLanguages().includes(key)) {\n setLanguage(key)\n localStorage.setItem('language', key)\n }\n else {\n setLanguage(getDefaultLanguage())\n localStorage.setItem('language', getDefaultLanguage())\n }\n }\n\n\n const translate = (obj) => {\n if (obj) {\n var value = obj[getLanguage()] || obj[getDefaultLanguage()]\n if (value) return value\n for (var lang of getLanguages()) {\n if (obj[lang]) return obj[lang]\n }\n for (var key of Object.keys(obj)) {\n if (obj[key]) return obj[key]\n }\n return null\n }\n return null\n }\n\n const getLanguageLabel = (lang) => {\n switch (lang) {\n case 'en': return 'English'\n case 'zh': return '中文'\n default: return 'unknown'\n }\n }\n\n\n\n /**\n * Replace params in string\n * @param {*} str \n * @param {*} params \n */\n const replaceParams = (str, params) => {\n var result = str\n console.log(\"file: LocaleProvider.js ~ line 121 ~ replaceParams ~ result\", result)\n for (const key in params) {\n result = _.replace(result, `{${key}}`, params[key])\n }\n return result\n }\n\n\n\n yup.setLocale({\n // use constant translation keys for messages without values\n mixed: {\n required: ({ label, value, path }) => t('yup_required'),\n notType: () => t('yup_wrong_type'),\n\n },\n string: {\n min: ({ min }) => t('yup_string_min', { min: min }),\n max: ({ max }) => t('yup_string_max', { max: max }),\n length: ({ length }) => `exact ${length} characters`,\n matches: () => t('yup_wrong_type')\n },\n // array: {\n // min: ({ min }) => t('min_array', { min: min }),\n // max: ({ max }) => t('max_array', { max: max })\n // },\n number: {\n min: ({ min }) => t('yup_number_min', { min: min }),\n max: ({ max }) => t('yup_number_max', { max: max }),\n }\n })\n\n yup.addMethod(yup.string, 'isValidTime', function (message) {\n return this.test('foramt', t('yup_wrong_type'), v => !v || moment(v, 'HH:mm', true).isValid())\n })\n\n yup.addMethod(yup.string, 'isValidDate', function (message) {\n return this.test('foramt', t('yup_wrong_type') + ' (YYYY-MM-DD)', v => !v || moment(v, 'YYYY-MM-DD', true).isValid())\n })\n\n yup.addMethod(yup.mixed, 'maxFilesize', function (size) {\n return this.test('fileSize', t('file_too_large'), value => {\n if (_.isObject(value)) return !value || value.size <= size * 1000\n return true\n })\n })\n\n\n\n\n\n const state = {\n t: (str, ...rest) => t(_.toString(str), ...rest),\n translate,\n replaceParams,\n setLanguage: switchLanguage,\n getLanguage,\n getLanguages,\n getLanguageLabel\n }\n if (!t || !available) return null\n return (\n \n {children}\n \n )\n}\n\nLocaleProvider.propTypes = {\n t: PropTypes.func.isRequired,\n}\n\nexport default translate(LocaleProvider)","import React, { useState, useEffect, useContext } from 'react'\nimport { Alert, Grow, makeStyles, Snackbar, useTheme } from '@material-ui/core'\nimport _ from 'lodash'\nimport { useLocale } from './LocaleProvider'\n\n\nconst { createContext } = require('react')\n\nconst SnackbarContext = createContext()\n\nexport function useSnack() {\n var context = useContext(SnackbarContext) || {}\n return ({\n open: context.open,\n error: context.error,\n info: context.info,\n })\n}\n\nconst ResultSnackbar = props => {\n const defaultAnchorOrigin = {\n vertical: 'bottom',\n horizontal: 'center',\n }\n\n const { snack, setSnack, timeout, ...rest } = props\n\n const open = snack.open\n const level = snack.level\n const message = snack.message\n\n const handleClose = () => {\n setSnack({\n ...snack,\n open: false\n })\n }\n\n return (\n \n \n {message}\n \n \n )\n}\n\n\nconst SnackbarProvider = (props) => {\n\n const { children } = props\n const { t } = useLocale()\n\n const [snack, setSnack] = useState({\n open: false,\n level: 'error',\n message: ''\n })\n\n const handleError = msg => {\n handleClose()\n setTimeout(() => setSnack({\n open: true,\n level: 'error',\n message: _.toString(msg) || t('failed')\n }), 100)\n }\n\n const handleSuccess = msg => {\n handleClose()\n setTimeout(() => setSnack({\n open: true,\n level: 'success',\n message: _.toString(msg) || t('saved')\n }), 100)\n }\n\n\n const handleWarn = msg => {\n handleClose()\n setTimeout(() => setSnack({\n open: true,\n level: 'waring',\n message: _.toString(msg) || 'Warning'\n }), 100)\n }\n\n const handleInfo = msg => {\n handleClose()\n setTimeout(() => setSnack({\n open: true,\n level: 'info',\n message: _.toString(msg) || 'Info'\n }), 100)\n }\n\n const handleClose = () => {\n setSnack({\n ...snack,\n open: false\n })\n }\n\n const state = {\n open: handleSuccess,\n error: handleError,\n warn: handleWarn,\n info: handleInfo,\n close: handleClose\n }\n\n return (\n \n \n {children}\n \n )\n}\n\nexport default SnackbarProvider","const Logo = (props) => (\n \n)\n\nexport default Logo\n","import Axios from \"axios\";\nimport { useNavigate } from \"react-router\";\nimport vars from \"src/config/vars\";\nimport { useAuthData } from \"src/provider/AuthDataProvider\";\nimport { useLocale } from \"src/provider/LocaleProvider\";\nimport { useSnack } from \"src/provider/SnackbarProvider\";\n\nconst _ = require(\"lodash\");\nconst axios = Axios.create({\n\tbaseURL: vars.server.url + \"/api\",\n\theaders: { \"Content-Type\": \"application/json\" },\n});\n\naxios.interceptors.request.use(\n\t(config) => {\n\t\tvar token = localStorage.getItem(\"token\");\n\t\tconfig.params = {\n\t\t\ttoken,\n\t\t\t...config.params,\n\t\t};\n\t\treturn config;\n\t},\n\t(error) => {\n\t\treturn error;\n\t},\n);\n\naxios.interceptors.response.use(\n\t(response) => {\n\t\tconst result = response.data;\n\t\tif (result && result.result !== \"fail\") {\n\t\t\treturn response;\n\t\t}\n\t\tthrow result;\n\t},\n\t(error) => {\n\t\treturn Promise.reject(error);\n\t},\n);\n\nconst useApi = () => {\n\tconst authToken = localStorage.getItem(\"token\");\n\tconst organization_id = localStorage.getItem(\"organization_id\");\n\tconst current_period = localStorage.getItem(\"current_period\");\n\n\tconst { selectedPeriod } = useAuthData();\n\n\tconst nav = useNavigate();\n\tconst { t } = useLocale();\n\tconst snack = useSnack();\n\n\tfunction logout() {\n\t\tlocalStorage.removeItem(\"token\");\n\t\tlocalStorage.removeItem(\"current_period\");\n\t\tlocalStorage.removeItem(\"selected_period\");\n\t\tlocalStorage.removeItem(\"organization_id\");\n\t\tnav(\"/sign-in\");\n\t}\n\n\tconst API = {\n\t\tlogout: logout,\n\t\tlogin: ({ username, email, password, type }) => {\n\t\t\tvar data;\n\t\t\tif (type === \"admin\") {\n\t\t\t\tdata = {\n\t\t\t\t\ttype: \"admin\",\n\t\t\t\t\temail: email,\n\t\t\t\t\tpassword: password,\n\t\t\t\t};\n\t\t\t} else if (type === \"parent\") {\n\t\t\t\tdata = {\n\t\t\t\t\ttype: \"parent\",\n\t\t\t\t\tusername: username,\n\t\t\t\t\tparent_password: password,\n\t\t\t\t};\n\t\t\t} else if (type === \"user\") {\n\t\t\t\tdata = {\n\t\t\t\t\ttype: \"user\",\n\t\t\t\t\tusername: username,\n\t\t\t\t\tpassword: password,\n\t\t\t\t};\n\t\t\t}\n\t\t\treturn axios\n\t\t\t\t.post(`/v2/cms/auth/login`, data)\n\t\t\t\t.then((res) => {\n\t\t\t\t\tvar result = res.data;\n\t\t\t\t\tlocalStorage.setItem(\"token\", result.token);\n\t\t\t\t\treturn res;\n\t\t\t\t})\n\t\t\t\t.catch((error) => {\n\t\t\t\t\tif (!error.response?.status) throw \"timeout\";\n\t\t\t\t\tif (error.code === \"ECONNABORTED\") throw \"timeout\";\n\t\t\t\t\tvar result = error.response?.data;\n\t\t\t\t\tif (result.error == \"organization_expired\") throw \"invalid_user\";\n\t\t\t\t\tif (result.error == \"Inactive user\") throw \"invalid_user\";\n\t\t\t\t\tif (result.error == \"User not found\") throw \"invalid_user\";\n\t\t\t\t\tif (result.error == \"Invaild password\") throw \"invalid_password\";\n\t\t\t\t\tthrow \"timeout\";\n\t\t\t\t});\n\t\t},\n\n\t\t/** ------------- @dashboard ------------------- */\n\t\tgetTotalReward: async function (period_id) {\n\t\t\treturn axios.get(`/rank/actions/reward`, {\n\t\t\t\tparams: {\n\t\t\t\t\ttoken: authToken,\n\t\t\t\t\tgroupBy: \"organization\",\n\t\t\t\t\tperiod: period_id,\n\t\t\t\t},\n\t\t\t});\n\t\t},\n\t\tgetTotalRedeem: async (period_id) => {\n\t\t\treturn axios.get(`/rank/actions/redeem`, {\n\t\t\t\tparams: {\n\t\t\t\t\ttoken: authToken,\n\t\t\t\t\tgroupBy: \"organization\",\n\t\t\t\t\tperiod: period_id,\n\t\t\t\t},\n\t\t\t});\n\t\t},\n\t\tgetCurrentPeriod: (period_id) => {\n\t\t\treturn axios\n\t\t\t\t.get(`/periods?groupBy=organization`)\n\t\t\t\t.then((res) => {\n\t\t\t\t\tconst result = res.data;\n\t\t\t\t\tfor (let i = 0; i < result.length; i++) {\n\t\t\t\t\t\tif (result[i]._id === period_id) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tname: result[i].name,\n\t\t\t\t\t\t\t\tstart: new Date(result[i].start_at).toDateString(),\n\t\t\t\t\t\t\t\tend: new Date(result[i].end_at).toDateString(),\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\t.catch((error) => {});\n\t\t},\n\t\t/** ------------- @profile ------------------- */\n\t\tgetUserRanking: (period_id) => {\n\t\t\treturn axios.get(`/profiles/rank`, {\n\t\t\t\tparams: {\n\t\t\t\t\ttoken: authToken,\n\t\t\t\t\tgroupBy: \"user\",\n\t\t\t\t\tperiod: period_id,\n\t\t\t\t},\n\t\t\t});\n\t\t},\n\t\tgetClassRanking: (period_id) => {\n\t\t\treturn axios.get(`/profiles/rank`, {\n\t\t\t\tparams: {\n\t\t\t\t\ttoken: authToken,\n\t\t\t\t\tgroupBy: \"class\",\n\t\t\t\t\tperiod: period_id,\n\t\t\t\t},\n\t\t\t});\n\t\t},\n\t\tparentReward: function ({ pointRule_id, period_id }) {\n\t\t\treturn axios.post(`/v2/cms/profiles/parent`, { pointRule_id, period_id });\n\t\t},\n\t\tgetOrganizationInfo: function (setOrganiationInfo) {\n\t\t\treturn axios.get(`/organizations/user`).then(({ data }) => {\n\t\t\t\tif (setOrganiationInfo) setOrganiationInfo(data);\n\t\t\t\treturn Promise.resolve(data);\n\t\t\t});\n\t\t},\n\t\tupdateOrganizationInfo: function (updates, setOrganiationInfo) {\n\t\t\treturn axios\n\t\t\t\t.put(`/v2/organization/${organization_id}`, updates)\n\t\t\t\t.then(({ data }) => {\n\t\t\t\t\tsnack.open(t(\"saved\"));\n\t\t\t\t\tif (setOrganiationInfo) setOrganiationInfo(data);\n\t\t\t\t\treturn Promise.resolve(data);\n\t\t\t\t})\n\t\t\t\t.catch(() => snack.error(t(\"failed\")));\n\t\t},\n\n\t\t/** ------------- @periods ------------------- */\n\t\tactivatePeriod: function (id) {\n\t\t\treturn axios.post(`/periods/current/${id}`);\n\t\t},\n\t\tgetPeriodList: function (setPeriodList = new Function()) {\n\t\t\treturn axios.get(`/periods`).then((res) => {\n\t\t\t\tconst result = res.data;\n\t\t\t\tsetPeriodList(result);\n\t\t\t\treturn res;\n\t\t\t});\n\t\t},\n\t\tupdatePeriod: async (id, data) => {\n\t\t\treturn axios.put(`/periods/${id}`, data);\n\t\t},\n\t\taddPeriod: async (data) => {\n\t\t\treturn axios.post(`/periods/`, data);\n\t\t},\n\n\t\t/** ------------- @devices ------------------- */\n\t\tgetDevices: () => {\n\t\t\treturn axios.get(`/devices`);\n\t\t},\n\t\taddDevice: async () => {\n\t\t\treturn null;\n\t\t},\n\t\tupdateDevice: (\n\t\t\tid,\n\t\t\t{\n\t\t\t\tname,\n\t\t\t\tstate,\n\t\t\t\tattendanceRule,\n\t\t\t\tpointRule,\n\t\t\t\tdescription,\n\t\t\t\tisEnableDeviceFunction,\n\t\t\t},\n\t\t) => {\n\t\t\treturn axios.put(`/devices/${id}`, {\n\t\t\t\tname,\n\t\t\t\tstate,\n\t\t\t\torganization_id: organization_id,\n\t\t\t\tattendanceRule,\n\t\t\t\tpointRule,\n\t\t\t\tdescription,\n\t\t\t\tisEnableDeviceFunction,\n\t\t\t});\n\t\t},\n\n\t\t/** ------------- @users ------------------- */\n\t\tuploadCsv: function (formData) {\n\t\t\treturn axios.post(`/users/upload`, formData);\n\t\t},\n\t\tbatchCreateUser: (newUsers = [], period_id) => {\n\t\t\tif (!period_id) throw \"missing period_id\";\n\t\t\treturn axios\n\t\t\t\t.post(`/v2/cms/users/batch`, { users: newUsers, period: period_id })\n\t\t\t\t.then((res) => {\n\t\t\t\t\treturn res;\n\t\t\t\t})\n\t\t\t\t.catch((e) => {\n\t\t\t\t\tsnack.error(t(\"upload_failed\"));\n\t\t\t\t\tthrow e;\n\t\t\t\t});\n\t\t},\n\t\tupdateUser: function (id, { name, isActive, role, privilege }) {\n\t\t\treturn axios.put(`/users/${id}`, { name, isActive, role, privilege });\n\t\t},\n\t\tdeleteUser: function (id) {\n\t\t\treturn axios.delete(`/users/${id}`);\n\t\t},\n\t\t// addUser: () => {\n\t\t// return axios.post(`/users`, { users: newUsers, period: period_id }).then(res => {\n\t\t// snack.open(t('upload_success'))\n\t\t// nav('/users')\n\t\t// })\n\t\t// },\n\t\tgetStudentList: async function (period_id) {\n\t\t\tvar pid = period_id || selectedPeriod || current_period;\n\t\t\tif (!pid) return { data: [] };\n\t\t\treturn axios.get(`/users?period=${pid}`);\n\t\t},\n\t\tgetStudentById: async function (period_id, id) {\n\t\t\treturn axios.get(`/users/${id}?period=${period_id}`);\n\t\t},\n\t\tresetUserPassword: (user_iD) => {\n\t\t\treturn axios.post(`/users/${user_iD}/resetpw`);\n\t\t},\n\t\tgetStudentProfiles: (profileId, { pointActions, attendanceActions }) => {\n\t\t\treturn axios.get(`/profiles/${profileId}`, {\n\t\t\t\tparams: {\n\t\t\t\t\tpointActions,\n\t\t\t\t\tattendanceActions,\n\t\t\t\t},\n\t\t\t});\n\t\t},\n\t\t/** ------------- @admin ------------------- */\n\t\tgetAdminList: function () {\n\t\t\treturn axios.get(`/admin/users`);\n\t\t},\n\t\taddAdmin: function ({ email, name, role }) {\n\t\t\treturn axios.post(`/admin/users`, { name, email, role });\n\t\t},\n\t\tbatchCreateAdmin: (newAdmins = []) => {\n\t\t\treturn axios.post(`/admin/batch`, { newAdmins: newAdmins });\n\t\t},\n\t\t/** ------------- @auth ------------------- */\n\t\tgetUserInfo: async function () {\n\t\t\tif (authToken === null) {\n\t\t\t\tlogout();\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\treturn axios\n\t\t\t\t.get(`/auth/user`)\n\t\t\t\t.then((res) => {\n\t\t\t\t\tif (!res.data.isActive) {\n\t\t\t\t\t\tthrow \"inactive account\";\n\t\t\t\t\t}\n\t\t\t\t\treturn res;\n\t\t\t\t})\n\t\t\t\t.catch((error) => {\n\t\t\t\t\tlogout();\n\t\t\t\t\treturn Promise.reject(error);\n\t\t\t\t});\n\t\t},\n\t\tsetPassword: function ({ password, new_password }) {\n\t\t\treturn axios\n\t\t\t\t.post(`/auth/setpw`, {\n\t\t\t\t\tpassword: password,\n\t\t\t\t\tnew_password: new_password,\n\t\t\t\t})\n\t\t\t\t.then((res) => {\n\t\t\t\t\tthis.getUserInfo();\n\t\t\t\t\treturn res;\n\t\t\t\t});\n\t\t},\n\t\tsetParentPassword: function ({ password, new_password }) {\n\t\t\treturn axios\n\t\t\t\t.post(`/v2/cms/auth/setParentPw`, {\n\t\t\t\t\tparent_password: password,\n\t\t\t\t\tnew_password: new_password,\n\t\t\t\t})\n\t\t\t\t.then((res) => {\n\t\t\t\t\tthis.getUserInfo();\n\t\t\t\t\treturn res;\n\t\t\t\t});\n\t\t},\n\t\t/** ------------- @ruleCategories ------------------- */\n\t\tgetPointRuleCategories: function ({ setCategories, noCache, type } = {}) {\n\t\t\treturn axios\n\t\t\t\t.get(`/ruleCategories`, {\n\t\t\t\t\tparams: {\n\t\t\t\t\t\ttoken: authToken,\n\t\t\t\t\t\tcache: noCache ? false : undefined,\n\t\t\t\t\t\ttype: type,\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t\t.then((res) => {\n\t\t\t\t\tconst data = res.data;\n\t\t\t\t\tif (setCategories) setCategories(data);\n\t\t\t\t\treturn res;\n\t\t\t\t});\n\t\t},\n\n\t\taddRuleCategory: function (newCategory) {\n\t\t\treturn axios.post(`/ruleCategories`, newCategory);\n\t\t},\n\t\tupdateRuleCategory: function (newCategory) {\n\t\t\treturn axios.put(`/ruleCategories/${newCategory._id}`, {\n\t\t\t\tname: newCategory.name,\n\t\t\t});\n\t\t},\n\n\t\t/** ------------- @pointRules ------------------- */\n\t\tgetPointRules: function ({ isReward, isActive, type } = {}) {\n\t\t\treturn axios.get(`/pointRules`, {\n\t\t\t\tparams: {\n\t\t\t\t\tisReward,\n\t\t\t\t\tisActive,\n\t\t\t\t\ttype,\n\t\t\t\t\ttoken: authToken,\n\t\t\t\t},\n\t\t\t});\n\t\t},\n\t\taddPointRule: function (newRule) {\n\t\t\treturn axios.post(`/pointRules`, newRule);\n\t\t},\n\n\t\tupdatePointRule: function (id, update) {\n\t\t\treturn axios.put(`/pointRules/${id}`, update);\n\t\t},\n\t\tdeletePointRule: function (id) {\n\t\t\treturn axios.delete(`/pointRules/${id}`);\n\t\t},\n\n\t\t/** ------------- @organizationFilters ------------------- */\n\t\tgetOrganizationFilters: function (setFilterList) {\n\t\t\treturn axios.get(`/organizationFilters`).then((res) => {\n\t\t\t\tif (setFilterList) setFilterList(_.toArray(res.data));\n\t\t\t\treturn res;\n\t\t\t});\n\t\t},\n\t\tupdateOrganizationFilters: (id, { name, value, attribute }) => {\n\t\t\treturn axios.put(`/organizationFilters/${id}`, {\n\t\t\t\tname,\n\t\t\t\tvalue,\n\t\t\t\tattribute,\n\t\t\t});\n\t\t},\n\t\taddOrganizationFilters: ({ name, value, attribute }) => {\n\t\t\treturn axios.post(`/organizationFilters`, { name, value, attribute });\n\t\t},\n\t\t/** ------------- @actions ------------------- */\n\t\tdeletePointHistory: (history_id) => {\n\t\t\treturn axios.delete(`/actions/${history_id}`);\n\t\t},\n\t\tstudentReward: ({ pointRule_id, profiles, counts }) => {\n\t\t\treturn axios.post(`v2/actions/profiles`, {\n\t\t\t\tpointRule_id,\n\t\t\t\tprofiles,\n\t\t\t\tcounts,\n\t\t\t});\n\t\t},\n\t\tstudentRedeemByProfile: ({ pointRule_id, profiles, counts }) => {\n\t\t\treturn axios.post(`v2/actions/profiles_redeem`, {\n\t\t\t\tpointRule_id,\n\t\t\t\tprofiles,\n\t\t\t\tcounts,\n\t\t\t});\n\t\t},\n\t\tstudentRedeem: ({ pointRules, profile }) => {\n\t\t\treturn axios.post(`/actions/rules`, { pointRules, profile });\n\t\t},\n\t\tstudentCheckin: ({ device, profiles, attendanceRule }) => {\n\t\t\treturn axios\n\t\t\t\t.post(`/actions/attendance/batch/checkin`, {\n\t\t\t\t\tdevice,\n\t\t\t\t\tprofiles,\n\t\t\t\t\tattendanceRule,\n\t\t\t\t})\n\t\t\t\t.then(() => snack.open(t(\"checkin_success\")))\n\t\t\t\t.catch(() => snack.error(t(\"checkin_fail\")));\n\t\t},\n\t\tstudentCheckout: ({ device, profiles, attendanceRule }) => {\n\t\t\treturn axios\n\t\t\t\t.post(`/actions/attendance/batch/checkout`, {\n\t\t\t\t\tdevice,\n\t\t\t\t\tprofiles,\n\t\t\t\t\tattendanceRule,\n\t\t\t\t})\n\t\t\t\t.then(() => snack.open(t(\"checkout_success\")))\n\t\t\t\t.catch(() => snack.error(t(\"checkout_fail\")));\n\t\t},\n\t\tgetPointHistories: ({ period_id, u_id, dateRange = \"30\" }) => {\n\t\t\treturn axios\n\t\t\t\t.get(`/actions`, {\n\t\t\t\t\tparams: {\n\t\t\t\t\t\ttoken: authToken,\n\t\t\t\t\t\tpointRule: true,\n\t\t\t\t\t\tperiod: period_id,\n\t\t\t\t\t\tuser: u_id,\n\t\t\t\t\t\tdateRange: dateRange,\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t\t.then((res) => {\n\t\t\t\t\treturn res;\n\t\t\t\t});\n\t\t},\n\t\tgetPointHistoriesV2: ({\n\t\t\tperiod_id,\n\t\t\tu_id,\n\t\t\tdateRange = \"30\",\n\t\t\tsearch,\n\t\t\t...rest\n\t\t}) => {\n\t\t\treturn axios\n\t\t\t\t.get(`v2/actions`, {\n\t\t\t\t\tparams: {\n\t\t\t\t\t\t...rest,\n\t\t\t\t\t\tsearch,\n\t\t\t\t\t\ttoken: authToken,\n\t\t\t\t\t\ttype: \"reward redeem parent_reward\",\n\t\t\t\t\t\tperiod: period_id,\n\t\t\t\t\t\tuser: u_id,\n\t\t\t\t\t\tdateRange: dateRange,\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t\t.then((res) => {\n\t\t\t\t\treturn res;\n\t\t\t\t});\n\t\t},\n\t\tgetProfileRankingByPointCategory: ({\n\t\t\tperiod_id,\n\t\t\tprofile_id,\n\t\t\truleCategory_id,\n\t\t}) => {\n\t\t\treturn axios.get(`/actions/pointRuleCategory`, {\n\t\t\t\tparams: {\n\t\t\t\t\ttoken: authToken,\n\t\t\t\t\tperiod: period_id,\n\t\t\t\t\tprofile: profile_id,\n\t\t\t\t\truleCategory: ruleCategory_id,\n\t\t\t\t},\n\t\t\t});\n\t\t},\n\t\tgetAttendanceList: async ({ user, period, ...query } = {}) => {\n\t\t\tif (!period) return { data: [] };\n\t\t\treturn axios\n\t\t\t\t.get(`/actions`, {\n\t\t\t\t\tparams: {\n\t\t\t\t\t\tuser,\n\t\t\t\t\t\tperiod,\n\t\t\t\t\t\t...query,\n\t\t\t\t\t\ttoken: authToken,\n\t\t\t\t\t\tattendanceRule: true,\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t\t.then((res) => {\n\t\t\t\t\treturn res;\n\t\t\t\t});\n\t\t},\n\t\t/** ------------- @attendanceRules ------------------- */\n\t\tgetAttendanceRules: (query) => {\n\t\t\treturn axios.get(`/attendanceRules`, {\n\t\t\t\tparams: {\n\t\t\t\t\ttoken: authToken,\n\t\t\t\t\t...query,\n\t\t\t\t},\n\t\t\t});\n\t\t},\n\t\taddAttendanceRules: ({ name, description, isActive }) => {\n\t\t\treturn axios.post(`/attendanceRules`, {\n\t\t\t\tname,\n\t\t\t\tdescription,\n\t\t\t\tisActive,\n\t\t\t\torganization_id: organization_id,\n\t\t\t});\n\t\t},\n\t\tupdateAttendanceRules: (rule_id, { name, description, isActive }) => {\n\t\t\treturn axios.put(`/attendanceRules/${rule_id}`, {\n\t\t\t\tname,\n\t\t\t\tdescription,\n\t\t\t\tisActive,\n\t\t\t});\n\t\t},\n\t\tgetUserPointHistories: (period_id, user) => {\n\t\t\treturn axios.get(`/auth/actions`, {\n\t\t\t\tparams: {\n\t\t\t\t\ttoken: authToken,\n\t\t\t\t\tpointRule: true,\n\t\t\t\t\tperiod: period_id,\n\t\t\t\t\tuser: user,\n\t\t\t\t},\n\t\t\t});\n\t\t},\n\t\tgetUserAttendanceList: (period_id, user) => {\n\t\t\treturn axios.get(`/auth/actions`, {\n\t\t\t\tparams: {\n\t\t\t\t\ttoken: authToken,\n\t\t\t\t\tattendanceRule: true,\n\t\t\t\t\tperiod: period_id,\n\t\t\t\t\tuser,\n\t\t\t\t},\n\t\t\t});\n\t\t},\n\t\tgetUserProfile: () => {\n\t\t\treturn axios.get(`/auth/profiles`, {\n\t\t\t\tparams: {\n\t\t\t\t\ttoken: authToken,\n\t\t\t\t},\n\t\t\t});\n\t\t},\n\t\tgetUserPeriod: (p_id) => {\n\t\t\treturn axios.get(`/auth/actions`, {\n\t\t\t\tparams: {\n\t\t\t\t\ttoken: authToken,\n\t\t\t\t},\n\t\t\t});\n\t\t},\n\t\t/** ------------- @game ------------------- */\n\t\tgetGameList: function () {\n\t\t\treturn axios.get(`/games`);\n\t\t},\n\t\tgetGameData: function (gameId, { questions, sessions, records } = {}) {\n\t\t\treturn axios.get(`/games/${gameId}`, {\n\t\t\t\tparams: {\n\t\t\t\t\tquestions: questions,\n\t\t\t\t\tsessions: sessions,\n\t\t\t\t\trecords: records,\n\t\t\t\t},\n\t\t\t});\n\t\t},\n\t\tgetGameRecordDetails: function (gameId) {\n\t\t\treturn axios.get(`/gameSessions/`, {\n\t\t\t\tparams: {\n\t\t\t\t\tgame: gameId,\n\t\t\t\t},\n\t\t\t});\n\t\t},\n\t\tcreateGame: async (newGame) => {\n\t\t\tawait API.batchUploadBlobs(newGame, [\"logo\"]);\n\t\t\treturn axios.post(`/games/create`, newGame);\n\t\t},\n\t\tupdateGame: async (gameId, data) => {\n\t\t\tawait API.batchUploadBlobs(data, [\"logo\"]);\n\t\t\treturn axios.put(`/games/${gameId}`, data);\n\t\t},\n\t\taddQuestion: (gameId, { options, text, image, gameType }) => {\n\t\t\treturn axios.post(`/gameQuestions`, {\n\t\t\t\toptions,\n\t\t\t\ttext,\n\t\t\t\timage,\n\t\t\t\tgame: gameId,\n\t\t\t\tgameType,\n\t\t\t});\n\t\t},\n\t\tupdateQuestion: (\n\t\t\tgameId,\n\t\t\t{ _id, options, text, image, gameType, isActive },\n\t\t) => {\n\t\t\treturn axios.put(`/gameQuestions`, {\n\t\t\t\t_id,\n\t\t\t\toptions,\n\t\t\t\ttext,\n\t\t\t\timage,\n\t\t\t\tgame: gameId,\n\t\t\t\tgameType,\n\t\t\t\tisActive,\n\t\t\t});\n\t\t},\n\t\t/** ------------- @blobs ------------------- */\n\t\t//media\n\t\tbatchUploadBlobs: async (form, fields) => {\n\t\t\tconst formData = new FormData();\n\t\t\tfor (const field of fields) {\n\t\t\t\tvar value = _.get(form, field);\n\t\t\t\tformData.append(field, value);\n\t\t\t}\n\t\t\treturn axios.post(\"/blobs/batch\", formData).then(({ data }) => {\n\t\t\t\tfor (const file of data.files) {\n\t\t\t\t\t_.set(form, file.fieldname, file.path);\n\t\t\t\t}\n\t\t\t\treturn form;\n\t\t\t});\n\t\t},\n\t\tbatchUploadBlobsWithNameSize: async (form, fields) => {\n\t\t\tconst formData = new FormData();\n\t\t\tfor (const field of fields) {\n\t\t\t\tvar value = _.get(form, field);\n\t\t\t\tformData.append(field, value);\n\t\t\t\t_.set(form, field, {\n\t\t\t\t\tname: value.name,\n\t\t\t\t\tsize: value.size,\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn axios.post(\"/blobs/batch\", formData).then(({ data }) => {\n\t\t\t\tfor (const file of data.files) {\n\t\t\t\t\t_.set(form, file.fieldname + \".url\", file.path);\n\t\t\t\t}\n\t\t\t\treturn form;\n\t\t\t});\n\t\t},\n\t\t/** ------------- @notice ------------------- */\n\t\tgetNotices: (p_id) => {\n\t\t\treturn axios.get(`/notices`, {\n\t\t\t\tparams: {\n\t\t\t\t\tperiod: p_id,\n\t\t\t\t\ttoken: authToken,\n\t\t\t\t},\n\t\t\t});\n\t\t},\n\t\tgetNoticeById: (id) => {\n\t\t\treturn axios.get(`/notices/` + id, {\n\t\t\t\tparams: {\n\t\t\t\t\ttoken: authToken,\n\t\t\t\t},\n\t\t\t});\n\t\t},\n\t\taddNotice: async (notice) => {\n\t\t\tif (notice.attachments) {\n\t\t\t\tvar fields = _.map(notice.attachments, (a, i) => {\n\t\t\t\t\tif (a instanceof Blob) {\n\t\t\t\t\t\treturn \"attachments.\" + i;\n\t\t\t\t\t}\n\t\t\t\t\treturn null;\n\t\t\t\t}).filter((f) => !_.isNil(f));\n\t\t\t\tawait API.batchUploadBlobsWithNameSize(notice, fields);\n\t\t\t}\n\t\t\treturn axios.post(`/notices`, notice, {\n\t\t\t\tparams: {\n\t\t\t\t\ttoken: authToken,\n\t\t\t\t},\n\t\t\t});\n\t\t},\n\t\tupdateNotice: async (id, notice) => {\n\t\t\tvar fields = _.map(notice.attachments, (a, i) => {\n\t\t\t\tif (a instanceof Blob) {\n\t\t\t\t\treturn \"attachments.\" + i;\n\t\t\t\t}\n\t\t\t\treturn null;\n\t\t\t}).filter((f) => !_.isNil(f));\n\t\t\tawait API.batchUploadBlobsWithNameSize(notice, fields);\n\t\t\treturn axios.put(`/notices/` + id, notice, {\n\t\t\t\tparams: {\n\t\t\t\t\ttoken: authToken,\n\t\t\t\t},\n\t\t\t});\n\t\t},\n\t\tupdateNoticeInfo: async (id, body) => {\n\t\t\treturn axios.post(`/notices/${id}/info`, body, {\n\t\t\t\tparams: {\n\t\t\t\t\ttoken: authToken,\n\t\t\t\t},\n\t\t\t});\n\t\t},\n\t\tbatchDeleteNotice: async (notices) => {\n\t\t\treturn axios.post(\n\t\t\t\t`/notices/batchDelete`,\n\t\t\t\t{ notices },\n\t\t\t\t{\n\t\t\t\t\tparams: {\n\t\t\t\t\t\ttoken: authToken,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t);\n\t\t},\n\t\t/** ------------- @memo ------------------- */\n\t\tgetMemo: () => {\n\t\t\treturn axios.get(`/memos`, {\n\t\t\t\tparams: {\n\t\t\t\t\ttoken: authToken,\n\t\t\t\t},\n\t\t\t});\n\t\t},\n\t\tgetMemoById: (id) => {\n\t\t\treturn axios.get(`/memos/` + id, {\n\t\t\t\tparams: {\n\t\t\t\t\ttoken: authToken,\n\t\t\t\t},\n\t\t\t});\n\t\t},\n\t\taddMemo: (memo) => {\n\t\t\treturn axios.post(`/memos`, memo, {\n\t\t\t\tparams: {\n\t\t\t\t\ttoken: authToken,\n\t\t\t\t},\n\t\t\t});\n\t\t},\n\t\tupdateMemoInfo: async (id, body) => {\n\t\t\treturn axios.post(`/memos/${id}/info`, body, {\n\t\t\t\tparams: {\n\t\t\t\t\ttoken: authToken,\n\t\t\t\t},\n\t\t\t});\n\t\t},\n\t\tbatchDeleteMemo: async (memos) => {\n\t\t\treturn axios.post(\n\t\t\t\t`/memos/batchDelete`,\n\t\t\t\t{ memos },\n\t\t\t\t{\n\t\t\t\t\tparams: {\n\t\t\t\t\t\ttoken: authToken,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t);\n\t\t},\n\t\t/** ------------- @badgeRule ------------------- */\n\t\taddBadgeRule: async (data) => {\n\t\t\tawait API.batchUploadBlobs(data, [\"image_url\"]);\n\t\t\treturn axios.post(\"/v2/cms/badgeRules\", data);\n\t\t},\n\t\tgetBadgeRuleList: async () => {\n\t\t\treturn axios.get(\"/v2/cms/badgeRules\");\n\t\t},\n\t\tupdateBadgeRule: async (rule_id, data) => {\n\t\t\tawait API.batchUploadBlobs(data, [\"image_url\"]);\n\t\t\treturn axios.put(`/v2/cms/badgeRules/${rule_id}`, data);\n\t\t},\n\t\tdeleteBadgeRule: async (rule_id) => {\n\t\t\treturn axios.delete(`/v2/cms/badgeRules/${rule_id}`);\n\t\t},\n\t\t/** ------------- @profileBadge ------------------- */\n\t\tgetBadge: async (params) => {\n\t\t\treturn axios.get(\"/v2/cms/profileBadges\", {\n\t\t\t\tparams: params,\n\t\t\t});\n\t\t},\n\t\tgetBadgeGroupByRule: async (params) => {\n\t\t\treturn axios.get(\"/v2/cms/profileBadges/groupByRule\", {\n\t\t\t\tparams: params,\n\t\t\t});\n\t\t},\n\t\t/** ------------- @boardGame ------------------- */\n\t\tgetBoardGameList: async (params) => {\n\t\t\treturn axios.get(\"/v2/boardGame/game\", {\n\t\t\t\tparams: params,\n\t\t\t});\n\t\t},\n\t\tgetBoardGameStats: async (gameId, params) => {\n\t\t\treturn axios.get(`/v2/boardGame/game/${gameId}/stats`, {\n\t\t\t\tparams: params,\n\t\t\t});\n\t\t},\n\t\t/** ------------- @boardGameSession ------------------- */\n\t\tgetBoardGameDashboardData: async (params) => {\n\t\t\treturn axios.get(\"/v2/boardGame/session/dashboard\", {\n\t\t\t\tparams: {\n\t\t\t\t\ttoken: authToken,\n\t\t\t\t\t...params,\n\t\t\t\t},\n\t\t\t});\n\t\t},\n\t\tgetBoardGameSession: async (params) => {\n\t\t\treturn axios.get(\"/v2/boardGame/session\", {\n\t\t\t\tparams: {\n\t\t\t\t\ttoken: authToken,\n\t\t\t\t\t...params,\n\t\t\t\t},\n\t\t\t});\n\t\t},\n\t\tgetBoardGameProfileStats: async (profileId, params) => {\n\t\t\treturn axios.get(`/v2/boardGame/session/profileStats/${profileId}`, {\n\t\t\t\tparams: {\n\t\t\t\t\ttoken: authToken,\n\t\t\t\t\t...params,\n\t\t\t\t},\n\t\t\t});\n\t\t},\n\t\tgetBoardGameStats: async (gameId, params) => {\n\t\t\treturn axios.get(`/v2/boardGame/session/gameStats/${gameId}`, {\n\t\t\t\tparams: {\n\t\t\t\t\ttoken: authToken,\n\t\t\t\t\t...params,\n\t\t\t\t},\n\t\t\t});\n\t\t},\n\t\tgetBoardGameSessionStats: async (sessionId, params) => {\n\t\t\treturn axios.get(`/v2/boardGame/session/sessionStats/${sessionId}`, {\n\t\t\t\tparams: {\n\t\t\t\t\ttoken: authToken,\n\t\t\t\t\t...params,\n\t\t\t\t},\n\t\t\t});\n\t\t},\n\t\tgetOrganization: async (params) => {\n\t\t\treturn axios.get(`/organizations`, {\n\t\t\t\tparams: {\n\t\t\t\t\ttoken: authToken,\n\t\t\t\t\t...params,\n\t\t\t\t},\n\t\t\t});\n\t\t},\n\n\t\t/** ------------- @HomeworkSession ------------------- */\n\n\t\tputHomeworkSubmitRecord: ({ profiles, date, period_id }) => {\n\t\t\treturn axios.post(`v2/homework/homeworkSubmitRecord`, {\n\t\t\t\tprofiles,\n\t\t\t\tdate,\n\t\t\t\tperiod: period_id,\n\t\t\t});\n\t\t},\n\t\tputUnfinishedHomeworkRecord: ({ profiles, date, homeworkType_id }) => {\n\t\t\treturn axios.post(`v2/homework/unfinishedHomework`, {\n\t\t\t\tprofiles,\n\t\t\t\tdate,\n\t\t\t\thomeworkType_id,\n\t\t\t});\n\t\t},\n\t\tputHomeworkType: ({\n\t\t\tname,\n\t\t\tsubject,\n\t\t\thomeworkType_id = \"\",\n\t\t\tisActive = true,\n\t\t}) => {\n\t\t\treturn axios.post(`v2/homework/type`, {\n\t\t\t\tname,\n\t\t\t\tsubject,\n\t\t\t\thomeworkType_id,\n\t\t\t\tisActive,\n\t\t\t});\n\t\t},\n\t\tputHomeworkDateRange: ({\n\t\t\tsubmitHomeworkRange,\n\t\t\tunfinishHomeworkRange,\n\t\t\tisActive = false,\n\t\t}) => {\n\t\t\treturn axios.post(`v2/homework/setting`, {\n\t\t\t\tsubmitHomeworkRange,\n\t\t\t\tunfinishHomeworkRange,\n\t\t\t\tisActive,\n\t\t\t});\n\t\t},\n\t\tgetHomeworkType: async (params) => {\n\t\t\treturn axios.get(`/v2/homework/type`, {\n\t\t\t\tparams: {\n\t\t\t\t\ttoken: authToken,\n\t\t\t\t\t...params,\n\t\t\t\t},\n\t\t\t});\n\t\t},\n\t\tgetStudentSubmittedHomeworkRecord: (profileId) => {\n\t\t\treturn axios.get(`v2/homework/homeworkSubmitRecord/${profileId}`, {\n\t\t\t\tparams: {\n\t\t\t\t\tperiod_id: selectedPeriod,\n\t\t\t\t},\n\t\t\t});\n\t\t},\n\t\tgetStudentUnfinishedHomeworkRecord: (profileId) => {\n\t\t\treturn axios.get(`v2/homework/unfinishedHomework/${profileId}`, {\n\t\t\t\tparams: {\n\t\t\t\t\tperiod_id: selectedPeriod,\n\t\t\t\t},\n\t\t\t});\n\t\t},\n\t\tgetSubmittedHomeworkRecord: ({\n\t\t\tdateRange = \"30\",\n\t\t\tsearch,\n\t\t\tperiod_id,\n\t\t\t...rest\n\t\t}) => {\n\t\t\treturn axios\n\t\t\t\t.get(`v2/homework/homeworkSubmitRecord`, {\n\t\t\t\t\tparams: {\n\t\t\t\t\t\t...rest,\n\t\t\t\t\t\tsearch,\n\t\t\t\t\t\ttoken: authToken,\n\t\t\t\t\t\tdateRange: dateRange,\n\t\t\t\t\t\tperiod_id,\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t\t.then((res) => {\n\t\t\t\t\treturn res;\n\t\t\t\t});\n\t\t},\n\t\tgetClassSubmittedRecord: async ({ date }) => {\n\t\t\treturn axios\n\t\t\t\t.get(`/v2/homework/homeworkSubmitRecord/classSubmittedRecord`, {\n\t\t\t\t\tparams: {\n\t\t\t\t\t\ttoken: authToken,\n\t\t\t\t\t\tdate: date,\n\t\t\t\t\t\tperiod_id: selectedPeriod,\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t\t.then((res) => {\n\t\t\t\t\treturn res;\n\t\t\t\t});\n\t\t},\n\t\tgetUnfinishedHomework: ({\n\t\t\tdateRange = \"30\",\n\t\t\tsearch,\n\t\t\tperiod_id,\n\t\t\t...rest\n\t\t}) => {\n\t\t\treturn axios\n\t\t\t\t.get(`v2/homework/unfinishedHomework`, {\n\t\t\t\t\tparams: {\n\t\t\t\t\t\t...rest,\n\t\t\t\t\t\tsearch,\n\t\t\t\t\t\ttoken: authToken,\n\t\t\t\t\t\tdateRange: dateRange,\n\t\t\t\t\t\tperiod_id,\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t\t.then((res) => {\n\t\t\t\t\treturn res;\n\t\t\t\t});\n\t\t},\n\t\tgetUnfinishedHomeworkStat: async (startDate = null, endDate = null) => {\n\t\t\treturn axios.get(`/v2/homework/unfinishedHomework/statistics`, {\n\t\t\t\tparams: {\n\t\t\t\t\ttoken: authToken,\n\t\t\t\t\tstartDate,\n\t\t\t\t\tendDate,\n\t\t\t\t\tperiod_id: selectedPeriod,\n\t\t\t\t\t// ...params\n\t\t\t\t},\n\t\t\t});\n\t\t},\n\t\tgetSubmittedHomeworkStat: async (startDate = null, endDate = null) => {\n\t\t\treturn axios.get(`/v2/homework/homeworkSubmitRecord/statistics`, {\n\t\t\t\tparams: {\n\t\t\t\t\tstartDate,\n\t\t\t\t\tendDate,\n\t\t\t\t\ttoken: authToken,\n\t\t\t\t\tperiod_id: selectedPeriod,\n\t\t\t\t\t// ...params\n\t\t\t\t},\n\t\t\t});\n\t\t},\n\t\tdeleteSubmittedHomeworkRecordByID: (history_id) => {\n\t\t\treturn axios.delete(`v2/homework/homeworkSubmitRecord/${history_id}`);\n\t\t},\n\t\tdeleteUnfinishedHomeworkRecordByID: (history_id) => {\n\t\t\treturn axios.delete(`v2/homework/unfinishedHomework/${history_id}`);\n\t\t},\n\t\tdeleteHomeworkTypeByID: (history_id) => {\n\t\t\treturn axios.delete(`v2/homework/type/${history_id}`);\n\t\t},\n\n\t\t/** ------------- @SubjectSession ------------------- */\n\t\tgetSubjects: () => {\n\t\t\treturn axios.get(\"v2/subjects\");\n\t\t},\n\t\tgetSubjectById: (subjectId) => {\n\t\t\treturn axios.get(`v2/subjects/${subjectId}`);\n\t\t},\n\t\tcreateSubject: (values) => {\n\t\t\treturn axios.post(\"v2/subjects\", {\n\t\t\t\t...values,\n\t\t\t});\n\t\t},\n\t\tupdateSubjectById: (subjectId, values) => {\n\t\t\treturn axios.put(`v2/subjects/${subjectId}`, {\n\t\t\t\t...values,\n\t\t\t});\n\t\t},\n\t\tinactiveSubjectById: (subjectId) => {\n\t\t\treturn axios.put(`v2/subjects/inactivate/${subjectId}`);\n\t\t},\n\t\tupdateSubjectsOrder: (subjects) => {\n\t\t\treturn axios.put(`v2/subjects`, {\n\t\t\t\tsubjects,\n\t\t\t});\n\t\t},\n\n\t\tcreateResources: (values) => {\n\t\t\tconst bodyFormData = new FormData();\n\t\t\tbodyFormData.append(\"blob\", values.file);\n\t\t\tbodyFormData.append(\"name_zh\", values.name_zh);\n\t\t\tbodyFormData.append(\"name_en\", values.name_en);\n\n\t\t\tfor (let i = 0; i < values.filters.length; i++) {\n\t\t\t\tbodyFormData.append(\"filters[]\", values.filters[i]);\n\t\t\t}\n\t\t\tfor (let i = 0; i < values.subjects.length; i++) {\n\t\t\t\tbodyFormData.append(\"subjects[]\", values.subjects[i]);\n\t\t\t}\n\n\t\t\treturn axios.post(\"v2/learningResources\", bodyFormData);\n\t\t},\n\n\t\tputResources: (values, id) => {\n\t\t\treturn axios.put(`v2/learningResources/${id}`, values);\n\t\t},\n\n\t\tgetResources: ({ page, limit, subjects = [], filters = [], name = \"\" }) => {\n\t\t\treturn axios.post(\"v2/learningResources/byFilters\", {\n\t\t\t\tpage,\n\t\t\t\tlimit,\n\t\t\t\tsubjects,\n\t\t\t\tfilters,\n\t\t\t\tname,\n\t\t\t});\n\t\t},\n\t\tdeleteResource: (id) => {\n\t\t\treturn axios.delete(`v2/learningResources/${id}`);\n\t\t},\n\t};\n\n\treturn API;\n};\n\nexport default useApi;\n","import React, { useState, useEffect, useContext, createContext, useMemo, useCallback, } from 'react'\nimport { useLocation, useNavigate } from 'react-router'\nimport useApi from 'src/api/api'\nimport useSWR from 'swr'\n\nconst AuthDataContext = createContext()\n\nconst CURRENT_PERIOD_POLLING_INTERVAL = 5000\n\nexport function useAuthData() {\n const context = useContext(AuthDataContext) || {}\n return {\n userInfo: context.userInfo,\n organization: context.organization,\n currentPeriod: context.currentPeriod,\n setCurrentPeriod: context.setCurrentPeriod,\n refresh: context.refresh,\n selectedPeriod: context.selectedPeriod,\n setSelectedPeriod: context.setSelectedPeriod\n }\n}\nconst AuthDataProvider = (props) => {\n\n const api = useApi()\n const nav = useNavigate()\n const { children } = props\n\n const [currentPeriod, setCurrentPeriod] = useState();\n const [selectedPeriodByPathObject, setSelectedPeriodByPathObject] = useState();\n\n const authUserInfo = useSWR('/auth/user',api.getUserInfo)\n const orgUserInfo = useSWR('/organizations/user',()=>api.getOrganizationInfo(), { refreshInterval: CURRENT_PERIOD_POLLING_INTERVAL })\n\n const location = useLocation()\n const path = location.pathname\n\n \n const selectedPeriod = useMemo(()=>{\n if(selectedPeriodByPathObject?.[path]){\n return selectedPeriodByPathObject[path]\n }\n console.error('could not load selected period')\n return currentPeriod || null\n },[selectedPeriodByPathObject, path, currentPeriod])\n\n const setSelectedPeriod = useCallback((period) => {\n if(!selectedPeriodByPathObject) {\n setSelectedPeriodByPathObject({[path]: period })\n }else{\n if(!selectedPeriodByPathObject[path] || selectedPeriodByPathObject[path]!==period) {\n setSelectedPeriodByPathObject(s => ({ ...s, [path]: period }))\n }\n }\n },[selectedPeriodByPathObject,path])\n\n useEffect(()=>{\n if(!selectedPeriod && currentPeriod){\n setSelectedPeriod(currentPeriod)\n }\n },[selectedPeriod, currentPeriod, setSelectedPeriod])\n\n const userInfo = useMemo(()=>{\n if(authUserInfo.data && authUserInfo.data.data){\n const {organization, __v, ...rest} = authUserInfo.data.data\n return rest\n }\n return null\n },[authUserInfo.data])\n const organization = useMemo(()=>{\n if(orgUserInfo.data && orgUserInfo.data){\n\n const { current_period, ...rest } = orgUserInfo.data\n return rest\n }\n return null\n },[orgUserInfo.data])\n useEffect(()=>{\n if(orgUserInfo?.data){\n const { current_period,_id } = orgUserInfo.data\n if(current_period && current_period !== currentPeriod){\n setCurrentPeriod(current_period)\n localStorage.setItem('current_period', current_period)\n localStorage.setItem('organization_id', _id)\n }\n }\n },[currentPeriod, orgUserInfo.data])\n useEffect(()=>{\n if(orgUserInfo?.data){\n const { current_period,role } = orgUserInfo.data\n if(!current_period){\n setCurrentPeriod(null)\n if(role===\"organization_admin\") nav('/admin/period')\n else api.logout()\n }\n }\n },[api, nav, orgUserInfo.data])\n\n const refresh = useCallback(()=>{\n authUserInfo.mutate()\n orgUserInfo.mutate()\n },[authUserInfo, orgUserInfo])\n\n\n const state = {\n userInfo,\n organization,\n currentPeriod, setCurrentPeriod,\n selectedPeriod, setSelectedPeriod,\n refresh\n }\n\n var redirectWhenNoPeriod = !currentPeriod && location.pathname !== '/admin/period'\n if (!organization || !userInfo || redirectWhenNoPeriod) return null\n return (\n \n {children}\n \n )\n}\n\nexport default AuthDataProvider","import { MenuItem, TextField } from '@material-ui/core';\nimport { useEffect, useMemo, useState } from 'react';\nimport useApi from 'src/api/api';\nimport { useAuthData } from 'src/provider/AuthDataProvider';\nimport { useLocale } from 'src/provider/LocaleProvider';\n\nconst _ = require('lodash');\n\nexport default function PeriodSelector({\n default_id,\n selected = {},\n setSelected = () => {},\n global,\n periods,\n ...rest\n}) {\n const { t } = useLocale();\n const [periodList, setPeriodList] = useState([]);\n const { currentPeriod, selectedPeriod } = useAuthData();\n const api = useApi();\n\n useEffect(() => {\n if (periods) {\n setPeriodList(periods);\n } else {\n api.getPeriodList().then((res) => {\n setPeriodList(res.data);\n });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [periods]);\n\n useEffect(() => {\n let temp = default_id || selectedPeriod || currentPeriod;\n if (!selected) setSelected(temp);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [selectedPeriod, currentPeriod, periodList]);\n\n const reversePeriodList = useMemo(() => {\n return _.reverse(periodList);\n }, [periodList]);\n\n return (\n setSelected(e.target.value)}\n style={{ minWidth: '200px' }}\n {...rest}\n >\n {_.map(reversePeriodList, (period) => {\n return (\n \n {`${period.name}${currentPeriod === period._id ? '*' : ''}`}\n \n );\n })}\n \n );\n}\n","import AddIcon from '@material-ui/icons/Add';\nimport AirplayIcon from '@material-ui/icons/Airplay';\nimport ArrowBackIcon from '@material-ui/icons/ArrowBack';\nimport ArrowLeftIcon from '@material-ui/icons/ArrowLeft';\nimport ArrowRightIcon from '@material-ui/icons/ArrowRight';\nimport AttachFileIcon from '@material-ui/icons/AttachFile';\nimport CakeIcon from '@material-ui/icons/Cake';\nimport CheckIcon from '@material-ui/icons/Check';\nimport CloseIcon from '@material-ui/icons/Close';\nimport DeleteIcon from '@material-ui/icons/Delete';\nimport DeleteForeverIcon from '@material-ui/icons/DeleteForever';\nimport EditIcon from '@material-ui/icons/Edit';\nimport EmailIcon from '@material-ui/icons/Email';\nimport GetAppIcon from '@material-ui/icons/GetApp';\nimport HelpOutlineIcon from '@material-ui/icons/HelpOutline';\nimport InputIcon from '@material-ui/icons/Input';\nimport LaunchIcon from '@material-ui/icons/Launch';\nimport NoticeIcon from '@material-ui/icons/Notifications';\nimport PublishIcon from '@material-ui/icons/Publish';\nimport RemoveIcon from '@material-ui/icons/Remove';\nimport SearchIcon from '@material-ui/icons/Search';\nimport SportsEsportsIcon from '@material-ui/icons/SportsEsports';\nimport FavouriteIcon from '@material-ui/icons/Star';\nimport VisibilityIcon from '@material-ui/icons/Visibility';\nimport VpnKeyIcon from '@material-ui/icons/VpnKey';\nimport PictureAsPdfIcon from '@material-ui/icons/PictureAsPdf';\nimport { FaAward } from 'react-icons/fa';\nimport { FiHelpCircle } from 'react-icons/fi';\nimport { IoIosHelpCircleOutline } from 'react-icons/io';\nimport { IoHelpCircleOutline, IoHelpSharp } from 'react-icons/io5';\nimport InsertDriveFileIcon from '@material-ui/icons/InsertDriveFile';\nimport SdStorageIcon from '@material-ui/icons/SdStorage';\n\nconst Icons = {\n AddIcon,\n CakeIcon,\n SearchIcon,\n DeleteIcon,\n RemoveIcon,\n VisibilityIcon, //Eye Icon\n EditIcon, // Pen\n DeleteForeverIcon,\n AttachFileIcon,\n CheckIcon,\n CloseIcon,\n GetAppIcon,\n FavouriteIcon,\n ArrowLeftIcon,\n ArrowRightIcon,\n ArrowBackIcon,\n AirplayIcon,\n PublishIcon,\n NoticeIcon,\n InputIcon,\n VpnKeyIcon,\n EmailIcon,\n SportsEsportsIcon,\n HelpOutlineIcon,\n LaunchIcon,\n FiHelpCircle,\n IoIosHelpCircleOutline,\n IoHelpCircleOutline,\n IoHelpSharp,\n FaAward,\n PictureAsPdfIcon,\n InsertDriveFileIcon,\n SdStorageIcon\n};\n\nexport default Icons;\n","import { useState } from 'react'\nimport { Link as RouterLink, NavLink, useNavigate } from 'react-router-dom'\nimport PropTypes from 'prop-types'\nimport {\n AppBar,\n Avatar,\n Badge,\n Box,\n Hidden,\n IconButton,\n Toolbar,\n Tooltip,\n Typography\n} from '@material-ui/core'\nimport MenuIcon from '@material-ui/icons/Menu'\nimport NotificationsIcon from '@material-ui/icons/NotificationsOutlined'\nimport InputIcon from '@material-ui/icons/Input'\nimport Logo from '../Logo'\nimport { useAuthData } from 'src/provider/AuthDataProvider'\nimport { useLocale } from 'src/provider/LocaleProvider'\nimport PeriodSelector from 'src/components/PeriodSelector'\nimport Icons from 'src/icons'\n\nconst DashboardNavbar = ({ onMobileNavOpen, ...rest }) => {\n const navigate = useNavigate()\n const { t } = useLocale()\n const { translate } = useLocale()\n\n const handleLogout = () => {\n localStorage.removeItem('token')\n navigate('/sign-in', { replace: true })\n }\n\n const { organization, userInfo } = useAuthData()\n const checkRole = (userInfo) => {\n if (!userInfo)\n return \"\"\n if (userInfo.role === 'user' && userInfo.isParent) \n return (t('login_label_parent'))\n if (userInfo.role === 'admin' || userInfo.role ==='organization_admin')\n return (t('login_label_admin'))\n\n return (t('login_label_user'))\n }\n\n return (\n \n \n \n \n \n \n \n \n \n \n {checkRole(userInfo)}\n \n {organization.logo && }\n \n \n {translate(organization.name)}\n \n \n \n \n \n \n \n \n \n )\n}\n\nDashboardNavbar.propTypes = {\n onMobileNavOpen: PropTypes.func\n}\n\nexport default DashboardNavbar\n","import {\n NavLink,\n matchPath,\n useLocation\n} from 'react-router-dom'\nimport PropTypes from 'prop-types'\nimport { Button, ListItem } from '@material-ui/core'\nimport { useEffect } from 'react'\n\nconst NavItem = ({\n href,\n icon: Icon,\n title,\n ...rest\n}) => {\n const location = useLocation()\n\n const active = href ? !!matchPath({\n path: href,\n end: true\n }, location.pathname) : false\n\n return (\n \n \n {Icon && (\n \n )}\n \n {title}\n \n \n \n )\n}\n\nNavItem.propTypes = {\n href: PropTypes.string,\n icon: PropTypes.elementType,\n title: PropTypes.string\n}\n\nexport default NavItem\n","import {\n NavLink,\n matchPath,\n useLocation\n} from 'react-router-dom'\nimport PropTypes from 'prop-types'\nimport { Button, ListItem } from '@material-ui/core'\nimport { useEffect } from 'react'\n\nconst NavCategory = ({\n href,\n icon: Icon,\n title,\n isActive,\n ...rest\n}) => {\n const location = useLocation()\n\n const active = href ? !!matchPath({\n path: href,\n end: true\n }, location.pathname) : false\n\n return (\n \n \n {Icon && (\n \n )}\n \n {title}\n \n \n \n )\n}\n\nNavCategory.propTypes = {\n href: PropTypes.string,\n icon: PropTypes.elementType,\n title: PropTypes.string\n}\n\nexport default NavCategory\n","import DashboardIcon from '@material-ui/icons/Dashboard';\n\nimport PeopleIcon from '@material-ui/icons/People';\nimport SettingsIcon from '@material-ui/icons/Settings';\nimport GavelIcon from '@material-ui/icons/Gavel';\nimport InsertDriveFileIcon from '@material-ui/icons/InsertDriveFile';\nimport CakeIcon from '@material-ui/icons/Cake';\nimport AssignmentIcon from '@material-ui/icons/Assignment';\nimport FolderIcon from '@material-ui/icons/Folder';\n\nimport Icons from 'src/icons';\nconst _ = require('lodash');\n\nexport default (t, modules = {}) => [\n {\n name: t('dashboard_title'),\n href: '/admin/dashboard',\n icon: () => \n },\n {\n name: t('accounts'),\n icon: () => ,\n pages: [\n {\n href: '/admin/student_list',\n title: t('users_title')\n }\n ]\n },\n {\n name: t('points'),\n icon: () => ,\n pages: [\n {\n href: '/admin/pointrule_categories',\n title: t('rule_category'),\n exact: true\n },\n {\n href: '/admin/pointrules',\n title: t('pointRules_title'),\n exact: true\n },\n {\n href: '/admin/redeem_pointrules',\n title: t('prize_rules'),\n exact: true\n },\n {\n href: '/admin/reward',\n title: t('add_point'),\n exact: true\n },\n {\n href: '/admin/redeem',\n title: t('redeem_prizes'),\n exact: true\n },\n {\n href: '/admin/history',\n title: t('history_title'),\n exact: true\n }\n ]\n },\n {\n name: t('attendances'),\n icon: () => ,\n pages: [\n {\n href: '/admin/attendancerules',\n title: t('attendanceRules_title'),\n exact: true\n },\n {\n href: '/admin/checkin',\n title: t('checkin'),\n exact: true\n },\n {\n href: '/admin/checkout',\n title: t('checkout'),\n exact: true\n },\n {\n href: '/admin/attendance_history',\n title: t('attendance_title'),\n exact: true\n }\n ]\n },\n {\n name: t('badges'),\n show: modules.badge,\n icon: () => ,\n pages: [\n {\n href: '/admin/badge_rule',\n title: t('badge_rule')\n },\n {\n href: '/admin/badge_list',\n title: t('badges')\n }\n ]\n },\n {\n name: t('birthday'),\n show: modules.birthday,\n icon: () => ,\n href: '/admin/birthdaysetting'\n },\n {\n name: t('learning_resource'),\n show: modules.learningResource,\n icon: () => ,\n href: '/admin/learningresource'\n },\n {\n name: t('homework'),\n show: modules.homework,\n icon: () => ,\n pages: [\n {\n href: '/admin/homeworksubmitrecord',\n title: t('submitted_homework')\n },\n {\n href: '/admin/unfinishedhomeworkrecord',\n title: t('unfinished_homework')\n },\n {\n href: '/admin/homeworkhistory',\n title: t('homework_record_history')\n },\n {\n href: '/admin/homeworkstatistics',\n title: t('homework_statistics')\n }\n ]\n },\n {\n name: t('notice'),\n show: modules.notice,\n icon: () => ,\n href: '/admin/notice'\n },\n {\n name: t('memo'),\n show: modules.memo,\n icon: () => ,\n href: '/admin/memo'\n },\n {\n name: t('games'),\n show: modules.game,\n icon: () => ,\n href: '/admin/games'\n },\n {\n name: t('settings_title'),\n icon: () => ,\n href: '/admin/settings'\n },\n {\n name: t('external_links'),\n icon: () => ,\n href: '/admin/external_links'\n }\n];\n","import {\n Box,\n Button,\n Collapse,\n Divider,\n Drawer,\n Hidden,\n List,\n ListItem\n} from '@material-ui/core';\nimport PropTypes from 'prop-types';\nimport { useEffect, useMemo, useState } from 'react';\nimport { matchPath, useLocation } from 'react-router-dom';\nimport NavItem from '../NavItem';\n\nimport ExpandLessIcon from '@material-ui/icons/ExpandLess';\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\nimport { useLocale } from 'src/provider/LocaleProvider';\n\nimport { makeStyles } from '@material-ui/styles';\nimport PerfectScrollbar from 'react-perfect-scrollbar';\nimport useApi from 'src/api/api';\nimport Icons from 'src/icons';\nimport { useAuthData } from 'src/provider/AuthDataProvider';\nimport NavCategory from '../NavCategory';\nimport adminCategory from './SidebarCategory/adminCategory';\nimport organizationAdminCategory from './SidebarCategory/organizationAdminCategory';\nimport parentCategory from './SidebarCategory/parentCategory';\nimport studentCategory from './SidebarCategory/studentCategory';\n\nconst useStyles = makeStyles({\n item: {\n fontWeight: 'medium',\n // fontSize: '1rem',\n justifyContent: 'flex-start',\n letterSpacing: 0,\n textTransform: 'none',\n width: '100%'\n }\n});\n\nconst DashboardSidebar = ({ onMobileClose: onClose, openMobile: isOpen }) => {\n const location = useLocation();\n const api = useApi();\n const { t } = useLocale();\n const classes = useStyles();\n\n const [openState, setOpenState] = useState({});\n const { userInfo, organization } = useAuthData();\n\n const handleToggleExpand = (index) => {\n setOpenState((s) => ({ ...s, [index]: s[index] ? false : true }));\n };\n\n const handleExpand = (index, flag = true) => {\n setOpenState((s) => ({ ...s, [index]: flag }));\n };\n\n const categories = useMemo(() => {\n if (userInfo?.role === 'organization_admin') {\n return organizationAdminCategory(t, organization.modules);\n } else if (userInfo?.role === 'admin') {\n return adminCategory(t, organization.modules);\n } else if (userInfo.isParent) {\n return parentCategory(t, organization.modules);\n } else {\n return studentCategory(t, organization.modules);\n }\n }, [organization.modules, t, userInfo]);\n\n useEffect(() => {\n if (categories && categories.length > 0) {\n for (\n let category_index = 0;\n category_index < categories.length;\n category_index++\n ) {\n const category = categories[category_index];\n if (category.pages && category.pages.length > 0) {\n for (\n let category_page_index = 0;\n category_page_index < category.pages.length;\n category_page_index++\n ) {\n const page = category.pages[category_page_index];\n if (\n page.href &&\n matchPath(\n {\n path: page.href,\n end: true\n },\n location.pathname\n )\n ) {\n handleExpand(category_index);\n return;\n }\n }\n }\n }\n }\n }, [categories, location.pathname]);\n\n const content = (\n \n \n \n \n \n {categories?.map((category, index) => {\n if (category.show === false) return null;\n if (!category.href && !category.pages) return null;\n if (category.href) {\n return (\n \n \n {/* */}\n \n );\n }\n return (\n \n \n handleToggleExpand(index)}\n className={classes.item}\n sx={{\n color: 'text.primary',\n py: 1.25,\n '& svg': {\n mr: 1\n }\n }}\n >\n {category.icon && }\n {category.name}\n \n {openState[index] ? (\n \n ) : (\n \n )}\n \n \n {category.pages.map((item, page_index) => {\n if (item.show === false) return null;\n if (!item.href) return null;\n return (\n \n \n \n );\n })}\n {/* */}\n \n );\n })}\n \n api.logout()}\n className={classes.item}\n sx={{\n color: 'text.primary',\n py: 1.25,\n '& svg': {\n mr: 1\n }\n }}\n >\n \n {t('sign_out')}\n \n \n \n \n \n \n \n \n );\n\n return (\n <>\n \n \n {content}\n \n \n \n \n {content}\n \n \n \n );\n};\n\nDashboardSidebar.propTypes = {\n onMobileClose: PropTypes.func,\n openMobile: PropTypes.bool\n};\n\nDashboardSidebar.defaultProps = {\n onMobileClose: () => {},\n openMobile: false\n};\n\nexport default DashboardSidebar;\n","import DashboardIcon from '@material-ui/icons/Dashboard';\n\nimport BusinessIcon from '@material-ui/icons/Business';\nimport PeopleIcon from '@material-ui/icons/People';\nimport SettingsIcon from '@material-ui/icons/Settings';\nimport GavelIcon from '@material-ui/icons/Gavel';\nimport InsertDriveFileIcon from '@material-ui/icons/InsertDriveFile';\nimport CakeIcon from '@material-ui/icons/Cake';\nimport AssignmentIcon from '@material-ui/icons/Assignment';\nimport SubjectIcon from '@material-ui/icons/Subject';\nimport FolderIcon from '@material-ui/icons/Folder';\n\nimport Icons from 'src/icons';\nconst _ = require('lodash');\n\nexport default (t, modules = {}) => [\n {\n name: t('dashboard_title'),\n icon: () => ,\n href: '/admin/dashboard'\n },\n {\n name: t('organization'),\n icon: () => ,\n pages: [\n {\n exact: true,\n href: '/admin/organizationinfo',\n title: t('organization')\n },\n {\n href: '/admin/period',\n exact: true,\n title: t('period_title')\n },\n {\n title: t('organizationFilter_title'),\n href: '/admin/organizationfilter'\n }\n ]\n },\n {\n name: t('accounts'),\n icon: () => ,\n pages: [\n {\n href: '/admin/student_list',\n title: t('users_title')\n },\n {\n href: '/admin/admin_list',\n title: t('admin_title')\n }\n ]\n },\n {\n name: t('points'),\n icon: () => ,\n pages: [\n {\n href: '/admin/pointrule_categories',\n title: t('rule_category'),\n exact: true\n },\n {\n href: '/admin/pointrules',\n title: t('pointRules_title'),\n exact: true\n },\n {\n href: '/admin/redeem_pointrules',\n title: t('prize_rules'),\n exact: true\n },\n {\n href: '/admin/reward',\n title: t('add_point'),\n exact: true\n },\n {\n href: '/admin/redeem',\n title: t('redeem_prizes'),\n exact: true\n },\n {\n href: '/admin/history',\n title: t('history_title'),\n exact: true\n }\n ]\n },\n {\n name: t('attendances'),\n icon: () => ,\n pages: [\n {\n href: '/admin/attendancerules',\n title: t('attendanceRules_title'),\n exact: true\n },\n {\n href: '/admin/checkin',\n title: t('checkin'),\n exact: true\n },\n {\n href: '/admin/checkout',\n title: t('checkout'),\n exact: true\n },\n {\n href: '/admin/attendance_history',\n title: t('attendance_title'),\n exact: true\n }\n ]\n },\n {\n name: t('badges'),\n show: modules.badge,\n icon: () => ,\n pages: [\n {\n href: '/admin/badge_rule',\n title: t('badge_rule')\n },\n {\n href: '/admin/badge_list',\n title: t('badges')\n }\n ]\n },\n {\n name: t('birthday'),\n show: modules.birthday,\n icon: () => ,\n href: '/admin/birthdaysetting'\n },\n {\n name: t('learning_resource'),\n show: modules.learningResource,\n icon: () => ,\n href: '/admin/learningresource'\n },\n {\n name: t('homework'),\n show: modules.homework,\n icon: () => ,\n pages: [\n {\n href: '/admin/homeworksubmitrecord',\n title: t('submitted_homework')\n },\n {\n href: '/admin/unfinishedhomeworkrecord',\n title: t('unfinished_homework')\n },\n {\n href: '/admin/homeworkhistory',\n title: t('homework_record_history')\n },\n {\n href: '/admin/homeworktype',\n title: t('homework_code')\n },\n {\n href: '/admin/homeworkstatistics',\n title: t('homework_statistics')\n },\n {\n href: '/admin/homeworksetting',\n title: t('settings')\n }\n ]\n },\n {\n name: t('subject'),\n icon: () => ,\n href: '/admin/subjectsetting'\n },\n {\n name: t('notice'),\n show: modules.notice,\n icon: () => ,\n href: '/admin/notice'\n },\n {\n name: t('memo'),\n show: modules.memo,\n icon: () => ,\n href: '/admin/memo'\n },\n {\n name: t('games'),\n show: modules.game,\n icon: () => ,\n href: '/admin/games'\n },\n {\n name: t('devices_title'),\n icon: () => ,\n href: '/admin/device'\n },\n {\n name: t('settings_title'),\n icon: () => ,\n href: '/admin/settings'\n },\n {\n name: t('external_links'),\n icon: () => ,\n href: '/admin/external_links'\n }\n];\n","import DashboardIcon from '@material-ui/icons/Dashboard';\n\nimport PeopleIcon from '@material-ui/icons/People';\nimport SettingsIcon from '@material-ui/icons/Settings';\nimport AssignmentIcon from '@material-ui/icons/Assignment';\nimport Icons from 'src/icons';\n\nimport { FaAward } from 'react-icons/fa';\nconst _ = require('lodash');\n\nexport default (t, modules = {}) => [\n {\n name: t('overview_title'),\n icon: () => ,\n href: '/user/overview'\n },\n {\n name: t('profile_title'),\n icon: () => ,\n href: '/user/profile'\n },\n {\n show: modules.badge,\n name: t('badge'),\n icon: () => ,\n href: '/user/badge'\n },\n {\n name: t('notice'),\n show: modules.notice,\n icon: () => ,\n href: '/user/notice'\n },\n\n {\n name: t('memo'),\n show: modules.memo,\n icon: () => ,\n href: '/user/memo'\n },\n {\n name: t('games'),\n show: modules.game,\n icon: () => ,\n href: '/user/games'\n },\n {\n name: t('homework_statistics'),\n icon: () => ,\n href: '/user/studentHomeworkStatistics'\n },\n {\n name: t('settings_title'),\n icon: () => ,\n href: '/user/settings'\n }\n];\n","import AssignmentIcon from '@material-ui/icons/Assignment';\nimport DashboardIcon from '@material-ui/icons/Dashboard';\nimport GavelIcon from '@material-ui/icons/Gavel';\nimport PeopleIcon from '@material-ui/icons/People';\nimport SettingsIcon from '@material-ui/icons/Settings';\n\nimport Icons from 'src/icons';\n\nexport default (t, modules = {}) => [\n {\n name: t('overview_title'),\n icon: () => ,\n href: '/user/overview'\n },\n {\n name: t('profile_title'),\n icon: () => ,\n href: '/user/profile'\n },\n {\n name: t('add_point'),\n icon: () => ,\n href: '/user/reward'\n },\n {\n name: t('homework_statistics'),\n icon: () => ,\n href: '/user/studentHomeworkStatistics'\n },\n {\n name: t('settings_title'),\n icon: () => ,\n href: '/user/settings'\n },\n {\n name: t('notice'),\n show: modules.notice,\n icon: () => ,\n href: '/user/notice'\n },\n\n {\n name: t('memo'),\n show: modules.memo,\n icon: () => ,\n href: '/user/memo'\n }\n];\n","import { useEffect, useState } from 'react'\nimport { Outlet, useLocation, useNavigate } from 'react-router-dom'\nimport { styled } from '@material-ui/core/styles';\nimport DashboardNavbar from './DashboardNavbar'\nimport DashboardSidebar from './DashboardSidebar'\n\nimport { useLocale } from 'src/provider/LocaleProvider'\nimport AuthDataProvider, { useAuthData } from 'src/provider/AuthDataProvider'\nimport useApi from 'src/api/api';\nimport { Box } from '@material-ui/core';\n\nconst DashboardLayoutRoot = styled('div')(\n ({ theme }) => ({\n backgroundColor: '#f4f6f8',\n display: 'flex',\n height: '100%',\n overflow: 'hidden',\n width: '100%'\n })\n)\n\nconst DashboardLayoutWrapper = styled('div')(\n ({ theme }) => ({\n display: 'flex',\n flex: '1 1 auto',\n overflow: 'hidden',\n paddingTop: 64,\n [theme.breakpoints.up('md')]: {\n paddingLeft: 256\n }\n })\n)\n\nconst DashboardLayoutContainer = styled('div')({\n display: 'flex',\n flex: '1 1 auto',\n overflow: 'hidden'\n})\n\nconst DashboardLayoutContent = styled('div')({\n display: 'flex',\n flexDirection: \"column\",\n flex: '1 1 auto',\n height: '100%',\n overflow: 'auto'\n})\n\nconst Footer = styled('div')({\n textAlign: 'center',\n margin: '8px 0px',\n fontSize: '12px'\n})\n\n\n\nconst DashboardLayout = ({ role = 'user' }) => {\n const [isNavigationDrawerOpen, setIsNavigationDrawerOpen] = useState(false)\n const location = useLocation()\n useEffect(() => {\n document.getElementById(\"body\") && document.getElementById(\"body\").scrollTo(0, 0)\n }, [location.pathname])\n useEffect(() => {\n setIsNavigationDrawerOpen(false)\n }, [location.pathname])\n\n return (\n \n \n setIsNavigationDrawerOpen(true)}\n />\n setIsNavigationDrawerOpen(false)}\n openMobile={isNavigationDrawerOpen}\n />\n \n \n \n \n \n
\n Copyright © {new Date().getFullYear()} Animae Technologies Limited. All Right Reserved\n
\n
\n
\n
\n
\n
\n )\n}\n\nexport default DashboardLayout\n","import { Link as RouterLink } from 'react-router-dom';\nimport { AppBar, Toolbar } from '@material-ui/core';\nimport Logo from '../Logo';\n\nconst MainNavbar = (props) => (\n \n \n \n \n \n \n \n);\n\nexport default MainNavbar;\n","import { Outlet } from 'react-router-dom';\nimport { styled } from '@material-ui/core/styles';\nimport MainNavbar from './MainNavbar';\nimport { Box } from '@material-ui/core';\n\nconst MainLayoutRoot = styled('div')(\n ({ theme }) => ({\n backgroundColor: theme.palette.background.paper,\n display: 'flex',\n height: '100%',\n overflow: 'hidden',\n width: '100%'\n })\n);\n\nconst MainLayoutWrapper = styled('div')({\n display: 'flex',\n flex: '1 1 auto',\n overflow: 'hidden',\n paddingTop: 64\n});\n\nconst MainLayoutContainer = styled('div')({\n display: 'flex',\n flex: '1 1 auto',\n overflow: 'hidden'\n});\n\nconst MainLayoutContent = styled('div')({\n display: 'flex',\n flexDirection: \"column\",\n flex: '1 1 auto',\n height: '100%',\n overflow: 'auto'\n});\n\n\nconst Footer = styled('div')({\n textAlign: 'center',\n margin: '8px 0px',\n fontSize: '16px'\n})\n\n\nconst MainLayout = () => (\n \n \n \n \n \n \n \n
\n Copyright © {new Date().getFullYear()} Animae Technologies Limited. All Right Reserved\n
\n
\n
\n
\n
\n);\n\nexport default MainLayout;\n","import { useEffect, useMemo, useState } from 'react'\nimport PropTypes from 'prop-types'\nimport moment from 'moment'\nimport PerfectScrollbar from 'react-perfect-scrollbar'\nimport {\n Avatar,\n Box,\n Card,\n Checkbox,\n Table,\n TableBody,\n TableCell,\n TableHead,\n TablePagination,\n TableRow,\n TableSortLabel,\n Typography\n} from '@material-ui/core'\nimport { makeStyles } from '@material-ui/styles'\nimport { useLocale } from 'src/provider/LocaleProvider'\nimport classNames from 'classnames'\nconst _ = require('lodash')\n\nconst useStyles = makeStyles({\n table: {\n \"& .MuiTableRow-root\": {\n height: '50px'\n },\n \"& .MuiTableCell-root\": {\n whiteSpace: 'nowrap',\n textAlign: 'center'\n // borderLeft: \"1px solid rgba(224, 224, 224, 1)\",\n },\n \"& .MuiTableSortLabel-icon\": {\n opacity: 0.5,\n },\n \"& .Mui-active .MuiTableSortLabel-icon\": {\n opacity: 1,\n color: 'limegreen',\n },\n \"& .MuiCheckbox-root\": {\n padding: '4px'\n }\n },\n})\n\n\n\nconst DataTable = ({\n rows = [], row_id = '_id', heads = [], _orderBy = 'created_at', _order = 'desc', placeHolder = '-', className = '', loading = false,\n rowClassName = new Function(),\n rowsPerPage = 10,\n rowsPerPageOptions = [5, 10, 25],\n rowsRef,\n rowOnClick = new Function(),\n checked = [],\n setChecked = new Function(),\n ...rest\n}) => {\n const classes = useStyles()\n\n const [page, setPage] = useState(0)\n\n const [order, setOrder] = useState(_order)\n const [orderBy, setOrderBy] = useState(_orderBy)\n const [limit, setLimit] = useState(rowsPerPage)\n\n const sorted = useMemo(() => _.orderBy(rows, [orderBy], [order]), [rows, orderBy, order])\n const rowLength = _.size(sorted)\n const chunks = _.chunk(sorted, limit)\n const emptyRows = limit - Math.min(limit, rowLength - page * limit)\n const headCells = heads\n const bodyCells = _.size(chunks) > 0 && chunks[page] ? chunks[page] : []\n // const [checked, setChecked] = useState([])\n\n const handleLimitChange = (event) => {\n setLimit(event.target.value)\n }\n\n useEffect(() => {\n if (rows && page * limit > rows.length) {\n setPage(0)\n }\n }, [rows?.length, limit]);\n\n const handlePageChange = (event, newPage) => {\n setPage(newPage)\n }\n\n const handleSort = (cell) => {\n if (orderBy == cell.value) {\n setOrder(order === 'asc' ? 'desc' : 'asc')\n }\n else {\n setOrderBy(cell.value)\n }\n }\n\n useEffect(() => {\n if (rowsRef && rowsRef.current) {\n rowsRef.current = sorted\n }\n }, [sorted]);\n\n\n\n /* --------------checkbox------------------------ */\n const handleCheckAll = () => {\n var newChecked = _.toArray(checked)\n if (_.size(checked) <= 0) {\n newChecked = bodyCells\n }\n else if (_.size(checked) >= _.size(bodyCells)) {\n newChecked = []\n }\n else {\n newChecked = []\n }\n setChecked(newChecked)\n }\n\n const handleCheck = (row) => {\n var newChecked = _.toArray(checked)\n if (isChecked(row._id)) {\n _.pull(newChecked, row)\n }\n else {\n newChecked.push(row)\n }\n\n setChecked(newChecked)\n }\n\n const isChecked = (id) => _.findIndex(checked, { _id: id }) >= 0\n /* --------------------------------------------- */\n\n\n const { t } = useLocale()\n\n return (\n\n \n \n \n {/* {'https://discord.gg/SCGddHEM'} */}\n \n \n \n {\n _.map(headCells, (cell, index) => {\n if (cell.type === 'checkbox')\n return (\n \n 0 && _.size(checked) < _.size(bodyCells) && _.size(bodyCells) > 0}\n checked={_.size(checked) == _.size(bodyCells) && _.size(bodyCells) > 0}\n onClick={handleCheckAll}\n />\n \n )\n return (\n \n {cell.sort === true\n ? handleSort(cell)}\n hideSortIcon={false}\n >\n {cell.label}\n \n : _.get(cell, 'label')\n }\n )\n })\n }\n \n \n \n {_.map(bodyCells, (bodyCell, index) => (\n {\n rowOnClick(bodyCell)\n }}\n >\n {_.map(headCells, cell => {\n var render = ''\n if (cell.content) {\n render = cell.content(bodyCell, page * limit + index)\n }\n else {\n render = _.get(bodyCell, cell.value)\n }\n if (cell.translate) {\n render = t(_.toString(render))\n }\n if (typeof render != 'number' && (_.isNil(render) || render == '')) {\n render = cell.placeHolder || placeHolder\n }\n if (cell.type === 'checkbox')\n render =\n {\n if (!e) var e = window.event;\n e.cancelBubble = true;\n if (e.stopPropagation) e.stopPropagation();\n handleCheck(bodyCell)\n }}\n />\n return (\n \n {render}\n \n )\n })}\n \n ))}\n {emptyRows > 0 && (\n \n \n {rowLength === 0 && !loading && {t('no_records')}}\n \n \n )}\n \n
\n
\n
\n t('label_of', { a: from, b: to, c: count })}\n />\n
\n )\n}\n\n\nexport default DataTable\n","\n\nconst json2csv = require('json2csv').parse\nconst _ = require('lodash')\nconst csv = require('csvtojson')\nconst moment = require('moment-timezone')\nexport default {\n readFile: function (callBack, accept = 'image/*') {\n var input = document.createElement('input')\n input.type = 'file'\n input.accept = accept\n input.onchange = function (e) {\n if (e.target.files && e.target.files[0]) {\n var file = e.target.files[0]\n callBack(file)\n e.target.value = null\n }\n }\n input.click()\n },\n readFileAsText: async function (file) {\n return new Promise((resolve, reject) => {\n try {\n const fileReader = new FileReader()\n fileReader.onload = (e) => {\n resolve(e.target.result)\n }\n fileReader.readAsText(file, 'utf-8')\n } catch (error) {\n reject(error)\n }\n\n })\n },\n csv2JsonArray: async function (string, fields) {\n const jsonArray = await csv().fromString(string)\n if (fields) {\n const maped = _.map(jsonArray, item => {\n var temp = {}\n _.keys(item).forEach(f => {\n var fname = _.get(fields, f, f)\n _.set(temp, fname, item[f])\n })\n\n return temp\n })\n return maped\n }\n return jsonArray\n },\n exportCsv: function (array, fields, filename) {\n const csv = json2csv(array, { fields: fields })\n var hiddenElement = document.createElement('a')\n hiddenElement.href = 'data:text/csv;charset=utf-8,%EF%BB%BF' + encodeURI(csv)\n hiddenElement.target = '_blank'\n hiddenElement.download = `${filename}_${moment().format('YYYYMMDD-HHmmss')}.csv`\n hiddenElement.click()\n },\n searchFilter: (rows, search, searchFields) => {\n var fieldMatched = (row, str, field) => {\n var text = ''\n if (_.isString(field)) {\n text = _.get(row, field)\n }\n else if (_.isFunction(field)) {\n text = field(row)\n }\n return new RegExp(_.toString(str).replace(/([.?*+^$[\\]\\\\(){}|-])/g, \"\\\\$1\"), 'i').test(_.toString(text))\n }\n\n return _.filter(rows, row => {\n if (_.isArray(search)) {\n return _.every(searchFields, (searchField, index) => {\n var arr = _.split(_.get(search, index, ''), ' ')\n if (arr.length == 0 || search == '') return true\n return _.every(arr, s => {\n return _.some(searchField, f => fieldMatched(row, s, f))\n })\n })\n }\n else if (_.isString(search)) {\n var arr = _.split(search, ' ')\n if (arr.length == 0 || search == '') return true\n return _.every(arr, s => {\n return _.some(searchFields, f => fieldMatched(row, s, f))\n })\n }\n else return true\n })\n },\n /**\n * \n * @param {*} from DD-MM-YYYY\n * @param {*} to DD-MM-YYYY\n * @param {*} interval number\n * @returns \n */\n datesArray: (from, to, interval) => {\n let ret = [];\n const fromDate = moment(from, 'DD-MM-YYYY');\n const toDate = moment(to, 'DD-MM-YYYY');\n let date = fromDate.add(interval, 'days');\n while (toDate >= date) {\n ret.push(date.format('DD-MM-YYYY'));\n date = moment(date).add(interval, 'days');\n }\n return ret;\n },\n /**\n * \n * @param {*} from DD-MM-YYYY\n * @param {*} to DD-MM-YYYY\n * @param {*} interval number\n * @returns \n */\n monthsArray: (from, to, interval) => {\n let ret = [];\n const fromDate = moment(from, 'MM-YYYY');\n const toDate = moment(to, 'MM-YYYY');\n let date = fromDate.add(interval, 'months');\n while (toDate >= date) {\n ret.push(date.format('MM-YYYY'));\n date = moment(date).add(interval, 'months');\n }\n return ret;\n }\n}","import { useEffect, useMemo, useState } from 'react'\nimport PropTypes from 'prop-types'\nimport moment from 'moment'\nimport PerfectScrollbar from 'react-perfect-scrollbar'\nimport {\n Avatar,\n Box,\n Card,\n Checkbox,\n Table,\n TableBody,\n TableCell,\n TableHead,\n TablePagination,\n TableRow,\n TableSortLabel,\n Typography\n} from '@material-ui/core'\nimport { makeStyles } from '@material-ui/styles'\nimport { useLocation } from 'react-router'\nimport { useLocale } from 'src/provider/LocaleProvider'\nimport utils from 'src/utils/utils'\nvar classNames = require('classnames');\n\nconst _ = require('lodash')\n\nconst useStyles = makeStyles({\n table: {\n // border: '2px solid black',\n \"& .MuiTableRow-root\": {\n height: '40px'\n },\n \"& .MuiTableCell-root\": {\n whiteSpace: 'nowrap',\n // borderLeft: \"1px solid rgba(224, 224, 224, 1)\"\n },\n \"& .MuiTableSortLabel\": {\n \"&-icon\": {\n opacity: 0.5\n },\n \"&-active\": {\n opacity: 1,\n \"& .MuiTableSortLabel-icon\": {\n color: 'limegreen !important'\n },\n // \"& .MuiTableSortLabel-iconDirectionDesc\": {\n // color: 'red !important'\n // }\n }\n\n }\n }\n})\n\nconst DataTableNoLimit = ({ rows = [], row_id = '_id', rowsRef, heads = [], placeHolder = '-', _orderBy = 'created_at', _order = 'desc', loading = true, className = '', ...rest }) => {\n\n const classes = useStyles()\n\n const [order, setOrder] = useState(_order)\n const [orderBy, setOrderBy] = useState(_orderBy)\n const sorted = useMemo(() => _.orderBy(rows, [orderBy], [order]), [rows, orderBy, order])\n const rowLength = _.size(sorted)\n const { t } = useLocale()\n const headCells = heads\n const bodyCells = sorted\n\n useEffect(() => {\n if (rowsRef && rowsRef.current) {\n rowsRef.current = sorted\n }\n }, [sorted]);\n\n const handleSort = (cell) => {\n if (orderBy == cell.value) {\n setOrder(order === 'asc' ? 'desc' : 'asc')\n }\n else {\n setOrderBy(cell.value)\n }\n }\n\n return (\n \n \n \n \n \n \n {\n _.map(headCells, (cell, i) => (\n \n {cell.sort === true\n ? handleSort(cell)}\n hideSortIcon={false}\n >\n {cell.label}\n \n : _.get(cell, 'label')\n }\n \n ))\n }\n \n \n \n {_.map(bodyCells, (bodyCell, index) => (\n \n {_.map(headCells, cell => {\n var render = ''\n if (cell.content) {\n render = cell.content(bodyCell, index)\n }\n else {\n render = _.get(bodyCell, cell.value)\n }\n if (cell.translate) {\n render = t(_.toString(render))\n }\n if (!render || render == '') {\n render = cell.placeHolder || placeHolder\n }\n return (\n \n {render}\n \n )\n })}\n \n ))}\n {_.size(bodyCells) == 0 &&\n \n \n {t('no_records')}\n \n \n }\n \n
\n
\n
\n
\n )\n}\n\n\nexport default DataTableNoLimit\n","import { useNavigate } from 'react-router'\nimport { Box, Typography, IconButton } from '@material-ui/core';\nimport Icons from 'src/icons';\n\nconst LayoutTitle = ({ title = '', goBack, backSrc, children }) => {\n const nav = useNavigate()\n const handleBack = () => {\n if (goBack) {\n nav(-1)\n }\n else if (backSrc) {\n nav(backSrc)\n }\n }\n\n return (\n \n \n {backSrc && \n \n }\n {title}\n \n \n {children}\n \n )\n}\n\nexport default LayoutTitle","import { useMemo } from 'react';\nimport { useLocation } from 'react-router-dom';\nimport PeriodSelector from 'src/components/PeriodSelector';\nimport { useAuthData } from 'src/provider/AuthDataProvider';\n\nexport const ALLOWED_PATHS = [\n '/admin/dashboard',\n '/admin/student_list',\n '/admin/student_list/upload',\n '/admin/reward',\n '/admin/redeem',\n '/admin/history',\n '/admin/checkin',\n '/admin/checkout',\n '/admin/attendance_history',\n '/admin/notice',\n '/admin/homeworkstatistics',\n '/user/badge',\n '/user/notice',\n '/user/studentHomeworkStatistics'\n];\nexport const READONLY_PATHS = ['/admin/reward', '/user/badge', '/user/notice'];\n\nconst PeriodSelectorV2 = () => {\n const location = useLocation();\n const authData = useAuthData();\n const visible = useMemo(() => {\n return ALLOWED_PATHS.includes(location.pathname);\n }, [location.pathname]);\n const readOnly = useMemo(() => {\n return READONLY_PATHS.includes(location.pathname);\n }, [location.pathname]);\n if (!visible) return null;\n return (\n \n );\n};\n\nexport default PeriodSelectorV2;\n","import { Helmet } from 'react-helmet';\nimport LayoutTitle from './LayoutTitle';\nimport {\n Container\n} from '@material-ui/core';\nimport PeriodSelectorV2 from './PeriodSelectorV2';\nimport { Stack } from '@mui/material';\n\n\nconst LayoutContainer = ({ helmetTitle = '', title, backSrc, goBack, children, Component = () => null, ActionComponent = () => null, }) => {\n return (\n \n \n {title || helmetTitle} - Pointant Class\n \n \n {title && }\n \n \n {children || }\n \n )\n}\nexport default LayoutContainer\n","import { Box, CircularProgress } from '@material-ui/core';\n\nconst LoadingView = () => {\n return (\n \n \n \n \n \n );\n};\n\nexport default LoadingView;\n","import { Helmet } from 'react-helmet';\nimport { Backdrop, Box, Container, Grid, Card, CardContent, Typography, CardHeader, Button, Divider, IconButton } from '@material-ui/core';\nimport { makeStyles } from '@material-ui/styles';\nimport { useEffect } from 'react';\nimport { useBackDrop } from 'src/provider/BackdropProvider';\nimport { useState } from 'react';\nimport useApi from 'src/api/api';\nimport { ArrowBack } from '@material-ui/icons';\nimport Icons from 'src/icons';\nimport DataTable from 'src/components/DataTable/DataTable';\nimport DataTableNoLimit from 'src/components/DataTable/DataTableNoLimit';\nimport _, { set } from 'lodash';\nimport { useNavigate } from 'react-router';\nimport { useAuthData } from 'src/provider/AuthDataProvider';\nimport { useLocale } from 'src/provider/LocaleProvider';\nimport { X } from 'react-feather';\nimport LayoutContainer from 'src/layout/LayoutContainer';\nimport LoadingView from 'src/components/LoadingView';\nconst moment = require('moment-timezone')\n\nconst useStyles = makeStyles(theme => ({\n root: {\n paddingTop: theme.spacing(2),\n paddingLeft: theme.spacing(4),\n paddingRight: theme.spacing(4),\n paddingBottom: theme.spacing(4),\n },\n row: {\n // height: '10px',\n // paddingBottom: theme.spacing(2),\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'flex-end',\n marginBottom: theme.spacing(1)\n // marginTop: theme.spacing(1)\n },\n\n backdrop: {\n zIndex: theme.zIndex.drawer + 1,\n color: '#fff',\n },\n\n cardTitle: {\n fontWeight: 700\n },\n\n\n tableCell: {\n \"& .MuiTableCell-root\": {\n textAlign: 'center',\n borderLeft: \"none !important\",\n },\n \"& .MuiTableRow-root\": {\n height: '60px'\n },\n }\n\n}))\n\nconst Dashboard = () => {\n const classes = useStyles()\n const loadingView = useBackDrop();\n const api = useApi()\n const nav = useNavigate()\n const { t } = useLocale()\n const { selectedPeriod, organization } = useAuthData()\n const [totalReward, setReward] = useState([])\n const [totalRedeem, setRedeem] = useState([])\n const [userRanking, setUserRanking] = useState([])\n const [classRanking, setClassRanking] = useState([])\n const [currentPeriodInfo, setCurrentPeriodInfo] = useState({\n name: '',\n start: '',\n end: ''\n })\n const [isLoading, setIsLoading] = useState(true);\n\n useEffect(async () => {\n // loadingView.open()\n setIsLoading(true);\n api.getTotalReward(selectedPeriod).then(({ data }) => { setReward(data) }).catch(e => { })\n api.getTotalRedeem(selectedPeriod).then(({ data }) => { setRedeem(data) }).catch(e => { })\n api.getUserRanking(selectedPeriod).then(({ data }) => { setUserRanking(data) }).catch(e => { })\n api.getClassRanking(selectedPeriod).then(({ data }) => { setClassRanking(data) }).catch(e => { })\n api.getCurrentPeriod(selectedPeriod).then(periodRes => {\n if (periodRes) setCurrentPeriodInfo({\n ...currentPeriodInfo,\n name: periodRes.name,\n start: periodRes.start,\n end: periodRes.end\n })\n setIsLoading(false);\n })\n\n\n // loadingView.close()\n\n }, [selectedPeriod])\n\n if(isLoading) return \n\n return (\n \n
\n {(currentPeriodInfo.start && currentPeriodInfo.end) && {`${currentPeriodInfo.start} ${t('_to_')} ${currentPeriodInfo.end}`}}\n
\n \n <>\n {organization?.banner &&\n \n \n \n }\n \n \n \n \n
\n \n {t('total_reward')}\n \n
\n {_.get(totalReward, '0.count', \"0\")}\n
\n
\n
\n \n \n \n
\n \n {t('total_redeem')}\n \n
\n {_.get(totalRedeem, '0.count', \"0\")}\n
\n
\n
\n \n \n nav('/admin/dashboard/user_ranking')}\n >\n {t('see_all')} \n \n }\n title={t('studentRankTable_title')}\n />\n \n \n index + 1 },\n { id: 'class', label: t('class'), value: 'class', },\n { id: 'name.zh', label: t('name_zh'), value: 'name.zh' },\n { id: 'name.en', label: t('name_en'), value: 'name.en', },\n { id: 'totalpoints', label: t('total_point'), value: 'totalpoints' }\n ]}\n />\n \n \n
Last Updated at {moment().format(\"YYYY-MM-DD HH:mm:ss\")}
\n\n
\n\n \n \n nav('/admin/dashboard/class_ranking')}\n >\n {t('see_all')} \n \n }\n title={t('classRankTable_title')}\n />\n \n \n index + 1 },\n { id: 'class', label: t('class'), value: 'class', },\n { id: 'totalpoints', label: t('total_point'), value: 'totalpoints' }\n ]}\n\n />\n \n \n
Last Updated at {moment().format(\"YYYY-MM-DD HH:mm:ss\")}
\n\n
\n \n
)\n}\nexport default Dashboard;\n","import { SvgIcon } from '@material-ui/core';\n\nconst Facebook = (props) => (\n \n \n \n);\n\nexport default Facebook;\n","import {\n Box,\n Button,\n Grid,\n IconButton,\n Tab,\n Tabs,\n TextField\n} from '@material-ui/core';\nimport { makeStyles } from '@material-ui/styles';\nimport { useFormik } from 'formik';\nimport { useEffect, useState } from 'react';\nimport { Helmet } from 'react-helmet';\nimport { useNavigate } from 'react-router-dom';\nimport useApi from 'src/api/api';\nimport FacebookIcon from 'src/icons/Facebook';\nimport { useLocale } from 'src/provider/LocaleProvider';\nimport { useSnack } from 'src/provider/SnackbarProvider';\nimport * as Yup from 'yup';\n\nconst _ = require('lodash');\n\nconst useStyles = makeStyles((theme) => ({\n quote: {\n backgroundColor: theme.palette.neutral,\n height: '100%',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n backgroundImage: 'url(/images/auth.png)',\n backgroundSize: 'cover',\n backgroundRepeat: 'no-repeat',\n backgroundPosition: 'center'\n },\n langIcon: {\n fontSize: '16px',\n lineHeight: '32px',\n width: '40px',\n height: '40px'\n },\n form: {},\n a: {\n '&:visited': {\n color: 'inherit'\n },\n local: {\n '&:hover': {\n cursor: 'pointer'\n }\n }\n }\n}));\n\nconst Login = () => {\n const navigate = useNavigate();\n const { t, setLanguage } = useLocale();\n const api = useApi();\n const token = localStorage.getItem('token');\n\n const snack = useSnack();\n const classes = useStyles();\n\n const [currentTab, setCurrentTab] = useState('user');\n\n const [formState, setFormState] = useState({\n isValid: false,\n values: {},\n touchedText: false,\n touchedPassword: false,\n errors: {},\n type: 'username',\n textFieldName: '用戶名稱'\n });\n\n useEffect(() => {\n if (token) {\n api.getUserInfo().then((res) => {\n if (res.data.setup_password) {\n return navigate('/reset_password', { replace: true });\n }\n if (res.data.role == 'user') {\n navigate('/user', { replace: true });\n } else {\n navigate('/admin', { replace: true });\n }\n });\n }\n }, []);\n\n const login = (values, actions) => {\n var data;\n if (currentTab == 'user' || currentTab == 'parent') {\n data = {\n username: values.username,\n password: values.password,\n type: currentTab\n };\n } else {\n data = {\n email: values.email,\n password: values.password,\n type: currentTab\n };\n }\n api\n .login(data)\n .then((res) => {\n if (res.data.setup_password) {\n navigate('/reset_password', { replace: true });\n } else {\n if (data.type == 'admin') {\n navigate('/admin', { replace: true });\n } else {\n navigate('/user', { replace: true });\n }\n }\n })\n .catch((e) => {\n if (e == 'timeout') {\n snack.error(t('server_connection_error'));\n } else if (e == 'invalid_user') {\n snack.error(t('invalid_user'));\n } else if (e == 'invalid_password') {\n snack.error(t('invalid_password'));\n } else {\n snack.error(t('login_fail_message'));\n }\n })\n .finally(() => {\n actions.setSubmitting(false);\n });\n };\n\n const formik = useFormik({\n initialValues: {\n username: '',\n email: '',\n password: ''\n },\n validationSchema: Yup.object().shape({\n username: Yup.string()\n .max(255)\n .when('tab', {\n is: (v) => currentTab == 'user' || currentTab == 'parent',\n then: Yup.string().required(t('yup_required_username'))\n }),\n email: Yup.string()\n .email()\n .max(255)\n .when('tab', {\n is: (v) => currentTab == 'admin',\n then: Yup.string().required(t('yup_required_email'))\n }),\n password: Yup.string().max(255).required()\n }),\n onSubmit: login\n });\n\n const {\n errors,\n setValues,\n handleBlur,\n handleChange,\n handleSubmit,\n isSubmitting,\n touched,\n values\n } = formik;\n\n useEffect(() => {\n formik.resetForm();\n }, [currentTab]);\n\n if (token) return null;\n return (\n <>\n \n {t('login')} - Pointant Class\n \n \n \n
\n
\n \n \n setLanguage('en')}\n className={classes.langIcon}\n sx={{ ml: 1 }}\n >\n EN\n \n setLanguage('zh')}\n className={classes.langIcon}\n >\n 繁\n \n \n \n \n
\n {\n window.location.href = 'https://class.pointant-app.com';\n }}\n >\n \"\"\n \n \n {currentTab !== 'admin' ? (\n \n ) : (\n \n )}\n \n \n 0}\n fullWidth\n size=\"large\"\n type=\"submit\"\n variant=\"contained\"\n >\n {t('login')}\n \n \n \n snack.info(t('forget_password_msg'))}\n style={{ float: 'right' }}\n >\n {t('forget_password')}\n \n \n \n \n \n \n \n \n \n \n \n
\n \n \n \n Copyright © 2023 Animae Technologies Limited. All Rights Reserved.\n \n \n \n \n \n
\n \n \n );\n};\n\nconst RolesTab = (props) => {\n const { t, setLanguage } = useLocale();\n return (\n {\n props.setCurrentTab(value);\n }}\n indicatorColor=\"primary\"\n textColor=\"primary\"\n centered\n >\n \n \n \n \n );\n};\n\nexport default Login;\n","import { Helmet } from 'react-helmet'\nimport {\n Box,\n Container,\n Typography\n} from '@material-ui/core'\n\nconst NotFound = () => (\n <>\n \n 404 - Pointant Class\n \n \n \n \n 404: The page you are looking for isn’t here\n \n {/* \n You either tried some shady route or you came here by mistake.\n Whichever it is, try using the navigation\n */}\n {/* \n \n */}\n \n
\n \n)\n\nexport default NotFound\n","\n\nconst _ = require('lodash')\n\nexport default function (formik, name, { helperText } = {}) {\n const value = _.get(formik.values, name, '')\n const error = _.get(formik.errors, name)\n const touched = _.get(formik.touched, name)\n const isError = Boolean(touched && error)\n return ({\n name: name,\n value: value,\n error: isError,\n helperText: isError && error || helperText,\n onBlur: formik.handleBlur,\n onChange: formik.handleChange\n })\n}","import { Helmet } from 'react-helmet'\nimport {\n Box,\n Button,\n Card,\n CardActions,\n CardContent,\n CardHeader,\n Container,\n Divider,\n FormControl,\n Grid,\n MenuItem,\n Select,\n TextField,\n Typography\n} from '@material-ui/core'\nimport { makeStyles } from '@material-ui/styles';\nimport { useLocale } from 'src/provider/LocaleProvider';\nimport { useState } from 'react';\nimport { useFormik } from 'formik';\nimport useApi from 'src/api/api';\nimport formikProps from 'src/utils/formikProps';\nimport { useSnack } from 'src/provider/SnackbarProvider';\nimport MailOutlineIcon from '@material-ui/icons/MailOutline'\nimport FacebookIcon from '@material-ui/icons/Facebook'\nimport LayoutContainer from 'src/layout/LayoutContainer';\nimport { useAuthData } from 'src/provider/AuthDataProvider';\n// import { Languages, Password, ReportContact } from './components';\n\nconst useStyles = makeStyles(theme => ({\n\n}));\n\nconst _ = require('lodash')\n\nconst yup = require('yup')\n\nconst Languages = () => {\n\n const { t, getLanguage, getLanguageLabel, getLanguages, setLanguage } = useLocale()\n const [lang, setLang] = useState(getLanguage());\n\n function handleChangeLang() {\n\n setLanguage(lang)\n }\n\n return (\n \n \n \n {t('language_text')}\n
\n \n setLang(e.target.value)}\n >\n {_.map(getLanguages(), op => {\n return (\n \n {getLanguageLabel(op)}\n \n )\n })}\n \n \n \n \n
\n \n \n \n )\n}\n\n\nconst Password = () => {\n const api = useApi()\n const { t } = useLocale()\n const snack = useSnack()\n const formik = useFormik({\n initialValues: {\n password: '',\n new_password: '',\n confirm_password: ''\n },\n validationSchema: yup.object().shape({\n password: yup.string().required().nullable(),\n new_password: yup.string().min(6).required().nullable().test('equal', t('yup_new_password'), function (value) {\n return this.parent.password !== value\n }).label('new password'),\n confirm_password: yup.string().required().nullable().test('equal', t('yup_confirm_password'), function (value) {\n return this.parent.new_password === value\n }).label('confirm new password')\n }),\n onSubmit: (values, helper) => {\n api.setPassword({ password: values.password, new_password: values.new_password })\n .then(res => {\n snack.open(t('change_pw_success'))\n })\n .catch(e => {\n snack.error(t('change_pw_fail'))\n\n }).finally(() => {\n helper.setSubmitting(false)\n helper.resetForm()\n })\n\n }\n })\n return (\n
\n \n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n )\n}\n\n\n\nconst Settings = () => {\n const classes = useStyles();\n const auth = useAuthData()\n const { t } = useLocale()\n return (\n \n \n \n \n \n\n \n \n \n \n
\n \n \n contact@animaetech.com\n \n
\n
\n \n \n Facebook\n \n
\n
\n
\n
\n {!auth.userInfo.isParent &&\n \n \n \n }\n
\n
\n );\n};\n\nexport default Settings;\n","import React, { Fragment, useMemo, useCallback, useEffect, useState, useRef, useLayoutEffect } from 'react'\nimport { Box, Button, Card, CardActions, CardContent, CardHeader, Container, FormControl, FormHelperText, IconButton, InputLabel, MenuItem, TextField } from '@material-ui/core'\nimport { useLocale } from 'src/provider/LocaleProvider'\nimport useApi from 'src/api/api';\nimport { Helmet } from 'react-helmet';\nimport { useFormik } from 'formik';\nimport formikProps from 'src/utils/formikProps';\nimport { useAuthData } from 'src/provider/AuthDataProvider';\nimport { makeStyles } from '@material-ui/styles';\nimport utils from 'src/utils/utils';\nimport LayoutContainer from 'src/layout/LayoutContainer';\nimport Icons from 'src/icons';\nimport LoadingView from 'src/components/LoadingView';\nconst yup = require('yup')\nconst _ = require('lodash')\nconst useStyles = makeStyles((theme) => ({\n imageuploader: {\n position: 'relative',\n '& img': {\n objectFit: 'contain'\n },\n '& .removeIcon': {\n position: 'absolute', right: 0, top: 0, zIndex: 999\n },\n '& .uploadIcon': {\n // backgroundColor: 'rgba(255,255,255,0.5)',\n // borderRadius: '4px',\n position: 'absolute', right: 10, bottom: 10, zIndex: 999\n },\n '& .MuiFormControl-root': {\n height: '300px',\n border: '1px solid',\n borderRadius: '4px',\n borderColor: 'rgba(0, 0, 0, 0.23)',\n padding: '8px',\n '&:hover': {\n borderColor: 'black',\n },\n '& .MuiInputLabel-root': {\n padding: '0 4px',\n backgroundColor: 'white'\n },\n\n },\n '& .error': {\n borderColor: 'red !important',\n '&:hover': {\n borderColor: 'red !important',\n },\n }\n }\n\n}))\nconst MB = 1048576\n\nconst OrganizationInfo = ({ snack }) => {\n const classes = useStyles()\n const api = useApi()\n const { t } = useLocale()\n const [info, setinfo] = useState({})\n const auth = useAuthData()\n const [rules, setRules] = useState([]);\n const [isLoading, setIsLoading] = useState(true);\n\n useEffect(() => {\n setIsLoading(true);\n api.getOrganizationInfo(setinfo)\n api.getPointRules({ type: 'reward', isActive: true }).then(res => {\n setRules(res.data)\n setIsLoading(false);\n })\n }, [])\n\n\n const formik = useFormik({\n initialValues: info || {\n logo: null,\n banner: null,\n },\n enableReinitialize: true,\n validationSchema: yup.object().shape({\n name: yup.object().shape({\n en: yup.string().required(),\n zh: yup.string().required()\n }),\n logo: yup.mixed().maxFilesize(1024),\n banner: yup.mixed().maxFilesize(1024),\n\n }),\n onSubmit: async (values, helper) => {\n try {\n await api.batchUploadBlobs(values, ['logo', 'banner'])\n await api.updateOrganizationInfo(values)\n auth.refresh()\n snack.open()\n formik.setSubmitting(false)\n }\n catch (e) {\n snack.error()\n formik.setSubmitting(false)\n }\n }\n })\n const renderImg = (size, src, old_src) => {\n if (size) {\n return \n }\n else {\n if (src)\n return \n }\n }\n const { values, errors } = formik\n\n if (isLoading) {\n return ;\n }\n\n return (\n <>\n \n \n
\n \n \n \n \n \n \n {t('logo')}\n {renderImg(values.logo?.size, values.logo, info.logo)}\n
\n {values.logo &&\n { formik.setFieldValue('logo', null) }}>\n \n \n }\n
\n
\n \n
\n
\n \n {formik.errors.logo}\n

{`< 1MB | PNG ${t('or')} JPEG | 1:1 ${t('aspect_ratio')}`}

\n
\n
\n \n \n {t('banner')}\n {renderImg(values.banner?.size, values.banner, info.banner)}\n
\n {values.banner &&\n { formik.setFieldValue('banner', null) }}>\n \n \n }\n
\n
\n \n
\n
\n \n {formik.errors.banner}\n

{`< 1MB | PNG ${t('or')} JPEG | 6:1 ${t('aspect_ratio')}`}

\n
\n
\n {/* \n {'-------'} \n {_.map(rules, c => {\n return {c?.name} \n })}\n
\n \n \n \n \n */}\n {/* \n \n \n \n \n PNG {t('or')} JPEG
\n 1:1 {t('aspect_ratio')}
\n
\n \n \n PNG {t('or')} JPEG
\n 6:1 {t('aspect_ratio')}
\n
*/}\n {/* \n utils.readFile(f => formik.setFieldValue('logo', f))}>\n {t('logo')}\n \n \n utils.readFile(f => formik.setFieldValue('banner', f))}>\n {t('logo')}\n \n */}\n
\n \n \n \n \n
\n
\n
\n \n )\n}\n\nexport default OrganizationInfo","import React, { Fragment, useMemo, useCallback, useEffect, useState, useRef, useLayoutEffect } from 'react'\nimport Button from '@material-ui/core/Button'\nimport Dialog from '@material-ui/core/Dialog'\nimport DialogActions from '@material-ui/core/DialogActions'\nimport DialogContent from '@material-ui/core/DialogContent'\nimport DialogTitle from '@material-ui/core/DialogTitle'\nimport PropTypes from 'prop-types'\nimport { makeStyles } from '@material-ui/styles'\nimport { Box, Divider, Typography } from '@material-ui/core'\nimport { useLocale } from 'src/provider/LocaleProvider'\nimport PerfectScrollbar from 'react-perfect-scrollbar'\nconst useStyles = makeStyles((theme) => ({\n dialog: {\n overflow: 'hidden'\n },\n action: {\n width: '80px'\n },\n}))\nconst _ = require('lodash')\nconst EditDialog = ({ open, handleClose, title, children, handleSave, confirmText, TitleComponent, cancelText, confirmDisabled = false, maxWidth, ...rest }) => {\n const { t } = useLocale()\n const classes = useStyles()\n\n const [dialogTitle, setDialogTitle] = useState('');\n\n useEffect(() => {\n if (open) setDialogTitle(title)\n }, [open]);\n\n return (\n \n
{ e.preventDefault(); handleSave(e) }} autoComplete='off' >\n \n {_.toString(dialogTitle)}\n \n {TitleComponent && }\n \n \n \n {/* */}\n {children}\n {/* */}\n \n \n \n {!handleSave ?\n <>\n \n \n :\n <>\n \n \n \n }\n \n \n \n )\n}\n\nEditDialog.propTypes = {\n open: PropTypes.bool.isRequired,\n title: PropTypes.string,\n children: PropTypes.any.isRequired,\n handleClose: PropTypes.func,\n handleSave: PropTypes.func,\n}\n\n\nexport default EditDialog","import { InputAdornment, TextField } from '@material-ui/core';\nimport Icons from 'src/icons';\nimport { useLocale } from 'src/provider/LocaleProvider';\n\nconst SearchInput = ({ setSearch = new Function(), sx, ...rest }) => {\n const { t } = useLocale()\n return (\n setSearch(e.target.value)}\n placeholder={t('searchBar')}\n InputProps={{\n startAdornment: \n }}\n sx={{ width: '100%', maxWidth: '500px', ...sx }}\n {...rest}\n />\n );\n}\n\nexport default SearchInput;","import { Box, Container, IconButton, Switch, TextField, Tooltip, Button, MenuItem, Typography, Card, CardHeader, CardContent, CardActions } from '@material-ui/core';\nimport React, { Fragment, useMemo, useCallback, useEffect, useState, useRef, useLayoutEffect } from 'react'\nimport useApi from 'src/api/api';\nimport { Helmet } from 'react-helmet';\nimport DataTable from 'src/components/DataTable/DataTable';\nimport { useLocale } from 'src/provider/LocaleProvider';\nimport { useAuthData } from 'src/provider/AuthDataProvider';\nimport Icons from 'src/icons';\nimport EditDialog from 'src/components/EditDialog';\nimport { useFormik } from 'formik';\nimport { useSnack } from 'src/provider/SnackbarProvider';\nimport formikProps from 'src/utils/formikProps';\nimport SearchInput from 'src/components/SearchInput';\nimport LayoutContainer from 'src/layout/LayoutContainer';\nimport LoadingView from 'src/components/LoadingView';\nconst yup = require('yup')\nconst _ = require('lodash')\nconst moment = require('moment-timezone')\n\nconst OrganizationPeriodList = () => {\n const api = useApi()\n const { t } = useLocale()\n const [periodList, setPeriodList] = useState([]);\n\n const [dialogMode, setDialogMode] = useState(null);\n const [selectedRow, setSelectedRow] = useState();\n\n\n\n const auth = useAuthData()\n const snack = useSnack()\n\n\n const [activated, setActivated] = useState('');\n const [isLoading, setIsLoading] = useState(true);\n\n\n const getData = async () => {\n await api.getPeriodList(setPeriodList)\n setIsLoading(false)\n }\n\n useEffect(() => {\n setIsLoading(true)\n getData()\n \n }, []);\n\n\n useEffect(() => {\n setActivated(auth.currentPeriod)\n }, [auth.currentPeriod]);\n\n const schema = yup.object().shape({\n name: yup.string().required().default(''),\n isActive: yup.bool().default(false),\n start_at: yup.date().required().default(new Date()),\n end_at: yup.date().required().default(new Date())\n })\n\n const formik = useFormik({\n initialValues: selectedRow,\n enableReinitialize: true,\n validationSchema: schema,\n onSubmit: (values, helper) => {\n if (values._id) {\n api.updatePeriod(values._id, values).then(res => {\n setDialogMode(null)\n getData()\n snack.open()\n }).catch(e => {\n snack.error()\n }).finally(() => {\n helper.setSubmitting(false)\n })\n }\n else {\n api.addPeriod(values).then(res => {\n setDialogMode(null)\n getData()\n snack.open()\n }).catch(e => {\n\n snack.error()\n }).finally(() => {\n helper.setSubmitting(false)\n })\n }\n }\n })\n\n useEffect(() => {\n if (dialogMode) formik.resetForm()\n }, [dialogMode]);\n\n const handleSwitch = async () => {\n var temp = auth.currentPeriod\n if (!selectedRow._id) return\n if (auth.currentPeriod == selectedRow._id) return\n auth.setCurrentPeriod(selectedRow._id)\n api.activatePeriod(selectedRow._id).then(res => {\n auth.setSelectedPeriod(selectedRow._id)\n auth.refresh()\n setDialogMode(null)\n }).catch(e => {\n auth.setCurrentPeriod(temp)\n snack.error()\n })\n }\n\n // const handleSwitchId = async (row) => {\n // if (auth.currentPeriod == activated) return\n // api.activatePeriod(row?._id).then(res => {\n // auth.setCurrentPeriod(row._id)\n // auth.setSelectedPeriod(row._id)\n // auth.refresh()\n // }).catch(e => {\n // snack.error()\n // })\n // }\n\n const handleAdd = async (row) => {\n setSelectedRow(schema.cast({}))\n setDialogMode('add')\n }\n\n const handleEdit = async (row) => {\n setSelectedRow(schema.cast(row || {}))\n setDialogMode('edit')\n }\n\n const handleDelete = async (row) => {\n setSelectedRow(schema.cast(row || {}))\n setDialogMode('delete')\n }\n\n if (isLoading) {\n return ;\n }\n\n return (\n \n \n {/* */}\n \n \n \n moment(r.start_at).format('YYYY/MM/DD'), sort: true, },\n { id: 'end_at', label: (t('end_at')), value: 'end_at', content: (r, i, v) => moment(r.end_at).format('YYYY/MM/DD'), sort: true, },\n {\n id: 'status', label: t('status'), sx: { textAlign: 'center' }, content: (row) => {\n return (\n auth.currentPeriod == row._id ? t('active') : t('inactive')\n )\n },\n className: row => auth.currentPeriod == row._id ? 'text-green' : 'text-red'\n },\n {\n id: 'action', label: t('actions'), content: (row) => {\n return \n \n handleEdit(row)} sx={{ p: .5 }}> \n \n {/* handleDelete(row)} sx={{ px: 0.5, py: 0 }}> */}\n \n }\n },\n ]} _orderBy='end_at' _order='desc' />\n setDialogMode(null)}\n confirmText={t(\"confirm\")}\n handleSave={handleSwitch}\n >\n {/* {t('confirm_resetpw')} */}\n

{t('change_period_to_a', { a: selectedRow?.name })}

\n {/*

{t('activate_period_msg')}

*/}\n {/* {`${selectedRow?.class} ${selectedStudent?.class_no} ${_.get(selectedStudent, `name.${getLanguage()}`)} `} */}\n \n setDialogMode(null)}\n TitleComponent={() => selectedRow && (\n setDialogMode('activate')}\n disabled={selectedRow._id == auth.currentPeriod}\n sx={{\n backgroundColor: 'limegreen',\n '&:hover': {\n backgroundColor: '#2db82d'\n }\n }}\n >\n {t('activate_this_period')}\n \n )}\n >\n \n {\n formik.setFieldValue('start_at', moment(e.target.value).toDate())\n }}\n sx={{ width: { xs: '100%', sm: '50%' }, pr: { xs: 0, sm: 1 }, mb: 2 }}\n />\n {\n formik.setFieldValue('end_at', moment(e.target.value).toDate())\n }}\n sx={{ width: { xs: '100%', sm: '50%' }, pr: { xs: 0, sm: 1 }, mb: 2 }}\n />\n \n
\n );\n}\n\nexport default OrganizationPeriodList;","import { Box, Container, IconButton, Switch, TextField, Tooltip, Button, MenuItem, Typography, Card, CardHeader, CardContent, CardActions } from '@material-ui/core';\nimport React, { Fragment, useMemo, useCallback, useEffect, useState, useRef, useLayoutEffect } from 'react'\nimport useApi from 'src/api/api';\nimport { Helmet } from 'react-helmet';\nimport DataTable from 'src/components/DataTable/DataTable';\nimport { useLocale } from 'src/provider/LocaleProvider';\nimport { useAuthData } from 'src/provider/AuthDataProvider';\nimport Icons from 'src/icons';\nimport EditDialog from 'src/components/EditDialog';\nimport { useFormik } from 'formik';\nimport { useSnack } from 'src/provider/SnackbarProvider';\nimport formikProps from 'src/utils/formikProps';\nimport SearchInput from 'src/components/SearchInput';\nimport LayoutContainer from 'src/layout/LayoutContainer';\nimport utils from 'src/utils/utils';\nimport LoadingView from 'src/components/LoadingView';\nconst yup = require('yup')\nconst _ = require('lodash')\nconst moment = require('moment-timezone')\n\nconst OrganizationFilterList = () => {\n const api = useApi()\n const { t } = useLocale()\n const [filterList, setFilterList] = useState([]);\n\n const [dialogMode, setDialogMode] = useState(null);\n const [selectedRow, setSelectedRow] = useState();\n\n const auth = useAuthData()\n const snack = useSnack()\n\n const [search, setSearch] = useState('');\n const [isLoading, setIsLoading] = useState(true)\n\n const getData = async () => {\n await api.getOrganizationFilters(setFilterList)\n setIsLoading(false)\n }\n\n useEffect(() => {\n setIsLoading(true)\n getData()\n\n }, []);\n\n const schema = yup.object().shape({\n name: yup.object().shape({\n en: yup.string().required(),\n zh: yup.string().required()\n }),\n attribute: yup.mixed().oneOf(['grade', 'class']).required(),\n value: yup.string().required(),\n })\n\n const formik = useFormik({\n initialValues: selectedRow || {\n name: {\n en: '',\n zh: ''\n },\n attribute: '',\n value: ''\n },\n enableReinitialize: true,\n validationSchema: schema,\n onSubmit: (values, helper) => {\n if (values._id) {\n api.updateOrganizationFilters(values._id, values).then(res => {\n setDialogMode(null)\n getData()\n snack.open()\n }).catch(e => {\n snack.error()\n }).finally(() => {\n helper.setSubmitting(false)\n })\n }\n else {\n api.addOrganizationFilters(values).then(res => {\n setDialogMode(null)\n getData()\n snack.open()\n }).catch(e => {\n\n snack.error()\n }).finally(() => {\n helper.setSubmitting(false)\n })\n }\n }\n })\n\n\n\n useEffect(() => {\n if (dialogMode) formik.resetForm()\n }, [dialogMode]);\n\n const handleAdd = async (row) => {\n setSelectedRow(null)\n setDialogMode('add')\n }\n\n const handleEdit = async (row) => {\n setSelectedRow(schema.cast(row || {}))\n setDialogMode('edit')\n }\n\n const handleDelete = async (row) => {\n setSelectedRow(schema.cast(row || {}))\n setDialogMode('delete')\n }\n\n const filtered = useCallback(utils.searchFilter(filterList, search, ['name.en', 'name.zh', (row) => t(row.attribute), 'value']), [filterList, search])\n\n if (isLoading) {\n return ;\n }\n\n\n return (\n \n \n \n \n \n \n t(row.attribute) },\n { id: 'value', label: (t('value')), value: 'value', sort: true },\n {\n id: 'action', label: t('actions'), content: (row) => {\n return \n handleEdit(row)} sx={{ px: 0.5, py: 0 }}> \n \n }\n },\n ]} _orderBy='name.en' _order='asc' />\n setDialogMode(null)}\n >\n \n \n\n \n {t('grade')} \n {t('class')} \n
\n \n \n \n );\n}\n\nexport default OrganizationFilterList;","import {\n Autocomplete,\n Button,\n Chip,\n FormControl,\n InputLabel,\n MenuItem,\n Select,\n TextField,\n Toolbar,\n Typography\n} from '@material-ui/core';\nimport React, { useEffect, useState } from 'react';\nimport useApi from 'src/api/api';\nimport Icons from 'src/icons';\nimport { useAuthData } from 'src/provider/AuthDataProvider';\nimport { useLocale } from 'src/provider/LocaleProvider';\n\nconst _ = require('lodash');\n\nconst ClassSelector = ({\n default_id,\n selected,\n setSelected = new Function(),\n filters,\n autocomplete = true,\n all = true,\n multiple = false,\n ...rest\n}) => {\n const { t, getLanguage } = useLocale();\n const [filterList, setFilterList] = useState([]);\n const api = useApi();\n const allOption = {\n name: {\n en: t('all_grade_and_class'),\n zh: t('all_grade_and_class')\n },\n attribute: null,\n value: null\n };\n\n useEffect(() => {\n if (filters) {\n setFilterList(filters);\n } else {\n api.getOrganizationFilters().then((res) => {\n const result = res.data;\n\n setFilterList(res.data);\n });\n }\n if ((!selected || selected == {}) && all) setSelected(allOption);\n }, []);\n\n function handleChange(e) {\n setSelected(e.target.value);\n }\n\n let selectedValue = _.filter(\n filterList,\n (item) => selected && _.includes(selected, item._id)\n );\n\n return multiple ? (\n 0 ? selectedValue : [allOption]}\n isOptionEqualToValue={(option, value) => {\n // console.log('value', value)\n // console.log('option', option)\n return option.value === value.value;\n }}\n options={all ? _.concat([allOption], filterList) : filterList}\n getOptionLabel={(op) => _.get(op, `name.${getLanguage()}`, '')}\n onChange={(e, v, c, d) => {\n if (d.option.value === null) {\n setSelected([]);\n } else setSelected(_.map(v, (i) => i._id));\n }}\n renderTags={(tagValue, getTagProps) => {\n return tagValue.map((option, index) => {\n return (\n \n );\n });\n }}\n renderInput={(params) => (\n \n )}\n style={{ minWidth: '150px' }}\n {...rest}\n />\n ) : (\n //single\n _.get(op, `name.${getLanguage()}`, '')}\n isOptionEqualToValue={(option, value) => {\n return option.value === value.value;\n }}\n onChange={(e, v) => setSelected(v)}\n renderInput={(params) => (\n \n )}\n style={{ minWidth: '150px' }}\n {...rest}\n />\n );\n};\nexport default ClassSelector;\n","import { Box, Button, Container, Dialog, DialogActions, DialogTitle, Divider, Grid, IconButton, Switch, TextField, Tooltip } from '@material-ui/core';\nimport React, { Fragment, useMemo, useCallback, useEffect, useState, useRef, useLayoutEffect } from 'react'\nimport useApi from 'src/api/api';\nimport { Helmet } from 'react-helmet';\nimport DataTable from 'src/components/DataTable/DataTable';\nimport { useLocale } from 'src/provider/LocaleProvider';\nimport { useAuthData } from 'src/provider/AuthDataProvider';\nimport Icons from 'src/icons';\nimport EditDialog from 'src/components/EditDialog';\nimport { Formik, useFormik } from 'formik';\nimport formikProps from 'src/utils/formikProps';\nimport utils from 'src/utils/utils';\nimport PeriodSelector from 'src/components/PeriodSelector';\nimport ClassSelector from 'src/components/ClassSelector';\nimport SearchInput from 'src/components/SearchInput';\nimport { NavLink, useNavigate } from 'react-router-dom';\nimport { useSnack } from 'src/provider/SnackbarProvider';\nimport LayoutContainer from 'src/layout/LayoutContainer';\nimport { AddBoxTwoTone } from '@material-ui/icons';\nimport LoadingView from 'src/components/LoadingView';\nconst moment = require('moment-timezone')\nconst _ = require('lodash')\nconst yup = require('yup')\n\n\nconst StudentList = ({ backDrop }) => {\n const api = useApi()\n const { t, getLanguage, translate } = useLocale()\n const rowsRef = useRef([])\n const { currentPeriod, selectedPeriod } = useAuthData()\n\n const [studentList, setStudentList] = useState([]);\n const [dialogMode, setDialogMode] = useState(null);\n const [selectedStudent, setSelectedStudent] = useState();\n const [filter, setFilter] = useState();\n\n const [search, setSearch] = useState('');\n const snack = useSnack()\n const nav = useNavigate()\n const [isLoading, setIsLoading] = useState(true)\n\n const schema = yup.object().shape({\n name: yup.object({\n en: yup.string().nullable(),\n zh: yup.string().nullable(),\n }),\n u_id: yup.string().required().nullable().strict().when('new', {\n is: v => dialogMode == 'add',\n then: yup.string().notOneOf(_.map(studentList, s => s.u_id), t('u_id_exists')) //.matches(/^[\\d\\w]*$/g),\n }),\n class: yup.string().required().nullable().trim().strict(),\n class_no: yup.number().required().nullable().min(1).max(999),\n date_of_birth: yup.string().isValidDate()\n })\n\n useEffect(() => {\n setIsLoading(true);\n api.getStudentList().then(res => {\n setStudentList(res.data)\n setIsLoading(false);\n }).catch(e => console.log(e))\n }, [selectedPeriod]);\n\n const formik = useFormik({\n initialValues: selectedStudent || {\n name: {\n en: '',\n zh: ''\n },\n u_id: '',\n class: '',\n class_no: null,\n password: ''\n },\n enableReinitialize: true,\n validationSchema: schema,\n onSubmit: (values, helper) => {\n console.log(\"file: StudentList.js ~ line 73 ~ StudentList ~ values\", values)\n api.batchCreateUser([values], selectedPeriod).then(res => {\n api.getStudentList().then(res => {\n snack.open()\n setStudentList(res.data)\n setDialogMode(null)\n })\n }).catch(e => {\n snack.error()\n }).finally(() => {\n helper.setSubmitting(false)\n })\n }\n })\n\n useEffect(() => {\n if (dialogMode) formik.resetForm()\n }, [dialogMode]);\n\n const handleExport = () => {\n utils.exportCsv(rowsRef.current, [\n { label: t('u_id'), value: row => row.u_id },\n { label: t('class'), value: row => row.class },\n { label: t('class_no'), value: row => row.class_no },\n { label: t('name_zh'), value: row => row.name?.zh },\n { label: t('name_en'), value: row => row.name?.en },\n { label: t('cumulative_point'), value: row => row.cumulative_point },\n { label: t('point_balance'), value: row => row.point },\n { label: t('username'), value: row => row.username },\n { label: t('date_of_birth'), value: row => row.date_of_birth },\n { label: t('setup_password'), value: row => row.setup_password },\n ], 'student_list')\n }\n\n const handleCreate = () => {\n setSelectedStudent(null)\n setDialogMode('add')\n }\n\n\n const handleEdit = (row) => {\n setSelectedStudent(row)\n setDialogMode('edit')\n }\n\n const handleConfirmReset = () => {\n api.resetUserPassword(selectedStudent?._id).then(res => {\n api.getStudentList().then(res => {\n setStudentList(res.data)\n setDialogMode(null)\n })\n }).catch(e => {\n snack.error()\n })\n }\n\n\n const handleConfirmDelete = () => {\n api.deleteUser(selectedStudent?._id).then(res => {\n api.getStudentList().then(res => {\n setStudentList(res.data)\n setDialogMode(null)\n })\n })\n }\n\n const filteredList = useCallback(\n utils.searchFilter(studentList, [search, filter?.value], [['u_id', 'class', 'class_no', 'name.en', 'name.zh', 'username'], ['class']])\n , [studentList, search, filter])\n\n if (isLoading) {\n return ;\n }\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {\n return \n \n nav(`/admin/student_list/${row.profile}`)} sx={{ p: .5 }}> \n \n \n handleEdit(row)} sx={{ p: .5 }}> \n \n \n }\n },\n ]} _orderBy='class' _order='asc' />\n {/* Dialogs */}\n\n setDialogMode(null)}\n TitleComponent={() => (\n <>\n {selectedStudent && \n setDialogMode('resetpw')} >\n \n \n }\n {selectedStudent && \n setDialogMode('delete')} >\n \n \n }\n \n )}\n >\n \n \n \n \n \n \n \n setDialogMode(null)}\n confirmText={t(\"confirm\")}\n handleSave={handleConfirmReset}\n >\n {t('confirm_resetpw')}\n {`${selectedStudent?.class} ${selectedStudent?.class_no} ${_.get(selectedStudent, `name.${getLanguage()}`)} `}\n \n setDialogMode(null)}\n confirmText={t('confirm')}\n >\n

\n {t('delete_student_confirm_msg', { a: `${selectedStudent?.class} ${selectedStudent?.class_no} ${translate(selectedStudent?.name)}` })}\n

\n \n
\n );\n}\n\nexport default StudentList;","import React, { Fragment, useMemo, useCallback, useEffect, useState, useRef, useLayoutEffect } from 'react';\nimport useApi from 'src/api/api';\nimport { Helmet } from 'react-helmet';\nimport DataTable from 'src/components/DataTable/DataTable';\nimport { useLocale } from 'src/provider/LocaleProvider';\nimport { useAuthData } from 'src/provider/AuthDataProvider';\nimport Icons from 'src/icons';\nimport { Formik, useFormik } from 'formik';\nimport formikProps from 'src/utils/formikProps';\nimport utils from 'src/utils/utils';\nimport LayoutContainer from 'src/layout/LayoutContainer';\nimport { useSnack } from 'src/provider/SnackbarProvider';\nimport { useNavigate } from 'react-router';\nimport PerfectScrollbar from 'react-perfect-scrollbar';\nimport { BsFillTriangleFill } from 'react-icons/bs';\nimport {\n Avatar,\n Grid,\n Box,\n Button,\n Card,\n Checkbox,\n Radio,\n Table,\n TableBody,\n TableCell,\n TableHead,\n TablePagination,\n TableRow,\n TableSortLabel,\n Typography\n} from '@material-ui/core';\nimport { makeStyles } from '@material-ui/styles';\nimport ChangeHistoryIcon from '@material-ui/icons/ChangeHistory';\nimport classNames from 'classnames';\nimport EditDialog from 'src/components/EditDialog';\nimport { useBackDrop } from 'src/provider/BackdropProvider';\nconst moment = require('moment-timezone');\nconst _ = require('lodash');\nconst yup = require('yup');\n\n\nconst useStyles = makeStyles({\n table: {\n \"& .MuiTableRow-root\": {\n height: '50px'\n },\n \"& .MuiTableCell-root\": {\n whiteSpace: 'nowrap',\n textAlign: 'center',\n\n },\n '& .borderLeft': {\n borderLeft: \"1px solid rgba(224, 224, 224, 0.8)\",\n },\n \"& .MuiTableSortLabel-icon\": {\n opacity: 0.5,\n },\n \"& .Mui-active .MuiTableSortLabel-icon\": {\n opacity: 1,\n color: 'limegreen',\n },\n '& .row-new': {\n backgroundColor: 'rgba(50, 255, 50,0.2)',\n '&:hover': {\n backgroundColor: 'rgba(50, 255, 50,0.3)'\n }\n },\n '& .row-update': {\n backgroundColor: 'rgba(255, 255, 50,0.2)',\n '&:hover': {\n backgroundColor: 'rgba(255, 255, 50,0.3)'\n }\n },\n '& .cell-update': {\n // color: 'brown',\n fontWeight: 'bold'\n },\n '& .error': {\n backgroundColor: 'rgba(255, 50, 50,0.2) !important',\n '&:hover': {\n backgroundColor: 'rgba(255, 50, 50,0.3) !important'\n }\n }\n },\n toolbar: {\n display: 'flex',\n '& .left': {\n width: '100%',\n display: 'flex',\n margin: '-8px',\n width: 'calc(100% - 16px)',\n flexWrap: 'wrap',\n '& .item': {\n display: 'flex',\n alignItems: 'center',\n padding: '8px',\n whiteSpace: 'nowrap'\n }\n },\n '& .right': {\n width: '100%',\n display: 'flex',\n margin: '-8px',\n width: 'calc(100% - 16px)',\n flexWrap: 'wrap',\n '& .item': {\n display: 'flex',\n alignItems: 'center',\n padding: '8px',\n whiteSpace: 'nowrap'\n }\n }\n }\n});\n\n\nconst StudentUploadTable = ({\n studentList = [],\n rows = [],\n loading = false,\n _orderBy = 'index',\n _order = 'asc',\n rowsPerPage = 10,\n rowsPerPageOptions = [5, 10, 25],\n rowsRef,\n formik,\n ...rest\n}) => {\n\n const { t } = useLocale();\n const classes = useStyles();\n\n\n const { organization } = useAuthData();\n\n const [order, setOrder] = useState(_order);\n const [orderBy, setOrderBy] = useState(_orderBy);\n\n const sorted = _.orderBy(_.map(rows, (r, index) => ({ ...r, index: index + 1, class_no: r.class_no && _.toString(r.class_no).padStart(2, '0') })), [orderBy], [order]);\n\n const handleSort = (path) => {\n if (orderBy == path) {\n setOrder(order === 'asc' ? 'desc' : 'asc');\n }\n else {\n setOrderBy(path);\n setOrder('asc');\n }\n };\n\n const headCell = (label, path, sort = true) => {\n if (sort) {\n return (\n handleSort(path)} hideSortIcon={false} >\n {label}\n \n );\n }\n else return label;\n };\n\n useEffect(() => {\n formik.validateForm();\n }, [order, orderBy]);\n\n return (\n \n \n \n \n \n {headCell(t('index'), 'index')}\n {headCell(t('username'), 'username', false)}\n {headCell(t('u_id'), 'u_id')}\n {headCell(t('class'), 'class')}\n {headCell(t('class_no'), 'class_no')}\n {headCell(t('name_zh'), 'name.zh')}\n {headCell(t('name_en'), 'name.en')}\n {headCell(t('date_of_birth'), 'date_of_birth')}\n {headCell(t('password'), 'password', false)}\n {headCell(t('parent_password'), 'parent_password', false)}\n \n \n \n {_.map(sorted, (row, index) => {\n var errors = _.get(formik.errors, row.index - 1);\n var isError = _.size(errors) > 0;\n var oldStudent = _.find(studentList, { u_id: row.u_id });\n return <>\n \n \n {row.index}\n \n \n {organization?.prefix + (row.u_id ? row.u_id : '')}\n \n {_.map(['u_id', 'class', 'class_no', 'name.zh', 'name.en', 'date_of_birth','password', 'parent_password'], (path, index) => {\n var newValue = _.get(row, path);\n var oldValue = _.get(oldStudent, path);\n var isChanged = oldStudent && newValue != oldValue;\n return \n {newValue || '-'}\n ;\n })}\n \n {_.size(errors) > 0 && \n \n \n \n \n {_.keys(errors).map(e => {\n return

{`${t(e)} : ${errors[e]}`}

;\n })}\n
\n
\n
\n
\n }\n ;\n })}\n {_.size(rows) == 0 &&\n \n \n {t('no_records')}\n \n \n }\n
\n
\n
\n
\n );\n};\n\n\nconst StudentUpload = () => {\n const api = useApi();\n const nav = useNavigate();\n\n const { t } = useLocale();\n\n const backDrop = useBackDrop()\n const snack = useSnack();\n const classes = useStyles();\n const { selectedPeriod } = useAuthData();\n const [studentList, setStudentList] = useState([]);\n const [newStudentList, setNewStudentList] = useState([]);\n const [open, setOpen] = useState();\n\n\n useEffect(() => {\n api.getStudentList().then(res => {\n setStudentList(res.data);\n });\n }, [selectedPeriod]);\n\n\n const schema = yup.array().of(\n yup.object().shape({\n name: yup.object({\n en: yup.string(),\n zh: yup.string(),\n }),\n u_id: yup.string().required(),\n class: yup.string().required(),\n class_no: yup.number().required(),\n password: yup.string().min(6).nullable(),\n date_of_birth: yup.string().isValidDate()\n })\n );\n const formik = useFormik({\n initialValues: newStudentList || [],\n enableReinitialize: true,\n validationSchema: schema,\n onSubmit: (values, helper) => {\n backDrop.open()\n api.batchCreateUser(values, selectedPeriod).then(res => {\n nav('/admin/student_list');\n snack.open(t('upload_success'));\n }).catch(e => {\n snack.error(t('upload_fail'));\n }).finally(() => {\n helper.setSubmitting(false);\n backDrop.close()\n });\n }\n });\n\n const handleExport = () => {\n utils.exportCsv([], [\n { label: 'Student_ID', value: row => row.u_id },\n { label: 'Class', value: row => row.class },\n { label: 'Class_No', value: row => row.class_no },\n { label: 'Chinese_Name', value: row => row.name?.zh },\n { label: 'English_Name', value: row => row.name?.en },\n { label: 'Date of Birth (YYYY-MM-DD)', value: row => row.password },\n { label: 'Password', value: row => row.password },\n { label: 'Parent_Password', value: row => row.parent_password },\n ], 'student_template');\n };\n\n const handleCsv = async (f) => {\n var csv = await utils.readFileAsText(f);\n var arr = await utils.csv2JsonArray(csv, {\n 'Student_ID': 'u_id',\n 'Class': 'class',\n 'Class_No': 'class_no',\n 'Chinese_Name': 'name.zh',\n 'English_Name': 'name.en',\n 'Password': 'password',\n 'Date of Birth (YYYY-MM-DD)': 'date_of_birth',\n \"Parent_Password\": \"parent_password\"\n });\n setNewStudentList(_.filter(arr, item => item.u_id));\n };\n\n useEffect(() => {\n formik.validateForm();\n }, [formik.initialValues]);\n\n\n const handleConfirm = async () => {\n var errors = await formik.validateForm();\n if (_.size(errors) <= 0) {\n setOpen(true);\n }\n };\n\n var count = useMemo(() => _.countBy(newStudentList, s => {\n return _.findIndex(studentList, { u_id: s.u_id }) >= 0 ? 'update' : 'new';\n }), [open]);\n\n return (\n \n \n \n \n \n \n {t('add_student')} \n \n \n \n {t('update_student')} \n \n \n \n {t('invalid_data')} \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {t('password')} : {t('yup_string_min', { min: 6 })}\n
\n {t('parent_password')} : {t('yup_string_min', { min: 6 })}\n
\n \n \n \n \n setOpen(false)} confirmText={t('confirm')}>\n {count?.new &&

{t('add_a_students', { a: count?.new })}

}\n {count?.update &&

{t('update_a_students', { a: count?.update })}

}\n
\n
\n );\n};\n\nexport default StudentUpload;","import { Tabs, Tab,Card, Box, Button, Checkbox, Container, FormControlLabel, IconButton, MenuItem, Switch, TextField, Tooltip } from '@material-ui/core';\nimport React, { Fragment, useMemo, useCallback, useEffect, useState, useRef, useLayoutEffect } from 'react'\nimport useApi from 'src/api/api';\nimport { Helmet } from 'react-helmet';\nimport DataTable from 'src/components/DataTable/DataTable';\nimport { useLocale } from 'src/provider/LocaleProvider';\nimport Icons from 'src/icons';\nimport EditDialog from 'src/components/EditDialog';\nimport { Formik, useFormik } from 'formik';\nimport formikProps from 'src/utils/formikProps';\nimport utils from 'src/utils/utils';\nimport LayoutContainer from 'src/layout/LayoutContainer';\nimport SearchInput from 'src/components/SearchInput';\nimport { useAuthData } from 'src/provider/AuthDataProvider';\nimport { NavLink } from 'react-router-dom';\nimport { status } from 'nprogress';\nimport LoadingView from 'src/components/LoadingView';\nconst moment = require('moment-timezone')\nconst _ = require('lodash')\nconst yup = require('yup')\nconst AdminList = ({ snack }) => {\n const api = useApi()\n const { t, getLanguage } = useLocale()\n const rowsRef = useRef([])\n\n const { userInfo } = useAuthData()\n\n const [dialogMode, setDialogMode] = useState(null);\n const [selectedStudent, setSelectedStudent] = useState();\n const [tab, setTab] = useState('active');\n const [categories, setCategories] = useState();\n const [activeCategories, setActiveCategories] = useState();\n\n const [adminList, setAdminList] = useState([]);\n const [search, setSearch] = useState('');\n const [isLoading, setIsLoading] = useState(true)\n useEffect(() => {\n setIsLoading(true);\n api.getAdminList().then(res => {\n setCategories(_.filter(res.data, ['isActive', false]))\n setActiveCategories(_.filter(res.data, ['isActive', true]))\n setIsLoading(false);\n //setAdminList(res.data)\n // console.log(categories)\n // console.log(activeCategories)\n // console.log(adminList)\n })\n }, []);\n\n\n\n const schema = yup.object().shape({\n name: yup.object({\n en: yup.string(),\n zh: yup.string(),\n }),\n email: yup.string().email().required(),\n role: yup.string()\n })\n\n\n const formik = useFormik({\n initialValues: selectedStudent || {\n name: {\n en: '',\n zh: ''\n },\n email: '',\n role: 'admin',\n isActive: true,\n privilege: { all_action: false }\n\n },\n enableReinitialize: true,\n validationSchema: schema,\n onSubmit: (values, helper) => {\n if (values._id) {\n api.updateUser(values._id, values).then(res => {\n snack.open(t('saved'))\n setDialogMode(null)\n api.getAdminList().then(res => {\n setCategories(_.filter(res.data, ['isActive', false]))\n setActiveCategories(_.filter(res.data, ['isActive', true]))\n //setAdminList(res.data)\n })\n }).catch(e => {\n snack.error(t('failed'))\n }).finally(() => {\n helper.setSubmitting(false)\n })\n }\n else {\n api.addAdmin(values).then(res => {\n snack.open(t('saved'))\n setDialogMode(null)\n api.getAdminList().then(res => {\n setCategories(_.filter(res.data, ['isActive', false]))\n setActiveCategories(_.filter(res.data, ['isActive', true]))\n //setAdminList(res.data)\n })\n }).catch(e => {\n snack.error(t('failed'))\n }).finally(() => {\n helper.setSubmitting(false)\n })\n }\n }\n })\n\n useEffect(() => {\n if (dialogMode) formik.resetForm()\n }, [dialogMode]);\n\n const handleExport = () => {\n utils.exportCsv(rowsRef.current, [\n { label: t('email'), value: row => row.email },\n { label: t('name_zh'), value: row => row.name?.zh },\n { label: t('name_en'), value: row => row.name?.en },\n { label: t('role'), value: row => t(row.role) }\n ], 'admin_list')\n }\n\n const handleCreate = () => {\n setSelectedStudent(null)\n setDialogMode('add')\n }\n\n const handleEdit = (row) => {\n setSelectedStudent(row)\n setDialogMode('edit')\n }\n\n const handleDelete = (row) => {\n setSelectedStudent(row)\n setDialogMode('delete')\n }\n\n\n const filteredList = useCallback(utils.searchFilter(adminList, search, ['name.en', 'name.zh', 'role', 'email']), [adminList, search])\n\n const handleConfirmReset = () => {\n api.resetUserPassword(selectedStudent?._id).then(res => {\n api.getAdminList().then(res => {\n snack.open()\n // setAdminList(res.data)\n setCategories(_.filter(res.data, ['isActive', false]))\n setActiveCategories(_.filter(res.data, ['isActive', true]))\n setDialogMode(null)\n })\n }).catch(e => {\n snack.error()\n })\n }\n/////////////////////////////////////////////////////////////////////////////////////////\n const headCells = [\n { label: t('name_zh'), value: 'name.zh', sort: true },\n { label: t('name_en'), value: 'name.en', sort: true },\n { label: t('role'), value: 'role', content: (row) => t(row.role), sort: true },\n { label: t('email'), value: 'email', sort: true },\n { label: t('setup_password'), value: 'setup_password' },\n { label: t('status'), sx: { textAlign: 'center' }, content: (row) => row.isActive ? t('active') : t('inactive'), className: (row) => row.isActive ? 'text-green' : 'text-red' },\n {\n label: t('actions'), content: (row) => {\n return \n \n handleEdit(row)} sx={{ p: .5 }}> \n \n \n }\n },\n ]\n\n const rows = useMemo(() => {\n if (!categories) return categories\n return categories.filter(rowfilter)\n }, [search, categories])\n\n function rowfilter(row) {\n if (!search || search === '') return true\n if (row.name) {\n for (var key in row.name) {\n var value = row.name[key]\n if (value.includes(search.trim())) {\n return true\n }\n }\n }\n return false\n }\n\n var filtered = useMemo(() => utils.searchFilter(tab == 'active' ? activeCategories : categories, search, ['name.en', `name.zh`, 'role', 'email']), [categories,activeCategories, search, tab])\n\n if (isLoading) {\n return ;\n }\n return (\n \n \n setTab(v)} >\n \n \n \n \n \n \n
\n \n \n \n \n \n \n \n {tab == 'active' &&\n \n }\n {tab == 'inactive' &&\n \n }\n {/* t(row.role), sort: true },\n { label: t('email'), value: 'email', sort: true },\n { label: t('setup_password'), value: 'setup_password' },\n { label: t('status'), sx: { textAlign: 'center' }, content: (row) => row.isActive ? t('active') : t('inactive'), className: (row) => row.isActive ? 'text-green' : 'text-red' },\n {\n label: t('actions'), content: (row) => {\n return \n \n handleEdit(row)} sx={{ p: .5 }}> \n \n \n }\n },\n ]} _orderBy='email' _order='asc' /> */}\n setDialogMode(null)}\n confirmText={t(\"confirm\")}\n handleSave={handleConfirmReset}\n >\n {t('confirm_resetpw')}\n {`${_.get(selectedStudent, `name.${getLanguage()}`)} `}\n \n (\n selectedStudent && \n setDialogMode('resetpw')} disabled={selectedStudent._id == userInfo?._id} >\n \n \n \n )}\n title={dialogMode == 'edit' ? t('edit_admin_title') : t('add_admin_title')}\n handleSave={formik.handleSubmit} open={dialogMode == 'add' || dialogMode == 'edit'}\n handleClose={() => setDialogMode(null)}\n >\n \n \n {t('organization_admin')} \n {t('admin')} \n \n \n \n \n {t('active')} \n {t('inactive')} \n \n {formik.values.role == 'admin' && <>\n } label={t('can_see_all_action')} />\n \n }\n \n setDialogMode(null)}\n >\n

\n {'Are you sure to delete'}\n

\n

{selectedStudent?.username}

\n

{selectedStudent?.class}

\n

{selectedStudent?.class_no}

\n

{selectedStudent?.name?.en}

\n \n\n\n \n\n );\n}\n\nexport default AdminList;","import React, { Fragment, useMemo, useCallback, useEffect, useState, useRef, useLayoutEffect } from 'react'\nimport useApi from 'src/api/api';\nimport { Helmet } from 'react-helmet';\nimport DataTable from 'src/components/DataTable/DataTable';\nimport { useLocale } from 'src/provider/LocaleProvider';\nimport { useAuthData } from 'src/provider/AuthDataProvider';\nimport Icons from 'src/icons';\nimport { Formik, useFormik } from 'formik';\nimport formikProps from 'src/utils/formikProps';\nimport utils from 'src/utils/utils';\nimport LayoutContainer from 'src/layout/LayoutContainer';\nimport { useSnack } from 'src/provider/SnackbarProvider';\nimport { useNavigate } from 'react-router';\nimport PerfectScrollbar from 'react-perfect-scrollbar'\nimport { BsFillTriangleFill } from 'react-icons/bs';\nimport {\n Avatar,\n Grid,\n Box,\n Button,\n Card,\n Checkbox,\n Radio,\n Table,\n TableBody,\n TableCell,\n TableHead,\n TablePagination,\n TableRow,\n TableSortLabel,\n Typography\n} from '@material-ui/core'\nimport { makeStyles } from '@material-ui/styles'\nimport ChangeHistoryIcon from '@material-ui/icons/ChangeHistory';\nimport classNames from 'classnames'\nimport EditDialog from 'src/components/EditDialog';\nconst moment = require('moment-timezone')\nconst _ = require('lodash')\nconst yup = require('yup')\n\n\nconst useStyles = makeStyles({\n table: {\n \"& .MuiTableRow-root\": {\n height: '50px'\n },\n \"& .MuiTableCell-root\": {\n whiteSpace: 'nowrap',\n textAlign: 'center',\n\n },\n '& .borderLeft': {\n borderLeft: \"1px solid rgba(224, 224, 224, 0.8)\",\n },\n \"& .MuiTableSortLabel-icon\": {\n opacity: 0.5,\n },\n \"& .Mui-active .MuiTableSortLabel-icon\": {\n opacity: 1,\n color: 'limegreen',\n },\n '& .row-new': {\n backgroundColor: 'rgba(50, 255, 50,0.2)',\n '&:hover': {\n backgroundColor: 'rgba(50, 255, 50,0.3)'\n }\n },\n '& .row-update': {\n backgroundColor: 'rgba(255, 255, 50,0.2)',\n '&:hover': {\n backgroundColor: 'rgba(255, 255, 50,0.3)'\n }\n },\n '& .cell-update': {\n // color: 'brown',\n fontWeight: 'bold'\n },\n '& .error': {\n backgroundColor: 'rgba(255, 50, 50,0.2) !important',\n '&:hover': {\n backgroundColor: 'rgba(255, 50, 50,0.3) !important'\n }\n }\n },\n toolbar: {\n display: 'flex',\n '& .left': {\n width: '100%',\n display: 'flex',\n margin: '-8px',\n width: 'calc(100% - 16px)',\n flexWrap: 'wrap',\n '& .item': {\n display: 'flex',\n alignItems: 'center',\n padding: '8px',\n whiteSpace: 'nowrap'\n }\n },\n '& .right': {\n width: '100%',\n display: 'flex',\n margin: '-8px',\n width: 'calc(100% - 16px)',\n flexWrap: 'wrap',\n '& .item': {\n display: 'flex',\n alignItems: 'center',\n padding: '8px',\n whiteSpace: 'nowrap'\n }\n }\n }\n})\n\n\nconst StudentUploadTable = ({\n adminList = [],\n rows = [],\n loading = false,\n _orderBy = 'index',\n _order = 'asc',\n rowsPerPage = 10,\n rowsPerPageOptions = [5, 10, 25],\n rowsRef,\n formik,\n ...rest\n}) => {\n const { t } = useLocale()\n const classes = useStyles()\n\n\n const { organization } = useAuthData()\n\n const [order, setOrder] = useState(_order)\n const [orderBy, setOrderBy] = useState(_orderBy)\n\n const sorted = _.orderBy(_.map(rows, (r, index) => ({ ...r, index: index + 1, class_no: r.class_no && _.toString(r.class_no).padStart(2, '0') })), [orderBy], [order])\n\n const handleSort = (path) => {\n if (orderBy == path) {\n setOrder(order === 'asc' ? 'desc' : 'asc')\n }\n else {\n setOrderBy(path)\n setOrder('asc')\n }\n }\n\n const headCell = (label, path, sort = true) => {\n if (sort) {\n return (\n handleSort(path)} hideSortIcon={false} >\n {label}\n \n )\n }\n else return label\n }\n\n useEffect(() => {\n formik.validateForm()\n }, [order, orderBy]);\n\n return (\n \n \n \n \n \n {headCell(t('index'), 'index')}\n {headCell(t('email'), 'email')}\n {/* {headCell(t('email'), 'email', false)} */}\n {headCell(t('name_zh'), 'name.zh')}\n {headCell(t('name_en'), 'name.en')}\n {headCell(t('password'), 'username', false)}\n \n \n \n {_.map(sorted, (row, index) => {\n var errors = _.get(formik.errors, row.index - 1)\n var isError = _.size(errors) > 0\n var oldStudent = _.find(adminList, { email: row.email })\n return <>\n \n \n {row.index}\n \n {_.map(['email', 'name.zh', 'name.en', 'password'], (path, index) => {\n var newValue = _.get(row, path)\n var oldValue = _.get(oldStudent, path)\n var isChanged = oldStudent && newValue != oldValue\n return \n {newValue || '-'}\n \n })}\n \n {_.size(errors) > 0 && \n \n \n \n \n {_.keys(errors).map(e => {\n return

{`${t(e)} : ${errors[e]}`}

\n })}\n
\n
\n
\n
\n }\n \n })}\n {_.size(rows) == 0 &&\n \n \n {t('no_records')}\n \n \n }\n
\n
\n
\n
\n )\n}\n\n\nconst StudentUpload = () => {\n const api = useApi()\n const nav = useNavigate()\n\n const { t } = useLocale()\n const snack = useSnack()\n const classes = useStyles()\n const [adminList, setAdminList] = useState([]);\n const [newAdminList, setNewAdminList] = useState([]);\n const [open, setOpen] = useState();\n\n\n useEffect(() => {\n api.getAdminList().then(res => {\n setAdminList(res.data)\n })\n }, []);\n\n const schema = yup.array().of(\n yup.object().shape({\n name: yup.object({\n en: yup.string(),\n zh: yup.string(),\n }),\n email: yup.string().required(),\n password: yup.string().min(6).nullable()\n })\n )\n const formik = useFormik({\n initialValues: newAdminList || [],\n enableReinitialize: true,\n validationSchema: schema,\n onSubmit: (values, helper) => {\n api.batchCreateAdmin(values).then(res => {\n nav('/admin/admin_list')\n snack.open(t('upload_success'))\n }).catch(e => {\n snack.error(t('upload_fail'))\n }).finally(() => {\n helper.setSubmitting(false)\n })\n }\n })\n\n const handleExport = () => {\n utils.exportCsv([], [\n { label: 'Email', value: row => row.email },\n { label: 'Chinese_Name', value: row => row.name?.zh },\n { label: 'English_Name', value: row => row.name?.en },\n { label: 'Password', value: row => row.password },\n ], 'admin_template')\n }\n\n const handleCsv = async (f) => {\n var csv = await utils.readFileAsText(f)\n var arr = await utils.csv2JsonArray(csv, {\n 'Email': 'email',\n 'Chinese_Name': 'name.zh',\n 'English_Name': 'name.en',\n 'Password': 'password',\n })\n\n setNewAdminList(_.filter(arr, item => item.email))\n }\n\n useEffect(() => {\n formik.validateForm()\n }, [formik.initialValues]);\n\n\n const handleConfirm = async () => {\n var errors = await formik.validateForm()\n if (_.size(errors) <= 0) {\n setOpen(true)\n }\n }\n\n var count = useMemo(() => _.countBy(newAdminList, s => {\n return _.findIndex(adminList, { email: s.email }) >= 0 ? 'update' : 'new'\n }), [open])\n\n return (\n \n \n \n \n \n \n {t('add_admin')} \n \n \n \n {t('update_admin')} \n \n \n \n {t('invalid_data')} \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n setOpen(false)} confirmText={t('confirm')}>\n {count?.new &&

{t('add_a_admins', { a: count?.new })}

}\n {count?.update &&

{t('update_a_admins', { a: count?.update })}

}\n
\n
\n );\n}\n\nexport default StudentUpload;","import { Helmet } from 'react-helmet';\nimport { Backdrop, Box, Container, Grid, Card, CardContent, Typography, CardHeader, Button, Divider, IconButton, TextField, InputAdornment, MenuItem } from '@material-ui/core';\nimport { makeStyles } from '@material-ui/styles';\nimport { useEffect } from 'react';\nimport { useBackDrop } from 'src/provider/BackdropProvider';\nimport { useState } from 'react';\nimport useApi from 'src/api/api';\nimport { ArrowBack } from '@material-ui/icons';\nimport Icons from 'src/icons';\nimport DataTable from 'src/components/DataTable/DataTable';\nimport DataTableNoLimit from 'src/components/DataTable/DataTableNoLimit';\nimport _ from 'lodash';\nimport { useNavigate } from 'react-router';\nimport { useLocale } from 'src/provider/LocaleProvider';\nimport utils from 'src/utils/utils';\nimport SearchInput from 'src/components/SearchInput';\nimport LayoutContainer from 'src/layout/LayoutContainer';\nimport { useAuthData } from 'src/provider/AuthDataProvider';\nconst moment = require('moment-timezone')\n\nconst useStyles = makeStyles(theme => ({\n\n row: {\n // height: '10px',\n // paddingBottom: theme.spacing(2),\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n marginBottom: theme.spacing(2)\n },\n spacer: {\n flex: 1\n },\n\n tableCell: {\n \"& .MuiTableCell-root\": {\n textAlign: 'center',\n borderLeft: \"none !important\",\n },\n \"& .MuiTableRow-root\": {\n height: '60px'\n },\n\n },\n caption: {\n fontSize: '12px'\n }\n\n}))\n\nfunction sortRank(data, selectedCategory) {\n var temp\n if (selectedCategory && selectedCategory !== 'null') {\n temp = _.map(data, r => {\n var p = _.find(r?.pointsByRuleCategories, { ruleCategory_id: selectedCategory })\n if (p) {\n return ({ ...r, point: p.total || 0 })\n }\n return ({ ...r, point: 0 })\n })\n }\n else {\n temp = _.map(data, r => ({ ...r, point: r.totalpoints || 0 }))\n }\n temp = _.orderBy(temp, 'point', 'desc')\n console.log('sortRank => temp', temp)\n return temp\n}\n\n\n\nconst ClassRanking = () => {\n const classes = useStyles()\n const loadingView = useBackDrop();\n const api = useApi()\n const nav = useNavigate()\n const { t, getLanguage } = useLocale()\n\n const { selectedPeriod, organization, } = useAuthData()\n const [classRanking, setClassRanking] = useState([])\n const [categories, setCategories] = useState([]);\n const [selectedCategory, setSelectedCategory] = useState('null');\n\n const handleExport = () => {\n utils.exportCsv(classRanking, [\n { label: t('rank'), value: (row) => { return (_.findIndex(classRanking, (k) => k.class === row.class) + 1) } },\n { label: t('class'), value: (row) => row['class'], },\n { label: t('total_point'), value: (row) => row['totalpoints'] }\n ], 'class_ranking')\n }\n useEffect(() => {\n api.getPointRuleCategories({ setCategories })\n }, []);\n\n useEffect(() => {\n var temp = sortRank(classRanking, selectedCategory)\n setClassRanking(temp)\n }, [selectedCategory]);\n\n useEffect(() => {\n if (selectedPeriod) {\n api.getClassRanking(selectedPeriod).then(({ data }) => {\n var temp = sortRank(data, selectedCategory)\n setClassRanking(temp)\n })\n }\n }, [selectedPeriod])\n return (\n \n \n \n setSelectedCategory(e.target.value)}\n >\n {t('all_rule_category')} \n {_.map(categories, c => {\n return {_.get(c, 'name.' + getLanguage())} \n })}\n \n \n \n \n \n \n { return (_.findIndex(classRanking, (k) => k.class === row.class) + 1) } },\n { label: t('class'), value: 'class', },\n { label: t('total_point'), value: 'point' }\n ]}\n\n />\n
Last Updated at {moment().format(\"YYYY-MM-DD HH:mm:ss\")}
\n\n
\n )\n}\nexport default ClassRanking;\n","import { Helmet } from 'react-helmet';\nimport { Backdrop, Box, Container, Grid, Card, CardContent, Typography, CardHeader, Button, Divider, IconButton, TextField, MenuItem } from '@material-ui/core';\nimport { makeStyles } from '@material-ui/styles';\nimport { useEffect } from 'react';\nimport { useBackDrop } from 'src/provider/BackdropProvider';\nimport { useState } from 'react';\nimport useApi from 'src/api/api';\nimport { ArrowBack } from '@material-ui/icons';\nimport Icons from 'src/icons';\nimport DataTable from 'src/components/DataTable/DataTable';\nimport DataTableNoLimit from 'src/components/DataTable/DataTableNoLimit';\nimport _ from 'lodash';\nimport { useNavigate } from 'react-router';\nimport { useLocale } from 'src/provider/LocaleProvider';\nimport SearchInput from 'src/components/SearchInput';\nimport utils from 'src/utils/utils';\nimport LayoutContainer from 'src/layout/LayoutContainer';\nimport { useAuthData } from 'src/provider/AuthDataProvider';\nimport { getLanguage } from 'react-switch-lang';\nconst moment = require('moment-timezone')\n\nconst useStyles = makeStyles(theme => ({\n\n row: {\n // height: '10px',\n // paddingBottom: theme.spacing(2),\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n marginBottom: theme.spacing(2)\n },\n spacer: {\n flex: 1\n },\n tableCell: {\n \"& .MuiTableCell-root\": {\n textAlign: 'center',\n borderLeft: \"none !important\",\n },\n \"& .MuiTableRow-root\": {\n height: '60px'\n },\n\n },\n caption: {\n fontSize: '12px'\n }\n\n}))\n\n\n\nfunction sortRank(data, selectedCategory) {\n var temp\n if (selectedCategory && selectedCategory !== 'null') {\n temp = _.map(data, r => {\n var p = _.find(r?.pointsByRuleCategories, { ruleCategory_id: selectedCategory })\n if (p) {\n return ({ ...r, point: p.total || 0 })\n }\n return ({ ...r, point: 0 })\n })\n }\n else {\n temp = _.map(data, r => ({ ...r, point: r.totalpoints || 0 }))\n }\n temp = _.orderBy(temp, 'point', 'desc')\n return temp\n}\n\n\n\nconst UserRanking = () => {\n const classes = useStyles()\n const loadingView = useBackDrop();\n const api = useApi()\n const nav = useNavigate()\n const { t, getLanguage } = useLocale()\n const { selectedPeriod, organization } = useAuthData()\n const [userRanking, setUserRanking] = useState([])\n const [categories, setCategories] = useState([]);\n const [selectedCategory, setSelectedCategory] = useState('null');\n\n\n const handleExport = () => {\n utils.exportCsv(userRanking, [\n { label: t('rank'), value: (row) => { return (_.findIndex(userRanking, (k) => k.user === row.user) + 1) } },\n { label: t('class'), value: row => row['class'], },\n { label: t('name_zh'), value: row => row.name?.zh },\n { label: t('name_en'), value: row => row.name?.en, },\n { label: t('total_point'), value: row => row['totalpoints'] }\n ], 'user_ranking')\n }\n\n useEffect(() => {\n api.getPointRuleCategories({ setCategories })\n }, []);\n\n useEffect(() => {\n var temp = sortRank(userRanking, selectedCategory)\n setUserRanking(temp)\n }, [selectedCategory]);\n\n useEffect(async () => {\n if (selectedPeriod) {\n api.getUserRanking(selectedPeriod).then(({ data }) => {\n var temp = sortRank(data, selectedCategory)\n setUserRanking(temp)\n })\n }\n }, [selectedPeriod])\n return (\n \n \n \n setSelectedCategory(e.target.value)}\n >\n {t('all_rule_category')} \n {_.map(categories, c => {\n return {_.get(c, 'name.' + getLanguage())} \n })}\n \n \n \n \n \n \n { return (_.findIndex(userRanking, (k) => k.user === row.user) + 1) } },\n { label: t('class'), value: 'class', },\n { label: t('name_zh'), value: 'name.zh' },\n { label: t('name_en'), value: 'name.en', },\n { label: t('total_point'), value: 'point' }\n ]}\n\n />\n
Last Updated at {moment().format(\"YYYY-MM-DD HH:mm:ss\")}
\n\n
)\n}\nexport default UserRanking;\n","import { Button, Card, Container, Grid, IconButton, InputAdornment, MenuItem, Tab, Tabs, TextField, Tooltip } from '@material-ui/core'\nimport React, { useState, useEffect, useMemo } from 'react'\nimport useApi from 'src/api/api'\nimport Icons from 'src/icons'\nimport DataTable from 'src/components/DataTable/DataTable'\nimport { useLocale } from 'src/provider/LocaleProvider'\nimport SearchInput from 'src/components/SearchInput'\nimport { Helmet } from 'react-helmet'\nimport LayoutContainer from 'src/layout/LayoutContainer'\nimport { useFormik } from 'formik'\nimport utils from 'src/utils/utils'\nimport formikProps from 'src/utils/formikProps'\nimport EditDialog from 'src/components/EditDialog'\nimport LoadingView from 'src/components/LoadingView';\nconst _ = require('lodash')\nconst yup = require('yup')\nconst PointRuleCategories = ({ snack }) => {\n\n const [addDialog, setAddDialog] = useState(false)\n const [selected, setSelected] = useState(null)\n const [search, setSearch] = useState('')\n const api = useApi()\n const [tab, setTab] = useState('teacher');\n const { t } = useLocale()\n const [dialogMode, setDialogMode] = useState();\n const [categories, setCategories] = useState()\n const [parentCategories, setParentCategories] = useState();\n const [isLoading, setIsLoading] = useState(true);\n\n useEffect(() => {\n getData()\n }, [])\n\n function getData() {\n setIsLoading(true)\n api.getPointRuleCategories({ noCache: false }).then(res => {\n setCategories(_.filter(res.data, row => !_.includes(row.type, 'parent')))\n setParentCategories(_.filter(res.data, row => _.includes(row.type, 'parent')))\n setIsLoading(false)\n })\n }\n\n const schema = yup.object().shape({\n name: yup.object({\n en: yup.string().nullable(),\n zh: yup.string().nullable(),\n }),\n type: yup.mixed().oneOf(['reward', 'parent_reward'])\n })\n const formik = useFormik({\n initialValues: selected || {\n name: {\n en: '',\n zh: ''\n },\n type: tab == 'parent' ? 'parent_reward' : 'reward',\n },\n enableReinitialize: true,\n validationSchema: schema,\n onSubmit: (values, helper) => {\n if (values._id) {\n api.updateRuleCategory(values).then(() => {\n getData()\n setDialogMode(null)\n }).catch(e => {\n snack.error()\n }).finally(() => {\n helper.setSubmitting(false)\n })\n }\n else {\n api.addRuleCategory(values).then(() => {\n getData()\n setDialogMode(null)\n }).catch(e => {\n snack.error()\n }).finally(() => {\n helper.setSubmitting(false)\n })\n }\n },\n })\n const handleCreate = () => {\n setSelected(null)\n setDialogMode('add')\n formik.validateForm()\n }\n\n const handleEdit = (row) => {\n setSelected(row)\n formik.validateForm()\n setDialogMode('edit')\n }\n\n function handleSearch(e) {\n setSearch(e.target.value)\n }\n\n const headCells = [\n { id: 'name_zh', label: t('name_zh'), value: 'name.zh', width: '40%', align: 'left' },\n { id: 'name_en', label: t('name_en'), value: 'name.en', width: '40%', align: 'left' },\n {\n id: 'actions', label: t('actions'),\n width: '20%',\n content: row => (\n \n handleEdit(row)} sx={{ p: .5 }}> \n \n ),\n },\n ]\n\n function rowfilter(row) {\n if (!search || search === '') return true\n if (row.name) {\n for (var key in row.name) {\n var value = row.name[key]\n if (value.includes(search.trim())) {\n return true\n }\n }\n }\n return false\n }\n const rows = useMemo(() => {\n if (!categories) return categories\n return categories.filter(rowfilter)\n }, [search, categories])\n\n var filtered = useMemo(() => utils.searchFilter(tab == 'parent' ? parentCategories : categories, search, ['name.en', `name.zh`]), [categories, parentCategories, search, tab])\n\n if (isLoading) {\n return ;\n }\n return (\n \n \n setTab(v)} >\n \n \n \n \n \n \n \n \n \n
\n \n
\n
\n {tab == 'teacher' &&\n \n }\n {tab == 'parent' &&\n \n }\n {/* Dialogs */}\n setDialogMode(null)}>\n \n {t('reward')} \n {t('parent_reward')} \n \n \n \n \n \n
\n )\n\n}\n\n\nexport default PointRuleCategories","import { Box, Button, Card, Container, IconButton, InputAdornment, MenuItem, Select, Switch, Tab, Tabs, TextField, Tooltip } from '@material-ui/core';\nimport React, { Fragment, useMemo, useCallback, useEffect, useState, useRef, useLayoutEffect } from 'react'\nimport useApi from 'src/api/api';\nimport { Helmet } from 'react-helmet';\nimport DataTable from 'src/components/DataTable/DataTable';\nimport { useLocale } from 'src/provider/LocaleProvider';\nimport { useAuthData } from 'src/provider/AuthDataProvider';\nimport Icons from 'src/icons';\nimport EditDialog from 'src/components/EditDialog';\nimport { Formik, useFormik } from 'formik';\nimport formikProps from 'src/utils/formikProps';\nimport utils from 'src/utils/utils';\nimport SearchInput from 'src/components/SearchInput';\nimport _ from 'lodash';\nimport { UsbTwoTone } from '@material-ui/icons';\nimport { useSnack } from 'src/provider/SnackbarProvider';\nimport LayoutContainer from 'src/layout/LayoutContainer';\nimport classNames from 'classnames';\nimport { getLanguage, translate } from 'react-switch-lang';\nimport axios from 'axios';\nimport LoadingView from 'src/components/LoadingView';\nconst moment = require('moment-timezone')\n\nconst yup = require('yup')\n\n\n\n\n\nconst PointRules = () => {\n const api = useApi()\n const { t, getLanguage, translate } = useLocale()\n const rowsRef = useRef([])\n const snack = useSnack()\n\n const [dialogMode, setDialogMode] = useState(null);\n const [selectedRow, setSelectedRow] = useState();\n const [search, setSearch] = useState('');\n\n const [rules, setRules] = useState([]);\n const [parentRules, setParentRules] = useState([]);\n const [categories, setCategories] = useState()\n\n const [tab, setTab] = useState('teacher');\n const [isLoading, setIsLoading] = useState(true);\n\n useEffect(() => {\n setIsLoading(true)\n api.getPointRuleCategories({ setCategories })\n getRules()\n }, []);\n\n\n function getRules() {\n api.getPointRules({ isReward: true }).then(res => {\n // setRules(res.data)\n setRules(_.filter(res.data, row => !_.includes(row.type, 'parent')))\n setParentRules(_.filter(res.data, row => _.includes(row.type, 'parent')))\n setIsLoading(false);\n })\n }\n\n const schema = yup.object().shape({\n name: yup.string().required(),\n ruleCategory: yup.string().required().nullable(),\n type: yup.mixed().oneOf(['reward', 'parent_reward']).required(),\n point: yup.number().min(0).required(),\n isActive: yup.bool(),\n quota_type: yup.mixed().when('type', {\n is: v => v == 'parent_reward',\n then: yup.mixed().oneOf(['daily', 'weekly']).required()\n }),\n quota_count: yup.number().when('type', {\n is: v => v == 'parent_reward',\n then: yup.number().min(1).required()\n }),\n })\n\n const formik = useFormik({\n initialValues: selectedRow || {\n name: '',\n type: tab == 'parent' ? 'parent_reward' : 'reward',\n isActive: true,\n point: null,\n ruleCategory: null,\n quota_type: 'daily',\n quota_count: 1,\n },\n enableReinitialize: true,\n validationSchema: schema,\n onSubmit: (values, helper) => {\n if (values._id) {\n api.updatePointRule(values._id, values).then(res => {\n setDialogMode(null)\n getRules()\n snack.open()\n }).catch(e => {\n snack.error()\n }).finally(() => {\n helper.setSubmitting(false)\n })\n }\n else {\n api.addPointRule(values).then(res => {\n setDialogMode(null)\n getRules()\n snack.open()\n }).catch(e => {\n snack.error()\n }).finally(() => {\n helper.setSubmitting(false)\n })\n }\n },\n })\n useEffect(() => {\n if (dialogMode) formik.resetForm()\n }, [dialogMode]);\n\n const handleCreate = () => {\n setSelectedRow(null)\n setDialogMode('add')\n formik.validateForm()\n }\n\n const handleEdit = (row) => {\n setSelectedRow({ ...row, ruleCategory: row.ruleCategory?._id, point: Math.abs(_.toNumber(row.point)) })\n formik.validateForm()\n setDialogMode('edit')\n }\n\n var filtered = useMemo(() => utils.searchFilter(tab == 'parent' ? parentRules : rules, search, ['name', `ruleCategory.name.${getLanguage()}`, 'point']), [parentRules, rules, search, tab])\n\n const handleExport = () => {\n utils.exportCsv(rowsRef.current, [\n { label: t('pointrule_name'), value: row => row.name },\n { label: t('point'), value: row => row.point, sort: true },\n { label: t('rule_category'), value: row => _.get(row, `ruleCategory.name.${getLanguage()}`) },\n { label: t('status'), value: r => r.isActive ? t('active') : t('inactive') },\n { label: t('description'), value: row => row.description },\n ], `attendance_history`)\n }\n\n\n const handleConfirmDelete = async () => {\n await api.deletePointRule(selectedRow._id)\n getRules()\n setDialogMode(null)\n }\n\n if (isLoading) {\n return ;\n }\n\n return (\n \n \n setTab(v)} >\n \n \n \n \n \n \n
\n \n \n \n {tab == 'teacher' &&\n classNames({ 'text-green': row.type == 'reward' })}\n rows={filtered}\n heads={[\n { label: t('pointrule_name'), value: 'name', sort: true },\n { label: t('point'), value: 'point', sort: true },\n { label: t('rule_category'), value: `ruleCategory.name.${getLanguage()}`, sort: true },\n { label: t('status'), value: `isActive`, content: r => r.isActive ? t('active') : t('inactive'), className: (row) => row.isActive ? 'text-green' : 'text-red', sort: true },\n { label: t('description'), value: `description`, sort: true },\n {\n id: 'action', label: t('actions'), content: (row) => {\n return \n \n handleEdit(row)} sx={{ p: 0.5 }}> \n \n \n }\n },\n ]} _orderBy={'name'} _order='asc'\n />\n }\n {tab == 'parent' &&\n classNames({ 'text-green': row.type == 'parent_reward' })}\n rows={filtered}\n heads={[\n { label: t('pointrule_name'), value: 'name', sort: true },\n { label: t('point'), value: 'point', sort: true },\n { label: t('rule_category'), value: `ruleCategory.name.${getLanguage()}`, sort: true },\n { label: t('status'), value: `isActive`, content: r => r.isActive ? t('active') : t('inactive'), className: (row) => row.isActive ? 'text-green' : 'text-red', sort: true },\n { label: t('description'), value: `description`, sort: true },\n {\n id: 'action', label: t('actions'), content: (row) => {\n return \n \n handleEdit(row)} sx={{ p: 0.5 }}> \n \n \n }\n },\n ]} _orderBy={'name'} _order='asc'\n />\n }\n {/* Dialogs */}\n setDialogMode(null)}\n TitleComponent={() => (\n <>\n {selectedRow && \n setDialogMode('delete')} >\n \n \n }\n \n )}\n\n >\n \n {t('reward')} \n {t('parent_reward')} \n \n {formik.values.type != 'redeem' &&\n \n {_.map(_.filter(categories, c => tab == 'parent' ? c.type == 'parent_reward' : c.type == 'reward'), c => {\n return {translate(c?.name)} \n })}\n \n }\n \n \n \n {formik.values.type == 'parent_reward' && <>\n \n {t('quota_daily')} \n {t('quota_weekly')} \n \n \n \n }\n \n {t('active')} \n {t('inactive')} \n \n \n setDialogMode(null)}\n confirmText={t('confirm')}\n >\n

\n {t('delete_confirm_msg', { a: `${selectedRow?.name}` })}\n

\n \n {/* setDialogMode(null)}\n >\n {() => {\n }}\n

\n {'Are you sure to delete'}\n

\n

{selectedStudent?.username}

\n

{selectedStudent?.class}

\n

{selectedStudent?.class_no}

\n

{selectedStudent?.name?.en}

\n */}\n \n );\n}\n\nexport default PointRules;","import { Box, Button, Container, IconButton, InputAdornment, MenuItem, Select, Switch, TextField, Tooltip } from '@material-ui/core';\nimport React, { Fragment, useMemo, useCallback, useEffect, useState, useRef, useLayoutEffect } from 'react'\nimport useApi from 'src/api/api';\nimport { Helmet } from 'react-helmet';\nimport DataTable from 'src/components/DataTable/DataTable';\nimport { useLocale } from 'src/provider/LocaleProvider';\nimport { useAuthData } from 'src/provider/AuthDataProvider';\nimport Icons from 'src/icons';\nimport EditDialog from 'src/components/EditDialog';\nimport { Formik, useFormik } from 'formik';\nimport formikProps from 'src/utils/formikProps';\nimport utils from 'src/utils/utils';\nimport SearchInput from 'src/components/SearchInput';\nimport _ from 'lodash';\nimport { UsbTwoTone } from '@material-ui/icons';\nimport { useSnack } from 'src/provider/SnackbarProvider';\nimport LayoutContainer from 'src/layout/LayoutContainer';\nimport LoadingView from 'src/components/LoadingView';\nconst moment = require('moment-timezone')\n\nconst yup = require('yup')\n\nconst AttendanceRules = () => {\n const api = useApi()\n const { t, getLanguage } = useLocale()\n\n const rowsRef = useRef([])\n const snack = useSnack()\n\n const [dialogMode, setDialogMode] = useState(null);\n const [selectedRow, setSelectedRow] = useState();\n\n const [search, setSearch] = useState('');\n const [rules, setRules] = useState([]);\n const [isLoading, setIsLoading] = useState(true);\n\n useEffect(() => {\n getRules()\n }, []);\n\n \n function getRules() {\n api.getAttendanceRules().then(res => setRules(res.data))\n .then(() => setIsLoading(false))\n \n }\n\n const schema = yup.object().shape({\n name: yup.string().required(),\n description: yup.string(),\n isActive: yup.bool()\n })\n\n const formik = useFormik({\n initialValues: selectedRow || {},\n enableReinitialize: true,\n validationSchema: schema,\n onSubmit: (values, helper) => {\n if (values._id) {\n api.updateAttendanceRules(values._id, values).then(res => {\n setDialogMode(null)\n getRules()\n snack.open()\n }).catch(e => {\n snack.error()\n }).finally(() => {\n helper.setSubmitting(false)\n })\n }\n else {\n api.addAttendanceRules(values).then(res => {\n setDialogMode(null)\n getRules()\n snack.open()\n }).catch(e => {\n snack.error()\n }).finally(() => {\n helper.setSubmitting(false)\n })\n }\n }\n })\n\n useEffect(() => {\n if (dialogMode) formik.resetForm()\n }, [dialogMode]);\n\n const handleCreate = () => {\n setSelectedRow(null)\n setDialogMode('add')\n }\n\n const handleEdit = (row) => {\n setSelectedRow(row)\n setDialogMode('edit')\n }\n\n\n const filtered = useCallback(utils.searchFilter(rules, search, ['name', `ruleCategory.name.${getLanguage()}`]), [rules, search])\n\n if (isLoading) {\n return ;\n }\n return (\n \n \n \n
\n \n \n r.isActive ? t('active') : t('inactive'), className: (row) => row.isActive ? 'text-green' : 'text-red', sort: true },\n {\n id: 'action', label: t('actions'), content: (row) => {\n return \n \n handleEdit(row)} sx={{ p: .5 }}> \n \n \n }\n },\n ]} _orderBy='point' _order='asc'\n />\n {/* Dialogs */}\n setDialogMode(null)}>\n \n \n \n {t('active')} \n {t('inactive')} \n \n \n \n );\n}\n\nexport default AttendanceRules;","import { Box, Button, Container, IconButton, InputAdornment, MenuItem, Select, Switch, TextField, Tooltip } from '@material-ui/core';\nimport React, { Fragment, useMemo, useCallback, useEffect, useState, useRef, useLayoutEffect } from 'react'\nimport useApi from 'src/api/api';\nimport { Helmet } from 'react-helmet';\nimport DataTable from 'src/components/DataTable/DataTable';\nimport { useLocale } from 'src/provider/LocaleProvider';\nimport { useAuthData } from 'src/provider/AuthDataProvider';\nimport Icons from 'src/icons';\nimport EditDialog from 'src/components/EditDialog';\nimport { Formik, useFormik } from 'formik';\nimport formikProps from 'src/utils/formikProps';\nimport utils from 'src/utils/utils';\nimport SearchInput from 'src/components/SearchInput';\nimport _ from 'lodash';\nimport { UsbTwoTone } from '@material-ui/icons';\nimport { useSnack } from 'src/provider/SnackbarProvider';\nimport LayoutContainer from 'src/layout/LayoutContainer';\nimport classNames from 'classnames';\nimport LoadingView from 'src/components/LoadingView';\nconst moment = require('moment-timezone')\n\nconst yup = require('yup')\n\nconst AttendanceHistory = () => {\n const api = useApi()\n const { t, getLanguage } = useLocale()\n\n const rowsRef = useRef([])\n const snack = useSnack()\n const { selectedPeriod } = useAuthData()\n\n const [search, setSearch] = useState('');\n\n const [attendanceLIst, setAttendanceLIst] = useState();\n const [isLoading, setIsLoading] = useState(true);\n\n useEffect(() => {\n setIsLoading(true)\n api.getAttendanceList({ period: selectedPeriod }).then(res => setAttendanceLIst(res.data))\n .then(() => setIsLoading(false))\n \n }, [selectedPeriod]);\n\n const handleExportAll = () => {\n utils.exportCsv(_.orderBy(attendanceLIst, 'created_at', 'desc'), [\n { label: t('created_at'), value: row => new Date(row.created_at).toLocaleString() },\n { label: t('attendancerule_name'), value: row => row.attendanceRule?.name },\n { label: t('class'), value: row => row.profile?.class },\n { label: t('class_no'), value: row => row.profile?.class_no },\n { label: t('name_zh'), value: row => row.user?.name?.zh },\n { label: t('name_en'), value: row => row.user?.name?.en },\n { label: t('state'), value: row => t(row.type) },\n ], `attendance_history`)\n }\n\n const handleExport = () => {\n utils.exportCsv(rowsRef.current, [\n { label: t('created_at'), value: row => new Date(row.created_at).toLocaleString() },\n { label: t('attendancerule_name'), value: row => row.attendanceRule?.name },\n { label: t('class'), value: row => row.profile?.class },\n { label: t('class_no'), value: row => row.profile?.class_no },\n { label: t('name_zh'), value: row => row.user?.name?.zh },\n { label: t('name_en'), value: row => row.user?.name?.en },\n { label: t('state'), value: row => t(row.type) },\n ], `attendance_history`)\n }\n\n if (isLoading) {\n return ;\n }\n return (\n \n \n \n
\n \n \n \n classNames({ 'text-green': row.type == 'checkin' })}\n rowsRef={rowsRef} rows={utils.searchFilter(attendanceLIst, search, [\n 'profile.class',\n 'profile.class_no',\n 'user.name.en',\n 'user.name.zh',\n 'attendanceRule.name',\n (row) => t(row.type || ''),\n // (row) => new Date(row.created_at).toLocaleString()\n ])} heads={[\n // { id: 'u_id', label: t('u_id'), value: 'profile.u_id', sort: true },\n { id: 'created_at', label: t('created_at'), value: 'created_at', content: (row) => new Date(row.created_at).toLocaleString(), sort: true },\n { id: 'attendancerule_name', label: t('attendancerule_name'), value: 'attendanceRule.name', sort: true },\n { id: 'class', label: t('class'), value: 'profile.class', sort: true },\n { id: 'class_no', label: t('class_no'), value: 'profile.class_no', sort: true },\n { id: 'name_zh', label: t('name_zh'), value: 'user.name.zh', sort: true },\n { id: 'name_en', label: t('name_en'), value: 'user.name.en', sort: true },\n // { id: 'deviceName', label: t('deviceName'), value: 'device.name', sort: true },\n { id: 'state', label: t('state'), value: 'type', translate: 1, sort: true },\n ]}\n />\n \n );\n}\n\nexport default AttendanceHistory;","import { Box, Button, Card, Container, IconButton, InputAdornment, MenuItem, Select, Switch, TextField, Tooltip, Tabs, Tab } from '@material-ui/core';\nimport React, { Fragment, useMemo, useCallback, useEffect, useState, useRef, useLayoutEffect } from 'react';\nimport useApi from 'src/api/api';\nimport { Helmet } from 'react-helmet';\nimport DataTable from 'src/components/DataTable/DataTable';\nimport { useLocale } from 'src/provider/LocaleProvider';\nimport { useAuthData } from 'src/provider/AuthDataProvider';\nimport Icons from 'src/icons';\nimport EditDialog from 'src/components/EditDialog';\nimport { Formik, useFormik } from 'formik';\nimport formikProps from 'src/utils/formikProps';\nimport utils from 'src/utils/utils';\nimport SearchInput from 'src/components/SearchInput';\nimport _ from 'lodash';\nimport { SignalCellularNullTwoTone, UsbTwoTone } from '@material-ui/icons';\nimport { useSnack } from 'src/provider/SnackbarProvider';\nimport LayoutContainer from 'src/layout/LayoutContainer';\nimport LoadingView from 'src/components/LoadingView';\n\n\n\nconst moment = require('moment-timezone');\nconst yup = require('yup');\nconst DeviceList = () => {\n const api = useApi();\n const { t, getLanguage } = useLocale();\n\n const rowsRef = useRef([]);\n const snack = useSnack();\n\n const [dialogMode, setDialogMode] = useState(null);\n const [selectedRow, setSelectedRow] = useState();\n const [search, setSearch] = useState('');\n const [devices, setDevices] = useState([]);\n const [activeDevices, setActiveDevices] = useState([]);\n const [attendanceRules, setAttendanceRules] = useState([]);\n const [redeemRules, setRedeemRules] = useState();\n const [tab, setTab] = useState('active');\n const [isLoading, setIsLoading] = useState(false);\n\n useEffect(() => {\n setIsLoading(true)\n api.getAttendanceRules().then(res => {\n setAttendanceRules(res.data);\n });\n api.getPointRules({ isReward: false }).then(res => {\n setRedeemRules(res.data);\n //console.log(res.data)\n });\n api.getDevices().then(res => {\n //setDevices(res.data);\n setDevices(_.filter(res.data, ['isEnableDeviceFunction', false]))\n setActiveDevices(_.filter(res.data, ['isEnableDeviceFunction', true]))\n setIsLoading(false)\n //console.log(res.data)\n });\n }, []);\n\n\n function getRules() {\n api.getDevices().then(res => {\n setDevices(_.filter(res.data, ['isEnableDeviceFunction', false]))\n setActiveDevices(_.filter(res.data, ['isEnableDeviceFunction', true]))\n //setDevices(res.data);\n });\n }\n\n const schema = yup.object().shape({\n name: yup.string().required(),\n description: yup.string(),\n isActive: yup.bool(),\n pointRule: yup.string().when('state', {\n is: 'redeem',\n then: yup.string().required()\n }),\n attendanceRule: yup.string().when('state', {\n is: (v) => v == 'checkin' || v == 'checkout',\n then: yup.string().required()\n }),\n isEnableDeviceFunction: yup.bool(),\n });\n\n const formik = useFormik({\n initialValues: selectedRow || {\n name: '',\n description: '',\n isActive: true\n },\n enableReinitialize: true,\n validationSchema: schema,\n onSubmit: (values, helper) => {\n if (values._id) {\n api.updateDevice(values._id, values).then(res => {\n setDialogMode(null);\n getRules();\n snack.open();\n }).catch(e => {\n snack.error();\n }).finally(() => {\n helper.setSubmitting(false);\n });\n }\n else {\n snack.error('missing device id');\n helper.setSubmitting(false);\n // api.addDevice(values).then(res => {\n // setDialogMode(null)\n // getRules()\n // snack.open()\n // }).catch(e => {\n // snack.error()\n // }).finally(() => {\n // helper.setSubmitting(false)\n // })\n }\n }\n });\n const { values, errors } = formik;\n useEffect(() => {\n if (dialogMode) formik.resetForm();\n }, [dialogMode]);\n\n const handleCreate = () => {\n setSelectedRow(null);\n setDialogMode('add');\n };\n\n const handleEdit = (row) => {\n setSelectedRow({ ...row, attendanceRule: row?.attendanceRule?._id, pointRule: row?.pointRule?._id });\n setDialogMode('edit');\n };\n\n // useEffect(() => {\n // if ((values.state !== 'checkin' && values.state !== 'checkout')) {\n // formik.setFieldValue('attendanceRule', null)\n // }\n // }, [values.state]);\n\n\n const headCells = [\n { id: 'name', label: t('name'), value: 'name', sort: true },\n { id: 'state', label: t('state'), value: 'state', translate: 1, sort: true },\n { id: 'attendancerule_name', label: t('attendancerule_name'), value: 'attendanceRule.name', sort: true },\n { id: 'pointRule', label: t('pointRule'), value: 'pointRule.name', sort: true },\n { id: 'description', label: t('description'), value: 'description', sort: true },\n { id: 'status', label: t('status'), value: `isActive`, content: r => r.isEnableDeviceFunction ? t('active') : t('inactive'), sort: true ,className: (row) => row.isEnableDeviceFunction ? 'text-green' : 'text-red'},\n {\n id: 'action', label: t('actions'), content: (row) => {\n return \n \n handleEdit(row)} sx={{ p: .5 }}> \n \n ;\n }\n },\n ]\n\n const rows = useMemo(() => {\n if (!devices) return devices\n return devices.filter(rowfilter)\n }, [search, devices])\n\n function rowfilter(row) {\n if (!search || search === '') return true\n if (row.name) {\n for (var key in row.name) {\n var value = row.name[key]\n if (value.includes(search.trim())) {\n return true\n }\n }\n }\n return false\n }\n\n var filtered = useMemo(() => utils.searchFilter(tab == 'active' ? activeDevices : devices, search, ['name', 'state', 'attendancerule_name',\n 'pointRule', 'description', 'status']), [devices, activeDevices, search, tab])\n\n if (isLoading) {\n return ;\n }\n return (\n \n \n setTab(v)} >\n \n \n \n \n \n \n
\n {/* */}\n \n {/* r.isEnableDeviceFunction ? t('active') : t('inactive'), sort: true },\n {\n id: 'action', label: t('actions'), content: (row) => {\n return \n \n handleEdit(row)} sx={{ p: .5 }}> \n \n ;\n }\n },\n ]} _orderBy='name' _order='asc'\n /> */}\n {tab == 'active' &&\n \n }\n {tab == 'inactive' &&\n \n }\n {/* Dialogs */}\n setDialogMode(null)}>\n \n \n \n {t('checkin')} \n {t('checkout')} \n {t('enquiry')} \n {t('games')} \n {t('redeem')} \n \n {!(values.state !== 'checkin' && values.state !== 'checkout') &&\n \n {_.map(attendanceRules, r => {r.name} )}\n \n }\n {values.state == 'redeem' &&\n \n {_.map(redeemRules, r => {r.name} )}\n \n }\n \n {t(\"active\")} \n {t(\"inactive\")} \n \n \n \n );\n};\n\nexport default DeviceList;","import { Box, Button, Chip, Container, Dialog, DialogActions, DialogContent, DialogTitle, Divider, IconButton, List, ListItem, Tooltip, Typography } from '@material-ui/core';\nimport _ from 'lodash';\nimport moment from 'moment';\nimport React, { useEffect, useRef, useState } from 'react';\nimport { useNavigate } from 'react-router';\nimport useApi from 'src/api/api';\nimport DataTable from 'src/components/DataTable/DataTable';\nimport EditDialog from 'src/components/EditDialog';\nimport Icons from 'src/icons';\nimport LayoutContainer from 'src/layout/LayoutContainer';\nimport { useAuthData } from 'src/provider/AuthDataProvider';\nimport { useLocale } from 'src/provider/LocaleProvider';\nimport LoadingView from 'src/components/LoadingView';\nconst prettyBytes = require('pretty-bytes');\n\n\n\nexport default function Notice() {\n const nav = useNavigate()\n const { t, getLanguage } = useLocale()\n const [notices, setNotices] = useState([]);\n const { selectedPeriod } = useAuthData()\n const api = useApi()\n const [selectedRow, setSelectedRow] = useState();\n const [selected, setSelected] = useState([])\n const [isDialogOpen, setIsDialogOpen] = useState(false)\n const [dialogMode, setDialogMode] = useState(null);\n const [isLoading, setIsLoading] = useState(true);\n\n useEffect(() => {\n setIsLoading(true)\n api.getNotices(selectedPeriod).then(res => {\n setNotices(res.data)\n setIsLoading(false)\n\n }).catch(e => {\n\n })\n }, [selectedPeriod]);\n\n const handleDeleteNotice = () => {\n api.batchDeleteNotice(_.map(selected, k => k._id)).then(() =>\n api.getNotices(selectedPeriod).then(res => {\n setNotices(res.data)\n setSelected([])\n setDialogMode(null)\n })).catch(e => console.log(e))\n }\n if (isLoading) {\n return ;\n }\n return (\n \n\n \n \n \n \n \n \n {selectedRow?.title}\n \n \n {_.size(selectedRow?.filters) > 0 ? _.map(selectedRow?.filters, (k, i) => {\n return (\n \n\n \n \n )\n }) : \n\n \n }\n \n\n < Divider />\n \n {/* \n {_.map(selected?.filters, f => t(f.name)).sort().join(', ')}\n */}\n \n {selectedRow?.message}\n \n \n {\n selectedRow?.attachments.map((a, index) => {\n return \n
\n \n\n {a && a.name}\n
\n
\n
\n {a.size && prettyBytes(a.size)}\n
\n {a.url && \n \n \n }\n\n \n })\n }\n \n \n \n\n \n\n \n\n \n\n \n\n \n moment(row.created_at).format('YYYY/MM/DD, HH:mm:ss'), sort: true },\n // {id: 'is_public', label: t('is_public'), value: 'is_public', content: (row) => row.is_public ? t('yes') : t('no'), sort: true },\n {\n label: t('status'), value: 'is_public',\n\n content: (row, index) => row.is_public ? t('is_public') : t('not_public')\n },\n {\n label: t('actions'), content: (row) =>\n <>\n \n {\n setSelectedRow(row)\n setIsDialogOpen(true)\n }}>\n \n \n \n \n {\n nav(`/admin/notice/edit/${row._id}`)\n }}>\n \n \n \n \n }\n ]}\n checked={selected}\n setChecked={setSelected}\n />\n setDialogMode(null)}\n confirmText={t('confirm')}\n >\n

\n {t('delete_notice_confirm_msg')}\n

\n \n )\n}","\n\nimport React, { Fragment, useMemo, useCallback, useEffect, useState, useRef, useLayoutEffect } from 'react'\nimport useApi from 'src/api/api';\nimport LayoutContainer from 'src/layout/LayoutContainer';\nimport { useLocale } from 'src/provider/LocaleProvider';\nimport { Backdrop, Box, Container, Grid, Card, CardContent, Typography, CardHeader, Button, Divider, IconButton, Table, TableHead, TableCell, TableBody, TableRow, CheckBox, Checkbox } from '@material-ui/core';\nimport _ from 'lodash';\nimport { makeStyles } from '@material-ui/styles';\nimport classNames from 'classnames';\n\n\nconst useStyles = makeStyles({\n table: {\n \"& .MuiTableRow-root\": {\n height: '30px'\n },\n \"& .MuiTableCell-root\": {\n whiteSpace: 'nowrap',\n textAlign: 'center'\n },\n \"& .MuiTableSortLabel-icon\": {\n opacity: 0.5,\n },\n \"& .Mui-active .MuiTableSortLabel-icon\": {\n opacity: 1,\n color: 'limegreen',\n },\n \"& .MuiCheckbox-root\": {\n padding: 0\n },\n \"& .MuiTableHead-root\": {\n outline: '1px rgba(200, 200, 200, 1) solid',\n position: 'sticky',\n top: 0,\n backgroundColor: 'white',\n zIndex: 10,\n },\n },\n checked: {\n backgroundColor: 'rgba(50, 255, 50,0.3)',\n '&:hover': {\n backgroundColor: 'rgba(50, 255, 50,0.4) !important'\n }\n }\n})\n\n\n\nconst LeftTable = ({ heads, rows, selected, setSelected, placeHolder = '-', isValid, onRowInvalid }) => {\n const classes = useStyles()\n const { t } = useLocale()\n const [checked, setChecked] = useState([]);\n const isChecked = (id) => _.findIndex(checked, { _id: id }) >= 0\n\n\n useEffect(() => {\n setChecked(_.filter(checked, c => _.findIndex(rows, { _id: c.id }) >= 0))\n }, [rows]);\n\n const handleCheck = (row) => {\n var newChecked = _.toArray(checked)\n if (isChecked(row._id)) {\n _.pull(newChecked, row)\n }\n else {\n newChecked.push(row)\n }\n setChecked(newChecked)\n }\n\n const handleCheckAll = (row) => {\n var newChecked = _.toArray(checked)\n if (_.size(checked) <= 0) {\n newChecked = rows\n }\n else if (_.size(checked) >= _.size(rows)) {\n newChecked = []\n }\n else {\n newChecked = []\n }\n setChecked(newChecked)\n }\n\n\n const handleMoveRight = () => {\n var input = _.groupBy(checked, c => isValid(c))\n setSelected(_.concat(selected, _.intersection(input['true'], rows)))\n if (input['false'] && input['false'].length > 0) {\n onRowInvalid(input['false'])\n }\n setChecked([])\n }\n\n return (\n \n \n \n {`${_.size(checked)}/${_.size(rows)} ${t('Reward.selected')}`}\n \n \n \n \n \n \n \n \n \n {\n _.map(heads, cell => (\n \n {_.get(cell, 'label')}\n \n ))\n }\n \n 0 && _.size(checked) < _.size(rows) && _.size(rows) > 0}\n checked={_.size(checked) == _.size(rows) && _.size(rows) > 0}\n onClick={handleCheckAll}\n />\n \n \n \n \n {_.map(rows, (row, index) => (\n handleCheck(row)}\n className={classNames({ [classes.checked]: isChecked(row._id) })}\n\n >\n {_.map(heads, cell => {\n var render = cell.content ? cell.content(row, index) : _.get(row, cell.value)\n return (\n \n {!render || render == '' ? cell.placeHolder || placeHolder : render}\n \n )\n })}\n \n \n \n \n ))}\n \n
\n
\n
\n )\n}\n\nconst Rightable = ({ heads, rows, placeHolder = '-', selected, setSelected }) => {\n const classes = useStyles()\n const { t } = useLocale()\n\n const [checked, setChecked] = useState([]);\n\n const isChecked = (id) => _.findIndex(checked, { _id: id }) >= 0\n\n const handleCheck = (row) => {\n var newChecked = _.toArray(checked)\n if (isChecked(row._id)) {\n _.pull(newChecked, row)\n }\n else {\n newChecked.push(row)\n }\n\n setChecked(newChecked)\n }\n\n const handleCheckAll = (row) => {\n var newChecked = _.toArray(checked)\n if (_.size(checked) <= 0) {\n newChecked = rows\n }\n else if (_.size(checked) >= _.size(rows)) {\n newChecked = []\n }\n else {\n newChecked = []\n }\n setChecked(newChecked)\n }\n\n const handleMoveLeft = () => {\n setSelected(selected => {\n return _.differenceBy(selected, checked, '_id')\n })\n setChecked([])\n }\n\n return (\n \n \n \n {`${_.size(checked)}/${_.size(rows)} ${t('Reward.selected')}`}\n \n \n \n \n \n \n \n \n \n {\n _.map(heads, cell => (\n \n {_.get(cell, 'label')}\n \n ))\n }\n \n 0 && _.size(checked) < _.size(rows) && _.size(rows) > 0}\n checked={_.size(checked) == _.size(rows) && _.size(rows) > 0}\n onClick={handleCheckAll}\n />\n \n \n \n \n {_.map(rows, (row, index) => (\n handleCheck(row)}\n className={classNames({ [classes.checked]: isChecked(row._id) })}\n >\n {_.map(heads, cell => {\n var render = cell.content ? cell.content(row, index) : _.get(row, cell.value)\n return (\n \n {!render || render == '' ? cell.placeHolder || placeHolder : render}\n \n )\n })}\n \n \n \n \n ))}\n \n
\n
\n
\n )\n}\n\n\nconst TransferTable = ({ list, selected, setSelected = new Function(), leftHeads = [], rightHeads, isValid = () => true, onRowInvalid = new Function() }) => {\n const left = useMemo(() => _.orderBy(_.differenceBy(list, selected, '_id'), 'class', 'asc'), [list, selected])\n const right = useMemo(() => _.orderBy(selected, 'class', 'asc'), [selected])\n\n return useMemo(() => (\n \n \n \n \n \n \n \n \n ), [list, selected, setSelected]);\n}\n\nexport default TransferTable;","import {\n Box,\n Button,\n Card,\n Divider,\n Grid,\n IconButton,\n List,\n ListItem,\n ListItemText,\n Tab,\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableRow,\n Tabs,\n Typography\n} from '@material-ui/core';\nimport { makeStyles } from '@material-ui/styles';\nimport classNames from 'classnames';\nimport { useFormik } from 'formik';\nimport { useEffect, useMemo, useState } from 'react';\nimport useApi from 'src/api/api';\nimport ClassSelector from 'src/components/ClassSelector';\nimport LoadingView from 'src/components/LoadingView';\nimport SearchInput from 'src/components/SearchInput';\nimport TransferTable from 'src/components/TransferTable';\nimport Icons from 'src/icons';\nimport LayoutContainer from 'src/layout/LayoutContainer';\nimport { useAuthData } from 'src/provider/AuthDataProvider';\nimport { useLocale } from 'src/provider/LocaleProvider';\nimport { useSnack } from 'src/provider/SnackbarProvider';\nimport utils from 'src/utils/utils';\nconst _ = require('lodash');\nconst yup = require('yup');\nconst useStyles = makeStyles({\n table: {\n '& .MuiTableRow-root': {\n height: '50px'\n },\n '& .MuiTableCell-root': {\n whiteSpace: 'nowrap',\n textAlign: 'center'\n },\n '& .MuiTableBody-root .pointer': {\n cursor: 'pointer'\n },\n '& .MuiTableSortLabel-icon': {\n opacity: 0.5\n },\n '& .Mui-active .MuiTableSortLabel-icon': {\n opacity: 1,\n color: 'limegreen'\n },\n '& .MuiCheckbox-root': {\n padding: 0\n },\n '& .MuiTableHead-root': {\n outline: '1px rgba(200, 200, 200, 1) solid',\n position: 'sticky',\n top: 0,\n backgroundColor: 'white',\n zIndex: 10\n }\n },\n checked: {\n backgroundColor: 'rgba(50, 255, 50,0.3)',\n '&:hover': {\n backgroundColor: 'rgba(50, 255, 50,0.4) !important'\n }\n }\n});\n\nconst RedeemTransferTable = ({\n list,\n selectedStudent,\n selected,\n setSelected = new Function()\n}) => {\n const classes = useStyles();\n const snack = useSnack();\n const { t, translate, getLanguage } = useLocale();\n\n console.log('hello');\n\n const student_point = _.get(selectedStudent, 'point', 0);\n const totalRedeemPoints = _.toArray(selected).reduce(\n (a, b) => a + b.point * b.count,\n 0\n );\n\n const handleMoveRight = (row) => {\n if (totalRedeemPoints + row.point > student_point) {\n snack.error(t('lack_point'));\n return;\n }\n var temp = _.toArray(selected);\n var index = _.findIndex(temp, { _id: row._id });\n if (index < 0) {\n temp.push({ ...row, count: 1 });\n } else {\n _.set(temp, `${index}.count`, _.get(temp, `${index}.count`, 0) + 1);\n }\n\n setSelected(temp);\n };\n\n const handleMoveLeft = (row) => {\n var temp = _.toArray(selected);\n var index = _.findIndex(temp, { _id: row._id });\n var count = _.get(temp, `${index}.count`, 1);\n if (count > 1) {\n _.set(temp, `${index}.count`, count - 1);\n } else {\n temp.splice(index, 1);\n }\n setSelected(temp);\n };\n\n const handleClearRow = (row) => {\n var temp = _.toArray(selected);\n var index = _.findIndex(temp, { _id: row._id });\n temp.splice(index, 1);\n setSelected(temp);\n };\n\n const handleClearAll = (row) => {\n setSelected([]);\n };\n\n if (!selectedStudent) {\n return (\n \n {t('no_selected_student')}\n \n );\n }\n\n return (\n \n \n \n \n \n {`${_.size(list)} ${t('choices')}`}\n \n \n \n \n \n \n \n {t('rule_name')} \n {t('need_point')} \n \n \n \n {_.map(_.orderBy(list, 'name', 'asc'), (row, index) => (\n handleMoveRight(row)}\n >\n {_.get(row, 'name', '-')} \n {_.get(row, 'point', '0')} \n \n ))}\n \n
\n
\n
\n
\n \n \n \n \n {`${selectedStudent.class} (${\n selectedStudent.class_no\n }) ${translate(selectedStudent.name)} ${t('point_used', {\n a: totalRedeemPoints,\n b: student_point - totalRedeemPoints\n })}`}\n \n \n \n {t('clear')}\n \n \n \n \n \n \n \n {t('name')} \n {t('need_point')} \n {t('count')} \n \n \n \n \n {_.map(_.orderBy(selected, 'name', 'asc'), (row, index) => (\n \n {_.get(row, 'name', '-')} \n {_.get(row, 'point', '0')} \n {_.get(row, 'count', '0')} \n \n \n handleMoveLeft(row)} />\n \n \n handleClearRow(row)} />\n \n \n \n ))}\n \n
\n
\n
\n
\n
\n );\n};\n\nconst ByRules = ({ studentList, setStudentList, selectedPeriod, rules }) => {\n const snack = useSnack();\n const classes = useStyles();\n const api = useApi();\n const { t, translate, getLanguage } = useLocale();\n const [search, setSearch] = useState('');\n const [filter, setFilter] = useState();\n\n const formik = useFormik({\n initialValues: {\n profile: '',\n pointRules: [],\n selectedStudent: null,\n selectedRules: []\n },\n validateOnMount: true,\n validationSchema: yup.object().shape({\n profile: yup.string().required(),\n pointRules: yup\n .array()\n .min(1)\n .of(\n yup.object({\n rule: yup.string().required(),\n count: yup.number().min(1)\n })\n )\n }),\n onSubmit: (values, helper) => {\n api\n .studentRedeem(values)\n .then((res) => {\n snack.open(t('success_redeem'));\n console.log('api.studentRedeem => helper', helper);\n getStudentData(helper);\n })\n .catch((e) => {\n snack.error(t('fail_redeem'));\n })\n .finally(() => {\n helper.setSubmitting(false);\n });\n }\n });\n\n const { values, errors, setFieldValue } = formik;\n\n function getStudentData(helper) {\n if (!selectedPeriod) return;\n api.getStudentList().then((res) => {\n setStudentList(res.data);\n if (helper) {\n helper.resetForm();\n helper.validateForm();\n } else {\n formik.resetForm();\n formik.validateForm();\n }\n });\n }\n\n useEffect(() => {\n setFieldValue('profile', values.selectedStudent?.profile);\n }, [values.selectedStudent]);\n\n useEffect(() => {\n setFieldValue(\n 'pointRules',\n _.map(values.selectedRules, (r) => ({ rule: r._id, count: r.count }))\n );\n }, [values.selectedRules]);\n\n // var classFiltered = utils.searchFilter(studentList, filter?.value, ['class'])\n\n var studentFiltered = useMemo(\n () =>\n utils.searchFilter(\n studentList,\n [filter?.value, search],\n [['class'], ['name.en', 'name.zh', 'class', 'class_no']]\n ),\n [studentList, search, filter]\n );\n\n return (\n
\n \n {t('choose_student')}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {_.map(studentFiltered, (student, index) => {\n var className = classNames({\n [classes.checked]: student.profile == formik.values.profile\n });\n return (\n setFieldValue('selectedStudent', student)}\n >\n \n \n \n \n \n );\n })}\n \n \n \n {values.selectedStudent && (\n <>\n \n {t('choose_rule')}\n \n \n \n \n \n \n setFieldValue('selectedRules', v)}\n />\n \n )}\n \n 0 ||\n !values.selectedStudent ||\n formik.isSubmitting\n }\n >\n {t('confirm')}\n \n \n \n );\n};\n\nconst ByProfiles = ({ studentList, setStudentList, selectedPeriod, rules }) => {\n const snack = useSnack();\n const classes = useStyles();\n const api = useApi();\n const { t, translate, getLanguage } = useLocale();\n const [search, setSearch] = useState('');\n const [filter, setFilter] = useState();\n const [selectedRule, setSelectedRule] = useState();\n const [selectedStudent, setSelectedStudent] = useState([]);\n\n const formik = useFormik({\n initialValues: {\n selectedCategory: '',\n pointRule_id: '',\n counts: 1,\n profiles: []\n },\n validationSchema: yup.object().shape({\n pointRule_id: yup.string().required(),\n profiles: yup.array().min(1).of(yup.string().required()).required(),\n counts: yup.number().min(1)\n }),\n onSubmit: (values, helper) => {\n api\n .studentRedeemByProfile(values)\n .then((res) => {\n snack.open(t('success_redeem'));\n api.getStudentList().then((res) => {\n setStudentList(res.data);\n setSelectedRule(null);\n setSelectedStudent([]);\n helper.resetForm();\n });\n })\n .catch((e) => {\n snack.error(t('fail_redeem'));\n })\n .finally(() => {\n helper.setSubmitting(false);\n });\n }\n });\n\n useEffect(() => {\n api.getStudentList().then((res) => {\n setStudentList(res.data);\n formik.resetForm();\n setSelectedRule(null);\n setSelectedStudent([]);\n });\n }, [selectedPeriod]);\n\n useEffect(() => {\n formik.setFieldValue(\n 'profiles',\n _.map(selectedStudent, (s) => s.profile)\n );\n }, [selectedStudent]);\n\n useEffect(() => {\n setSelectedStudent([]);\n if (selectedRule) formik.setFieldValue('pointRule_id', selectedRule?._id);\n }, [selectedRule]);\n\n var classFiltered = useMemo(\n () => utils.searchFilter(studentList, filter?.value, ['class']),\n [studentList, filter?.value]\n );\n var ruleFiltered = utils.searchFilter(\n rules,\n [formik.values.selectedCategory, search],\n [['ruleCategory._id'], ['name']]\n );\n\n return (\n
\n \n {t('choose_rule')}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {_.map(ruleFiltered, (rule, index) => {\n var className = classNames({\n [classes.checked]: rule._id == formik.values.pointRule_id\n });\n return (\n setSelectedRule(rule)}\n >\n \n \n \n );\n })}\n {_.size(ruleFiltered) == 0 && (\n \n \n \n )}\n \n \n \n {selectedRule?.name && (\n <>\n \n {t('choose_student')}\n \n \n \n \n \n \n \n \n \n {\n return row?.point >= selectedRule.point;\n }}\n onRowInvalid={(row) => {\n snack.error(t('lack_point_msg', { count: _.size(row) }));\n }}\n />\n \n )}\n \n {/* {selectedRule?.name &&\n <>\n \n {t('reward_confirm_message', { a: _.size(selectedStudent), b: selectedRule?.name, c: formik.values.counts })}\n \n \n {_.times(5, n => {n + 1} )}\n \n \n } */}\n 0 || !selectedRule || formik.isSubmitting\n }\n >\n {t('confirm')}\n \n \n \n );\n};\n\nconst PointRedeem = () => {\n const classes = useStyles();\n const api = useApi();\n const { t, translate, getLanguage } = useLocale();\n const [rules, setRules] = useState([]);\n const [studentList, setStudentList] = useState([]);\n const { selectedPeriod } = useAuthData();\n const [tab, setTab] = useState('rules');\n const [isLoading, setIsLoading] = useState(true);\n\n useEffect(() => {\n setIsLoading(true);\n api.getPointRules({ isActive: true }).then((res) => {\n setRules(\n _.filter(\n res.data,\n (r) => r.type == 'redeem' || r.type == 'virtual_redeem'\n )\n );\n setIsLoading(false);\n });\n }, []);\n\n useEffect(() => {\n api.getStudentList().then((res) => {\n setStudentList(res.data);\n });\n }, [selectedPeriod]);\n if (isLoading) {\n return ;\n }\n\n return (\n \n \n setTab(v)}>\n \n \n \n \n
\n \n
\n
\n \n
\n
\n );\n};\n\nexport default PointRedeem;\n","import React, { Fragment, useMemo, useCallback, useEffect, useState, useRef, useLayoutEffect } from 'react'\nimport useApi from 'src/api/api';\nimport LayoutContainer from 'src/layout/LayoutContainer';\nimport { useLocale } from 'src/provider/LocaleProvider';\nimport { Backdrop, Box, Container, Grid, Card, CardContent, Typography, Tab, Tabs, tab, CardHeader, Button, Divider, IconButton, List, ListItem, ListItemText, TextField, MenuItem, Select, FormControl, InputLabel } from '@material-ui/core';\nimport TransferTable from 'src/components/TransferTable';\nimport SearchInput from 'src/components/SearchInput';\nimport utils from 'src/utils/utils';\nimport ClassSelector from 'src/components/ClassSelector';\nimport { makeStyles } from '@material-ui/styles';\nimport { useFormik } from 'formik';\nimport classNames from 'classnames';\nimport { useSnack } from 'src/provider/SnackbarProvider';\nimport formikProps from 'src/utils/formikProps';\nimport { useAuthData } from 'src/provider/AuthDataProvider';\nimport LoadingView from 'src/components/LoadingView';\nconst _ = require('lodash')\nconst yup = require('yup')\nconst useStyles = makeStyles({\n checked: {\n backgroundColor: 'rgba(50, 255, 50,0.3)',\n '&:hover': {\n backgroundColor: 'rgba(50, 255, 50,0.4) !important'\n }\n }\n})\n\nconst PointReward = () => {\n const classes = useStyles()\n const api = useApi()\n const { t, getLanguage, translate } = useLocale()\n\n const [studentList, setStudentList] = useState([]);\n const { selectedPeriod } = useAuthData()\n const [selectedRule, setSelectedRule] = useState();\n const [selectedStudent, setSelectedStudent] = useState([]);\n const [search, setSearch] = useState('');\n const [searchStudent, setSearchStudent] = useState('');\n const [filter, setFilter] = useState();\n const [rules, setRules] = useState([]);\n const [parentRules, setParentRules] = useState([]);\n\n const [tab, setTab] = useState('teacher');\n \n const snack = useSnack()\n\n const [ruleCategories, setRuleCategories] = useState([]);\n const [parentRuleCategories, setParentRuleCategories] = useState([]);\n const [isLoading, setIsLoading] = useState(true);\n\n useEffect(() => {\n setIsLoading(true);\n api.getPointRuleCategories({ type: 'reward' }).then(res => {\n setRuleCategories(res.data)\n })\n api.getPointRules({ type: 'reward', isActive: true }).then(res => {\n setRules(res.data)\n \n })\n api.getPointRuleCategories({ type: 'parent_reward' }).then(res => {\n setParentRuleCategories(res.data)\n })\n api.getPointRules({ type: 'parent_reward', isActive: true }).then(res => {\n setParentRules(res.data)\n setIsLoading(false);\n })\n }, []);\n\n\n const formik = useFormik({\n initialValues: {\n selectedCategory: '',\n selectedParentCategory: '',\n pointRule_id: '',\n counts: 1,\n profiles: []\n },\n validationSchema: yup.object().shape({\n pointRule_id: yup.string().required(),\n profiles: yup.array().min(1).of(yup.string().required()).required(),\n counts: yup.number().min(1)\n }),\n onSubmit: (values, helper) => {\n api.studentReward(values).then(res => {\n snack.open(t('success_reward'))\n api.getStudentList().then(res => {\n setStudentList(res.data)\n setSelectedRule(null)\n setSelectedStudent([])\n helper.resetForm()\n })\n }).catch(e => {\n if (e.response.data.errorCode === 0) {\n console.log(e.response)\n snack.error(_.replace(t('fail_reward_current_period'), \"{current period name}\", e.response.data.period))\n }\n else\n snack.error(t('fail_reward'))\n }).finally(() => {\n helper.setSubmitting(false)\n })\n }\n })\n\n useEffect(() => {\n api.getStudentList().then(res => {\n setStudentList(res.data)\n formik.resetForm()\n setSelectedRule(null)\n setSelectedStudent([])\n })\n }, [selectedPeriod]);\n\n useEffect(() => {\n formik.setFieldValue('profiles', _.map(selectedStudent, s => s.profile))\n }, [selectedStudent]);\n\n useEffect(() => {\n if (selectedRule) formik.setFieldValue('pointRule_id', selectedRule?._id)\n }, [selectedRule]);\n\n\n\n var classFiltered = useMemo(() => utils.searchFilter(studentList, filter?.value, ['class']), [studentList, filter?.value])\n var ruleFiltered = utils.searchFilter(rules, [formik.values.selectedCategory, search], [['ruleCategory._id'], ['name']])\n var parentRuleFiltered = utils.searchFilter(parentRules, [formik.values.selectedParentCategory, search], [['ruleCategory._id'], ['name']])\n\n if(isLoading){\n return \n }\n return (\n \n \n {setTab(v);}} >\n \n \n \n \n {tab == 'teacher' &&\n
\n {t('choose_rule')}\n \n \n \n {t('rule_category')}\n \n {/* */}\n {t('all_rule_category')} \n {_.map(ruleCategories, n => {_.get(n, `name.${getLanguage()}`, '-')} )}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {_.map(ruleFiltered, (rule, index) => {\n var className = classNames({ [classes.checked]: rule._id == formik.values.pointRule_id })\n return (\n setSelectedRule(rule)} >\n \n \n \n )\n })}\n {_.size(ruleFiltered) == 0 &&\n \n \n \n }\n \n \n \n {\n selectedRule?.name &&\n <>\n {t('choose_student')}\n \n \n \n \n \n \n \n \n \n \n }\n \n {selectedRule?.name &&\n <>\n \n {t('reward_confirm_message', { a: _.size(selectedStudent), b: selectedRule?.name, c: formik.values.counts })}\n \n \n {_.times(5, n => {n + 1} )}\n \n \n }\n \n \n }\n\n {tab == 'parent' &&\n
\n {t('choose_rule')}\n \n \n \n {t('rule_category')}\n \n {/* */}\n {t('all_rule_category')} \n {_.map(parentRuleCategories, n => {_.get(n, `name.${getLanguage()}`, '-')} )}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {_.map(parentRuleFiltered, (rule, index) => {\n var className = classNames({ [classes.checked]: rule._id == formik.values.pointRule_id })\n return (\n setSelectedRule(rule)} >\n \n \n \n )\n })}\n {_.size(parentRuleFiltered) == 0 &&\n \n \n \n }\n \n \n \n {\n selectedRule?.name &&\n <>\n {t('choose_student')}\n \n \n \n \n \n \n \n \n \n \n }\n \n {selectedRule?.name &&\n <>\n \n {t('reward_confirm_message', { a: _.size(selectedStudent), b: selectedRule?.name, c: formik.values.counts })}\n \n \n {_.times(5, n => {n + 1} )}\n \n \n }\n \n \n \n }\n\n
\n );\n}\n\nexport default PointReward;","import { useEffect, useMemo, useState } from 'react'\nimport PropTypes from 'prop-types'\nimport moment from 'moment'\nimport PerfectScrollbar from 'react-perfect-scrollbar'\nimport {\n Avatar,\n Box,\n Card,\n Checkbox,\n Table,\n TableBody,\n TableCell,\n TableHead,\n TablePagination,\n TableRow,\n TableSortLabel,\n Typography\n} from '@material-ui/core'\nimport { makeStyles } from '@material-ui/styles'\nimport { useLocale } from 'src/provider/LocaleProvider'\nimport classNames from 'classnames'\nimport utils from 'src/utils/utils'\nconst _ = require('lodash')\n\nconst useStyles = makeStyles({\n table: {\n \"& .MuiTableRow-root\": {\n height: '50px'\n },\n \"& .MuiTableCell-root\": {\n whiteSpace: 'nowrap',\n textAlign: 'center'\n // borderLeft: \"1px solid rgba(224, 224, 224, 1)\",\n },\n \"& .MuiTableSortLabel-icon\": {\n opacity: 0.5,\n },\n \"& .Mui-active .MuiTableSortLabel-icon\": {\n opacity: 1,\n color: 'limegreen',\n },\n \"& .MuiCheckbox-root\": {\n padding: '4px'\n }\n },\n})\n\n\nexport const usePagination = ({\n _page = 0,\n _orderBy = 'created_at',\n _order = 'desc',\n _limit = 10,\n _limitOptions = [5, 10, 25]\n} = {}) => {\n const [page, setPage] = useState(_page)\n const [limit, setLimit] = useState(_limit)\n const [limitOptions, setLimitOptions] = useState(_limitOptions)\n const [order, setOrder] = useState(_order)\n const [orderBy, setOrderBy] = useState(_orderBy)\n\n return ({\n page, setPage,\n limit, setLimit,\n order, setOrder,\n orderBy, setOrderBy,\n limitOptions,\n })\n}\n\n\nexport default ({\n rows = [], heads = [], total, className,\n placeHolder = '-',\n limitOptions = [],\n page, setPage,\n limit, setLimit,\n order, setOrder,\n orderBy, setOrderBy,\n rowClassName = new Function(),\n ...rest\n}) => {\n const classes = useStyles()\n\n const emptyRows = limit - Math.min(limit, _.size(rows))\n // const [checked, setChecked] = useState([])\n const handleLimitChange = (event) => {\n setLimit(event.target.value)\n }\n\n const handlePageChange = (event, newPage) => {\n setPage(newPage)\n }\n\n const handleSort = (cell) => {\n if (orderBy == cell.value) {\n setOrder(order === 'asc' ? 'desc' : 'asc')\n }\n else {\n setOrderBy(cell.value)\n }\n }\n const { t } = useLocale()\n\n return (\n \n \n \n {/* {'https://discord.gg/SCGddHEM'} */}\n \n \n \n {\n _.map(heads, (cell, index) => {\n return (\n \n {cell.sort === true\n ? handleSort(cell)}\n hideSortIcon={false}\n >\n {cell.label}\n \n : _.get(cell, 'label')\n }\n )\n })\n }\n \n \n \n {_.map(rows, (bodyCell, index) => (\n {\n // rowOnClick(bodyCell)\n // }}\n >\n {_.map(heads, cell => {\n var render = ''\n if (cell.content) {\n render = cell.content(bodyCell, index)\n }\n else {\n render = _.get(bodyCell, cell.value)\n }\n if (cell.translate) {\n render = t(_.toString(render))\n }\n if (typeof render != 'number' && (_.isNil(render) || render == '')) {\n render = cell.placeHolder || placeHolder\n }\n return (\n \n {render}\n \n )\n })}\n \n ))}\n {emptyRows > 0 && (\n \n \n {total === 0 && rows && {t('no_records')}}\n \n \n )}\n \n
\n
\n
\n \n
\n )\n}\n\n","import {\n Alert,\n Box,\n Button,\n Grid,\n IconButton,\n MenuItem,\n TextField,\n Tooltip\n} from '@material-ui/core';\nimport classNames from 'classnames';\nimport _ from 'lodash';\nimport { useEffect, useRef, useState } from 'react';\nimport { useMutation } from 'react-query';\nimport useApi from 'src/api/api';\nimport PagingTable, {\n usePagination\n} from 'src/components/DataTable/PagingTable';\nimport EditDialog from 'src/components/EditDialog';\nimport LoadingView from 'src/components/LoadingView';\nimport Icons from 'src/icons';\nimport LayoutContainer from 'src/layout/LayoutContainer';\nimport { useAuthData } from 'src/provider/AuthDataProvider';\nimport { useLocale } from 'src/provider/LocaleProvider';\nimport { useSnack } from 'src/provider/SnackbarProvider';\nimport utils from 'src/utils/utils';\n\nconst PointHistory = () => {\n const api = useApi();\n const { t, getLanguage, translate } = useLocale();\n\n const pagination = usePagination();\n const {\n page,\n setPage,\n limit,\n setLimit,\n order,\n setOrder,\n orderBy,\n setOrderBy\n } = pagination;\n\n const rowsRef = useRef([]);\n const snack = useSnack();\n const { selectedPeriod } = useAuthData();\n const [search, setSearch] = useState({});\n const [actions, setActions] = useState({});\n const [total, setTotal] = useState(0);\n const [lastUpdate, setLastUpdate] = useState();\n const [dateRange, setDateRange] = useState('7');\n\n const [dialogMode, setDialogMode] = useState('');\n const [selectedRow, setSelectedRow] = useState();\n const timer = useRef();\n const [rawData, setRawData] = useState({});\n const [isLoading, setIsLoading] = useState(true);\n\n function getRows() {\n // setActions([])\n api\n .getPointHistoriesV2({\n period_id: selectedPeriod,\n dateRange: dateRange,\n search,\n order_by: orderBy,\n order,\n limit,\n page\n })\n .then((res) => {\n if (res.data.last_updated_at !== lastUpdate) {\n setActions(res.data.pages);\n } else {\n setActions((h) => {\n return { ...h, ...res.data.pages };\n });\n }\n setTotal(res.data.total);\n setLastUpdate(res.data.last_updated_at);\n setIsLoading(false);\n });\n }\n\n useEffect(() => {\n let pre = Math.max(0, page - 1);\n let current = page;\n let next = Math.min(total, page + 1);\n if (!(actions[pre] && actions[current] && actions[next])) {\n getRows();\n }\n }, [page]);\n\n useEffect(() => {\n setActions({});\n getRows();\n }, [orderBy, order, dateRange, selectedPeriod]);\n\n useEffect(() => {\n setActions({});\n if (page === 0) {\n getRows();\n } else {\n setPage(0);\n }\n }, [limit]);\n\n useEffect(() => {\n if (actions) {\n setPage(0);\n setActions({});\n clearTimeout(timer.current);\n timer.current = setTimeout(getRows, 500);\n }\n }, [search]);\n\n const handleDelete = (row) => {\n setDialogMode('delete');\n setSelectedRow(row);\n };\n\n const handleDeleteOne = async () => {\n await api.deletePointHistory(selectedRow?._id).then((res) => {\n setDialogMode(null);\n setSelectedRow(null);\n getRows();\n });\n await snack.open(t('delete_success'));\n };\n\n const exportAll = async () => {\n var data = rawData['all'];\n if (!rawData['all']) {\n data = await api\n .getPointHistoriesV2({\n period_id: selectedPeriod,\n dateRange: 'all',\n limit: 999999\n })\n .then((res) => {\n var result = _.get(res, 'data.pages.0', []);\n setRawData((d) => ({ ...d, ['all']: result }));\n return result;\n });\n }\n utils.exportCsv(\n _.orderBy(data, 'created_at', 'desc'),\n [\n {\n label: t('created_at'),\n value: (row) => new Date(row.created_at).toLocaleString()\n },\n { label: t('pointrule_name'), value: (row) => row.pointRule?.name },\n { label: t('point'), value: (row) => row.point, sort: true },\n { label: t('class'), value: (row) => row.profile?.class },\n { label: t('class_no'), value: (row) => row.profile?.class_no },\n { label: t('name_zh'), value: (row) => row.user?.name?.zh },\n { label: t('name_en'), value: (row) => row.user?.name?.en },\n { label: t('state'), value: (row) => t(row.type || '') },\n {\n label: t('action_created_by'),\n value: (row) => translate(row?.created_by?.name)\n }\n ],\n `point_history`\n );\n return null;\n };\n\n const exportFiltered = async () => {\n var data = rawData[dateRange];\n if (!rawData[dateRange]) {\n data = await api\n .getPointHistoriesV2({\n period_id: selectedPeriod,\n dateRange: dateRange,\n limit: 999999\n })\n .then((res) => {\n var result = _.get(res, 'data.pages.0', []);\n setRawData((d) => ({ ...d, [dateRange]: result }));\n return result;\n });\n }\n var filterd = _.filter(data, (row) => {\n var fm = (str, field) => {\n if (!str || str === '') return true;\n var text = _.get(row, field);\n return new RegExp(\n _.toString(str).replace(/([.?*+^$[\\]\\\\(){}|-])/g, '\\\\$1'),\n 'i'\n ).test(_.toString(text));\n };\n return (\n fm(search.class, 'profile.class') &&\n fm(search.class_no, 'profile.class_no') &&\n fm(search.point_rule, 'pointRule.name') &&\n (fm(search.name, 'user.name.en') || fm(search.name, 'user.name.zh')) &&\n (fm(search.created_by, 'created_by.name.en') ||\n fm(search.created_by, 'created_by.name.zh'))\n );\n });\n utils.exportCsv(\n filterd,\n [\n {\n label: t('created_at'),\n value: (row) => new Date(row.created_at).toLocaleString()\n },\n { label: t('pointrule_name'), value: (row) => row.pointRule?.name },\n { label: t('point'), value: (row) => row.point, sort: true },\n { label: t('class'), value: (row) => row.profile?.class },\n { label: t('class_no'), value: (row) => row.profile?.class_no },\n { label: t('name_zh'), value: (row) => row.user?.name?.zh },\n { label: t('name_en'), value: (row) => row.user?.name?.en },\n { label: t('state'), value: (row) => t(row.type || '') },\n {\n label: t('action_created_by'),\n value: (row) => _.get(row, `created_by.name.${getLanguage()}`)\n }\n ],\n `point_history`\n );\n return null;\n };\n\n const handleSearch = (path) => (e) => {\n setSearch((s) => ({ ...s, [path]: e.target.value }));\n };\n\n const { mutate: handleExportAll, ...handleExportAllMutation } =\n useMutation(exportAll);\n\n const { mutate: handleExport, ...handleExportMutation } =\n useMutation(exportFiltered);\n\n if (isLoading) {\n return ;\n }\n return (\n \n {/* */}\n {(handleExportAllMutation.isLoading ||\n handleExportMutation.isLoading) && (\n \n {t('exporting')}\n \n )}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n setDateRange(e.target.value)}\n sx={{ width: '200px' }}\n >\n {t('past_a_days', { a: 7 })}\n {t('past_a_days', { a: 30 })}\n {t('past_a_days', { a: 90 })}\n {t('overall_date_range')}\n \n \n {/* \n setDateRange(e.target.value)} sx={{ mr: 1, width: '200px' }}>\n {t('past_a_days', { a: 7 })}\n {t('past_a_days', { a: 30 })}\n {t('past_a_days', { a: 90 })}\n {t('overall_date_range')}\n \n\n \n \n */}\n \n \n {t('export_all')}\n \n \n {t('export')}\n \n \n \n\n \n classNames({ 'text-green': row.type == 'redeem' })\n }\n total={total}\n rowsRef={rowsRef}\n rows={actions[page]}\n heads={[\n // { id: 'u_id', label: t('u_id'), value: 'profile.u_id', sort: true },\n {\n label: t('created_at'),\n value: 'created_at',\n content: (row) => new Date(row.created_at).toLocaleString(),\n sort: true\n },\n { label: t('class'), value: 'profile.class' },\n { label: t('class_no'), value: 'profile.class_no' },\n { label: t('name_zh'), value: 'user.name.zh' },\n { label: t('name_en'), value: 'user.name.en' },\n { label: t('pointrule_name'), value: 'pointRule.name' },\n { label: t('point'), value: 'point' },\n { label: t('state'), value: 'type', translate: 1 },\n {\n label: t('action_created_by'),\n value: `created_by.name.${getLanguage()}`\n },\n {\n label: t('actions'),\n value: '',\n content: (row) => {\n return (\n \n \n handleDelete(row)}\n sx={{ p: 0.5 }}\n >\n {' '}\n {' '}\n \n \n \n );\n }\n }\n ]}\n {...pagination}\n />\n setDialogMode(null)}\n handleSave={handleDeleteOne}\n confirmText={t('delete')}\n >\n {t('deleteActions_description')}\n \n \n );\n};\n\nexport default PointHistory;\n","import {\n Alert,\n Box,\n Button,\n Card,\n CardContent,\n CardHeader,\n Divider,\n Grid,\n Typography\n} from '@material-ui/core';\nimport { makeStyles } from '@material-ui/styles';\nimport _ from 'lodash';\nimport { memo, useEffect, useState } from 'react';\nimport { useNavigate } from 'react-router';\nimport { Cell, Legend, Pie, PieChart, ResponsiveContainer } from 'recharts';\nimport useApi from 'src/api/api';\nimport DataTableNoLimit from 'src/components/DataTable/DataTableNoLimit';\nimport LoadingView from 'src/components/LoadingView';\nimport Icons from 'src/icons';\nimport LayoutContainer from 'src/layout/LayoutContainer';\nimport { useAuthData } from 'src/provider/AuthDataProvider';\nimport { useBackDrop } from 'src/provider/BackdropProvider';\nimport { useLocale } from 'src/provider/LocaleProvider';\nconst moment = require('moment-timezone');\nconst COLORS = ['#0088FE', '#00C49F', '#FFBB28', '#FF8042', '#FF80FF'];\nconst useStyles = makeStyles((theme) => ({\n root: {\n paddingTop: theme.spacing(2),\n paddingLeft: theme.spacing(4),\n paddingRight: theme.spacing(4),\n paddingBottom: theme.spacing(4)\n },\n row: {\n // height: '10px',\n // paddingBottom: theme.spacing(2),\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'flex-end',\n marginBottom: theme.spacing(1)\n // marginTop: theme.spacing(1)\n },\n\n backdrop: {\n zIndex: theme.zIndex.drawer + 1,\n color: '#fff'\n },\n\n cardTitle: {\n fontWeight: 700\n },\n tableCell: {\n '& .MuiTableCell-root': {\n textAlign: 'center',\n borderLeft: 'none !important'\n },\n '& .MuiTableRow-root': {\n height: '60px'\n }\n }\n}));\n\nconst BirthdayBanner = memo(({ date_of_birth, organization }) => {\n const { t, translate, replaceParams } = useLocale();\n\n if (!date_of_birth) {\n return null;\n }\n\n const thisYearBirthDay = moment(date_of_birth).set(\n 'year',\n new Date().getFullYear()\n );\n const dayDiff = moment(thisYearBirthDay).diff(\n moment().startOf('day'),\n 'days'\n );\n\n const day_show_before = !_.isNil(organization.day_before_birthday)\n ? organization.day_before_birthday\n : 7;\n const day_show_after = organization.day_after_birthday || 0;\n\n if (dayDiff < 0 && dayDiff > -day_show_after)\n return (\n }\n sx={{ mb: 2, fontSize: 24 }}\n >\n \n {organization.birthday_message && organization.birthday_message != ''\n ? replaceParams(translate(organization.birthday_message), {\n day: -dayDiff\n })\n : t('congrat_birthday')}\n \n \n );\n\n if (dayDiff === 0) {\n return (\n }\n sx={{ mb: 2, fontSize: 24 }}\n >\n \n {organization.birthday_message && organization.birthday_message != ''\n ? replaceParams(translate(organization.birthday_message), {\n day: -dayDiff\n })\n : t('congrat_birthday')}\n \n \n );\n }\n if (dayDiff > 0 && dayDiff <= day_show_before) {\n return (\n } sx={{ mb: 2 }}>\n \n {organization.near_birthday_message &&\n organization.near_birthday_message != ''\n ? replaceParams(translate(organization.near_birthday_message), {\n day: dayDiff\n })\n : t('congrat_near_birthday', { day: dayDiff })}\n \n \n );\n }\n\n return null;\n});\n\nconst Overview = () => {\n const classes = useStyles();\n\n const api = useApi();\n const nav = useNavigate();\n const { t, getLanguage } = useLocale();\n const { userInfo, selectedPeriod, organization } = useAuthData();\n\n const [pointHistory, setPointHistory] = useState([]);\n const [pointRecord, setPointRecord] = useState({ current: 0, total: 0 });\n const [attendanceHistory, setAttendanceHistory] = useState([]);\n const [currentPeriodInfo, setCurrentPeriodInfo] = useState({\n name: '',\n start: '',\n end: ''\n });\n const [submittedHomeworkRecord, setSubmittedHomeworkRecord] = useState([]);\n const [unFinishedHomeworkRecord, setUnfinishedHomeworkRecord] = useState([]);\n const [isLoading, setIsLoading] = useState(true);\n\n useEffect(async () => {\n setIsLoading(true);\n if (selectedPeriod) {\n api\n .getUserProfile()\n .then(({ data }) => {\n let point = _.find(data, (k) => selectedPeriod === k.period_id);\n setPointRecord({\n ...point,\n current: point.point,\n total: point.cumulative_point\n });\n })\n .catch((e) => console.log(e));\n api\n .getUserPointHistories(selectedPeriod, userInfo._id)\n .then(({ data }) => {\n setPointHistory(_.orderBy(data, ['created_at'], ['desc']));\n })\n .catch((e) => console.log(e));\n api\n .getUserAttendanceList(selectedPeriod, userInfo._id)\n .then(({ data }) => {\n setAttendanceHistory(_.orderBy(data, ['created_at'], ['desc']));\n })\n .catch((e) => console.log(e));\n api.getCurrentPeriod(selectedPeriod).then((periodRes) => {\n if (periodRes)\n setCurrentPeriodInfo({\n ...currentPeriodInfo,\n name: periodRes.name,\n start: periodRes.start,\n end: periodRes.end\n });\n });\n api\n .getStudentSubmittedHomeworkRecord(userInfo._id)\n .then((res) => {\n setSubmittedHomeworkRecord(res.data);\n })\n\n .catch((e) => console.log(e));\n\n api\n .getStudentUnfinishedHomeworkRecord(userInfo._id)\n .then((res) => {\n setUnfinishedHomeworkRecord(res.data);\n setIsLoading(false);\n })\n .catch((e) => console.log(e));\n\n // .catch((e) => console.log(e));\n }\n }, [selectedPeriod]);\n\n if (isLoading) {\n return ;\n }\n return (\n \n \n
\n {currentPeriodInfo.start && currentPeriodInfo.end && (\n {`${currentPeriodInfo.start} ${t('_to_')} ${\n currentPeriodInfo.end\n }`}\n )}\n
\n \n <>\n {organization?.banner && (\n \n \n \n )}\n \n \n \n \n
\n \n {t('point')}\n \n
\n \n {pointRecord.current}\n \n
\n
\n
\n \n \n \n
\n \n {t('cumulative_point')}\n \n
\n \n {pointRecord.total}\n \n
\n
\n
\n \n \n \n {t('student_point_ratio')}\n \n \n \n \n \n t(obj[0] + '_point')}\n cx=\"50%\"\n cy=\"50%\"\n fill=\"#8884d8\"\n isAnimationActive={false}\n labelLine={false}\n local\n label={(e) => {\n if (e.percent > 0) {\n return `${e.name}: ${e.value} (${_.round(\n e.percent * 100,\n 1\n )}%)`;\n }\n return ' ';\n }}\n >\n {_.map(_.entries(pointRecord?.points), (entry, index) => (\n \n ))}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n nav('/user/overview/point_record')}\n >\n {t('see_all')} \n \n }\n title={t('point_history')}\n />\n \n \n \n moment(row.created_at).format('YYYY-MM-DD HH:MM'),\n width: '33.3%'\n },\n { label: t('pointrule_name'), value: 'pointRule.name' },\n { label: t('point'), value: 'point' }\n ]}\n />\n \n \n
\n Last Updated at {moment().format('YYYY-MM-DD HH:mm:ss')}\n
\n
\n\n \n \n nav('/user/overview/attendance_record')}\n >\n {t('see_all')} \n \n }\n title={t('attendance_history')}\n />\n \n \n \n moment(row.created_at).format('YYYY-MM-DD HH:MM'),\n width: '33.3%'\n },\n {\n label: t('attendancerule_name'),\n value: 'attendanceRule.name'\n },\n { label: t('type'), value: 'type' }\n ]}\n />\n \n \n
\n Last Updated at {moment().format('YYYY-MM-DD HH:mm:ss')}\n
\n
\n \n \n \n nav('/user/overview/submitted_homework_record')\n }\n >\n {t('see_all')} \n \n }\n title={t('submitted_homework_record')}\n />\n \n \n moment(row.date).format('YYYY-MM-DD'),\n width: '33.3%'\n },\n {\n label: t('status'),\n value: 'status',\n translate: 1,\n width: '33.3%'\n },\n {\n label: t('action_created_by'),\n content: (row) =>\n _.get(row, `created_by.name.${getLanguage()}`),\n width: '33.3%'\n }\n ]}\n />\n \n \n
\n Last Updated at {moment().format('YYYY-MM-DD HH:mm:ss')}\n
\n
\n \n \n \n nav('/user/overview/unfinished_homework_record')\n }\n >\n {t('see_all')} \n \n }\n title={t('unfinished_homework_record')}\n />\n \n \n moment(row.date).format('YYYY-MM-DD'),\n width: '20%',\n sort: true\n },\n {\n label: t('subject'),\n translate: 1,\n content: (row) =>\n _.get(row, `homework_type.subject.name.${getLanguage()}`),\n width: '20%'\n },\n {\n label: t('code'),\n translate: 1,\n content: (row) => _.get(row, `homework_type.name`),\n width: '20%'\n },\n {\n label: t('remark'),\n translate: 1,\n content: (row) => _.get(row, `remarks`),\n width: '20%'\n },\n {\n label: t('action_created_by'),\n content: (row) =>\n _.get(row, `created_by.name.${getLanguage()}`),\n width: '20%'\n }\n ]}\n />\n \n \n
\n Last Updated at {moment().format('YYYY-MM-DD HH:mm:ss')}\n
\n
\n
\n
\n );\n};\nexport default Overview;\n","import { Helmet } from 'react-helmet';\nimport { Backdrop, Box, Container, Grid, Card, CardContent, Typography, CardHeader, Button, Divider, IconButton, TextField, InputAdornment } from '@material-ui/core';\nimport { makeStyles } from '@material-ui/styles';\nimport { useEffect } from 'react';\nimport { useBackDrop } from 'src/provider/BackdropProvider';\nimport { useState } from 'react';\nimport useApi from 'src/api/api';\nimport { ArrowBack } from '@material-ui/icons';\nimport Icons from 'src/icons';\nimport DataTable from 'src/components/DataTable/DataTable';\nimport DataTableNoLimit from 'src/components/DataTable/DataTableNoLimit';\nimport _ from 'lodash';\nimport { useNavigate } from 'react-router';\nimport { useLocale } from 'src/provider/LocaleProvider';\nimport utils from 'src/utils/utils';\nimport SearchInput from 'src/components/SearchInput';\nimport LayoutContainer from 'src/layout/LayoutContainer';\nimport { useAuthData } from 'src/provider/AuthDataProvider';\nconst moment = require('moment-timezone')\n\nconst useStyles = makeStyles(theme => ({\n\n row: {\n // height: '10px',\n // paddingBottom: theme.spacing(2),\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n marginBottom: theme.spacing(2)\n },\n spacer: {\n flex: 1\n },\n\n tableCell: {\n \"& .MuiTableCell-root\": {\n textAlign: 'center',\n borderLeft: \"none !important\",\n },\n \"& .MuiTableRow-root\": {\n height: '60px'\n },\n\n },\n caption: {\n fontSize: '12px'\n }\n\n}))\n\nconst Profile = () => {\n const classes = useStyles()\n const loadingView = useBackDrop();\n const api = useApi()\n const nav = useNavigate()\n const { t } = useLocale()\n const authData = useAuthData()\n\n\n const [search, setSearch] = useState(null)\n const [profileRecord, setProfileRecord] = useState([])\n\n const handleExport = () => {\n utils.exportCsv(profileRecord, [\n { label: t('period'), value: (row) => row['period'] },\n { label: t('class'), value: (row) => row['class'], },\n { label: t('class_no'), value: (row) => row['class_no'] },\n { label: t('cumulative_point'), value: (row) => row['cumulative_point'] },\n { label: t('point_balance'), value: (row) => row['point'] },\n ], 'student_profile')\n }\n\n useEffect(() => {\n // loadingView.open()\n // loadingView.close()\n api.getUserProfile().then((({ data }) => setProfileRecord(data))).catch(e => console.log(e))\n\n }, [])\n return (\n \n \n \n \n \n \n \n {/*
Last Updated at {moment().format(\"YYYY-MM-DD HH:mm:ss\")}
*/}\n
\n )\n}\nexport default Profile;\n","\n\nimport React, { Fragment, useMemo, useCallback, useEffect, useState, useRef, useLayoutEffect } from 'react'\nimport useApi from 'src/api/api';\nimport LayoutContainer from 'src/layout/LayoutContainer';\nimport { useLocale } from 'src/provider/LocaleProvider';\nimport { Backdrop, Box, Container, Grid, Card, CardContent, Typography, CardHeader, Button, Divider, IconButton, List, ListItem, ListItemText, TextField, MenuItem, Autocomplete } from '@material-ui/core';\nimport TransferTable from 'src/components/TransferTable';\nimport SearchInput from 'src/components/SearchInput';\nimport utils from 'src/utils/utils';\nimport ClassSelector from 'src/components/ClassSelector';\nimport { makeStyles } from '@material-ui/styles';\nimport { useFormik } from 'formik';\nimport classNames from 'classnames';\nimport { useSnack } from 'src/provider/SnackbarProvider';\nimport formikProps from 'src/utils/formikProps';\nimport { Handyman } from '@material-ui/icons';\nimport { useAuthData } from 'src/provider/AuthDataProvider';\nconst _ = require('lodash')\nconst yup = require('yup')\n\nexport const CheckIn = props => {\n return \n}\n\n\nexport const CheckOut = props => {\n return \n}\n\nconst TakeAttendance = ({ checkin = true, snack }) => {\n\n const { selectedPeriod } = useAuthData()\n const { t, translate, getLanguage } = useLocale()\n const [rules, setRules] = useState([]);\n const [studentList, setStudentList] = useState([]);\n const [selectedRule, setSelectedRule] = useState();\n const [selectedStudent, setSelectedStudent] = useState([]);\n\n const [search, setSearch] = useState('');\n const [filter, setFilter] = useState();\n\n\n const api = useApi()\n\n useEffect(() => {\n api.getAttendanceRules().then(res => {\n setRules(res.data)\n })\n }, [])\n\n useEffect(() => {\n api.getStudentList().then(res => {\n setSelectedStudent([])\n setStudentList(res.data)\n })\n }, [selectedPeriod]);\n\n const formik = useFormik({\n initialValues: {\n attendanceRule: '',\n profiles: []\n },\n validationSchema: yup.object().shape({\n attendanceRule: yup.string().required(),\n profiles: yup.array().min(1).of(yup.string().required()),\n }),\n onSubmit: async (values, helper) => {\n try {\n if (checkin) {\n await api.studentCheckin(values)\n }\n else {\n await api.studentCheckout(values)\n }\n snack.open(checkin ? t('checkin_success') : t('checkout_success'))\n // setSelectedRule({})\n setSelectedStudent([])\n helper.setSubmitting(false)\n } catch (error) {\n snack.error(checkin ? t('checkin_fail') : t('checkout_fail'))\n helper.setSubmitting(false)\n }\n\n }\n })\n\n const { values, errors } = formik\n\n var classFitered = utils.searchFilter(studentList, filter?.value, ['class'])\n\n useEffect(() => {\n formik.setFieldValue('profiles', _.map(selectedStudent, s => s.profile))\n }, [selectedStudent]);\n\n useEffect(() => {\n formik.setFieldValue('attendanceRule', selectedRule?._id)\n }, [selectedRule]);\n\n return (\n \n
\n {t('choose_attendance_rule')}\n op.name || ''}\n renderInput={(params) => }\n onChange={(e, v) => setSelectedRule(v)}\n sx={{ mb: 3 }}\n />\n {values.attendanceRule &&\n \n {t('choose_student')}\n \n \n \n \n \n \n \n \n \n \n }\n \n \n \n \n
\n )\n}\n\nexport default TakeAttendance","import { Box, Button, Card, Container, IconButton, MenuItem, Switch, TextField, Typography } from '@material-ui/core';\nimport { FieldArray, Formik, FormikProvider, useFormik } from 'formik';\nimport _ from 'lodash';\nimport React, { Fragment, useMemo, useCallback, useEffect, useState, useRef, useLayoutEffect } from 'react'\nimport { useNavigate, useParams } from 'react-router';\nimport useApi from 'src/api/api';\nimport ClassSelector from 'src/components/ClassSelector';\nimport EditDialog from 'src/components/EditDialog';\nimport Icons from 'src/icons';\nimport LayoutContainer from 'src/layout/LayoutContainer';\nimport { useAuthData } from 'src/provider/AuthDataProvider';\nimport { useLocale } from 'src/provider/LocaleProvider';\nimport { useSnack } from 'src/provider/SnackbarProvider';\nimport formikProps from 'src/utils/formikProps';\nconst prettyBytes = require('pretty-bytes');\nconst moment = require('moment-timezone')\n\nconst yup = require('yup')\nconst NoticeEdit = ({ isEdit = true }) => {\n const { t } = useLocale()\n const api = useApi()\n const [notice, setNotice] = useState();\n const { notice_id } = useParams()\n const snack = useSnack()\n const nav = useNavigate()\n const auth = useAuthData()\n const [dialogMode, setDialogMode] = useState(null);\n const handleDeleteNotice = () => {\n api.batchDeleteNotice([notice_id]).then(() =>\n nav('/admin/notice', { replace: true })\n ).catch(e => console.log(e))\n }\n\n useEffect(() => {\n if (notice_id) {\n api.getNoticeById(notice_id)\n .then(res => {\n\n setNotice(res.data)\n }).catch(e => {\n\n })\n }\n }, []);\n\n\n const formik = useFormik({\n initialValues: {\n notice: { ...notice, filters: _.map(notice?.filters, i => i._id) },\n attachs: []\n },\n validationSchema: yup.object({\n notice: yup.object({\n title: yup.string().required().nullable(),\n message: yup.string().required().nullable(),\n })\n }),\n enableReinitialize: true,\n onSubmit: (value, helper) => {\n\n if (notice_id) {\n api.updateNotice(notice_id, value.notice).then(res => {\n snack.open('saved')\n nav(\"/admin/notice\")\n }).catch(e => {\n snack.error('failed')\n helper.setSubmitting(false)\n })\n }\n else {\n api.addNotice({ ...value.notice, period: auth.currentPeriod }).then(res => {\n snack.open('created')\n nav(\"/admin/notice\")\n }).catch(e => {\n snack.error('failed')\n helper.setSubmitting(false)\n })\n }\n }\n })\n const handleFileChange = event => {\n var file = _.get(event, 'target.files[0]')\n if (file) {\n var attachments = _.toArray(_.get(formik.values, 'notice.attachments'))\n attachments.push(file)\n formik.setFieldValue('notice.attachments', attachments)\n }\n event.target.value = null\n }\n\n const removeAttach = (index) => {\n var attachments = _.toArray(_.get(formik.values, 'notice.attachments'))\n attachments.splice(index, 1)\n formik.setFieldValue('notice.attachments', attachments)\n }\n\n\n // if (!notice && notice_id !== undefined) return null\n return (\n isEdit &&\n (\n \n )}\n >\n\n\n
\n\n \n \n {/* formik.setFieldValue('notice.filters', v)} style={{ marginBottom: '16px' }} /> */}\n formik.setFieldValue('notice.filters', v)} sx={{ mb: 2 }} />\n \n {t('is_public')} \n {t('not_public')} \n \n\n {formik.values.notice.attachments?.length > 0 && \n \n {t('attachments')}\n \n {\n _.get(formik.values, 'notice.attachments', []).map((a, index) => {\n return \n
\n \n {a && a.name}\n
\n
\n
\n {a.size && prettyBytes(a.size)}\n
\n {a.url && \n \n \n }\n removeAttach(index)}>\n \n \n \n })\n }\n }\n \n \n \n \n \n \n \n \n \n setDialogMode(null)}\n confirmText={t('confirm')}\n >\n

\n {t('delete_notice_confirm_msg', { a: notice?.title })}\n

\n \n \n );\n}\n\nexport default NoticeEdit;","import {\n Box,\n Button,\n Grid,\n IconButton,\n TextField,\n Typography\n} from '@material-ui/core';\nimport { makeStyles } from '@material-ui/styles';\nimport { useFormik } from 'formik';\nimport { useEffect, useState } from 'react';\nimport { Helmet } from 'react-helmet';\nimport { useNavigate } from 'react-router-dom';\nimport useApi from 'src/api/api';\nimport Icons from 'src/icons';\nimport FacebookIcon from 'src/icons/Facebook';\nimport { useLocale } from 'src/provider/LocaleProvider';\nimport { useSnack } from 'src/provider/SnackbarProvider';\nimport formikProps from 'src/utils/formikProps';\n\nconst _ = require('lodash');\n\nconst useStyles = makeStyles((theme) => ({\n quote: {\n backgroundColor: theme.palette.neutral,\n height: '100%',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n backgroundImage: 'url(/images/auth.png)',\n backgroundSize: 'cover',\n backgroundRepeat: 'no-repeat',\n backgroundPosition: 'center'\n },\n form: {},\n a: {\n '&:visited': {\n color: 'inherit'\n },\n local: {\n '&:hover': {\n cursor: 'pointer'\n }\n }\n }\n}));\nconst yup = require('yup');\nconst SetupPassoword = () => {\n const navigate = useNavigate();\n const { t, setLanguage } = useLocale();\n const api = useApi();\n const token = localStorage.getItem('token');\n const snack = useSnack();\n const classes = useStyles();\n\n const [userInfo, setUserInfo] = useState();\n\n useEffect(() => {\n if (token) {\n api.getUserInfo().then((res) => {\n setUserInfo(res.data);\n });\n } else {\n api.logout();\n }\n }, []);\n\n const formik = useFormik({\n initialValues: {\n password: '',\n new_password: '',\n confirm_password: ''\n },\n validationSchema: yup.object().shape({\n password: yup.string().required().nullable(),\n new_password: yup\n .string()\n .min(6)\n .required()\n .nullable()\n .test('equal', t('yup_new_password'), function (value) {\n return this.parent.password !== value;\n })\n .label('new password'),\n confirm_password: yup\n .string()\n .required()\n .nullable()\n .test('equal', t('yup_confirm_password'), function (value) {\n return this.parent.new_password === value;\n })\n .label('confirm new password')\n }),\n onSubmit: (values, helper) => {\n api\n .setPassword({\n password: values.password,\n new_password: values.new_password\n })\n .then((res) => {\n if (userInfo.role == 'user') {\n navigate('/user', { replace: true });\n } else {\n navigate('/admin', { replace: true });\n }\n })\n .catch((e) => {\n helper.setFieldError('password', t('change_pw_fail'));\n snack.error(t('change_pw_fail'));\n })\n .finally(() => {\n helper.setSubmitting(false);\n });\n }\n });\n\n const {\n errors,\n setValues,\n handleBlur,\n handleChange,\n handleSubmit,\n isSubmitting,\n touched,\n values\n } = formik;\n\n return (\n <>\n \n Login - Pointant Class\n \n \n \n
\n
\n \n \n api.logout()}\n sx={{ width: '50px', height: '50px' }}\n >\n \n \n \n \n setLanguage('en')}\n className={classes.langIcon}\n sx={{ ml: 1 }}\n >\n EN\n \n setLanguage('zh')}\n className={classes.langIcon}\n >\n 繁\n \n \n \n \n \n {t('reset_password_title')}\n \n
\n \n \n \n \n \n 0}\n type=\"submit\"\n variant=\"contained\"\n >\n {'確認'}\n \n \n \n \n \n \n \n Copyright © 2023 Animae Technologies Limited. All Rights Reserved.\n \n \n \n \n \n
\n \n \n );\n};\n\nexport default SetupPassoword;\n","import { Box, Button, Card, Container, Divider, IconButton, Paper, Tooltip, Typography } from '@material-ui/core';\nimport { makeStyles } from '@material-ui/styles';\nimport _ from 'lodash';\nimport moment from 'moment';\nimport React, { useEffect, useRef, useState } from 'react';\nimport { useNavigate, useParams } from 'react-router';\nimport { Link } from 'react-router-dom';\nimport useApi from 'src/api/api';\nimport DataTable from 'src/components/DataTable/DataTable';\nimport Icons from 'src/icons';\nimport LayoutContainer from 'src/layout/LayoutContainer';\nimport { useAuthData } from 'src/provider/AuthDataProvider';\nimport { useLocale } from 'src/provider/LocaleProvider';\nimport classNames from 'classnames';\nconst prettyBytes = require('pretty-bytes');\n\nconst NoticeDetail = () => {\n const { t } = useLocale()\n const api = useApi()\n const [notice, setNotice] = useState();\n const nav = useNavigate()\n const { id } = useParams()\n // const snack = useSnack()\n\n\n\n useEffect(() => {\n if (id) {\n api.getNoticeById(id)\n .then(res => {\n\n setNotice(res.data)\n if (!res.data.user_info?.is_read) {\n api.updateNoticeInfo(id, { is_read: true })\n .catch(e => {\n\n })\n }\n\n\n }).catch(e => console.log(e))\n }\n }, []);\n if (!notice) return null\n\n return (\n\n \n \n\n\n
\n \n {notice.title}\n \n\n {\n\n api.updateNoticeInfo(notice._id, { is_favourite: !notice.user_info?.is_favourite })\n .catch(e => {\n })\n .finally(() => {\n let _notice = { ...notice }\n _.set(_notice, `user_info.is_favourite`, !notice.user_info?.is_favourite)\n setNotice(_notice)\n\n })\n\n }}>\n \n \n
\n \n \n {notice.message}\n \n {\n _.map(notice.attachments, (a, index) => {\n return \n \n \n {a && a.name}\n \n
\n {a.size && `(${prettyBytes(a.size)})`}\n
\n
\n {/*
\n {a.size && prettyBytes(a.size)}\n
\n {a.url && \n \n \n } */}\n \n })\n }\n \n\n \n\n );\n}\n\nexport default NoticeDetail;","import { Box, Button, Container, Dialog, DialogActions, DialogContent, DialogTitle, Divider, IconButton, Paper, Tooltip, Typography } from '@material-ui/core';\nimport { makeStyles } from '@material-ui/styles';\nimport _ from 'lodash';\nimport React, { useEffect, useRef, useState } from 'react';\nimport { useNavigate } from 'react-router';\nimport { Link } from 'react-router-dom';\nimport useApi from 'src/api/api';\nimport DataTable from 'src/components/DataTable/DataTable';\nimport Icons from 'src/icons';\nimport LayoutContainer from 'src/layout/LayoutContainer';\nimport { useAuthData } from 'src/provider/AuthDataProvider';\nimport { useLocale } from 'src/provider/LocaleProvider';\nimport classNames from 'classnames';\nimport EditDialog from 'src/components/EditDialog';\nimport LoadingView from 'src/components/LoadingView';\nconst moment = require('moment-timezone')\n\n\nconst Memo = () => {\n const { t } = useLocale()\n const api = useApi()\n const [memo, setMemo] = useState([]);\n\n const nav = useNavigate()\n const [selectedRow, setSelectedRow] = useState();\n const [isDialogOpen, setIsDialogOpen] = useState(false)\n const [selected, setSelected] = useState([])\n const [dialogMode, setDialogMode] = useState(null);\n const [isLoading, setIsLoading] = useState(true);\n\n useEffect(() => {\n setIsLoading(true);\n api.getMemo().then(res => {\n console.log('res: ', res);\n setMemo(res.data)\n setIsLoading(false);\n }).catch(e => console.log(e));\n }, []);\n\n const handleDeleteNotice = () => {\n api.batchDeleteMemo(_.map(selected, k => k._id)).then(() =>\n api.getMemo().then(res => {\n setMemo(res.data)\n setSelected([])\n setDialogMode(null)\n })).catch(e => console.log(e))\n }\n if (isLoading) {\n return ;\n }\n return (\n\n \n \n \n \n \n \n \n \n {selectedRow?.title}\n \n \n \n {/* \n {_.map(selectedRow?.filters, f => t(f.name)).sort().join(', ')}\n */}\n \n {selectedRow?.message}\n \n \n \n\n \n\n \n\n \n \n {\n setSelectedRow(row)\n setIsDialogOpen(true)\n }}\n sx={{\n \"& .MuiTableBody-root .MuiTableRow-hover\": {\n cursor: 'pointer'\n },\n }}\n rows={memo}\n loading={false}\n heads={[\n {\n type: 'checkbox',\n\n },\n\n { label: t('title'), value: 'title', },\n\n // {\n // id: 'message', label: t('message'), sx: { maxWidth: '20%', }, content: (row) =>\n\n //
{row.message}
\n\n // },\n {\n label: t('created_at'),\n value: 'created_at',\n\n content: (row) => moment(row.created_at).format('YYYY/MM/DD'), sort: true\n },\n ]}\n checked={selected}\n setChecked={setSelected}\n />\n setDialogMode(null)}\n confirmText={t('confirm')}\n >\n

\n {t('delete_memo_confirm_msg')}\n

\n \n
\n\n );\n}\n\nexport default Memo;","import { Box, Button, Checkbox, FormControlLabel, FormGroup, Grid, IconButton, MenuItem, Paper, TextField, Tooltip, Typography } from '@material-ui/core';\nimport { makeStyles } from '@material-ui/styles';\nimport _ from 'lodash';\nimport React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { useNavigate } from 'react-router';\nimport { Link } from 'react-router-dom';\nimport useApi from 'src/api/api';\nimport DataTable from 'src/components/DataTable/DataTable';\nimport Icons from 'src/icons';\nimport LayoutContainer from 'src/layout/LayoutContainer';\nimport { useAuthData } from 'src/provider/AuthDataProvider';\nimport { useLocale } from 'src/provider/LocaleProvider';\nimport classNames from 'classnames';\nimport EditDialog from 'src/components/EditDialog';\nimport { useFormik } from 'formik';\nimport formikProps from 'src/utils/formikProps';\nimport ClassSelector from 'src/components/ClassSelector';\nimport TransferTable from 'src/components/TransferTable';\nimport utils from 'src/utils/utils';\nimport { useSnack } from 'src/provider/SnackbarProvider';\nimport SearchInput from 'src/components/SearchInput';\nconst prettyBytes = require('pretty-bytes');\nconst moment = require('moment-timezone')\nconst yup = require('yup')\n\nconst MemoPublish = () => {\n\n const { selectedPeriod, currentPeriod } = useAuthData()\n const { t, translate, getLanguage } = useLocale()\n const [studentList, setStudentList] = useState([]);\n const [selectedStudent, setSelectedStudent] = useState([]);\n const api = useApi()\n const [search, setSearch] = useState('');\n const [filter, setFilter] = useState();\n const [memo, setMemo] = useState()\n const snack = useSnack()\n\n\n const arr = [\n { id: 'class', label: t('class'), value: 'class' },\n { id: 'class_no', label: t('class_no'), value: 'class_no' },\n { id: 'name', label: t('name'), value: `name.${getLanguage()}` },\n ]\n\n\n\n const nav = useNavigate()\n\n useEffect(() => {\n api.getStudentList().then(res => {\n \n setSelectedStudent([])\n setStudentList(res.data)\n })\n }, [selectedPeriod]);\n\n\n const formik = useFormik({\n initialValues: {\n memo: {\n ...memo,\n target: 'student'\n },\n },\n enableReinitialize: true,\n validationSchema: yup.object({\n memo: yup.object({\n title: yup.string().required().nullable(),\n message: yup.string().required().nullable(),\n })\n }),\n onSubmit: (value, helper) => {\n api.addMemo({ ...value.memo, period: currentPeriod, to_student: _.includes(value.memo.target, 'student'), to_parent: _.includes(value.memo.target, 'parent') }).then(res => {\n\n snack.open('created')\n nav(\"/admin/memo\")\n }).catch(e => {\n snack.error('failed')\n helper.setSubmitting(false)\n })\n\n }\n })\n\n useEffect(() => {\n formik.setFieldValue('memo.profile_ids', _.map(selectedStudent, s => s.profile))\n }, [selectedStudent]);\n\n // const handleCheckBoxChange = (e, value) => {\n // formik.setFieldValue(`target.${e.target.name}`, value)\n // }\n\n const classFitered = useCallback(utils.searchFilter(studentList, [search, filter?.value], [['class', 'class_no', 'name'], ['class']]), [studentList, filter, search])\n\n return (\n \n
\n \n \n {/* formik.setFieldValue('memo.filters', v)} style={{ marginBottom: '16px' }} /> */}\n \n {t('student')} \n {t('admin')} \n {t('student_and_parent')} \n \n\n \n {t('choose_student')}\n \n\n \n \n \n \n \n \n \n\n \n\n \n\n \n \n \n \n \n \n \n \n
\n\n );\n}\n\nexport default MemoPublish;","import { Box, Button, Card, Container, Divider, IconButton, Paper, Tooltip, Typography } from '@material-ui/core';\nimport { makeStyles } from '@material-ui/styles';\nimport _ from 'lodash';\nimport moment from 'moment';\nimport React, { useEffect, useRef, useState } from 'react';\nimport { useNavigate, useParams } from 'react-router';\nimport { Link } from 'react-router-dom';\nimport useApi from 'src/api/api';\nimport DataTable from 'src/components/DataTable/DataTable';\nimport Icons from 'src/icons';\nimport LayoutContainer from 'src/layout/LayoutContainer';\nimport { useAuthData } from 'src/provider/AuthDataProvider';\nimport { useLocale } from 'src/provider/LocaleProvider';\nimport classNames from 'classnames';\nconst prettyBytes = require('pretty-bytes');\n\nconst MemoDetail = () => {\n const { t } = useLocale()\n const api = useApi()\n const [memo, setMemo] = useState();\n const nav = useNavigate()\n const { id } = useParams()\n // const snack = useSnack()\n\n\n\n useEffect(() => {\n if (id) {\n api.getMemoById(id)\n .then(res => {\n\n setMemo(res.data)\n if (!res.data.user_info?.is_read) {\n api.updateMemoInfo(id, { is_read: true })\n .catch(e => {\n\n })\n }\n }).catch(e => console.log(e))\n }\n }, []);\n if (!memo) return null\n\n return (\n\n \n \n\n
\n \n {memo.title}\n \n\n {\n\n api.updateMemoInfo(memo._id, { is_favourite: !memo.user_info?.is_favourite })\n .catch(e => {\n\n })\n .finally(() => {\n let _memo = { ...memo }\n _.set(_memo, `user_info.is_favourite`, !memo.user_info?.is_favourite)\n setMemo(_memo)\n\n })\n\n }}>\n \n \n
\n \n \n {memo.message}\n \n\n
\n\n
\n\n );\n}\n\nexport default MemoDetail;","import { Grid, Paper } from \"@material-ui/core\"\nimport { useLocation } from \"react-router\"\nimport { t } from \"react-switch-lang\"\nimport { useLocale } from \"src/provider/LocaleProvider\"\n\nexport default function NoRecordItem({ grid }) {\n\n const { t } = useLocale()\n\n if (grid) {\n return \n \n {t('no_record')}\n \n \n }\n\n return <>\n \n {t('no_record')}\n \n \n\n};\n","import {\n\tMenuItem,\n\tSelect,\n\tInputLabel,\n\tFormControl,\n\tAutocomplete,\n\tTextField,\n\tChip,\n} from \"@material-ui/core\";\nimport { useQuery } from \"react-query\";\nimport useApi from \"src/api/api\";\nimport { useLocale } from \"src/provider/LocaleProvider\";\nimport LoadingView from \"./LoadingView\";\n\nconst _ = require(\"lodash\");\n\nexport function SubjectSelector({\n\tselected,\n\tmultiple = false,\n\tsetSelected = () => {},\n\t...rest\n}) {\n\tconst api = useApi();\n\tconst { t, getLanguage } = useLocale();\n\n\tconst { data: subjects, isLoading } = useQuery(\"subjects\", async () => {\n\t\treturn api.getSubjects().then(({ data }) => {\n\t\t\treturn data?.subjects;\n\t\t});\n\t});\n\n\tconst selectedValue = _.filter(\n\t\tsubjects,\n\t\t(item) => selected && _.includes(selected, item._id),\n\t);\n\n\tconst allSubject = {\n\t\tname: {\n\t\t\ten: t(\"uncategorized\"),\n\t\t\tzh: t(\"uncategorized\"),\n\t\t},\n\t\t_id: \"\",\n\t\tattribute: null,\n\t\tvalue: null,\n\t};\n\n\tif (isLoading & !_.isArray(subjects)) return ;\n\tif (multiple)\n\t\treturn (\n\t\t\t\n\t\t\t\t\t_.get(subject, `name.${getLanguage()}`, \"\")\n\t\t\t\t}\n\t\t\t\tonChange={(_e, subjects, _c, selectedSubject) => {\n\t\t\t\t\tif (selectedSubject.option.value === null) {\n\t\t\t\t\t\tsetSelected([]);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst subjectIdList = _.map(\n\t\t\t\t\t\t\tsubjects,\n\t\t\t\t\t\t\t(subject) => subject._id,\n\t\t\t\t\t\t).filter((id) => id);\n\n\t\t\t\t\t\tsetSelected(subjectIdList);\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t\trenderInput={(params) => (\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t\tvalue={selectedValue.length > 0 ? selectedValue : [allSubject]}\n\t\t\t\trenderTags={(tagValue, getTagProps) => {\n\t\t\t\t\treturn tagValue.map((option, index) => {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t);\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t\t{...rest}\n\t\t\t/>\n\t\t);\n\n\treturn (\n\t\t\n\t\t\t{t(\"subject\")}\n\t\t\t setSelected(event.target.value)}\n\t\t\t\tvalue={selected}\n\t\t\t\tdefaultValue={\"\"}\n\t\t\t\tsx={{ height: \"40px\", minWidth: \"150px\", width: \"100%\", mb: 2 }}\n\t\t\t\tfullWidth={true}\n\t\t\t>\n\t\t\t\t{t(\"all_subject\")}\n\t\t\t\t{_.map(subjects, (subject) => (\n\t\t\t\t\t\n\t\t\t\t\t\t{`${_.get(subject, `name.${getLanguage()}`)}`}\n\t\t\t\t\t\n\t\t\t\t))}\n\t\t\t\t{t(\"uncategorized\")}\n\t\t\t\n\t\t\n\t);\n}\n","import {\n Box,\n Button,\n Card,\n Chip,\n Divider,\n Grid,\n MenuItem,\n Tab,\n Tabs,\n TextField,\n Typography\n} from '@material-ui/core';\nimport DescriptionOutlinedIcon from '@material-ui/icons/DescriptionOutlined';\nimport PeopleAltOutlinedIcon from '@material-ui/icons/PeopleAltOutlined';\nimport SubjectIcon from '@material-ui/icons/Subject';\nimport { useFormik } from 'formik';\nimport Fuse from 'fuse.js'\nimport _ from 'lodash';\nimport { useEffect, useMemo, useState } from 'react';\nimport { useNavigate } from 'react-router';\nimport { NavLink } from 'react-router-dom';\nimport useApi from 'src/api/api';\nimport ClassSelector from 'src/components/ClassSelector';\nimport EditDialog from 'src/components/EditDialog';\nimport NoRecordItem from 'src/components/NoRecordItem';\nimport SearchInput from \"src/components/SearchInput\";\nimport { SubjectSelector } from 'src/components/SubjectSelector';\nimport vars from 'src/config/vars';\nimport LayoutContainer from 'src/layout/LayoutContainer';\nimport { useLocale } from 'src/provider/LocaleProvider';\nimport formikProps from 'src/utils/formikProps';\n\n// const prettyBytes = require('pretty-bytes');\nconst yup = require('yup');\n\nexport default function GameList({ snack }) {\n const nav = useNavigate();\n const { t, translate } = useLocale();\n const api = useApi();\n const [dialogMode, setDialogMode] = useState();\n const [tab, setTab] = useState('single');\n const [selectedSubject, setSelectedSubject] = useState('ALL');\n const [selectedClass, setSelectedClass] = useState();\n\n const [gameList, setGameList] = useState([]);\n const [gameListBySubject, setGameListBySubject] = useState([]);\n const [search, setSearh] = useState('');\n\n const deboundedSearch = _.debounce((value) => {\n setSearh(value);\n }, 500);\n\n // biome-ignore lint/correctness/useExhaustiveDependencies: \n useEffect(() => {\n api.getGameList().then((res) => {\n setGameList(res.data);\n });\n }, []);\n\n const fuse = useMemo(() => {\n return new Fuse(gameList, {\n isCaseSensitive: false,\n useExtendedSearch: true,\n keys: ['subjects._id', 'filters._id', \"name\", \"description\"],\n })\n }, [gameList])\n\n useEffect(() => {\n const fuesParams = [];\n\n // Apply name filter using Fuse.js\n (selectedClass?._id) &&\n fuesParams.push({ \"filters._id\": `'${selectedClass._id}` });\n\n (search) &&\n fuesParams.push({ $or: [{ name: search }, { description: search }] });\n\n (selectedSubject !== \"ALL\" && selectedSubject !== \"NONE\") &&\n fuesParams.push({ \"subjects._id\": `'${selectedSubject}` });\n\n const fuseResult = fuesParams.length ?\n fuse.search({ $and: fuesParams }).map((item) => item.item) :\n gameList;\n\n (selectedSubject === \"NONE\") ?\n setGameListBySubject(fuseResult.filter((g) => g.subjects.length === 0)) :\n setGameListBySubject(fuseResult)\n\n }, [selectedSubject, gameList, selectedClass, search, fuse]);\n\n\n useEffect(() => {\n if (dialogMode) formik.resetForm();\n }, [dialogMode]);\n\n const formik = useFormik({\n initialValues: {\n name: '',\n gameType: 'mc',\n pointCorrect: null,\n pointIncorrect: null,\n pointExchangeRate: null,\n isActive: true,\n filters: [],\n subjects: []\n },\n enableReinitialize: true,\n validationSchema: yup\n .object({\n name: yup.string().required(),\n gameType: yup\n .string()\n .oneOf(['mc', 'interactive'])\n .required()\n .nullable(),\n isActive: yup.bool().required(),\n filters: yup.array()\n })\n .when('this', {\n is: (v) => formik.values.gameType !== 'interactive',\n // biome-ignore lint/suspicious/noThenProperty: \n then: yup.object().shape({\n pointCorrect: yup.number().min(0).required().nullable(),\n pointIncorrect: yup.number().min(0).required().nullable(),\n pointExchangeRate: yup.number().min(0).required().nullable()\n })\n }),\n onSubmit: (values, helper) => {\n api\n .createGame(values)\n .then(async (res) => {\n nav(`/admin/games/${res.data._id}`);\n // await api.getGameList().then(res => {\n // setGameList(res.data);\n // setDialogMode(null);\n // });\n })\n .catch((e) => {\n snack.error();\n })\n .finally(() => {\n helper.setSubmitting(false);\n });\n }\n });\n const hasPointConfig = formik.values.gameType === 'mc';\n\n const filteredList = useMemo(() => {\n if (tab === 'multi') {\n return _.filter(gameListBySubject, (g) => g.gameType === 'interactive');\n } if (tab === 'single') {\n return _.filter(gameListBySubject, (g) => g.gameType === 'mc');\n }\n }, [tab, gameListBySubject]);\n\n return (\n \n \n \n \n \n \n \n\n \n \n \n setTab(v)}>\n \n \n \n \n \n {_.size(filteredList) > 0 ? (\n _.map(filteredList, (game) => {\n return (\n \n \n \n \n \n \"Game\"\n \n \n {game.name}\n \n {game.description}\n \n \n \n \n \n \n \n \n \n {t(`game_${game.gameType}`)}\n \n \n \n \n \n \n {_.size(game.filters) > 0\n ? _.map(game.filters, (f) => translate(f.name))\n .sort()\n .join(', ')\n : t('all_grade_and_class')}\n \n \n \n \n \n \n {_.size(game?.subjects) > 0\n ? _.map(game?.subjects, (f) => translate(f.name))\n .sort()\n .join(', ')\n : t('all_subject')}\n \n \n {!game.isActive && (\n \n \n \n )}\n \n {game.gameType === 'interactive' && (\n e.stopPropagation()}\n >\n {t('play_game')}\n \n )}\n \n \n \n \n \n );\n })\n ) : (\n \n )}\n \n setDialogMode(null)}\n sx={{ overflowY: 'hidden' }}\n >\n \n formik.setFieldValue('subjects', v)}\n />\n\n formik.setFieldValue('filters', v)}\n sx={{ mb: 2 }}\n />\n \n \n {t('game_mc')}\n \n {`( ${t('single_player_mode')} )`}\n \n \n \n {t('game_interactive')}\n \n {`( ${t('multi_player_mode')} )`}\n \n \n {/* {t('game_interactive') + ' ' + t('multi_player_mode')} */}\n \n {hasPointConfig && (\n <>\n \n \n \n \n )}\n \n \n );\n}\n","import React, { Fragment, useMemo, useCallback, useEffect, useState, useRef, useLayoutEffect } from 'react'\nimport { Box, Button, Card, CardActions, CardContent, CardHeader, Container, FormControl, FormHelperText, IconButton, InputLabel, TextField } from '@material-ui/core'\nimport { useLocale } from 'src/provider/LocaleProvider'\nimport useApi from 'src/api/api';\nimport { Helmet } from 'react-helmet';\nimport { useFormik } from 'formik';\nimport formikProps from 'src/utils/formikProps';\nimport { useAuthData } from 'src/provider/AuthDataProvider';\nimport { makeStyles } from '@material-ui/styles';\nimport utils from 'src/utils/utils';\nimport LayoutContainer from 'src/layout/LayoutContainer';\nimport Icons from 'src/icons';\nconst yup = require('yup')\nconst _ = require('lodash')\n\nconst useStyles = makeStyles((theme) => ({\n imageuploader: {\n position: 'relative',\n '& img': {\n objectFit: 'contain'\n },\n '& .removeIcon': {\n position: 'absolute', right: 0, top: 0, zIndex: 999\n },\n '& .uploadIcon': {\n // backgroundColor: 'rgba(255,255,255,0.5)',\n // borderRadius: '4px',\n position: 'absolute', right: 10, bottom: 10, zIndex: 999\n },\n '& .MuiFormControl-root': {\n height: '300px',\n border: '1px solid',\n borderRadius: '4px',\n borderColor: 'rgba(0, 0, 0, 0.23)',\n padding: '8px',\n '&:hover': {\n borderColor: 'black',\n },\n '& .MuiInputLabel-root': {\n padding: '0 4px',\n backgroundColor: 'white'\n },\n\n },\n '& .error': {\n borderColor: 'red !important',\n '&:hover': {\n borderColor: 'red !important',\n },\n }\n }\n\n}))\nconst ImageUploader = ({ formik, name, label = 'label', helperText = '', ...rest }) => {\n const classes = useStyles()\n const { t } = useLocale()\n const value = _.get(formik.values, name, '')\n const error = _.get(formik.errors, name)\n const isError = Boolean(error)\n return useMemo(() =>\n \n \n {label}\n {value && }\n
\n {value &&\n { formik.setFieldValue(name, null) }}>\n \n \n }\n
\n
\n \n
\n
\n \n {error}\n

{helperText}

\n {/*

{`< 1MB | PNG ${t('or')} JPEG | 1:1 ${t('aspect_ratio')}`}

*/}\n
\n
\n , [value, error])\n}\n\nexport default ImageUploader;","\nimport { Box, Button, TextField, Container, Dialog, DialogActions, DialogContent, DialogTitle, Divider, IconButton, Tooltip, Typography, MenuItem, Grid, Card, CardContent, Avatar, Paper, List, ListItem, Hidden } from '@material-ui/core';\nimport { useFormik } from 'formik';\nimport _ from 'lodash';\nimport moment from 'moment';\nimport React, { useEffect, useRef, useState } from 'react';\nimport { useNavigate, useParams } from 'react-router';\nimport useApi from 'src/api/api';\nimport DataTable from 'src/components/DataTable/DataTable';\nimport EditDialog from 'src/components/EditDialog';\nimport Icons from 'src/icons';\nimport LayoutContainer from 'src/layout/LayoutContainer';\nimport { useAuthData } from 'src/provider/AuthDataProvider';\nimport { useLocale } from 'src/provider/LocaleProvider';\nimport formikProps from 'src/utils/formikProps';\nimport DescriptionOutlinedIcon from '@material-ui/icons/DescriptionOutlined'\nimport PeopleAltOutlinedIcon from '@material-ui/icons/PeopleAltOutlined'\nimport { NavLink } from 'react-router-dom';\nimport ClassSelector from 'src/components/ClassSelector';\nimport AssignmentIcon from '@material-ui/icons/Assignment'\nimport PeopleAltIcon from '@material-ui/icons/PeopleAlt'\nimport BorderColorOutlinedIcon from '@material-ui/icons/BorderColorOutlined'\nimport ImageUploader from 'src/components/Formik/ImageUploader';\nimport PerfectScrollbar from 'react-perfect-scrollbar'\nconst prettyBytes = require('pretty-bytes');\nconst yup = require('yup')\n\nconst QuestionCard = ({ question = {}, handleEdit, index, handleDelete, OptionComponent, hasImage = true }) => {\n const { t, translate } = useLocale()\n return (\n \n \n \n \n {t('question')} {index + 1} : {question.text} \n \n \n \n {hasImage &&\n \n \n {question.image && }\n \n \n }\n \n {(handleEdit || handleDelete) &&\n \n \n \n handleEdit(question)}>\n \n \n \n \n handleDelete(question)} >\n \n \n \n \n }\n \n \n {t('question')} {index + 1} : {question.text} \n \n \n {_.map(question?.options, (option, index) => {\n if (OptionComponent) return \n return \n {t('option')} {index + 1}:\n \n {option.text || \"Null\"}\n \n })}\n \n\n \n \n \n );\n}\n\nexport default QuestionCard;","import {\n Avatar,\n Box,\n Button,\n Card,\n CardContent,\n Divider,\n Grid,\n MenuItem,\n TextField,\n Typography\n} from '@material-ui/core';\nimport AssignmentIcon from '@material-ui/icons/Assignment';\nimport BorderColorOutlinedIcon from '@material-ui/icons/BorderColorOutlined';\nimport DescriptionOutlinedIcon from '@material-ui/icons/DescriptionOutlined';\nimport PeopleAltIcon from '@material-ui/icons/PeopleAlt';\nimport PeopleAltOutlinedIcon from '@material-ui/icons/PeopleAltOutlined';\nimport { useFormik } from 'formik';\nimport _ from 'lodash';\nimport { useEffect, useState } from 'react';\nimport { useNavigate, useParams } from 'react-router';\nimport { NavLink } from 'react-router-dom';\nimport useApi from 'src/api/api';\nimport ClassSelector from 'src/components/ClassSelector';\nimport EditDialog from 'src/components/EditDialog';\nimport ImageUploader from 'src/components/Formik/ImageUploader';\nimport Icons from 'src/icons';\nimport LayoutContainer from 'src/layout/LayoutContainer';\nimport { useLocale } from 'src/provider/LocaleProvider';\nimport formikProps from 'src/utils/formikProps';\nimport QuestionCard from '../../components/Game/QuestionCard';\nimport { SubjectSelector } from 'src/components/SubjectSelector';\nimport SubjectIcon from '@material-ui/icons/Subject';\n// const prettyBytes = require('pretty-bytes');\nconst yup = require('yup');\n\nconst DataBox = ({ title, value, Icon, className, ...rest }) => {\n return (\n \n \n \n \n \n {title}\n \n \n {value}\n \n \n \n {Icon}\n \n \n \n \n );\n};\n\nexport default function GameDetail({ snack }) {\n const nav = useNavigate();\n const api = useApi();\n const { t, translate } = useLocale();\n const [dialogMode, setDialogMode] = useState();\n const { gameId } = useParams();\n const [game, setGame] = useState({});\n const [totalSession, setTotalSession] = useState(0);\n const [totalUser, setTotalUser] = useState(0);\n\n const hasImage = game.gameType === 'mc';\n const hasMoreInsight = game.gameType === 'mc';\n\n useEffect(() => {\n setTotalSession(_.size(game.sessions));\n var unique = _.map(game.sessions, (item) => item.user).filter(\n (v, i, a) => a.indexOf(v) === i\n );\n setTotalUser(_.size(unique));\n }, [game.sessions]);\n\n useEffect(() => {\n getData();\n }, []);\n\n const getData = () => {\n return api.getGameData(gameId, { sessions: true }).then((res) => {\n setGame(res.data);\n });\n };\n\n useEffect(() => {\n if (dialogMode) formik.resetForm();\n }, [dialogMode]);\n\n const formik = useFormik({\n initialValues: {\n ...game,\n filters: _.map(game.filters, (f) => f?._id),\n subjects: _.map(game.subjects, (f) => f?._id)\n } || {\n name: '',\n image: '',\n gameType: 'mc',\n pointCorrect: null,\n pointIncorrect: null,\n pointExchangeRate: null,\n isActive: true,\n filters: [],\n subjects: []\n },\n enableReinitialize: true,\n validationSchema: yup\n .object({\n name: yup.string().required(),\n gameType: yup\n .string()\n .oneOf(['mc', 'interactive'])\n .required()\n .nullable(),\n isActive: yup.bool().required(),\n filters: yup.array()\n })\n .when('this', {\n is: function (v) {\n return formik.values.gameType !== 'interactive';\n },\n then: yup.object().shape({\n pointCorrect: yup.number().min(0).required().nullable(),\n pointIncorrect: yup.number().min(0).required().nullable(),\n pointExchangeRate: yup.number().min(0).required().nullable()\n })\n }),\n onSubmit: (values, helper) => {\n values.sessions = undefined;\n api\n .updateGame(gameId, values)\n .then(async (res) => {\n getData();\n setDialogMode(null);\n snack.open(t('upload_success'));\n })\n .catch((e) => {\n snack.error();\n })\n .finally(() => {\n helper.setSubmitting(false);\n });\n }\n });\n\n const hasPointConfig = formik.values.gameType === 'mc';\n const hasSessionRecord = formik.values.gameType === 'mc';\n\n if (!game?._id) return null;\n return (\n \n \n \n \n \n \n \"logo\"\n \n \n {game.name}\n \n {game.description}\n \n \n {/* */}\n \n \n \n \n \n \n {t('gametype') + ' : ' + t(`game_${game.gameType}`)}\n \n \n\n \n \n \n \n {t('grade_or_class') +\n ' : ' +\n (_.size(game.filters) > 0\n ? _.map(game.filters, (f) => translate(f.name))\n .sort()\n .join(', ')\n : t('all_grade_and_class'))}\n \n \n \n \n \n \n {_.size(game?.subjects) > 0\n ? _.map(game?.subjects, (f) => translate(f.name))\n .sort()\n .join(', ')\n : t('all_subject')}\n \n \n setDialogMode('edit')}\n sx={{ mt: 4, mr: 1 }}\n >\n {t('edit_game')}\n \n {/* */}\n \n \n \n \n {hasSessionRecord && (\n \n \n }\n />\n \n }\n />\n \n {hasMoreInsight && (\n \n nav(`/admin/games/record/${gameId}`)}\n >\n {t('game.more_insight')} \n \n \n )}\n \n \n )}\n \n \n \n {' '}\n {_.size(game.questions)} {t('questions')}{' '}\n \n \n \n \n \n \n {_.map(game?.questions, (question, index) => {\n return (\n \n );\n })}\n setDialogMode(null)}\n >\n \n formik.setFieldValue('subjects', v)}\n />\n formik.setFieldValue('filters', v)}\n sx={{ mb: 2 }}\n />\n \n {t('game_mc')} \n {t('game_interactive')} \n \n \n {t('active')} \n {t('inactive')} \n \n {hasPointConfig && (\n <>\n \n \n \n \n \n )}\n \n {/* \n {t('active')} \n {t('inactive')} \n */}\n \n \n );\n}\n","import { Box, Button, TextField, Container, Dialog, DialogActions, DialogContent, DialogTitle, Divider, IconButton, Tooltip, Typography, MenuItem, Grid, Card, CardContent, Avatar, Paper, List, ListItem, ToggleButton, InputLabel } from '@material-ui/core';\nimport { FieldArray, FormikProvider, useFormik } from 'formik';\nimport _ from 'lodash';\nimport moment from 'moment';\nimport React, { useEffect, useRef, useState } from 'react';\nimport { useNavigate, useParams } from 'react-router';\nimport useApi from 'src/api/api';\nimport DataTable from 'src/components/DataTable/DataTable';\nimport EditDialog from 'src/components/EditDialog';\nimport Icons from 'src/icons';\nimport LayoutContainer from 'src/layout/LayoutContainer';\nimport { useAuthData } from 'src/provider/AuthDataProvider';\nimport { useLocale } from 'src/provider/LocaleProvider';\nimport formikProps from 'src/utils/formikProps';\nimport DescriptionOutlinedIcon from '@material-ui/icons/DescriptionOutlined'\nimport PeopleAltOutlinedIcon from '@material-ui/icons/PeopleAltOutlined'\nimport { NavLink } from 'react-router-dom';\nimport ClassSelector from 'src/components/ClassSelector';\nimport AssignmentIcon from '@material-ui/icons/Assignment'\nimport PeopleAltIcon from '@material-ui/icons/PeopleAlt'\nimport BorderColorOutlinedIcon from '@material-ui/icons/BorderColorOutlined'\nimport ImageUploader from 'src/components/Formik/ImageUploader';\nimport QuestionCard from 'src/components/Game/QuestionCard';\nconst prettyBytes = require('pretty-bytes');\nconst yup = require('yup')\n\nconst gameConfig = {\n interactive: {\n maxAns: 1\n }\n}\n\nexport default function GameEdit({ snack }) {\n const nav = useNavigate()\n const api = useApi()\n const { t, translate } = useLocale()\n const [isDialogOpen, setIsDialogOpen] = useState(false)\n const [dialogMode, setDialogMode] = useState();\n const { gameId } = useParams()\n const [game, setGame] = useState({});\n\n const [seleceted, setSeleceted] = useState();\n\n\n const maxAns = _.get(gameConfig, `${game.gameType}.maxAns`)\n\n const getData = () => {\n return api.getGameData(gameId).then(res => {\n setGame(res.data)\n return res\n })\n }\n\n useEffect(() => {\n getData()\n }, []);\n\n useEffect(() => {\n if (dialogMode) formik.resetForm()\n }, [dialogMode]);\n\n const formik = useFormik({\n initialValues: seleceted || {\n text: '',\n options: [\n { isAns: true, text: '' },\n { isAns: false, tesxt: '' }\n ],\n image: null,\n },\n enableReinitialize: true,\n validationSchema: yup.object({\n text: yup.string().required().nullable(),\n image: yup.mixed().maxFilesize(1024),\n options: yup.array().of(\n yup.object({\n text: yup.string().required().nullable(),\n isAns: yup.bool().required().nullable()\n })\n ).test('max_correct_ans', t('max_correct_ans_msg', { a: maxAns }), value => {\n return !maxAns || maxAns >= _.filter(value, v => v.isAns).length\n\n }),\n }),\n onSubmit: async (values, helper) => {\n try {\n await api.batchUploadBlobs(values, ['image'])\n if (values._id) {\n await api.updateQuestion(gameId, values)\n }\n else {\n await api.addQuestion(gameId, values)\n }\n getData().then(res => {\n setDialogMode(null)\n helper.setSubmitting(false)\n })\n } catch (error) {\n\n\n snack.error()\n helper.setSubmitting(false)\n }\n },\n })\n\n const handleCreate = () => {\n setSeleceted(null)\n setDialogMode('add')\n }\n\n const handleEdit = (row) => {\n setSeleceted(row)\n setDialogMode('edit')\n }\n\n const handleDelete = (row) => {\n setSeleceted(row)\n setDialogMode('delete')\n }\n\n const handleConfirmDelete = () => {\n\n api.updateQuestion(gameId, { _id: formik.values._id, isActive: false }).then(res => {\n getData().then(res => {\n setDialogMode(null)\n snack.open(t('delete_success'))\n })\n })\n }\n\n const hasImage = game.gameType == 'mc' || game.gameType == 'interactive'\n console.log(\"file: GameEdit.js ~ line 217 ~ GameEdit ~ formik.errors.options \", formik.errors.options)\n\n return (\n \n \n {_.size(game.questions)} {t('questions')} \n \n \n }\n style={{ marginLeft: '20px' }}\n >\n {t('add_question')}\n \n \n \n {_.map(game?.questions, (question, index) => {\n return \n })}\n \n \n setDialogMode(null)} >\n {hasImage &&\n \n }\n \n {_.map(formik.values.options, (option, index) => {\n return \n formik.setFieldValue(`options.${index}.isAns`, !_.get(option, `isAns`, false))}\n sx={{ width: '56px', height: '56px', mr: 1 }}\n >\n {option?.isAns ? : }\n \n \n \n \n \n })}\n {_.size(formik.values.options) < 4 &&\n helper.push({ isAns: true, text: '' })}\n sx={{ placeItems: 'center', height: '56px', backgroundColor: '#EEEEEE' }}\n >\n {t('add_question_option')}\n \n }\n {!_.isArray(formik.errors.options) && formik.errors.options !== null &&\n {formik.errors.options}\n }\n \n\n } />\n setDialogMode(null)}\n confirmText={t('confirm')}\n >\n

\n {t('delete_confirm_msg', { a: `${t('question')}${_.findIndex(game?.questions, { _id: formik.values._id }) + 1}` })}\n

\n \n
\n
)\n}","import { Box, Card, Divider, Grid, Typography } from '@material-ui/core';\nimport DescriptionOutlinedIcon from '@material-ui/icons/DescriptionOutlined';\nimport PeopleAltOutlinedIcon from '@material-ui/icons/PeopleAltOutlined';\nimport _ from 'lodash';\nimport { useState, useMemo } from 'react';\nimport useApi from 'src/api/api';\nimport vars from 'src/config/vars';\nimport LayoutContainer from 'src/layout/LayoutContainer';\nimport { useLocale } from 'src/provider/LocaleProvider';\nimport { SubjectSelector } from 'src/components/SubjectSelector';\nimport { useQuery } from 'react-query';\nimport LoadingView from 'src/components/LoadingView';\nimport SubjectIcon from '@material-ui/icons/Subject';\n\nexport default function UserGameList() {\n const { t, translate } = useLocale();\n const api = useApi();\n const [selectedSubject, setSelectedSubject] = useState('ALL');\n\n const authToken = localStorage.getItem('token');\n\n const { data: gameList, isLoading } = useQuery('games', async () => {\n return api\n .getGameList()\n .then((res) => _.filter(res.data, (g) => g.gameType === 'mc'));\n });\n\n const gamesFilteredBySubject = useMemo(() => {\n if (selectedSubject === 'ALL') return gameList;\n\n const newGameList = _.filter(gameList, (game) => {\n if (selectedSubject === 'NONE') {\n return _.isEmpty(game?.subjects);\n }\n return _.includes(game.subjects, selectedSubject);\n });\n return newGameList;\n }, [selectedSubject, gameList]);\n\n return (\n \n \n {isLoading ? (\n \n ) : (\n \n {gamesFilteredBySubject.length === 0 ? (\n \n {t('no_record')}\n \n ) : (\n _.map(gamesFilteredBySubject, (game) => {\n return (\n \n \n \n \n \n \n \n \n {game.name}\n \n {game.description}\n \n \n \n \n \n \n \n \n \n {t(`game_${game.gameType}`)}\n \n \n \n \n \n \n {_.size(game.filters) > 0\n ? _.map(game.filters, (f) => translate(f.name))\n .sort()\n .join(', ')\n : t('all_grade_and_class')}\n \n \n \n \n \n \n {_.size(game?.subjects) > 0\n ? _.map(game?.subjects, (f) =>\n translate(f.name)\n )\n .sort()\n .join(', ')\n : t('all_subject')}\n \n \n \n \n \n \n \n );\n })\n )}\n \n )}\n \n );\n}\n","import { Helmet } from 'react-helmet';\nimport { Backdrop, Box, Container, Tab, Grid, Card, CardContent, Typography, CardHeader, Button, Divider, IconButton, TextField, InputAdornment, List, Tooltip, Tabs, Avatar, ListItem } from '@material-ui/core';\nimport { makeStyles } from '@material-ui/styles';\nimport { useEffect } from 'react';\nimport { useBackDrop } from 'src/provider/BackdropProvider';\nimport { useState } from 'react';\nimport useApi from 'src/api/api';\nimport { ArrowBack } from '@material-ui/icons';\nimport Icons from 'src/icons';\nimport DataTable from 'src/components/DataTable/DataTable';\nimport DataTableNoLimit from 'src/components/DataTable/DataTableNoLimit';\nimport _ from 'lodash';\nimport { useNavigate, useParams } from 'react-router';\nimport { useLocale } from 'src/provider/LocaleProvider';\nimport utils from 'src/utils/utils';\nimport SearchInput from 'src/components/SearchInput';\nimport LayoutContainer from 'src/layout/LayoutContainer';\n\n\nimport DescriptionOutlinedIcon from '@material-ui/icons/DescriptionOutlined'\nimport PeopleAltOutlinedIcon from '@material-ui/icons/PeopleAltOutlined'\nimport AssignmentIcon from '@material-ui/icons/Assignment'\nimport PeopleAltIcon from '@material-ui/icons/PeopleAlt'\nimport BorderColorOutlinedIcon from '@material-ui/icons/BorderColorOutlined'\nimport ImageUploader from 'src/components/Formik/ImageUploader';\nimport QuestionCard from 'src/components/Game/QuestionCard';\n\nconst moment = require('moment-timezone')\n\nconst useStyles = makeStyles(theme => ({\n\n row: {\n // height: '10px',\n // paddingBottom: theme.spacing(2),\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n marginBottom: theme.spacing(2)\n },\n spacer: {\n flex: 1\n },\n\n tableCell: {\n \"& .MuiTableCell-root\": {\n textAlign: 'center',\n borderLeft: \"none !important\",\n },\n \"& .MuiTableRow-root\": {\n height: '60px'\n },\n\n },\n caption: {\n fontSize: '12px'\n }\n\n}))\n\nconst DataBox = ({ title, value, Icon, className, ...rest }) => {\n return (\n \n \n \n \n \n {title}\n \n \n {value}\n \n \n \n \n {Icon}\n \n \n\n \n \n \n )\n}\n\n\nconst SessionRecord = ({ gameData }) => {\n const classes = useStyles()\n const { t, getLanguage, translate } = useLocale()\n\n var sessions = _.map(_.orderBy(gameData, 'created_at', 'desc'), session => {\n var records = _.map(session.records, r => {\n return ({ ...r, isCorrect: _.every(r.answers, 'isAns') })\n })\n return ({\n ...session,\n records: records,\n correct: _.sumBy(records, r => r.isCorrect ? 1 : 0),\n incorrect: _.sumBy(records, r => r.isCorrect ? 0 : 1),\n accuracy: _.sumBy(records, r => r.isCorrect ? 1 : 0) / _.size(records),\n class: _.get(session, 'profile.class'),\n class_no: _.get(session, 'profile.class_no'),\n name: translate(_.get(session, 'user.name'))\n })\n })\n\n\n return sessions.map(s => {\n return \n \n \n {moment(s.created_at).format(\"YYYY-MM-DD HH:MM\")}\n \n \n \n {s.class} \n {_.padStart(s.class_no, 2, '0')} \n {s.name} \n \n \n \n \n \n {_.toNumber(s.correct) > 0\n ? <>\n \n {s.correct} \n \n : null\n }\n \n \n {_.toNumber(s.incorrect) > 0\n ? <>\n \n {s.incorrect} \n \n : null\n }\n \n \n \n {_.round(s.accuracy, 3) * 100 + '%'}\n \n \n \n \n

{s.point}

\n

{'point'}

\n
\n \n

{s.pointExchanged}

\n

{'pointExchanged'}

\n
\n
\n
\n
\n\n })\n}\n\nconst QuestionRecord = ({ gameData, questions }) => {\n const { t, getLanguage, translate } = useLocale()\n return _.map(questions, (question, index) => {\n console.log('return_.map => question', question)\n var a = _.flattenDeep(_.map(question.records, r => r.answers))\n var count = _.countBy(a, '_id')\n var sum = _.size(a)\n\n return {\n var c = _.get(count, option._id, 0)\n return \n \n \n \n {t('option')} {index + 1}:\n {option.text}\n \n \n \n {`${c} ans`}\n \n \n \n \n \n \n {_.round(c / sum * 100, 1) + '%'}\n \n \n \n \n }} />\n })\n}\n\n\nconst TabPanel = ({ value, tab, children }) => {\n if (value == tab) {\n return children\n }\n return null\n}\n\nconst GameRecord = () => {\n const classes = useStyles()\n const loadingView = useBackDrop();\n const api = useApi()\n const nav = useNavigate()\n const { t, translate } = useLocale()\n const { gameId } = useParams()\n\n const [game, setGame] = useState({});\n const [gameData, setGameData] = useState()\n\n const [tab, setTab] = useState('session');\n const [totalSession, setTotalSession] = useState(0)\n const [totalUser, setTotalUser] = useState(0)\n\n useEffect(() => {\n setTotalSession(_.size(gameData))\n var users = _.map(gameData, item => item.user._id)\n var unique = _.union(users)\n setTotalUser(_.size(unique))\n }, [gameData])\n\n const handleExport = () => {\n utils.exportCsv(gameData, [\n // { label: t('rank'), value: (row) => { return (_.findIndex(classRanking, (k) => k.class === row.class) + 1) } },\n { label: t('date'), value: (row) => moment(row.created_at).format(\"YYYY-MM-DD HH:MM\") },\n { label: t('class'), value: row => row['class'], },\n { label: t('name_zh'), value: row => row.name?.zh },\n { label: t('name_en'), value: row => row.name?.en, },\n { label: t('point'), value: (row) => row['point'] }\n ], 'class_ranking')\n }\n\n useEffect(() => {\n getData()\n }, [])\n\n const getData = async () => {\n api.getGameData(gameId, { records: true }).then(res => {\n\n setGame(res.data)\n })\n return api.getGameRecordDetails(gameId).then(res => {\n setGameData(res.data)\n }).catch(e => console.log(e))\n }\n\n return (\n \n \n \n \n \n \n \n \n \n \n {game.name}\n \n \n {game.description}\n \n \n \n \n \n \n \n \n {t('gametype') + ' : ' + t(`game_${game.gameType}`)}\n \n \n \n \n \n \n {t('grade_or_class') + ' : ' + (_.size(game.filters) > 0 ? _.map(game.filters, f => translate(f.name)).sort().join(', ') : t('all_grade_and_class'))}\n \n \n \n \n \n \n \n \n } />\n \n } />\n \n \n \n \n setTab(v)} >\n \n \n {/* */}\n \n \n {/* \n \n \n \n \n \n moment(row.created_at).format(\"YYYY-MM-DD HH:MM\")\n , sort: true,\n width: '33.3%'\n },\n // { label: t('rank'), value: 'rank', content: (row, index) => { return (_.findIndex(classRanking, (k) => k.class === row.class) + 1) } },\n { label: t('class'), value: 'profile.class', },\n { label: t('name_zh'), value: 'user.name.zh' },\n { label: t('name_en'), value: 'user.name.en', },\n { label: t('point'), value: 'point' }\n ]}\n\n />\n */}\n \n \n \n \n \n \n\n {/*
Last Updated at {moment().format(\"YYYY-MM-DD HH:mm:ss\")}
*/}\n\n
\n )\n}\nexport default GameRecord;\n","import React, { useEffect, useRef, useState } from 'react';\nimport { useNavigate, useParams } from 'react-router';\nimport useApi from 'src/api/api';\nimport LayoutContainer from 'src/layout/LayoutContainer';\nimport { useAuthData } from 'src/provider/AuthDataProvider';\nimport { useLocale } from 'src/provider/LocaleProvider';\nimport {\n Backdrop,\n Box,\n Container,\n Grid,\n Card,\n CardContent,\n Typography,\n CardHeader,\n Button,\n Divider,\n IconButton,\n TextField\n} from '@material-ui/core';\nimport { makeStyles } from '@material-ui/styles';\nimport DataTableNoLimit from 'src/components/DataTable/DataTableNoLimit';\nimport Icons from 'src/icons';\nimport DataTable from 'src/components/DataTable/DataTable';\nimport {\n Radar,\n RadarChart,\n PolarGrid,\n PolarAngleAxis,\n PolarRadiusAxis,\n ResponsiveContainer,\n PieChart,\n Pie,\n Cell,\n LineChart,\n Line,\n XAxis,\n YAxis,\n CartesianGrid,\n Tooltip,\n Legend,\n BarChart,\n Bar,\n AreaChart,\n Brush\n} from 'recharts';\nconst moment = require('moment-timezone');\nconst _ = require('lodash');\nconst COLORS = ['#0088FE', '#00C49F', '#FFBB28', '#FF8042', '#FF80FF'];\n\nconst useStyles = makeStyles((theme) => ({\n row: {\n // height: '10px',\n // paddingBottom: theme.spacing(2),\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'flex-end',\n marginBottom: theme.spacing(1)\n // marginTop: theme.spacing(1)\n },\n\n backdrop: {\n zIndex: theme.zIndex.drawer + 1,\n color: '#fff'\n },\n\n cardTitle: {\n fontWeight: 700\n },\n tableCell: {\n '& .MuiTableCell-root': {\n textAlign: 'center',\n borderLeft: 'none !important'\n },\n '& .MuiTableRow-root': {\n height: '60px'\n }\n }\n}));\nexport default function StudentRecord() {\n const { t, getLanguage } = useLocale();\n const classes = useStyles();\n const nav = useNavigate();\n const { userId } = useParams();\n const { selectedPeriod } = useAuthData();\n const api = useApi();\n const [profile, setProfile] = useState();\n const [submittedHomeworkRecord, setSubmittedHomeworkRecord] = useState([]);\n const [unFinishedHomeworkRecord, setUnfinishedHomeworkRecord] = useState([]);\n\n function toPecentage(molecular, total) {\n if (!molecular) return null;\n return `${_.round((molecular / total) * 100, 1)}\\%`;\n }\n\n useEffect(() => {\n if (selectedPeriod) {\n api\n .getStudentProfiles(userId, {\n pointActions: 1,\n attendanceActions: 1\n })\n .then(({ data }) => {\n var ptArr = _.add(data.points);\n\n setProfile(data);\n })\n .catch((e) => console.log(e));\n\n api\n .getStudentSubmittedHomeworkRecord(userId)\n .then((res) => {\n setSubmittedHomeworkRecord(res.data);\n })\n .catch((e) => console.log(e));\n\n api\n .getStudentUnfinishedHomeworkRecord(userId)\n .then((res) => {\n setUnfinishedHomeworkRecord(res.data);\n })\n .catch((e) => console.log(e));\n }\n }, [selectedPeriod]);\n\n return (\n \n {profile && (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n )}\n \n \n {t('student_point_ratio')}\n \n \n \n \n \n t(obj[0] + '_point')}\n cx=\"50%\"\n cy=\"50%\"\n fill=\"#8884d8\"\n isAnimationActive={false}\n labelLine={false}\n local\n label={(e) => {\n if (e.percent > 0) {\n return `${e.name}: ${e.value} (${_.round(\n e.percent * 100,\n 1\n )}%)`;\n }\n return ' ';\n }}\n >\n {_.map(_.entries(profile?.points), (entry, index) => (\n \n ))}\n \n \n \n \n \n\n \n \n \n nav(`/admin/student_list/${userId}/point_record`)\n }\n >\n {t('see_all')} \n \n }\n title={t('point_history')}\n />\n \n \n \n moment(row.created_at).format('YYYY-MM-DD HH:MM'),\n width: '33.3%'\n },\n {\n label: t('pointrule_name'),\n value: 'pointRule.name',\n width: '33.3%'\n },\n { label: t('point'), value: 'point', width: '33.3%' }\n ]}\n />\n \n \n
\n Last Updated at {moment().format('YYYY-MM-DD HH:mm:ss')}\n
\n
\n \n \n \n nav(`/admin/student_list/${userId}/attendance_record`)\n }\n >\n {t('see_all')} \n \n }\n title={t('attendance_history')}\n />\n \n \n \n moment(row.created_at).format('YYYY-MM-DD HH:MM'),\n width: '33.3%'\n },\n {\n label: t('attendancerule_name'),\n value: 'attendanceRule.name',\n width: '33.3%'\n },\n {\n label: t('type'),\n value: 'type',\n translate: 1,\n width: '33.3%'\n }\n ]}\n />\n \n \n
\n Last Updated at {moment().format('YYYY-MM-DD HH:mm:ss')}\n
\n
\n {/* ////////////////////!! new*/}\n \n \n \n {submittedHomeworkRecord.total ? (\n \n \n \n {t('percentage_of_completion')}\n \n \n \n \n \n \n t(obj[0])}\n cx=\"50%\"\n cy=\"50%\"\n fill=\"#8884d8\"\n isAnimationActive={false}\n labelLine={false}\n local\n label={(e) => {\n if (e.percent > 0) {\n return `${e.name}: ${e.value} (${_.round(\n e.percent * 100,\n 1\n )}%)`;\n }\n return ' ';\n }}\n >\n {_.map(\n _.entries(submittedHomeworkRecord?.amount),\n (entry, index) => (\n \n )\n )}\n \n \n \n \n \n ) : (\n <>\n )}\n\n \n \n nav(\n `/admin/student_list/${userId}/submitted_homework_record`\n )\n }\n >\n {t('see_all')} \n \n }\n title={t('submitted_homework_record')}\n />\n \n \n moment(row.date).format('YYYY-MM-DD'),\n width: '33.3%'\n },\n {\n label: t('status'),\n value: 'status',\n translate: 1,\n width: '33.3%'\n },\n {\n label: t('action_created_by'),\n content: (row) =>\n _.get(row, `created_by.name.${getLanguage()}`),\n width: '33.3%'\n }\n ]}\n />\n \n \n
\n Last Updated at {moment().format('YYYY-MM-DD HH:mm:ss')}\n
\n
\n
\n \n \n \n {unFinishedHomeworkRecord.total ? (\n \n \n \n {t('monthly_number_of_uncompleted_homework')}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n ) : (\n <>\n )}\n {unFinishedHomeworkRecord.total ? (\n \n \n \n {t('daily_number_of_uncompleted_homework')}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n ) : (\n <>\n )}\n \n \n nav(\n `/admin/student_list/${userId}/unfinished_homework_record`\n )\n }\n >\n {t('see_all')} \n \n }\n title={t('unfinished_homework_record')}\n />\n \n \n moment(row.date).format('YYYY-MM-DD'),\n width: '20%',\n sort: true\n },\n {\n label: t('subject'),\n translate: 1,\n content: (row) =>\n _.get(row, `homework_type.subject.name.${getLanguage()}`),\n width: '20%'\n },\n {\n label: t('code'),\n translate: 1,\n content: (row) => _.get(row, `homework_type.name`),\n width: '20%'\n },\n {\n label: t('remark'),\n translate: 1,\n content: (row) => _.get(row, `remarks`),\n width: '20%'\n },\n {\n label: t('action_created_by'),\n content: (row) =>\n _.get(row, `created_by.name.${getLanguage()}`),\n width: '20%'\n }\n ]}\n />\n \n \n
\n Last Updated at {moment().format('YYYY-MM-DD HH:mm:ss')}\n
\n
\n
\n {/* ////////////////////!! */}\n \n \n nav(`/admin/student_list/${userId}/badges`)}\n // >\n // {t('see_all')} \n // \n // }\n title={t('badges')}\n />\n \n \n new Date(row.created_at).toLocaleString(),\n sort: true\n },\n {\n id: 'badge_rule_name',\n label: t('badge_rule_name'),\n value: 'badge_rule.name',\n sort: true\n }\n ]}\n />\n \n \n
\n Last Updated at {moment().format('YYYY-MM-DD HH:mm:ss')}\n
\n
\n \n );\n}\n","import { Helmet } from 'react-helmet';\nimport { Backdrop, Box, Container, Grid, Card, CardContent, Typography, CardHeader, Button, Divider, IconButton, TextField, InputAdornment } from '@material-ui/core';\nimport { makeStyles } from '@material-ui/styles';\nimport { useEffect } from 'react';\nimport { useBackDrop } from 'src/provider/BackdropProvider';\nimport { useState } from 'react';\nimport useApi from 'src/api/api';\nimport { ArrowBack } from '@material-ui/icons';\nimport Icons from 'src/icons';\nimport DataTable from 'src/components/DataTable/DataTable';\nimport DataTableNoLimit from 'src/components/DataTable/DataTableNoLimit';\nimport _ from 'lodash';\nimport { useNavigate } from 'react-router';\nimport { useLocale } from 'src/provider/LocaleProvider';\nimport utils from 'src/utils/utils';\nimport SearchInput from 'src/components/SearchInput';\nimport LayoutContainer from 'src/layout/LayoutContainer';\nimport { useAuthData } from 'src/provider/AuthDataProvider';\nconst moment = require('moment-timezone')\n\nconst useStyles = makeStyles(theme => ({\n\n row: {\n // height: '10px',\n // paddingBottom: theme.spacing(2),\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n marginBottom: theme.spacing(2)\n },\n spacer: {\n flex: 1\n },\n\n tableCell: {\n \"& .MuiTableCell-root\": {\n textAlign: 'center',\n borderLeft: \"none !important\",\n },\n \"& .MuiTableRow-root\": {\n height: '60px'\n },\n\n },\n caption: {\n fontSize: '12px'\n }\n\n}))\n\n\n\n\nconst UAttendanceRecord = () => {\n const classes = useStyles()\n const loadingView = useBackDrop();\n const api = useApi()\n const nav = useNavigate()\n const { t } = useLocale()\n const { userInfo, selectedPeriod, currentPeriod } = useAuthData()\n\n\n const [search, setSearch] = useState(null)\n const [attendanceHistory, setAttendanceHistory] = useState([])\n\n const handleExport = () => {\n utils.exportCsv(attendanceHistory, [\n { label: t('date'), value: (row) => row['date'] },\n { label: t('attendancerule_name'), value: (row) => row.attendanceRule.name },\n { label: t('type'), value: (row) => row['type'] }\n ], 'attendance_record')\n }\n\n useEffect(() => {\n // loadingView.open()\n \n\n api.getUserAttendanceList(selectedPeriod, userInfo._id).then(({ data }) => setAttendanceHistory(data)).catch(e => console.log(e))\n\n // loadingView.close()\n\n }, [])\n return (\n \n \n\n \n \n \n \n moment(row.created_at).format(\"YYYY-MM-DD HH:MM\"),\n width: '33.3%',\n // sort: true\n },\n { label: t('attendancerule_name'), value: 'attendanceRule.name', width: '33.3%', },\n { label: t('type'), value: 'type', width: '33.3%', }\n ]}\n\n />\n
Last Updated at {moment().format(\"YYYY-MM-DD HH:mm:ss\")}
\n\n
\n )\n}\nexport default UAttendanceRecord;\n","import { Autocomplete, Button, Chip, FormControl, InputLabel, MenuItem, Select, TextField, Toolbar, Typography } from '@material-ui/core'\nimport React, { useEffect, useState } from 'react'\nimport useApi from 'src/api/api'\nimport { useAuthData } from 'src/provider/AuthDataProvider'\nimport { useLocale } from 'src/provider/LocaleProvider'\n\nconst _ = require('lodash')\n\n\nconst RuleSelector = ({\n default_id,\n selected,\n setSelected = new Function(),\n filters,\n autocomplete = true,\n all = true,\n multiple = false,\n ...rest\n}) => {\n\n const { t, getLanguage } = useLocale()\n const [filterList, setFilterList] = useState([])\n const api = useApi()\n const allOption = {\n name: {\n en: t('all_rule_category'),\n zh: t('all_rule_category'),\n },\n // attribute: null,\n _id: null\n }\n\n useEffect(() => {\n if (filters) {\n setFilterList(filters)\n }\n else {\n\n api.getPointRuleCategories().then(res => {\n setFilterList(res.data)\n })\n }\n if ((!selected || selected == {}) && all) setSelected(allOption)\n }, [])\n\n\n\n let selectedValue = _.filter(filterList, item => selected && _.includes(selected, item._id));\n\n return (\n multiple ?\n 0 ? selectedValue : [allOption]}\n options={all ? _.concat([allOption], filterList) : filterList}\n getOptionLabel={op => _.get(op, `name.${getLanguage()}`, '')}\n onChange={(e, v, c, d) => {\n \n if (d.option.value === null) {\n setSelected([])\n }\n else setSelected(_.map(v, i => i._id))\n }}\n renderTags={(tagValue, getTagProps) => {\n return tagValue.map((option, index) => {\n return (\n )\n })\n }}\n renderInput={(params) => }\n style={{ minWidth: '150px' }}\n {...rest}\n />\n :\n _.get(op, `name.${getLanguage()}`, '')}\n onChange={(e, v) => setSelected(v)}\n renderInput={(params) => }\n style={{ minWidth: '150px' }}\n {...rest}\n />\n )\n}\nexport default RuleSelector ","import { Helmet } from 'react-helmet';\nimport { Backdrop, Box, Container, Grid, Card, CardContent, Typography, CardHeader, Button, Divider, IconButton, TextField, InputAdornment } from '@material-ui/core';\nimport { makeStyles } from '@material-ui/styles';\nimport { useCallback, useEffect } from 'react';\nimport { useBackDrop } from 'src/provider/BackdropProvider';\nimport { useState } from 'react';\nimport useApi from 'src/api/api';\nimport { ArrowBack } from '@material-ui/icons';\nimport Icons from 'src/icons';\nimport DataTable from 'src/components/DataTable/DataTable';\nimport DataTableNoLimit from 'src/components/DataTable/DataTableNoLimit';\nimport _ from 'lodash';\nimport { useNavigate } from 'react-router';\nimport { useLocale } from 'src/provider/LocaleProvider';\nimport utils from 'src/utils/utils';\nimport SearchInput from 'src/components/SearchInput';\nimport LayoutContainer from 'src/layout/LayoutContainer';\nimport { useAuthData } from 'src/provider/AuthDataProvider';\nimport RuleSelector from 'src/components/RuleSelector';\nconst moment = require('moment-timezone')\n\nconst useStyles = makeStyles(theme => ({\n\n row: {\n // height: '10px',\n // paddingBottom: theme.spacing(2),\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n marginBottom: theme.spacing(2)\n },\n spacer: {\n flex: 1\n },\n\n tableCell: {\n \"& .MuiTableCell-root\": {\n textAlign: 'center',\n borderLeft: \"none !important\",\n },\n \"& .MuiTableRow-root\": {\n height: '60px'\n },\n // \n },\n caption: {\n fontSize: '12px'\n }\n\n}))\n\nconst UPointRecord = () => {\n const classes = useStyles()\n const loadingView = useBackDrop();\n const api = useApi()\n const nav = useNavigate()\n const { t } = useLocale()\n const { userInfo, selectedPeriod, currentPeriod } = useAuthData()\n\n\n const [filter, setFilter] = useState(null)\n const [pointHistory, setPointHistory] = useState([])\n\n const handleExport = () => {\n utils.exportCsv(pointHistory, [\n { label: t('date'), value: (row) => row['date'] },\n { label: t('pointrule_name'), value: (row) => row.pointRule.name },\n { label: t('point'), value: (row) => row['point'] }\n ], 'point_record')\n }\n\n useEffect(() => {\n // loadingView.open()\n\n\n api.getUserPointHistories(selectedPeriod, userInfo._id).then((({ data }) => { console.log('data: ', data); setPointHistory(data) })).catch(e => console.log(e))\n // loadingView.close()\n\n }, [])\n\n const filteredList = useCallback(\n\n utils.searchFilter(pointHistory, filter?._id, ['pointRule.ruleCategory._id'])\n , [pointHistory, filter])\n \n\n return (\n \n\n \n \n \n \n \n
\n \n
\n
\n moment(row.created_at).format(\"YYYY-MM-DD HH:MM\")\n , sort: true,\n width: '33.3%'\n },\n { id: 'pointrule_name', label: t('pointrule_name'), value: 'pointRule.name', width: '33.3%', },\n { id: 'point', label: t('point'), value: 'point', width: '33.3%', }\n ]}\n\n />\n
Last Updated at {moment().format(\"YYYY-MM-DD HH:mm:ss\")}
\n\n
\n )\n}\nexport default UPointRecord;\n","import { Helmet } from 'react-helmet';\nimport {\n Backdrop,\n Box,\n Container,\n Grid,\n Card,\n CardContent,\n Typography,\n CardHeader,\n Button,\n Divider,\n IconButton,\n TextField,\n InputAdornment\n} from '@material-ui/core';\nimport { makeStyles } from '@material-ui/styles';\nimport { useCallback, useEffect } from 'react';\nimport { useBackDrop } from 'src/provider/BackdropProvider';\nimport { useState } from 'react';\nimport useApi from 'src/api/api';\nimport { ArrowBack } from '@material-ui/icons';\nimport Icons from 'src/icons';\nimport DataTable from 'src/components/DataTable/DataTable';\nimport DataTableNoLimit from 'src/components/DataTable/DataTableNoLimit';\nimport _ from 'lodash';\nimport { useNavigate } from 'react-router';\nimport { useLocale } from 'src/provider/LocaleProvider';\nimport utils from 'src/utils/utils';\nimport SearchInput from 'src/components/SearchInput';\nimport LayoutContainer from 'src/layout/LayoutContainer';\nimport { useAuthData } from 'src/provider/AuthDataProvider';\nimport RuleSelector from 'src/components/RuleSelector';\nconst moment = require('moment-timezone');\n\nconst useStyles = makeStyles((theme) => ({\n row: {\n // height: '10px',\n // paddingBottom: theme.spacing(2),\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n marginBottom: theme.spacing(2)\n },\n spacer: {\n flex: 1\n },\n\n tableCell: {\n '& .MuiTableCell-root': {\n textAlign: 'center',\n borderLeft: 'none !important'\n },\n '& .MuiTableRow-root': {\n height: '60px'\n }\n //\n },\n caption: {\n fontSize: '12px'\n }\n}));\n\nconst USubmittedHomeworkRecord = () => {\n const classes = useStyles();\n const loadingView = useBackDrop();\n const api = useApi();\n const nav = useNavigate();\n const { t, getLanguage } = useLocale();\n const { userInfo, selectedPeriod, currentPeriod } = useAuthData();\n\n const [filter, setFilter] = useState(null);\n const [record, setRecord] = useState([]);\n\n const handleExport = () => {\n utils.exportCsv(\n record,\n [\n {\n label: t('date'),\n value: (row) => moment(row.date).format('YYYY-MM-DD')\n },\n { label: t('status'), value: (row) => row.pointRule.name },\n {\n label: t('action_created_by'),\n value: (row) => _.get(row, `created_by.name.${getLanguage()}`)\n }\n ],\n 'point_record'\n );\n };\n\n useEffect(() => {\n // loadingView.open()\n\n api\n .getStudentSubmittedHomeworkRecord(userInfo._id)\n .then(({ data }) => {\n console.log('data: ', data);\n setRecord(data.records);\n })\n .catch((e) => console.log(e));\n // loadingView.close()\n }, []);\n\n const filteredList = useCallback(\n utils.searchFilter(record, filter?._id, ['pointRule.ruleCategory._id']),\n [record, filter]\n );\n\n return (\n \n \n {/* \n \n */}\n
\n \n
\n \n
\n
\n moment(row.date).format('YYYY-MM-DD'),\n width: '33.3%'\n },\n {\n label: t('status'),\n value: 'status',\n translate: 1,\n width: '33.3%'\n },\n {\n label: t('action_created_by'),\n content: (row) => _.get(row, `created_by.name.${getLanguage()}`),\n width: '33.3%'\n }\n ]}\n />\n
\n Last Updated at {moment().format('YYYY-MM-DD HH:mm:ss')}\n
\n \n );\n};\nexport default USubmittedHomeworkRecord;\n","import { Helmet } from 'react-helmet';\nimport {\n Backdrop,\n Box,\n Container,\n Grid,\n Card,\n CardContent,\n Typography,\n CardHeader,\n Button,\n Divider,\n IconButton,\n TextField,\n InputAdornment\n} from '@material-ui/core';\nimport { makeStyles } from '@material-ui/styles';\nimport { useCallback, useEffect } from 'react';\nimport { useBackDrop } from 'src/provider/BackdropProvider';\nimport { useState } from 'react';\nimport useApi from 'src/api/api';\nimport { ArrowBack } from '@material-ui/icons';\nimport Icons from 'src/icons';\nimport DataTable from 'src/components/DataTable/DataTable';\nimport DataTableNoLimit from 'src/components/DataTable/DataTableNoLimit';\nimport _ from 'lodash';\nimport { useNavigate } from 'react-router';\nimport { useLocale } from 'src/provider/LocaleProvider';\nimport utils from 'src/utils/utils';\nimport SearchInput from 'src/components/SearchInput';\nimport LayoutContainer from 'src/layout/LayoutContainer';\nimport { useAuthData } from 'src/provider/AuthDataProvider';\nimport RuleSelector from 'src/components/RuleSelector';\nconst moment = require('moment-timezone');\n\nconst useStyles = makeStyles((theme) => ({\n row: {\n // height: '10px',\n // paddingBottom: theme.spacing(2),\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n marginBottom: theme.spacing(2)\n },\n spacer: {\n flex: 1\n },\n\n tableCell: {\n '& .MuiTableCell-root': {\n textAlign: 'center',\n borderLeft: 'none !important'\n },\n '& .MuiTableRow-root': {\n height: '60px'\n }\n //\n },\n caption: {\n fontSize: '12px'\n }\n}));\n\nconst UUnfinishedHomeworkRecord = () => {\n const classes = useStyles();\n const loadingView = useBackDrop();\n const api = useApi();\n const nav = useNavigate();\n const { t, getLanguage } = useLocale();\n const { userInfo, selectedPeriod, currentPeriod } = useAuthData();\n\n const [filter, setFilter] = useState(null);\n const [record, setRecord] = useState([]);\n\n const handleExport = () => {\n utils.exportCsv(\n record,\n [\n {\n label: t('date'),\n value: (row) => moment(row['date']).format('YYYY-MM-DD')\n },\n {\n label: t('subject'),\n value: (row) =>\n _.get(row, `homework_type.subject.name.${getLanguage()}`)\n },\n {\n label: t('code'),\n value: (row) => _.get(row, `homework_type.name`)\n },\n {\n label: t('remark'),\n value: (row) => _.get(row, `remarks`)\n },\n {\n label: t('action_created_by'),\n value: (row) => _.get(row, `created_by.name.${getLanguage()}`)\n }\n ],\n 'point_record'\n );\n };\n\n useEffect(() => {\n // loadingView.open()\n\n api\n .getStudentUnfinishedHomeworkRecord(userInfo._id)\n .then(({ data }) => {\n console.log('data: ', data);\n setRecord(data.records);\n })\n .catch((e) => console.log(e));\n // loadingView.close()\n }, []);\n\n const filteredList = useCallback(\n utils.searchFilter(record, filter?._id, ['']),\n [record, filter]\n );\n\n return (\n \n \n {/* \n \n */}\n \n
\n \n
\n
\n moment(row.date).format('YYYY-MM-DD'),\n width: '20%',\n sort: true\n },\n {\n label: t('subject'),\n translate: 1,\n content: (row) =>\n _.get(row, `homework_type.subject.name.${getLanguage()}`),\n width: '20%'\n },\n {\n label: t('code'),\n translate: 1,\n content: (row) => _.get(row, `homework_type.name`),\n width: '20%'\n },\n {\n label: t('remark'),\n translate: 1,\n content: (row) => _.get(row, `remarks`),\n width: '20%'\n },\n {\n label: t('action_created_by'),\n content: (row) => _.get(row, `created_by.name.${getLanguage()}`),\n width: '20%'\n }\n ]}\n />\n
\n Last Updated at {moment().format('YYYY-MM-DD HH:mm:ss')}\n
\n \n );\n};\nexport default UUnfinishedHomeworkRecord;\n","import { Box, Button, Checkbox, Container, Dialog, DialogActions, DialogContent, DialogTitle, Divider, IconButton, Paper, Tooltip, Typography } from '@material-ui/core';\nimport { makeStyles } from '@material-ui/styles';\nimport _ from 'lodash';\nimport moment from 'moment-timezone';\nimport React, { useEffect, useRef, useState } from 'react';\nimport { useNavigate } from 'react-router';\nimport { Link } from 'react-router-dom';\nimport useApi from 'src/api/api';\nimport DataTable from 'src/components/DataTable/DataTable';\nimport Icons from 'src/icons';\nimport LayoutContainer from 'src/layout/LayoutContainer';\nimport { useAuthData } from 'src/provider/AuthDataProvider';\nimport { useLocale } from 'src/provider/LocaleProvider';\nimport classNames from 'classnames';\n\nconst prettyBytes = require('pretty-bytes');\n\nconst useStyles = makeStyles({\n list: {\n listStyle: 'none',\n minHeight: '500px',\n\n },\n listItem: {\n borderBottom: '1px solid rgba(0,58,137,.2)',\n // marginBottom: '16px',\n padding: '16px',\n },\n lastItem: {\n marginBottom: '0px'\n },\n\n listText: {\n marginBottom: 0,\n marginTop: '8px',\n '&:hover': {\n transition: 'opacity .2s',\n opacity: '.6'\n }\n },\n pager: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n },\n isRead: {\n backgroundColor: 'rgba(0,0,0,0.1)'\n }\n\n})\n\nexport default function UNotice() {\n const nav = useNavigate()\n const { t } = useLocale()\n const [notices, setNotices] = useState();\n const { selectedPeriod } = useAuthData()\n const api = useApi()\n const [pageInfo, setPageInfo] = useState({\n current: 0,\n total: 0,\n numberOfPage: 10\n })\n const [favouriteChecked, setFavouriteChecked] = useState(false);\n\n const classes = useStyles()\n useEffect(() => {\n api.getNotices(selectedPeriod).then(res => {\n setNotices(_.sortBy(res.data, 'created_at').reverse() || [])\n let _notices = favouriteChecked ? res.data.filter(k => k.user_info?.is_favourite) : res.data\n setPageInfo({ ...pageInfo, 'total': Math.ceil(_notices.length / pageInfo.numberOfPage) })\n }).catch(e => {\n\n })\n }, [selectedPeriod]);\n\n useEffect(() => {\n if (notices && notices.length > 0) {\n let _notices = favouriteChecked ? notices.filter(k => k.user_info?.is_favourite) : notices\n let totalLength = Math.ceil(_notices.length / pageInfo.numberOfPage)\n setPageInfo({ ...pageInfo, 'current': 0, 'total': totalLength })\n }\n\n }, [favouriteChecked])\n const filteredNotice = favouriteChecked ? notices?.filter(k => k.user_info?.is_favourite) : notices\n console.log(\"file: Notice.js ~ line 85 ~ UNotice ~ filteredNotice\", filteredNotice)\n return (\n \n
\n setFavouriteChecked(checked)} size={'small'} style={{ padding: 5 }}>\n 已加星號\n
\n \n
    \n {(filteredNotice && filteredNotice.length > 0) ? _.slice(filteredNotice, pageInfo.current * pageInfo.numberOfPage, (pageInfo.current + 1) * pageInfo.numberOfPage).map((k, i) => {\n return (\n
  • \n {\n e.preventDefault()\n api.updateNoticeInfo(k._id, { is_favourite: !k.user_info?.is_favourite })\n .catch(e => {\n\n })\n .finally(() => {\n let _notices = [...notices]\n let id = _.findIndex(_notices, { _id: k._id })\n _.set(_notices, `${id}.user_info.is_favourite`, !k.user_info?.is_favourite)\n setNotices(_notices)\n })\n }}>\n \n \n \n
    \n
    {moment(k.created_at).format('YYYY/MM/DD')}
    \n\n
    \n {k.title}\n \n\n
  • )\n }) : {t('no_record')}}\n\n
\n {pageInfo.total > 1 &&\n
\n {\n setPageInfo({ ...pageInfo, 'current': pageInfo.current - 1 })\n }}>\n \n \n {Array(pageInfo.total).fill(null).map((k, i) =>\n )}\n {\n setPageInfo({ ...pageInfo, 'current': pageInfo.current + 1 })\n }}>\n \n \n\n
}\n
\n\n
)\n}","import { Box, Button, Checkbox, Container, Dialog, DialogActions, DialogContent, DialogTitle, Divider, IconButton, Paper, Tooltip, Typography } from '@material-ui/core';\nimport { makeStyles } from '@material-ui/styles';\nimport _ from 'lodash';\nimport moment from 'moment-timezone';\nimport React, { useEffect, useRef, useState } from 'react';\nimport { useNavigate } from 'react-router';\nimport { Link } from 'react-router-dom';\nimport useApi from 'src/api/api';\nimport DataTable from 'src/components/DataTable/DataTable';\nimport Icons from 'src/icons';\nimport LayoutContainer from 'src/layout/LayoutContainer';\nimport { useAuthData } from 'src/provider/AuthDataProvider';\nimport { useLocale } from 'src/provider/LocaleProvider';\nimport classNames from 'classnames';\n\nconst prettyBytes = require('pretty-bytes');\n\nconst useStyles = makeStyles({\n list: {\n listStyle: 'none',\n minHeight: '500px'\n },\n listItem: {\n borderBottom: '1px solid rgba(0,58,137,.2)',\n padding: '16px',\n },\n listText: {\n marginBottom: 0,\n marginTop: '8px',\n '&:hover': {\n transition: 'opacity .2s',\n opacity: '.6'\n }\n },\n pager: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n },\n isRead: {\n backgroundColor: 'rgba(0,0,0,0.1)'\n }\n\n\n})\n\nexport default function UMemo() {\n const nav = useNavigate()\n const { t } = useLocale()\n const [memo, setMemo] = useState();\n const { selectedPeriod } = useAuthData()\n const api = useApi()\n const [pageInfo, setPageInfo] = useState({\n current: 0,\n total: 0,\n numberOfPage: 10\n })\n const [favouriteChecked, setFavouriteChecked] = useState(false);\n\n const classes = useStyles()\n useEffect(() => {\n api.getMemo(selectedPeriod).then(res => {\n setMemo(_.sortBy(res.data, 'created_at').reverse() || [])\n let _memo = favouriteChecked ? res.data.filter(k => k.user_info?.is_favourite) : res.data\n setPageInfo({ ...pageInfo, 'total': Math.ceil(_memo.length / pageInfo.numberOfPage) })\n }).catch(e => {\n\n })\n }, [selectedPeriod]);\n\n useEffect(() => {\n if (memo && memo.length > 0) {\n let _memo = favouriteChecked ? memo.filter(k => k.user_info?.is_favourite) : memo\n let totalLength = Math.ceil(_memo.length / pageInfo.numberOfPage)\n setPageInfo({ ...pageInfo, 'current': 0, 'total': totalLength })\n }\n\n }, [favouriteChecked])\n\n const filteredMemo = favouriteChecked ? memo?.filter(k => k.user_info?.is_favourite) : memo\n\n return (\n \n
\n setFavouriteChecked(checked)} size={'small'} style={{ padding: 5 }}>\n 已加星號\n
\n \n
    \n\n {(filteredMemo && filteredMemo.length > 0) ? _.slice(filteredMemo, pageInfo.current * pageInfo.numberOfPage, (pageInfo.current + 1) * pageInfo.numberOfPage).map((k, i) => {\n return (\n
  • \n \n\n {\n e.preventDefault()\n\n api.updateMemoInfo(k._id, { is_favourite: !k.user_info?.is_favourite })\n\n .catch(e => {\n\n })\n .finally(() => {\n let _memo = [...memo]\n let id = _.findIndex(_memo, { _id: k._id })\n _.set(_memo, `${id}.user_info.is_favourite`, !k.user_info?.is_favourite)\n setMemo(_memo)\n })\n }}>\n \n \n
    \n
    {moment(k.created_at).format('YYYY/MM/DD')}
    \n\n
    \n {k.title}\n\n \n\n
  • )\n }) : {t('no_record')}}\n\n
\n {pageInfo.total > 1 &&\n
\n {\n setPageInfo({ ...pageInfo, 'current': pageInfo.current - 1 })\n }}>\n \n \n {Array(pageInfo.total).fill(null).map((k, i) =>\n )}\n {\n setPageInfo({ ...pageInfo, 'current': pageInfo.current + 1 })\n }}>\n \n \n\n
}\n
\n\n
)\n}","import { Helmet } from 'react-helmet';\nimport { Backdrop, Box, Container, Grid, Card, CardContent, Typography, CardHeader, Button, Divider, IconButton, TextField, InputAdornment } from '@material-ui/core';\nimport { makeStyles } from '@material-ui/styles';\nimport { useEffect, useMemo } from 'react';\nimport { useBackDrop } from 'src/provider/BackdropProvider';\nimport { useState } from 'react';\nimport useApi from 'src/api/api';\nimport { ArrowBack } from '@material-ui/icons';\nimport Icons from 'src/icons';\nimport DataTable from 'src/components/DataTable/DataTable';\nimport DataTableNoLimit from 'src/components/DataTable/DataTableNoLimit';\nimport _ from 'lodash';\nimport { useNavigate, useParams } from 'react-router';\nimport { useLocale } from 'src/provider/LocaleProvider';\nimport utils from 'src/utils/utils';\nimport SearchInput from 'src/components/SearchInput';\nimport LayoutContainer from 'src/layout/LayoutContainer';\nimport { useAuthData } from 'src/provider/AuthDataProvider';\nconst moment = require('moment-timezone')\n\nconst useStyles = makeStyles(theme => ({\n\n row: {\n // height: '10px',\n // paddingBottom: theme.spacing(2),\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n marginBottom: theme.spacing(2)\n },\n spacer: {\n flex: 1\n },\n\n tableCell: {\n \"& .MuiTableCell-root\": {\n textAlign: 'center',\n borderLeft: \"none !important\",\n },\n \"& .MuiTableRow-root\": {\n height: '60px'\n },\n\n },\n caption: {\n fontSize: '12px'\n }\n\n}))\n\n\n\n\nconst StudentAttendanceRecord = () => {\n const classes = useStyles()\n const loadingView = useBackDrop();\n const api = useApi()\n const nav = useNavigate()\n const [search, setSearch] = useState()\n const { t } = useLocale()\n const { userInfo, selectedPeriod, currentPeriod } = useAuthData()\n const { userId } = useParams()\n\n\n const [attendanceHistory, setAttendanceHistory] = useState([])\n\n const handleExport = () => {\n utils.exportCsv(attendanceHistory, [\n { label: t('date'), value: (row) => row['date'] },\n { label: t('attendancerule_name'), value: (row) => row.attendanceRule.name },\n { label: t('type'), value: (row) => row['type'] }\n ], 'attendance_record')\n }\n\n useEffect(() => {\n // loadingView.open()\n\n api.getStudentProfiles(userId, {\n attendanceActions: 1\n }).then(({ data }) => {\n setAttendanceHistory(data.attendanceActions)\n }).catch(e => console.log(e))\n\n\n // api.getAttendanceList({ period: selectedPeriod, user: userId }).then(({ data }) => { setAttendanceHistory(data) }).catch(e => console.log(e));\n\n // loadingView.close()\n\n }, [selectedPeriod])\n\n\n var filtered = useMemo(() => utils.searchFilter(attendanceHistory, search, [`attendanceRule.name`, 'type']), [attendanceHistory, search])\n\n\n return (\n \n \n \n \n\n \n \n \n \n \n moment(row.created_at).format(\"YYYY-MM-DD HH:MM\"),\n width: '33.3%',\n sort: true\n },\n { label: t('attendancerule_name'), value: 'attendanceRule.name', width: '33.3%', },\n { label: t('type'), translate: 1, value: 'type', width: '33.3%', }\n ]}\n\n />\n
Last Updated at {moment().format(\"YYYY-MM-DD HH:mm:ss\")}
\n\n
\n )\n}\nexport default StudentAttendanceRecord;\n","import { Helmet } from 'react-helmet';\nimport { Backdrop, Box, Container, Grid, Card, CardContent, Typography, CardHeader, Button, Divider, IconButton, TextField, InputAdornment } from '@material-ui/core';\nimport { makeStyles } from '@material-ui/styles';\nimport { useCallback, useEffect } from 'react';\nimport { useBackDrop } from 'src/provider/BackdropProvider';\nimport { useState } from 'react';\nimport useApi from 'src/api/api';\nimport { ArrowBack } from '@material-ui/icons';\nimport Icons from 'src/icons';\nimport DataTable from 'src/components/DataTable/DataTable';\nimport DataTableNoLimit from 'src/components/DataTable/DataTableNoLimit';\nimport _ from 'lodash';\nimport { useNavigate, useParams } from 'react-router';\nimport { useLocale } from 'src/provider/LocaleProvider';\nimport utils from 'src/utils/utils';\nimport SearchInput from 'src/components/SearchInput';\nimport LayoutContainer from 'src/layout/LayoutContainer';\nimport { useAuthData } from 'src/provider/AuthDataProvider';\nimport RuleSelector from 'src/components/RuleSelector';\nimport classNames from 'classnames';\nconst moment = require('moment-timezone')\n\nconst useStyles = makeStyles(theme => ({\n\n row: {\n // height: '10px',\n // paddingBottom: theme.spacing(2),\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n marginBottom: theme.spacing(2)\n },\n spacer: {\n flex: 1\n },\n\n tableCell: {\n \"& .MuiTableCell-root\": {\n textAlign: 'center',\n borderLeft: \"none !important\",\n },\n \"& .MuiTableRow-root\": {\n height: '60px'\n },\n // \n },\n caption: {\n fontSize: '12px'\n }\n\n}))\n\nconst StudentPointRecord = () => {\n const classes = useStyles()\n const loadingView = useBackDrop();\n const api = useApi()\n const nav = useNavigate()\n const { t } = useLocale()\n const { userInfo, selectedPeriod, currentPeriod } = useAuthData()\n const { userId } = useParams()\n\n\n const [filter, setFilter] = useState(null)\n const [pointHistory, setPointHistory] = useState([])\n\n const handleExport = () => {\n utils.exportCsv(pointHistory, [\n { label: t('date'), value: (row) => row['date'] },\n { label: t('pointrule_name'), value: (row) => row.pointRule.name },\n { label: t('point'), value: (row) => row['point'] }\n ], 'point_record')\n }\n\n useEffect(() => {\n // loadingView.open()\n\n\n api.getStudentProfiles(userId, {\n pointActions: 1,\n\n }).then(({ data }) => {\n\n setPointHistory(data.pointActions)\n }).catch(e => console.log(e))\n\n\n // loadingView.close()\n\n }, [selectedPeriod])\n\n const filteredList = useCallback(\n\n utils.searchFilter(pointHistory, filter?._id, ['pointRule.ruleCategory'])\n , [pointHistory, filter])\n\n return (\n \n\n \n \n \n\n \n \n
\n \n
\n
\n classNames({ 'text-green': row.type == 'redeem' })}\n heads={[\n {\n label: t('date'), value: 'created_at', content: (row) => moment(row.created_at).format(\"YYYY-MM-DD HH:MM\")\n , sort: true,\n width: '33.3%'\n },\n { id: 'pointrule_name', label: t('pointrule_name'), value: 'pointRule.name', width: '33.3%', },\n { id: 'point', label: t('point'), value: 'point', width: '33.3%', }\n ]}\n\n />\n
Last Updated at {moment().format(\"YYYY-MM-DD HH:mm:ss\")}
\n\n
\n )\n}\nexport default StudentPointRecord;\n","import React, { Fragment, useMemo, useCallback, useEffect, useState, useRef, useLayoutEffect } from 'react'\nimport useApi from 'src/api/api';\nimport LayoutContainer from 'src/layout/LayoutContainer';\nimport { useLocale } from 'src/provider/LocaleProvider';\nimport { Backdrop, Box, Container, Grid, Card, CardContent, Typography, CardHeader, Button, Divider, IconButton, List, ListItem, ListItemText, TextField, MenuItem, Select, FormControl, InputLabel } from '@material-ui/core';\nimport TransferTable from 'src/components/TransferTable';\nimport SearchInput from 'src/components/SearchInput';\nimport utils from 'src/utils/utils';\nimport ClassSelector from 'src/components/ClassSelector';\nimport { makeStyles } from '@material-ui/styles';\nimport { useFormik } from 'formik';\nimport classNames from 'classnames';\nimport { useSnack } from 'src/provider/SnackbarProvider';\nimport formikProps from 'src/utils/formikProps';\nimport { useAuthData } from 'src/provider/AuthDataProvider';\nimport { translate } from 'react-switch-lang';\nconst _ = require('lodash')\nconst yup = require('yup')\nconst useStyles = makeStyles({\n checked: {\n backgroundColor: 'rgba(50, 255, 50,0.3)',\n '&:hover': {\n backgroundColor: 'rgba(50, 255, 50,0.4) !important'\n }\n }\n})\n\nconst ParentPointReward = () => {\n const classes = useStyles()\n const api = useApi()\n const { t, getLanguage, translate } = useLocale()\n\n const { selectedPeriod } = useAuthData()\n const [selectedRule, setSelectedRule] = useState();\n const [search, setSearch] = useState('');\n const [filter, setFilter] = useState();\n const [rules, setRules] = useState([]);\n const snack = useSnack()\n\n const [ruleCategories, setRuleCategories] = useState([]);\n\n useEffect(() => {\n api.getPointRuleCategories({ type: 'parent_reward' }).then(res => {\n setRuleCategories(res.data)\n })\n api.getPointRules({ type: 'parent_reward', isActive: true }).then(res => {\n setRules(res.data)\n })\n }, []);\n\n\n const formik = useFormik({\n initialValues: {\n selectedCategory: '',\n pointRule_id: '',\n },\n validationSchema: yup.object().shape({\n pointRule_id: yup.string().required(),\n }),\n onSubmit: (values, helper) => {\n api.parentReward({ pointRule_id: values.pointRule_id, period_id: selectedPeriod }).then(res => {\n snack.open(t('success_reward'))\n setSelectedRule(null)\n helper.resetForm()\n }).catch(e => {\n var result = e?.response?.data?.result\n if (result == 'quota_exceeded') {\n snack.error(t('exceed_reward_quota_msg'))\n }\n else {\n snack.error(t('fail_reward'))\n }\n }).finally(() => {\n helper.setSubmitting(false)\n })\n }\n })\n\n useEffect(() => {\n if (selectedRule) formik.setFieldValue('pointRule_id', selectedRule?._id)\n }, [selectedRule]);\n\n var ruleFiltered = utils.searchFilter(rules, [formik.values.selectedCategory, search], [['ruleCategory._id'], ['name']])\n return (\n \n
\n {t('choose_rule')}\n \n \n \n {t('rule_category')}\n \n {/* */}\n {t('all_rule_category')} \n {_.map(ruleCategories, n => {translate(n.name)} )}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {_.map(ruleFiltered, (rule, index) => {\n var className = classNames({ [classes.checked]: rule._id == formik.values.pointRule_id })\n return (\n setSelectedRule(rule)} >\n \n \n \n )\n })}\n {_.size(ruleFiltered) == 0 &&\n \n \n \n }\n \n \n \n \n \n \n
\n
\n );\n}\n\nexport default ParentPointReward;","import {\n Box,\n Button,\n IconButton,\n MenuItem,\n TextField,\n Tooltip\n} from '@material-ui/core';\nimport classNames from 'classnames';\nimport { useFormik } from 'formik';\nimport _ from 'lodash';\nimport { useEffect, useMemo, useRef, useState } from 'react';\nimport useApi from 'src/api/api';\nimport DataTable from 'src/components/DataTable/DataTable';\nimport EditDialog from 'src/components/EditDialog';\nimport LoadingView from 'src/components/LoadingView';\nimport SearchInput from 'src/components/SearchInput';\nimport Icons from 'src/icons';\nimport LayoutContainer from 'src/layout/LayoutContainer';\nimport { useLocale } from 'src/provider/LocaleProvider';\nimport { useSnack } from 'src/provider/SnackbarProvider';\nimport formikProps from 'src/utils/formikProps';\nimport utils from 'src/utils/utils';\nconst moment = require('moment-timezone');\n\nconst yup = require('yup');\n\nconst PointRedeemRules = () => {\n const api = useApi();\n const { t, getLanguage } = useLocale();\n const rowsRef = useRef([]);\n const snack = useSnack();\n\n const [dialogMode, setDialogMode] = useState(null);\n const [selectedRow, setSelectedRow] = useState();\n const [search, setSearch] = useState('');\n\n const [rules, setRules] = useState([]);\n const [parentRules, setParentRules] = useState([]);\n const [categories, setCategories] = useState();\n\n const [isLoading, setIsLoading] = useState(true);\n const [tab, setTab] = useState('teacher');\n\n useEffect(() => {\n getRules();\n }, []);\n\n function getRules() {\n setIsLoading(true);\n api.getPointRules({ isReward: false }).then((res) => {\n setRules(res.data);\n setIsLoading(false);\n });\n }\n\n const schema = yup.object().shape({\n name: yup.string().required(),\n ruleCategory: yup.string(),\n type: yup.mixed().oneOf(['redeem', 'virtual_redeem']).required(),\n point: yup.number().min(0).required(),\n isActive: yup.bool()\n });\n\n const formik = useFormik({\n initialValues: selectedRow || {\n name: '',\n type: 'redeem',\n isActive: true,\n point: null\n },\n enableReinitialize: true,\n validationSchema: schema,\n onSubmit: (values, helper) => {\n if (values._id) {\n api\n .updatePointRule(values._id, values)\n .then((res) => {\n setDialogMode(null);\n getRules();\n snack.open();\n })\n .catch((e) => {\n snack.error();\n })\n .finally(() => {\n helper.setSubmitting(false);\n });\n } else {\n api\n .addPointRule(values)\n .then((res) => {\n setDialogMode(null);\n getRules();\n snack.open();\n })\n .catch((e) => {\n snack.error();\n })\n .finally(() => {\n helper.setSubmitting(false);\n });\n }\n }\n });\n\n useEffect(() => {\n if (dialogMode) formik.resetForm();\n }, [dialogMode]);\n\n const handleCreate = () => {\n setSelectedRow(null);\n setDialogMode('add');\n formik.validateForm();\n };\n\n const handleEdit = (row) => {\n setSelectedRow({\n ...row,\n ruleCategory: row.ruleCategory?._id,\n point: Math.abs(_.toNumber(row.point))\n });\n formik.validateForm();\n setDialogMode('edit');\n };\n\n var filtered = useMemo(\n () =>\n utils.searchFilter(tab == 'parent' ? parentRules : rules, search, [\n 'name',\n `ruleCategory.name.${getLanguage()}`,\n 'point'\n ]),\n [parentRules, rules, search, tab]\n );\n\n const handleDelete = (row) => {\n setSelectedRow({\n ...row,\n ruleCategory: row.ruleCategory?._id,\n point: Math.abs(_.toNumber(row.point))\n });\n formik.validateForm();\n setDialogMode('delete');\n };\n\n const handleExport = () => {\n utils.exportCsv(\n rowsRef.current,\n [\n { label: t('prize_name'), value: (row) => row.name },\n { label: t('point'), value: (row) => row.point },\n { label: t('status'), value: (row) => row.isActive },\n // { label: t('rule_category'), value: row => _.get(row, `ruleCategory.name.${getLanguage()}`) },\n { label: t('description'), value: (row) => row.description }\n ],\n `attendance_history`\n );\n };\n\n const handleConfirmDelete = async () => {\n await api.deletePointRule(selectedRow._id);\n getRules();\n setDialogMode(null);\n };\n\n if (isLoading) {\n return ;\n }\n\n return (\n \n \n \n
\n \n \n \n \n classNames({ 'text-green': row.type == 'reward' })\n }\n rows={filtered}\n heads={[\n { label: t('prize_name'), value: 'name', sort: true },\n { label: t('point'), value: 'point', sort: true },\n {\n label: t('status'),\n value: `isActive`,\n content: (r) => (r.isActive ? t('active') : t('inactive')),\n className: (row) => (row.isActive ? 'text-green' : 'text-red'),\n sort: true\n },\n // { label: t('rule_category'), value: `ruleCategory.name.${getLanguage()}`, sort: true },\n { label: t('description'), value: `description`, sort: true },\n {\n id: 'action',\n label: t('actions'),\n content: (row) => {\n return (\n \n \n handleEdit(row)} sx={{ p: 0.5 }}>\n {' '}\n {' '}\n \n \n \n );\n }\n }\n ]}\n _orderBy={'name'}\n _order=\"asc\"\n />\n {/* Dialogs */}\n setDialogMode(null)}\n TitleComponent={() => (\n <>\n {selectedRow && (\n \n setDialogMode('delete')}>\n \n \n \n )}\n \n )}\n >\n \n \n {' '}\n {t('redeem')}{' '}\n \n \n {' '}\n {t('virtual_redeem')}{' '}\n \n {/* {t('parent_reward')} */}\n \n {/* {formik.values.type != 'redeem' && (\n \n {_.map(categories, (c) => {\n return (\n \n {' '}\n {_.get(c, 'name.' + getLanguage())}{' '}\n \n );\n })}\n \n )} */}\n \n \n \n \n \n {' '}\n {t('active')}{' '}\n \n \n {' '}\n {t('inactive')}{' '}\n \n \n \n setDialogMode(null)}\n confirmText={t('confirm')}\n >\n

{t('delete_confirm_msg', { a: `${selectedRow?.name}` })}

\n \n \n );\n};\n\nexport default PointRedeemRules;\n","import { Box, Button, Container, IconButton, InputAdornment, MenuItem, Select, Switch, TextField, Tooltip } from '@material-ui/core';\nimport React, { Fragment, useMemo, useCallback, useEffect, useState, useRef, useLayoutEffect } from 'react'\nimport useApi from 'src/api/api';\nimport { Helmet } from 'react-helmet';\nimport DataTable from 'src/components/DataTable/DataTable';\nimport { useLocale } from 'src/provider/LocaleProvider';\nimport { useAuthData } from 'src/provider/AuthDataProvider';\nimport Icons from 'src/icons';\nimport EditDialog from 'src/components/EditDialog';\nimport { Formik, useFormik } from 'formik';\nimport formikProps from 'src/utils/formikProps';\nimport utils from 'src/utils/utils';\nimport SearchInput from 'src/components/SearchInput';\nimport _ from 'lodash';\nimport { UsbTwoTone } from '@material-ui/icons';\nimport { useSnack } from 'src/provider/SnackbarProvider';\nimport LayoutContainer from 'src/layout/LayoutContainer';\nimport ImageUploader from 'src/components/Formik/ImageUploader';\nimport LoadingView from 'src/components/LoadingView';\nconst moment = require('moment-timezone')\n\nconst yup = require('yup')\n\nconst BadgeRule = () => {\n const api = useApi()\n const { t, getLanguage, translate } = useLocale()\n\n const rowsRef = useRef([])\n const snack = useSnack()\n\n const [dialogMode, setDialogMode] = useState(null);\n const [selectedRow, setSelectedRow] = useState();\n\n const [search, setSearch] = useState('');\n const [rules, setRules] = useState([]);\n const [pointRules, setPointRules] = useState([]);\n const [ruleCategories, setRuleCategories] = useState([]);\n const [attendanceRules, setattendanceRules] = useState([]);\n const [isLoading, setIsLoading] = useState(true);\n\n useEffect(() => {\n setIsLoading(true);\n getRules()\n api.getPointRules({ isReward: true }).then(res => setPointRules(res.data))\n api.getPointRuleCategories().then(res => setRuleCategories(res.data))\n api.getAttendanceRules().then(res => setattendanceRules(res.data))\n .then(() => setIsLoading(false))\n }, []);\n\n function getRules() {\n api.getBadgeRuleList().then(res => setRules(res.data))\n }\n\n const schema = yup.object().shape({\n name: yup.string().required(),\n reward_by: yup.string().required().oneOf(['pointRule', 'ruleCategory', 'attendanceRule', 'all_reward']),\n description: yup.string(),\n attendanceRule: yup.string().nullable().when('reward_by', {\n is: v => v == 'attendanceRule',\n then: yup.string().required()\n }),\n pointRule: yup.string().nullable().when('reward_by', {\n is: v => v == 'pointRule',\n then: yup.string().required()\n }),\n ruleCategory: yup.string().nullable().when('reward_by', {\n is: v => v == 'ruleCategory',\n then: yup.string().required()\n }),\n threshold_by: yup.string().required().oneOf(['count', 'point']),\n threshold: yup.number().min(1).required(),\n cutoff_period: yup.string().required().oneOf(['no_limit', 'weekly', 'monthly', 'periodly']),\n cutoff_limit: yup.number().min(1).nullable().when('cutoff_period', {\n is: v => v !== 'no_limit',\n then: yup.number().required()\n }),\n image_url: yup.mixed().required()\n })\n\n const formik = useFormik({\n initialValues: {\n name: '',\n description: '',\n reward_by: 'all_reward',\n attendanceRule: undefined,\n pointRule: undefined,\n ruleCategory: undefined,\n threshold_by: 'point',\n threshold: undefined,\n cutoff_period: 'no_limit',\n cutoff_limit: undefined,\n isActive: true,\n ...selectedRow\n },\n enableReinitialize: true,\n validationSchema: schema,\n onSubmit: (values, helper) => {\n if (values._id) {\n api.updateBadgeRule(values._id, values).then(res => {\n setDialogMode(null)\n getRules()\n snack.open()\n }).catch(e => {\n snack.error()\n }).finally(() => {\n helper.setSubmitting(false)\n })\n }\n else {\n api.addBadgeRule(values).then(res => {\n setDialogMode(null)\n getRules()\n snack.open()\n }).catch(e => {\n snack.error()\n }).finally(() => {\n helper.setSubmitting(false)\n })\n }\n }\n })\n\n useEffect(() => {\n if (dialogMode) formik.resetForm()\n }, [dialogMode]);\n\n const handleCreate = () => {\n setSelectedRow(null)\n setDialogMode('add')\n }\n\n const handleEdit = (row) => {\n setSelectedRow({ ...row, pointRule: row.pointRule?._id, ruleCategory: row.ruleCategory?._id })\n setDialogMode('edit')\n }\n\n const handleDelete = (row) => {\n setSelectedRow({ ...row, pointRule: row.pointRule?._id, ruleCategory: row.ruleCategory?._id })\n setDialogMode('delete')\n }\n\n const handleConfirmDelete = () => {\n api.deleteBadgeRule(selectedRow._id).then(res => {\n api.getBadgeRuleList().then(res => {\n setRules(res.data)\n setDialogMode(null)\n })\n }).catch(e => {\n console.log('api.deleteBadgeRule => e', e)\n\n })\n }\n\n const filtered = useCallback(utils.searchFilter(rules, search, ['name']), [rules, search])\n\n if (isLoading) {\n return ;\n }\n return (\n \n \n \n
\n \n \n {\n return \n }\n },\n { label: t('name'), value: 'name', sort: true },\n { label: t('badge_reward_by'), value: 'reward_by', translate: true, sort: true },\n { label: t('badge_threshold_by'), value: 'threshold_by', translate: true, sort: true },\n { label: t('badge_threshold'), value: 'threshold', sort: true },\n { label: t('badge_cutoff_period'), value: 'cutoff_period', translate: true, sort: true },\n { label: t('badge_cutoff_limit'), value: 'cutoff_limit', sort: true },\n { label: t('status'), content: (row) => row.isActive ? t('active') : t('inactive'), className: (row) => row.isActive ? 'text-green' : 'text-red' },\n {\n label: t('actions'), content: (row) => {\n return \n \n handleEdit(row)} sx={{ p: .5 }}> \n \n \n }\n },\n ]} _orderBy='point' _order='asc'\n />\n {/* Dialogs */}\n setDialogMode(null)}\n TitleComponent={() => (\n <>\n {selectedRow && \n setDialogMode('delete')} >\n \n \n }\n \n )}\n >\n \n \n \n \n {t('pointRule')} \n {t('ruleCategory')} \n {t('attendanceRule')} \n {t('all_reward')} \n \n {formik.values.reward_by == 'pointRule' &&\n \n {_.map(pointRules, (r, index) => \n {r.name}\n {t(r.type)}\n )}\n \n }\n {formik.values.reward_by == 'attendanceRule' &&\n \n {_.map(attendanceRules, (r, index) => \n {r.name}\n {/* {t(r.type)} */}\n )}\n \n }\n {formik.values.reward_by == 'ruleCategory' &&\n \n {_.map(ruleCategories, (r, index) => \n {translate(r.name)}\n {t(r.type)}\n )}\n \n }\n \n {t('count')} \n {t('point')} \n \n \n \n {t('no_limit')} \n {t('weekly')} \n {t('monthly')} \n {t('periodly')} \n \n {formik.values.cutoff_period !== 'no_limit' &&\n \n }\n \n {t('active')} \n {t('inactive')} \n \n \n setDialogMode(null)}\n confirmText={t('confirm')}\n >\n

\n {t('delete_confirm_msg', { a: `${selectedRow?.name}` })}\n

\n \n \n );\n}\n\nexport default BadgeRule;","import { Box, Button, Container, IconButton, InputAdornment, MenuItem, Select, Switch, TextField, Tooltip } from '@material-ui/core';\nimport React, { Fragment, useMemo, useCallback, useEffect, useState, useRef, useLayoutEffect } from 'react'\nimport useApi from 'src/api/api';\nimport { Helmet } from 'react-helmet';\nimport DataTable from 'src/components/DataTable/DataTable';\nimport { useLocale } from 'src/provider/LocaleProvider';\nimport { useAuthData } from 'src/provider/AuthDataProvider';\nimport Icons from 'src/icons';\nimport EditDialog from 'src/components/EditDialog';\nimport { Formik, useFormik } from 'formik';\nimport formikProps from 'src/utils/formikProps';\nimport utils from 'src/utils/utils';\nimport SearchInput from 'src/components/SearchInput';\nimport _ from 'lodash';\nimport { UsbTwoTone } from '@material-ui/icons';\nimport { useSnack } from 'src/provider/SnackbarProvider';\nimport LayoutContainer from 'src/layout/LayoutContainer';\nimport classNames from 'classnames';\nimport LoadingView from 'src/components/LoadingView';\nconst moment = require('moment-timezone')\n\nconst yup = require('yup')\n\nconst BadgeList = () => {\n const api = useApi()\n const { t, getLanguage } = useLocale()\n\n const rowsRef = useRef([])\n const snack = useSnack()\n const { selectedPeriod } = useAuthData()\n\n const [search, setSearch] = useState('');\n\n\n const [badgeList, setBadgeList] = useState();\n const [isLoading, setIsLoading] = useState(true);\n useEffect(() => {setIsLoading(true)\n api.getBadge({ period: selectedPeriod }).then(res => setBadgeList(res.data))\n .then(() => setIsLoading(false))\n }, [selectedPeriod]);\n\n const handleExportAll = () => {\n utils.exportCsv(_.orderBy(badgeList, 'created_at', 'desc'), [\n { label: t('created_at'), value: row => new Date(row.created_at).toLocaleString() },\n { label: t('attendancerule_name'), value: row => row.attendanceRule?.name },\n { label: t('class'), value: row => row.profile?.class },\n { label: t('class_no'), value: row => row.profile?.class_no },\n { label: t('name_zh'), value: row => row.user?.name?.zh },\n { label: t('name_en'), value: row => row.user?.name?.en },\n { label: t('state'), value: row => t(row.type) },\n ], `attendance_history`)\n }\n\n const handleExport = () => {\n utils.exportCsv(rowsRef.current, [\n { label: t('created_at'), value: row => new Date(row.created_at).toLocaleString() },\n { label: t('attendancerule_name'), value: row => row.attendanceRule?.name },\n { label: t('class'), value: row => row.profile?.class },\n { label: t('class_no'), value: row => row.profile?.class_no },\n { label: t('name_zh'), value: row => row.user?.name?.zh },\n { label: t('name_en'), value: row => row.user?.name?.en },\n { label: t('state'), value: row => t(row.type) },\n ], `attendance_history`)\n }\n\n if (isLoading) {\n return ;\n }\n\n return (\n \n \n \n
\n {/* \n */}\n \n classNames({ 'text-green': row.type == 'checkin' })}\n rowsRef={rowsRef} rows={utils.searchFilter(badgeList, search, [\n 'profile.class',\n 'profile.class_no',\n 'user.name.en',\n 'user.name.zh',\n 'badge_rule.name',\n // (row) => t(row.type || ''),\n // (row) => new Date(row.created_at).toLocaleString()\n ])} heads={[\n // { id: 'u_id', label: t('u_id'), value: 'profile.u_id', sort: true },\n { id: 'created_at', label: t('created_at'), value: 'created_at', content: (row) => new Date(row.created_at).toLocaleString(), sort: true },\n { id: 'badge_rule_name', label: t('badge_rule_name'), value: 'badge_rule.name', sort: true },\n { id: 'class', label: t('class'), value: 'profile.class', sort: true },\n { id: 'class_no', label: t('class_no'), value: 'profile.class_no', sort: true },\n { id: 'name_zh', label: t('name_zh'), value: 'user.name.zh', sort: true },\n { id: 'name_en', label: t('name_en'), value: 'user.name.en', sort: true },\n // { id: 'deviceName', label: t('deviceName'), value: 'device.name', sort: true },\n // { id: 'state', label: t('state'), value: 'type', translate: 1, sort: true },\n ]}\n />\n \n );\n}\n\nexport default BadgeList;","import { Backdrop, Box, Button, Card, CardContent, CardMedia, Checkbox, Container, Dialog, DialogActions, DialogContent, DialogTitle, Divider, Grid, IconButton, Paper, Tooltip, Typography } from '@material-ui/core';\nimport { makeStyles } from '@material-ui/styles';\nimport _ from 'lodash';\nimport moment from 'moment-timezone';\nimport React, { useEffect, useRef, useState } from 'react';\nimport { useNavigate } from 'react-router';\nimport { Link } from 'react-router-dom';\nimport useApi from 'src/api/api';\nimport DataTable from 'src/components/DataTable/DataTable';\nimport Icons from 'src/icons';\nimport LayoutContainer from 'src/layout/LayoutContainer';\nimport { useAuthData } from 'src/provider/AuthDataProvider';\nimport { useLocale } from 'src/provider/LocaleProvider';\nimport classNames from 'classnames';\nimport EditDialog from 'src/components/EditDialog';\n\nconst prettyBytes = require('pretty-bytes');\n\nconst useStyles = makeStyles({\n list: {\n listStyle: 'none',\n minHeight: '500px',\n\n },\n listItem: {\n borderBottom: '1px solid rgba(0,58,137,.2)',\n // marginBottom: '16px',\n padding: '16px',\n },\n lastItem: {\n marginBottom: '0px'\n },\n\n listText: {\n marginBottom: 0,\n marginTop: '8px',\n '&:hover': {\n transition: 'opacity .2s',\n opacity: '.6'\n }\n },\n pager: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n },\n isRead: {\n backgroundColor: 'rgba(0,0,0,0.1)'\n }\n\n})\n\nexport default function Badge() {\n const nav = useNavigate()\n const { t } = useLocale()\n const { selectedPeriod, userInfo } = useAuthData()\n const api = useApi()\n const classes = useStyles()\n const [badges, setBadges] = useState([]);\n const [selectedBadge, setSelectedBadge] = useState();\n\n useEffect(() => {\n api.getBadgeGroupByRule({ user: userInfo?._id, getUngainedBadges: true }).then(res => {\n setBadges(res.data)\n })\n }, []);\n\n return (\n \n \n {_.map(badges, badge => {\n var rule = badge.badge_rule\n var image_url = rule?.image_url\n if (!rule) return null\n var styles = {}\n if (badge.count < 1) {\n styles = {\n filter: 'grayscale(100%)',\n }\n }\n // return (\n // \n // setSelectedBadge(badge)}>\n // \n // \n // \n // \n // \n // {rule.name}\n // \n // \n // {badge.count > 0 &&\n // \n // {badge.count}\n // \n // }\n // \n // \n // )\n\n return (\n \n setSelectedBadge(badge)}>\n \n \n \n \n \n {rule.name}\n \n \n {badge.count > 0 &&\n \n {badge.count}\n \n }\n \n \n )\n })}\n \n theme.zIndex.drawer + 1 }}\n open={selectedBadge}\n onClick={() => setSelectedBadge(null)}\n >\n {selectedBadge &&\n \n \n \n \n \n \n \n \n

{`${selectedBadge.badge_rule?.name}`}

\n {selectedBadge.badge_rule?.description && selectedBadge.badge_rule?.description != '' &&

{`${selectedBadge.badge_rule?.description}`}

}\n {selectedBadge.count > 0 ?\n <>\n

{`${t('badge_get_a_times_msg', { a: selectedBadge.count })}`}

\n

{`${t('badge_latest_gain_at')}: ${moment(selectedBadge.last_created_at).format('YYYY/MM/DD')}`}

\n \n :

{t('badge_not_get_msg')}

\n }\n
\n
\n }\n \n {/* setSelectedBadge(null)}>\n \n */}\n
\n )\n}","import { Box } from '@material-ui/core';\nimport QRCode from 'qrcode.react';\nimport { useLocation } from 'react-router';\n\nconst queryString = require('query-string');\nexport default () => {\n const location = useLocation();\n const { uid } = queryString.parse(location.search);\n\n return (\n \n \n\n \n {uid}\n \n \n \n \n Copyright © 2023 Animae Technologies Limited. All Rights Reserved.\n \n \n );\n};\n","import React, { Fragment, useMemo, useCallback, useEffect, useState, useRef, useLayoutEffect } from 'react'\nimport { Box, Button, Card, CardActions, CardContent, CardHeader, Container, FormControl, FormHelperText, IconButton, InputLabel, MenuItem, TextField, Typography } from '@material-ui/core'\nimport { useLocale } from 'src/provider/LocaleProvider'\nimport useApi from 'src/api/api';\nimport { Helmet } from 'react-helmet';\nimport { useFormik } from 'formik';\nimport formikProps from 'src/utils/formikProps';\nimport { useAuthData } from 'src/provider/AuthDataProvider';\nimport { makeStyles } from '@material-ui/styles';\nimport utils from 'src/utils/utils';\nimport LayoutContainer from 'src/layout/LayoutContainer';\nconst yup = require('yup')\nconst _ = require('lodash')\n\nconst MB = 1048576\n\nconst BrithdaySetting = ({ snack }) => {\n // const classes = useStyles()\n const api = useApi()\n const { t } = useLocale()\n const [info, setinfo] = useState({})\n const auth = useAuthData()\n const [rules, setRules] = useState([]);\n\n useEffect(() => {\n api.getOrganizationInfo(setinfo)\n api.getPointRules({ type: 'reward', isActive: true }).then(res => {\n setRules(res.data)\n //console.log({ info })\n })\n }, [])\n\n\n const formik = useFormik({\n initialValues: info || {\n logo: null,\n banner: null,\n },\n enableReinitialize: true,\n validationSchema: yup.object().shape({\n name: yup.object().shape({\n en: yup.string().required(),\n zh: yup.string().required()\n }),\n day_before_birthday: yup.number()\n .min( 0, t(\"brithday_validation_error_msg\"))\n .max( 30, t(\"brithday_validation_error_msg\")),\n day_after_birthday: yup.number()\n .min( 0, t(\"brithday_validation_error_msg\"))\n .max( 30, t(\"brithday_validation_error_msg\")),\n }),\n onSubmit: async (values, helper) => {\n try {\n //console.log(values);\n //await api.batchUploadBlobs(values, ['logo', 'banner'])\n await api.updateOrganizationInfo(values)\n auth.refresh()\n snack.open()\n formik.setSubmitting(false)\n }\n catch (e) {\n snack.error()\n formik.setSubmitting(false)\n }\n }\n })\n\n const { values, errors } = formik\n\n return (\n\n \n \n
\n \n\n {t('birthday_msg')}\n \n \n\n {t('message_display_time')}\n \n \n \n {t('add_point')}\n \n {'-------'} \n {_.map(rules, c => {\n return {c?.name} \n })}\n \n {t('note')}\n\n \n \n \n \n \n
\n
\n
\n\n )\n}\n\nexport default BrithdaySetting","import React, { useState, useEffect } from 'react';\nimport { TextField, Stack } from '@material-ui/core';\n// import Stack from '@mui/material/Stack';\n// import TextField from '@mui/material/TextField';\nimport { LocalizationProvider } from '@mui/x-date-pickers/LocalizationProvider';\nimport { AdapterMoment } from '@mui/x-date-pickers/AdapterMoment';\nimport { DesktopDatePicker } from '@mui/x-date-pickers/DesktopDatePicker';\nconst _ = require('lodash');\nconst moment = require('moment-timezone');\nexport default function CustomDatePicker({\n label = '',\n selectedDate,\n setSelectedDate, //= new Function(),\n sx,\n minDate = null,\n maxDate = null,\n readOnly = false,\n ...rest\n}) {\n const handleChange = (newDate) => {\n if (newDate) setSelectedDate(newDate.toDate());\n else setSelectedDate(null);\n };\n\n return (\n \n \n handleChange(event)}\n minDate={minDate}\n maxDate={maxDate}\n renderInput={(params) => (\n \n )}\n />\n \n \n );\n}\n","import { Alert, Typography } from '@material-ui/core';\nimport { useLocale } from 'src/provider/LocaleProvider';\n\nexport function PeriodWarning() {\n const { t } = useLocale();\n return (\n \n \n {t('period_warning')}\n \n \n );\n}\n","import {\n Box,\n Button,\n FormControl,\n FormControlLabel,\n Grid,\n Radio,\n RadioGroup,\n Typography\n} from '@material-ui/core';\nimport { pink } from '@mui/material/colors';\nimport { useFormik } from 'formik';\nimport { useEffect, useMemo, useState } from 'react';\nimport useApi from 'src/api/api';\nimport ClassSelector from 'src/components/ClassSelector';\nimport DataTable from 'src/components/DataTable/DataTable';\nimport CustomDatePicker from 'src/components/DatePicker';\nimport LoadingView from 'src/components/LoadingView';\nimport { PeriodWarning } from 'src/components/PeriodWarning';\nimport SearchInput from 'src/components/SearchInput';\nimport LayoutContainer from 'src/layout/LayoutContainer';\nimport { useAuthData } from 'src/provider/AuthDataProvider';\nimport { useLocale } from 'src/provider/LocaleProvider';\nimport { useSnack } from 'src/provider/SnackbarProvider';\nimport utils from 'src/utils/utils';\n\nconst _ = require('lodash');\nconst moment = require('moment-timezone');\nconst yup = require('yup');\n\nconst SubmittedHomework = () => {\n const api = useApi();\n const { t, getLanguage } = useLocale();\n\n const [studentList, setStudentList] = useState([]);\n const { selectedPeriod, organization } = useAuthData();\n const [searchStudent, setSearchStudent] = useState('');\n const [filter, setFilter] = useState();\n const [dateRange, setDateRange] = useState(null);\n\n const snack = useSnack();\n const [selectedDate, setSelectedDate] = useState(moment().toDate());\n const [isLoading, setIsLoading] = useState(true);\n const [isTableLoading, setIsTableLoading] = useState(true);\n const [isShowWarning, setIsShowWarning] = useState(false);\n\n const [profileMap, setProfileMap] = useState();\n\n const formik = useFormik({\n initialValues: {\n profiles: [],\n date: selectedDate\n },\n validationSchema: yup.object().shape({\n profiles: yup\n .array()\n .min(0)\n .of(\n yup.object().shape({\n profile: yup.string().required(),\n status: yup.string().required()\n })\n ),\n date: yup.string().required()\n }),\n onSubmit: (values, helper) => {\n // if (profileMap) {\n // const profilesArr = Array.from(profileMap, ([key, value]) => {\n // return { profile: key, status: value };\n // });\n // formik.setFieldValue('profiles', profilesArr);\n // }\n\n api\n .putHomeworkSubmitRecord(values)\n .then((_res) => {\n console.log(_res);\n snack.open(t('upload_success'));\n api.getStudentList().then((res) => {\n setStudentList(res.data);\n });\n })\n .catch(() => {\n snack.error(t('upload_fail'));\n })\n .finally(() => {\n helper.setSubmitting(false);\n });\n }\n });\n\n useEffect(() => {\n const getStudentList = async () => {\n setDateRange(organization?.homework_date_range?.submitHomeworkRange);\n api\n .getStudentList()\n .then((res) => {\n setStudentList(res.data);\n })\n .finally(() => setIsLoading(false));\n };\n getStudentList();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [selectedPeriod]);\n var classFiltered = useMemo(\n () => utils.searchFilter(studentList, filter?.value, ['class']),\n [studentList, filter?.value]\n );\n\n useEffect(() => {\n setProfileMap(new Map());\n const isInClassFiltered = (classFiltered) => (profileId) =>\n _.some(classFiltered, { profile: profileId });\n\n const setSubmitRecordToProfileMap = (submitRecords) => {\n _.map(submitRecords, (record) => {\n const { _id } = record.profile;\n\n if (isInClassFiltered(classFiltered)(record.profile?._id)) {\n setProfileMap((map) => new Map(map.set(_id, record?.status)));\n }\n });\n };\n\n const setAllStudentToSubmitted = (classFiltered) => {\n _.map(classFiltered, (student) => {\n const { profile } = student;\n if (profile)\n setProfileMap((map) => new Map(map.set(profile, 'submitted')));\n });\n };\n\n const getSubmittedHomeworkRecord = async () => {\n setIsTableLoading(true);\n await api\n .getSubmittedHomeworkRecord({\n search: { date: selectedDate, class: filter?.value },\n limit: 999\n })\n .then(({ data }) => _.values(data?.pages[0]))\n .then((submitRecords) => {\n if (!_.isEmpty(submitRecords)) {\n setSubmitRecordToProfileMap(submitRecords);\n } else {\n setAllStudentToSubmitted(classFiltered);\n }\n })\n .finally(() => {\n setIsTableLoading(false);\n });\n };\n\n if (filter?.value && selectedDate) {\n getSubmittedHomeworkRecord();\n }\n }, [classFiltered, selectedDate, filter?.value]);\n\n useEffect(() => {\n if (profileMap) {\n const profilesArr = Array.from(profileMap, ([key, value]) => {\n return { profile: key, status: value };\n });\n formik.setFieldValue('profiles', profilesArr);\n }\n }, [profileMap]);\n\n useEffect(() => {\n formik.setFieldValue('date', selectedDate);\n }, [selectedDate]);\n\n useEffect(() => {\n api.getPeriodList((result) => {\n const selectedPeriodObject = _.filter(\n result,\n (period) => period?._id === selectedPeriod\n );\n\n if (moment().isAfter(selectedPeriodObject[0].end_at))\n setIsShowWarning(true);\n else setIsShowWarning(false);\n });\n }, [selectedPeriod]);\n\n if (isLoading) {\n return ;\n }\n\n return (\n \n {!!isShowWarning && }\n
\n \n \n \n {t('choose_student')}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {!!filter && isTableLoading ? (\n \n \n \n ) : (\n <>\n )}\n {!!filter && !isTableLoading && (\n {\n return (\n \n {\n setProfileMap(\n new Map(\n profileMap.set(row.profile, event.target.value)\n )\n );\n }}\n >\n \n }\n label={t('submitted')}\n color=\"success\"\n />\n }\n label={t('unsubmitted')}\n color=\"default\"\n />\n }\n label={t('absent')}\n sx={{\n color: pink[800],\n '&.Mui-checked': {\n color: pink[600]\n }\n }}\n />\n \n \n \n );\n }\n }\n ]}\n >\n )}\n \n 0 || formik.isSubmitting\n }\n >\n {t('confirm')}\n \n \n \n
\n );\n};\n\nexport default SubmittedHomework;\n","import {\n Box,\n Button,\n Card,\n Divider,\n FormControl,\n Grid,\n InputLabel,\n List,\n ListItem,\n ListItemButton,\n ListItemText,\n MenuItem,\n Select,\n TextField,\n Typography\n} from '@material-ui/core';\nimport { makeStyles } from '@material-ui/styles';\nimport classNames from 'classnames';\nimport { useFormik } from 'formik';\nimport { useEffect, useMemo, useRef, useState } from 'react';\nimport useApi from 'src/api/api';\nimport ClassSelector from 'src/components/ClassSelector';\nimport CustomDatePicker from 'src/components/DatePicker';\nimport LoadingView from 'src/components/LoadingView';\nimport { PeriodWarning } from 'src/components/PeriodWarning';\nimport SearchInput from 'src/components/SearchInput';\nimport TransferTable from 'src/components/TransferTable';\nimport LayoutContainer from 'src/layout/LayoutContainer';\nimport { useAuthData } from 'src/provider/AuthDataProvider';\nimport { useLocale } from 'src/provider/LocaleProvider';\nimport { useSnack } from 'src/provider/SnackbarProvider';\nimport utils from 'src/utils/utils';\n\nconst moment = require('moment-timezone');\nconst _ = require('lodash');\nconst yup = require('yup');\nconst useStyles = makeStyles({\n checked: {\n backgroundColor: 'rgba(50, 255, 50,0.3)',\n '&:hover': {\n backgroundColor: 'rgba(50, 255, 50,0.4) !important'\n }\n }\n});\n\nconst UnfinishedHomework = () => {\n const classes = useStyles();\n const api = useApi();\n const timer = useRef();\n const snack = useSnack();\n const { t, getLanguage } = useLocale();\n\n const [studentList, setStudentList] = useState([]);\n const [allSubject, setAllSubject] = useState([]);\n const { selectedPeriod, organization } = useAuthData();\n\n const [search, setSearch] = useState('');\n const [searchStudent, setSearchStudent] = useState('');\n const [filter, setFilter] = useState();\n const [homeworkCategory, setHomeworkCategory] = useState('');\n\n const [selectedStudent, setSelectedStudent] = useState([]);\n const [homeworkType, setHomeworkType] = useState([]);\n\n const [selectedDate, setSelectedDate] = useState(moment().toDate());\n const [dateRange, setDateRange] = useState(null);\n\n const [isLoading, setIsLoading] = useState(true);\n const [isOutdated, setIsOutdated] = useState(false);\n\n const formik = useFormik({\n initialValues: {\n homeworkType_id: '',\n profiles: [],\n remarkMap: {},\n date: selectedDate\n },\n validationSchema: yup.object().shape({\n homeworkType_id: yup.string().required(),\n\n profiles: yup\n .array()\n .min(1)\n .of(\n yup.object().shape({\n profile: yup.string().required(),\n remark: yup.string()\n })\n ),\n date: yup.date().required()\n }),\n onSubmit: async (values, helper) => {\n helper.setSubmitting(true);\n\n api\n .putUnfinishedHomeworkRecord(values)\n .then((_res) => {\n snack.open(t('upload_success'));\n api.getStudentList().then((res) => {\n setStudentList(res.data);\n setSelectedStudent([]);\n });\n })\n .catch((_e) => {\n snack.error(t('upload_fail'));\n })\n .finally(() => {\n helper.setSubmitting(false);\n helper.resetForm();\n });\n }\n });\n useEffect(() => {\n setDateRange(organization?.homework_date_range?.unfinishHomeworkRange);\n api\n .getHomeworkType()\n .then((res) => {\n setAllSubject(res.data?.allSubject);\n setHomeworkType(res.data?.homeworkType);\n setIsLoading(false);\n })\n .catch((err) => console.log(err));\n }, []);\n useEffect(() => {\n api.getStudentList().then((res) => {\n setStudentList(res.data);\n formik.resetForm();\n setSelectedStudent([]);\n });\n }, [selectedPeriod]);\n\n //* setFormik State\n useEffect(() => {\n formik.setFieldValue(\n 'profiles',\n _.map(selectedStudent, (s) => ({\n profile: s.profile,\n remarks: s?.remark ?? ''\n }))\n );\n }, [selectedStudent]);\n\n useEffect(() => {\n formik.setFieldValue('date', selectedDate);\n }, [selectedDate]);\n //* setFormik State\n\n var classFiltered = useMemo(\n () => utils.searchFilter(studentList, filter?.value, ['class']),\n [studentList, filter?.value]\n );\n\n var homeworkTypeFiltered = _.flow(\n () => {\n if (!homeworkCategory) return homeworkType;\n return _.filter(\n homeworkType,\n (type) => type?.subject?._id === homeworkCategory\n );\n },\n (result) => {\n return utils.searchFilter(result, [search], [['name']]);\n }\n );\n\n var handleRemarkChange = (profile, remarkValue) => {\n const newSelectedStudent = _.map(selectedStudent, (student) => {\n if (profile === student.profile)\n return { ...student, remark: remarkValue };\n else return student;\n });\n\n setSelectedStudent(newSelectedStudent);\n };\n const debounce = (profile, remarkValue) => {\n clearTimeout(timer.current);\n timer.current = setTimeout(handleRemarkChange(profile, remarkValue), 200);\n };\n\n useEffect(() => {\n api.getPeriodList((result) => {\n const selectedPeriodObject = _.filter(\n result,\n (period) => period?._id === selectedPeriod\n );\n\n if (moment().isAfter(selectedPeriodObject[0].end_at)) setIsOutdated(true);\n else setIsOutdated(false);\n });\n }, [selectedPeriod]);\n\n if (isLoading) {\n return ;\n }\n return (\n \n {!!isOutdated && }\n\n
\n \n {t('homework_chosen')}\n \n \n \n \n {t('subject')}\n setHomeworkCategory(event.target.value)}\n value={homeworkCategory}\n defaultValue={''}\n sx={{ minWidth: '200px', width: 'min(200px, 100%)', mr: 1 }}\n >\n {t('see_all')} \n {_.map(allSubject, (n) => (\n \n {' '}\n {`${_.get(n, `name.${getLanguage()}`)}`}{' '}\n {/* {_.get(n, `name.${getLanguage()}`, '-')}{' '} */}\n \n ))}\n \n \n \n \n \n \n\n \n \n \n \n\n \n \n \n \n \n \n \n \n {_.map(homeworkTypeFiltered(), (type, _index) => {\n var className = classNames({\n [classes.checked]: type._id === formik.values.homeworkType_id\n });\n if (type.isActive) {\n return (\n \n formik.setFieldValue('homeworkType_id', type?._id)\n }\n >\n \n \n );\n } else return null;\n })}\n {_.size(homeworkTypeFiltered()) === 0 && (\n \n \n \n )}\n \n \n \n\n {!!formik.values?.homeworkType_id && !!selectedDate && (\n <>\n \n {t('choose_student')}\n \n \n \n \n \n \n \n \n \n {\n return (\n {\n debounce(row.profile, e.target.value);\n }}\n />\n );\n }\n }\n ]}\n />\n \n )}\n\n \n 0 ||\n !formik.values.homeworkType_id ||\n formik.isSubmitting\n }\n >\n {t('confirm')}\n \n \n \n
\n );\n};\n\nexport default UnfinishedHomework;\n","import { Helmet } from 'react-helmet';\nimport {\n Backdrop,\n Box,\n Container,\n Grid,\n Card,\n CardContent,\n Typography,\n CardHeader,\n Button,\n Divider,\n IconButton,\n TextField,\n InputAdornment\n} from '@material-ui/core';\nimport { makeStyles } from '@material-ui/styles';\nimport { useEffect, useMemo } from 'react';\nimport { useBackDrop } from 'src/provider/BackdropProvider';\nimport { useState } from 'react';\nimport useApi from 'src/api/api';\nimport { ArrowBack } from '@material-ui/icons';\nimport Icons from 'src/icons';\nimport DataTable from 'src/components/DataTable/DataTable';\nimport DataTableNoLimit from 'src/components/DataTable/DataTableNoLimit';\nimport _ from 'lodash';\nimport { useNavigate, useParams } from 'react-router';\nimport { useLocale } from 'src/provider/LocaleProvider';\nimport utils from 'src/utils/utils';\nimport SearchInput from 'src/components/SearchInput';\nimport LayoutContainer from 'src/layout/LayoutContainer';\nimport { useAuthData } from 'src/provider/AuthDataProvider';\nconst moment = require('moment-timezone');\n\nconst useStyles = makeStyles((theme) => ({\n row: {\n // height: '10px',\n // paddingBottom: theme.spacing(2),\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n marginBottom: theme.spacing(2)\n },\n spacer: {\n flex: 1\n },\n\n tableCell: {\n '& .MuiTableCell-root': {\n textAlign: 'center',\n borderLeft: 'none !important'\n },\n '& .MuiTableRow-root': {\n height: '60px'\n }\n },\n caption: {\n fontSize: '12px'\n }\n}));\n\nconst SubmittedHomeworkRecord = () => {\n const classes = useStyles();\n const loadingView = useBackDrop();\n const api = useApi();\n const nav = useNavigate();\n const [search, setSearch] = useState();\n const { t, translate, getLanguage } = useLocale();\n const { userInfo, selectedPeriod, currentPeriod } = useAuthData();\n const { userId } = useParams();\n\n const [record, setRecord] = useState([]);\n\n const handleExport = () => {\n utils.exportCsv(\n record,\n [\n {\n label: t('date'),\n value: (row) => moment(row['date']).format('YYYY-MM-DD')\n },\n {\n label: t('status'),\n value: (row) => t(row.status)\n },\n {\n label: t('action_created_by'),\n value: (row) => _.get(row, `created_by.name.${getLanguage()}`)\n }\n ],\n 'submitted_homework_record'\n );\n };\n\n useEffect(() => {\n // loadingView.open()\n\n api\n .getStudentSubmittedHomeworkRecord(userId, selectedPeriod)\n .then((res) => {\n setRecord(res.data);\n })\n .catch((e) => console.log(e));\n\n // api.getAttendanceList({ period: selectedPeriod, user: userId }).then(({ data }) => { setAttendanceHistory(data) }).catch(e => console.log(e));\n\n // loadingView.close()\n }, [selectedPeriod]);\n\n var filtered = useMemo(\n () =>\n utils.searchFilter(record.records, search, [\n `created_by.name.en`,\n `created_by.name.zh`,\n 'date',\n 'status'\n ]),\n [record, search]\n );\n\n return (\n \n \n \n \n \n \n \n \n \n moment(row.date).format('YYYY-MM-DD'),\n width: '33.3%',\n sort: true\n },\n {\n label: t('status'),\n translate: 1,\n value: 'status',\n width: '33.3%'\n },\n {\n label: t('action_created_by'),\n content: (row) => _.get(row, `created_by.name.${getLanguage()}`),\n width: '33.3%'\n }\n ]}\n />\n
\n Last Updated at {moment().format('YYYY-MM-DD HH:mm:ss')}\n
\n \n );\n};\nexport default SubmittedHomeworkRecord;\n","import { Helmet } from 'react-helmet';\nimport {\n Backdrop,\n Box,\n Container,\n Grid,\n Card,\n CardContent,\n Typography,\n CardHeader,\n Button,\n Divider,\n IconButton,\n TextField,\n InputAdornment\n} from '@material-ui/core';\nimport { makeStyles } from '@material-ui/styles';\nimport { useEffect, useMemo } from 'react';\nimport { useBackDrop } from 'src/provider/BackdropProvider';\nimport { useState } from 'react';\nimport useApi from 'src/api/api';\nimport { ArrowBack } from '@material-ui/icons';\nimport Icons from 'src/icons';\nimport DataTable from 'src/components/DataTable/DataTable';\nimport DataTableNoLimit from 'src/components/DataTable/DataTableNoLimit';\nimport _ from 'lodash';\nimport { useNavigate, useParams } from 'react-router';\nimport { useLocale } from 'src/provider/LocaleProvider';\nimport utils from 'src/utils/utils';\nimport SearchInput from 'src/components/SearchInput';\nimport LayoutContainer from 'src/layout/LayoutContainer';\nimport { useAuthData } from 'src/provider/AuthDataProvider';\nconst moment = require('moment-timezone');\n\nconst useStyles = makeStyles((theme) => ({\n row: {\n // height: '10px',\n // paddingBottom: theme.spacing(2),\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n marginBottom: theme.spacing(2)\n },\n spacer: {\n flex: 1\n },\n\n tableCell: {\n '& .MuiTableCell-root': {\n textAlign: 'center',\n borderLeft: 'none !important'\n },\n '& .MuiTableRow-root': {\n height: '60px'\n }\n },\n caption: {\n fontSize: '12px'\n }\n}));\n\nconst UnfinishedHomeworkRecord = () => {\n const classes = useStyles();\n const loadingView = useBackDrop();\n const api = useApi();\n const nav = useNavigate();\n const [search, setSearch] = useState();\n const { t, translate, getLanguage } = useLocale();\n const { userInfo, selectedPeriod, currentPeriod } = useAuthData();\n const { userId } = useParams();\n\n const [record, setRecord] = useState([]);\n\n const handleExport = () => {\n utils.exportCsv(\n record,\n [\n {\n label: t('date'),\n value: (row) => moment(row['date']).format('YYYY-MM-DD')\n },\n {\n label: t('subject'),\n value: (row) =>\n _.get(row, `homework_type.subject.name.${getLanguage()}`)\n },\n {\n label: t('code'),\n value: (row) => _.get(row, `homework_type.name`)\n },\n {\n label: t('remark'),\n value: (row) => _.get(row, `remarks`)\n },\n {\n label: t('action_created_by'),\n value: (row) => _.get(row, `created_by.name.${getLanguage()}`)\n }\n ],\n 'unfinished_homework_record'\n );\n };\n\n useEffect(() => {\n // loadingView.open()\n\n api\n .getStudentUnfinishedHomeworkRecord(userId, selectedPeriod)\n .then((res) => {\n setRecord(res.data);\n // console.log(res.data);\n })\n .catch((e) => console.log(e));\n\n // api.getAttendanceList({ period: selectedPeriod, user: userId }).then(({ data }) => { setAttendanceHistory(data) }).catch(e => console.log(e));\n\n // loadingView.close()\n }, [selectedPeriod]);\n // console.log(record);\n var filtered = useMemo(\n () =>\n utils.searchFilter(record.records, search, [\n `created_by.name.en`,\n `created_by.name.zh`,\n 'date',\n `remarks`,\n `homework_type.subject.name.en`,\n `homework_type.subject.name.zh`\n ]),\n [record, search]\n );\n\n return (\n \n \n \n \n \n \n \n \n \n moment(row.date).format('YYYY-MM-DD'),\n width: '20%',\n sort: true\n },\n {\n label: t('subject'),\n translate: 1,\n content: (row) =>\n _.get(row, `homework_type.subject.name.${getLanguage()}`),\n width: '20%'\n },\n {\n label: t('code'),\n translate: 1,\n content: (row) => _.get(row, `homework_type.name`),\n width: '20%'\n },\n {\n label: t('remark'),\n translate: 1,\n content: (row) => _.get(row, `remarks`),\n width: '20%'\n },\n {\n label: t('action_created_by'),\n content: (row) => _.get(row, `created_by.name.${getLanguage()}`),\n width: '20%'\n }\n ]}\n />\n
\n Last Updated at {moment().format('YYYY-MM-DD HH:mm:ss')}\n
\n \n );\n};\nexport default UnfinishedHomeworkRecord;\n","import {\n Box,\n FormControlLabel,\n FormGroup,\n Switch,\n Typography\n} from '@material-ui/core';\nimport { useState } from 'react';\nimport { useQuery } from 'react-query';\nimport useApi from 'src/api/api';\nimport CustomDatePicker from 'src/components/DatePicker';\nimport LoadingView from 'src/components/LoadingView';\nimport LayoutContainer from 'src/layout/LayoutContainer';\nimport { useAuthData } from 'src/provider/AuthDataProvider';\n\nconst moment = require('moment-timezone');\nconst _ = require('lodash');\n\nconst ClassSubmittedRecord = () => {\n const [date, setDate] = useState(moment().toDate());\n const { selectedPeriod } = useAuthData();\n const api = useApi();\n const { isLoading, error, data, isFetching } = useQuery(\n ['class-submit-homeword-records', date, selectedPeriod],\n () => api.getClassSubmittedRecord({ date: date }).then((res) => res.data),\n {\n refetchOnWindowFocus: false\n }\n );\n if (error) {\n return (\n \n {error?.message}\n \n );\n }\n if (isLoading || isFetching) {\n return (\n \n \n \n \n \n );\n }\n return (\n \n \n \n {_.map(data, (record) => {\n const [_class, isSubmited] = Object.entries(record)[0];\n\n return (\n \n }\n label={_class}\n labelPlacement=\"top\"\n >\n );\n })}\n \n \n );\n};\n\nexport default ClassSubmittedRecord;\n","/* eslint-disable react-hooks/exhaustive-deps */\nimport {\n Alert,\n Box,\n Button,\n Grid,\n IconButton,\n TextField,\n Tooltip,\n Typography\n} from '@material-ui/core';\nimport classNames from 'classnames';\nimport _ from 'lodash';\nimport { useEffect, useRef, useState } from 'react';\nimport { useMutation } from 'react-query';\nimport useApi from 'src/api/api';\nimport PagingTable, {\n usePagination\n} from 'src/components/DataTable/PagingTable';\nimport TimePicker from 'src/components/DatePicker';\nimport EditDialog from 'src/components/EditDialog';\nimport LoadingView from 'src/components/LoadingView';\nimport Icons from 'src/icons';\nimport LayoutContainer from 'src/layout/LayoutContainer';\nimport { useAuthData } from 'src/provider/AuthDataProvider';\nimport { useLocale } from 'src/provider/LocaleProvider';\nimport { useSnack } from 'src/provider/SnackbarProvider';\nimport utils from 'src/utils/utils';\nconst moment = require('moment-timezone');\n\nconst SubmittedHomeworkHistory = () => {\n const api = useApi();\n const { t, getLanguage, translate } = useLocale();\n\n const pagination = usePagination();\n const { page, setPage, limit, order, orderBy } = pagination;\n\n const snack = useSnack();\n const { selectedPeriod } = useAuthData();\n const [records, setRecords] = useState({});\n const [total, setTotal] = useState(0);\n const [lastUpdate, setLastUpdate] = useState();\n const [date, setDate] = useState(moment().toDate());\n const [search, setSearch] = useState({ date });\n\n const [dialogMode, setDialogMode] = useState('');\n const [selectedRow, setSelectedRow] = useState();\n const timer = useRef();\n const [rawData, setRawData] = useState({});\n const [isSubmitting, setIsSubmitting] = useState(false);\n const [isLoading, setIsLoading] = useState(true);\n\n useEffect(() => {\n setSearch((s) => ({ ...s, date: date ? date : null }));\n }, [date]);\n\n function getRows() {\n setRecords([]);\n api\n .getSubmittedHomeworkRecord({\n search,\n order_by: orderBy,\n order,\n limit,\n page,\n period_id: selectedPeriod\n })\n .then((res) => {\n if (res.data.last_updated_at !== lastUpdate) {\n setRecords(res.data.pages);\n } else {\n setRecords((h) => {\n return { ...h, ...res.data.pages };\n });\n }\n setTotal(res.data.total);\n setLastUpdate(res.data.last_updated_at);\n setIsLoading(false);\n });\n }\n\n useEffect(() => {\n let pre = Math.max(0, page - 1);\n let current = page;\n let next = Math.min(total, page + 1);\n if (!(records[pre] && records[current] && records[next])) {\n getRows();\n }\n }, [page]);\n\n useEffect(() => {\n setRecords({});\n getRows();\n }, [orderBy, order, selectedPeriod]);\n\n useEffect(() => {\n setRecords({});\n if (page === 0) {\n getRows();\n } else {\n setPage(0);\n }\n }, [limit]);\n\n useEffect(() => {\n if (records) {\n setPage(0);\n setRecords({});\n clearTimeout(timer.current);\n timer.current = setTimeout(getRows, 500);\n }\n }, [search]);\n\n const handleDelete = (row) => {\n setDialogMode('delete');\n setSelectedRow(row);\n };\n\n const handleDeleteOne = async () => {\n setIsSubmitting(true);\n await api\n .deleteSubmittedHomeworkRecordByID(selectedRow?._id)\n .then((res) => {\n snack.open(t('delete_success'));\n })\n .catch((e) => {\n snack.error();\n })\n .finally(() => {\n setIsSubmitting(false);\n setDialogMode(null);\n setSelectedRow(null);\n getRows();\n });\n };\n\n const exportAll = async () => {\n var data = rawData['all'];\n if (!rawData['all']) {\n data = await api\n .getSubmittedHomeworkRecord({\n period_id: selectedPeriod,\n limit: 999999\n })\n .then((res) => {\n var result = _.get(res, 'data.pages.0', []);\n setRawData((d) => ({ ...d, all: result }));\n return result;\n });\n }\n utils.exportCsv(\n _.orderBy(data, 'date', 'desc'),\n [\n {\n label: t('date'),\n value: (row) => moment(row['date']).format('YYYY-MM-DD')\n },\n { label: t('class'), value: (row) => row.profile?.class },\n { label: t('class_no'), value: (row) => row.profile?.class_no },\n { label: t('name_zh'), value: (row) => row.user?.name?.zh },\n { label: t('name_en'), value: (row) => row.user?.name?.en },\n { label: t('status'), value: (row) => t(row?.status) },\n {\n label: t('action_created_by'),\n value: (row) => translate(row?.created_by?.name)\n }\n ],\n `Submitted Homework Record`\n );\n return null;\n };\n const exportFiltered = async () => {\n // var data = rawData[searchRange];\n // if (!rawData[searchRange]) {\n var data = await api\n .getSubmittedHomeworkRecord({\n period_id: selectedPeriod,\n limit: 999999,\n search\n })\n .then((res) => {\n var result = _.get(res, 'data.pages.0', []);\n // setRawData((d) => ({ ...d, [searchRange]: result }));\n\n return result;\n });\n // }\n var filterd = _.filter(data, (row) => {\n var fm = (str, field) => {\n if (!str || str === '') return true;\n var text = _.get(row, field);\n return new RegExp(\n _.toString(str).replace(/([.?*+^$[\\]\\\\(){}|-])/g, '\\\\$1'),\n 'i'\n ).test(_.toString(text));\n };\n return (\n fm(search.class, 'profile.class') &&\n fm(search.class_no, 'profile.class_no') &&\n (fm(search.name, 'user.name.en') || fm(search.name, 'user.name.zh')) &&\n (fm(search.created_by, 'created_by.name.en') ||\n fm(search.created_by, 'created_by.name.zh'))\n );\n });\n\n utils.exportCsv(\n filterd,\n [\n {\n label: t('date'),\n value: (row) => moment(row['date']).format('YYYY-MM-DD')\n },\n { label: t('class'), value: (row) => row.profile?.class },\n { label: t('class_no'), value: (row) => row.profile?.class_no },\n { label: t('name_zh'), value: (row) => row.user?.name?.zh },\n { label: t('name_en'), value: (row) => row.user?.name?.en },\n { label: t('status'), value: (row) => t(row?.status) },\n {\n label: t('action_created_by'),\n value: (row) => _.get(row, `created_by.name.${getLanguage()}`)\n }\n ],\n `Submitted Homework Record`\n );\n return null;\n };\n\n const handleSearch = (path) => (e) => {\n setSearch((s) => ({ ...s, [path]: e.target.value }));\n };\n\n const { mutate: handleExportAll, ...handleExportAllMutation } =\n useMutation(exportAll);\n\n const { mutate: handleExport, ...handleExportMutation } =\n useMutation(exportFiltered);\n\n if (isLoading) {\n return (\n \n \n \n \n \n );\n }\n return (\n \n \n {t('submitted_homework')}\n \n {/* */}\n {(handleExportAllMutation.isLoading ||\n handleExportMutation.isLoading) && (\n \n {t('exporting')}\n \n )}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n {t('export_all')}\n \n \n {t('export')}\n \n \n \n\n \n classNames({ 'text-green': row.type === 'redeem' })\n }\n total={total}\n // rowsRef={rowsRef}\n rows={records[page]}\n heads={[\n {\n label: t('date'),\n value: 'date',\n content: (row) => moment(row['date']).format('YYYY-MM-DD'),\n sort: true\n },\n { label: t('class'), value: 'profile.class' },\n { label: t('class_no'), value: 'profile.class_no' },\n { label: t('name_zh'), value: 'user.name.zh' },\n { label: t('name_en'), value: 'user.name.en' },\n { label: t('status'), content: (row) => t(row.status), translate: 1 },\n {\n label: t('action_created_by'),\n value: `created_by.name.${getLanguage()}`\n },\n {\n label: t('actions'),\n value: '',\n content: (row) => {\n return (\n \n \n handleDelete(row)}\n sx={{ p: 0.5 }}\n >\n {' '}\n {' '}\n \n \n \n );\n }\n }\n ]}\n {...pagination}\n />\n setDialogMode(null)}\n handleSave={handleDeleteOne}\n confirmText={t('delete')}\n confirmDisabled={isSubmitting}\n >\n {t('deleteActions_description')}\n \n \n );\n};\n\nexport default SubmittedHomeworkHistory;\n","/* eslint-disable react-hooks/exhaustive-deps */\nimport {\n Alert,\n Box,\n Button,\n Grid,\n IconButton,\n TextField,\n Tooltip,\n Typography\n} from '@material-ui/core';\nimport classNames from 'classnames';\nimport _ from 'lodash';\nimport { useEffect, useRef, useState } from 'react';\nimport { useMutation } from 'react-query';\nimport useApi from 'src/api/api';\nimport PagingTable, {\n usePagination\n} from 'src/components/DataTable/PagingTable';\nimport TimePicker from 'src/components/DatePicker';\nimport EditDialog from 'src/components/EditDialog';\nimport LoadingView from 'src/components/LoadingView';\nimport Icons from 'src/icons';\nimport LayoutContainer from 'src/layout/LayoutContainer';\nimport { useAuthData } from 'src/provider/AuthDataProvider';\nimport { useLocale } from 'src/provider/LocaleProvider';\nimport { useSnack } from 'src/provider/SnackbarProvider';\nimport utils from 'src/utils/utils';\nconst moment = require('moment-timezone');\n\nconst UnfinishedHomeworkHistory = () => {\n const api = useApi();\n const { t, getLanguage, translate } = useLocale();\n\n const pagination = usePagination();\n const { page, setPage, limit, order, orderBy } = pagination;\n\n const snack = useSnack();\n const { selectedPeriod } = useAuthData();\n const [records, setRecords] = useState({});\n const [total, setTotal] = useState(0);\n const [lastUpdate, setLastUpdate] = useState();\n const [date, setDate] = useState(moment().toDate());\n const [search, setSearch] = useState({ date: date });\n\n const [dialogMode, setDialogMode] = useState('');\n const [selectedRow, setSelectedRow] = useState();\n const timer = useRef();\n const [rawData, setRawData] = useState({});\n const [isLoading, setIsLoading] = useState(true);\n const [isSubmitting, setIsSubmitting] = useState(false);\n\n function getRows() {\n setRecords([]);\n\n api\n .getUnfinishedHomework({\n search,\n order_by: orderBy,\n period_id: selectedPeriod,\n order,\n limit,\n page\n })\n .then((res) => {\n // console.log(res.data);\n if (res.data.last_updated_at !== lastUpdate) {\n setRecords(res.data.pages);\n } else {\n setRecords((h) => {\n return { ...h, ...res.data.pages };\n });\n }\n setTotal(res.data.total);\n setLastUpdate(res.data.last_updated_at);\n setIsLoading(false);\n })\n .catch((err) => console.log(err));\n }\n\n useEffect(() => {\n let pre = Math.max(0, page - 1);\n let current = page;\n let next = Math.min(total, page + 1);\n if (!(records[pre] && records[current] && records[next])) {\n getRows();\n }\n }, [page]);\n\n useEffect(() => {\n setRecords({});\n getRows();\n }, [orderBy, order, selectedPeriod]);\n // dateRange\n\n useEffect(() => {\n setRecords({});\n if (page === 0) {\n getRows();\n } else {\n setPage(0);\n }\n }, [limit]);\n\n useEffect(() => {\n if (records) {\n setPage(0);\n setRecords({});\n clearTimeout(timer.current);\n timer.current = setTimeout(getRows, 500);\n }\n }, [search]);\n\n useEffect(() => {\n setSearch((s) => ({ ...s, date: date ? date : null }));\n }, [date]);\n\n const handleDelete = (row) => {\n setDialogMode('delete');\n setSelectedRow(row);\n };\n\n const handleDeleteOne = async () => {\n setIsSubmitting(true);\n await api\n .deleteUnfinishedHomeworkRecordByID(selectedRow?._id)\n .then((res) => {\n setDialogMode(null);\n setSelectedRow(null);\n getRows();\n })\n .catch((e) => {\n snack.error();\n })\n .finally(() => {\n setIsSubmitting(false);\n });\n await snack.open(t('delete_success'));\n };\n\n const exportAll = async () => {\n var data = rawData['all'];\n if (!rawData['all']) {\n data = await api\n .getUnfinishedHomework({\n period_id: selectedPeriod,\n limit: 999999\n })\n .then((res) => {\n var result = _.get(res, 'data.pages.0', []);\n setRawData((d) => ({ ...d, all: result }));\n return result;\n });\n }\n utils.exportCsv(\n _.orderBy(data, 'date', 'desc'),\n [\n {\n label: t('date'),\n value: (row) => moment(row['date']).format('YYYY-MM-DD')\n },\n { label: t('class'), value: (row) => row.profile?.class },\n { label: t('class_no'), value: (row) => row.profile?.class_no },\n { label: t('name_zh'), value: (row) => row.user?.name?.zh },\n { label: t('name_en'), value: (row) => row.user?.name?.en },\n {\n label: t('subject'),\n value: (row) => row.homework_type?.subject.name[getLanguage()] || ''\n },\n { label: t('code'), value: (row) => t(row.homework_type?.name || '') },\n { label: t('remark'), value: (row) => t(row.remarks || '') },\n {\n label: t('action_created_by'),\n value: (row) => translate(row?.created_by?.name)\n }\n ],\n `Unfisished Homework History`\n );\n return null;\n };\n\n const exportFiltered = async () => {\n var data = await api\n .getUnfinishedHomework({\n period_id: selectedPeriod,\n search,\n limit: 999999\n })\n .then((res) => {\n var result = _.get(res, 'data.pages.0', []);\n\n return result;\n });\n\n var filterd = _.filter(data, (row) => {\n var fm = (str, field) => {\n if (!str || str === '') return true;\n var text = _.get(row, field);\n return new RegExp(\n _.toString(str).replace(/([.?*+^$[\\]\\\\(){}|-])/g, '\\\\$1'),\n 'i'\n ).test(_.toString(text));\n };\n return (\n fm(search.class, 'profile.class') &&\n fm(search.class_no, 'profile.class_no') &&\n (fm(search.name, 'user.name.en') || fm(search.name, 'user.name.zh')) &&\n (fm(search.created_by, 'created_by.name.en') ||\n fm(search.created_by, 'created_by.name.zh'))\n );\n });\n utils.exportCsv(\n filterd,\n [\n {\n label: t('date'),\n value: (row) => moment(row['date']).format('YYYY-MM-DD')\n },\n { label: t('class'), value: (row) => row.profile?.class },\n { label: t('class_no'), value: (row) => row.profile?.class_no },\n { label: t('name_zh'), value: (row) => row.user?.name?.zh },\n { label: t('name_en'), value: (row) => row.user?.name?.en },\n {\n label: t('subject'),\n value: (row) => row.homework_type?.subject.name[getLanguage()] || ''\n },\n { label: t('code'), value: (row) => t(row.homework_type?.name || '') },\n { label: t('remark'), value: (row) => t(row.remarks || '') },\n {\n label: t('action_created_by'),\n value: (row) => _.get(row, `created_by.name.${getLanguage()}`)\n }\n ],\n `Unfisished Homework History`\n );\n return null;\n };\n\n const handleSearch = (path) => (e) => {\n setSearch((s) => ({ ...s, [path]: e.target.value }));\n };\n\n const { mutate: handleExportAll, ...handleExportAllMutation } =\n useMutation(exportAll);\n\n const { mutate: handleExport, ...handleExportMutation } =\n useMutation(exportFiltered);\n\n if (isLoading) {\n return (\n \n \n \n \n \n );\n }\n return (\n \n \n {t('unfinished_homework')}\n \n\n {(handleExportAllMutation.isLoading ||\n handleExportMutation.isLoading) && (\n \n {t('exporting')}\n \n )}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n {t('export_all')}\n \n \n {t('export')}\n \n \n \n\n \n classNames({ 'text-green': row.type === 'redeem' })\n }\n total={total}\n rows={records[page]}\n heads={[\n {\n label: t('date'),\n value: 'date',\n content: (row) => {\n return moment(row['date']).format('YYYY-MM-DD');\n },\n sort: true\n },\n { label: t('class'), value: 'profile.class' },\n { label: t('class_no'), value: 'profile.class_no' },\n { label: t('name_zh'), value: 'user.name.zh' },\n { label: t('name_en'), value: 'user.name.en' },\n {\n label: t('subject'),\n value: `homework_type.subject.name.${getLanguage()}`,\n translate: 1\n },\n {\n label: t('code'),\n value: 'homework_type.name',\n translate: 1\n },\n { label: t('remark'), value: 'remarks', translate: 1 },\n {\n label: t('action_created_by'),\n value: `created_by.name.${getLanguage()}`\n },\n {\n label: t('actions'),\n value: '',\n content: (row) => {\n return (\n \n \n handleDelete(row)}\n sx={{ p: 0.5 }}\n >\n {' '}\n {' '}\n \n \n \n );\n }\n }\n ]}\n {...pagination}\n />\n setDialogMode(null)}\n handleSave={handleDeleteOne}\n confirmText={t('delete')}\n confirmDisabled={isSubmitting}\n >\n {t('deleteActions_description')}\n \n \n );\n};\n\nexport default UnfinishedHomeworkHistory;\n","import { Card, Tab, Tabs } from '@material-ui/core';\nimport { useState } from 'react';\nimport LayoutContainer from 'src/layout/LayoutContainer';\nimport { useLocale } from 'src/provider/LocaleProvider';\nimport ClassSubmittedRecord from './ClassSubmittedRecord';\nimport SubmittedHomeworkHistory from './SubmittedHomeworkHistory';\nimport UnfinishedHomeworkHistory from './UnfinishedHomeworkHistory';\n\nconst HomeworkHistory = () => {\n const [tab, setTab] = useState('submitted_homework');\n const { t } = useLocale();\n return (\n \n \n {\n setTab(v);\n }}\n >\n \n \n \n \n\n {tab === 'submitted_homework' && (\n \n \n \n \n )}\n {tab === 'unfinished_homework' && (\n \n \n \n )}\n \n );\n};\n\nexport default HomeworkHistory;\n","import React, { useState, useEffect } from 'react';\n\nimport {\n Button,\n Card,\n Container,\n Grid,\n IconButton,\n InputAdornment,\n FormControl,\n InputLabel,\n Select,\n MenuItem,\n Box\n} from '@material-ui/core';\nimport { useLocale } from 'src/provider/LocaleProvider';\nimport useApi from 'src/api/api';\nimport EditDialog from 'src/components/EditDialog';\nimport { TextField } from '@material-ui/core';\nimport { useAuthData } from 'src/provider/AuthDataProvider';\nimport { useSnack } from 'src/provider/SnackbarProvider';\n\nconst _ = require('lodash');\n\nconst AddHomeworkTypeDialog = ({\n open,\n setOpen,\n allSubject,\n refresh = new Function()\n}) => {\n const { t, getLanguage } = useLocale();\n const snack = useSnack();\n const api = useApi();\n const [Name, setName] = useState('');\n const [Subject, setSubject] = useState('');\n const [submitting, setSubmitting] = useState(false);\n const { selectedPeriod } = useAuthData();\n useEffect(() => {\n setName('');\n setSubject('');\n }, [open]);\n\n const checkString = (s) => _.isString(s) && s;\n\n var isComplete = checkString(Name) && checkString(Subject);\n\n function handleSave() {\n if (isComplete) {\n setSubmitting(true);\n api\n .putHomeworkType({\n name: Name,\n subject: Subject\n })\n .then(() => {\n snack.open(t('upload_success'));\n refresh();\n setOpen(false);\n })\n .catch((e) => {\n snack.error(t('upload_fail'));\n })\n .finally(() => {\n setSubmitting(false);\n });\n }\n }\n return (\n setOpen(false)}\n title={t('homework_add')}\n handleSave={handleSave}\n confirmDisabled={!isComplete || submitting}\n //\n >\n \n {t('subject')}\n setSubject(event.target.value)}\n value={Subject?._id}\n defaultValue={''}\n sx={{ height: '50px', minWidth: '200px', width: '100%', mb: 2 }}\n fullWidth={true}\n >\n {_.map(allSubject, (n) => (\n \n {' '}\n {`${_.get(n, `name.${getLanguage()}`)}`}\n \n ))}\n \n setName(e.target.value)}\n sx={{ mb: 2 }}\n />\n \n \n );\n};\n\nexport default AddHomeworkTypeDialog;\n","import {\n FormControl,\n InputLabel,\n MenuItem,\n Select,\n TextField\n} from '@material-ui/core';\nimport { useEffect, useState } from 'react';\nimport useApi from 'src/api/api';\nimport EditDialog from 'src/components/EditDialog';\nimport { useLocale } from 'src/provider/LocaleProvider';\nimport { useSnack } from 'src/provider/SnackbarProvider';\nconst _ = require('lodash');\n\nconst EditHomeworkTypeDialog = ({\n category,\n open,\n setOpen,\n allSubject,\n refresh = () => {}\n}) => {\n const { t, getLanguage } = useLocale();\n const api = useApi();\n const [Name, setName] = useState('');\n const [Subject, setSubject] = useState('');\n const [dialogMode, setDialogMode] = useState('');\n const [isActive, setIsActive] = useState(false);\n const [submitting, setSubmitting] = useState(false);\n const snack = useSnack();\n useEffect(() => {\n setName(category?.name);\n setSubject(category?.subject._id);\n setIsActive(category?.isActive);\n }, [open]);\n\n const checkString = (s) => _.isString(s) && s;\n var isComplete = checkString(Name) && checkString(Subject);\n\n function handleSave() {\n if (isComplete) {\n setSubmitting(true);\n api\n .putHomeworkType({\n name: Name,\n subject: Subject,\n homeworkType_id: category._id,\n isActive: isActive\n })\n .then(() => {\n snack.open(t('upload_success'));\n setOpen(false);\n })\n .catch((e) => {\n snack.error('upload_fail');\n })\n .finally(() => {\n setSubmitting(false);\n refresh();\n });\n }\n }\n const handleDelete = async () => {\n setSubmitting(true);\n await api\n .deleteHomeworkTypeByID(category._id)\n .then(() => {\n setDialogMode('');\n setOpen(false);\n })\n .catch((e) => {\n snack.error();\n })\n .finally((e) => {\n setSubmitting(false);\n refresh();\n });\n };\n\n return (\n <>\n setOpen(false)}\n title={t('homework_edit')}\n handleSave={handleSave}\n confirmDisabled={!isComplete || submitting}\n >\n \n {t('subject')}\n setSubject(event.target.value)}\n value={Subject}\n defaultValue={''}\n sx={{ height: '50px', minWidth: '200px', width: '100%', mb: 2 }}\n fullWidth={true}\n >\n {_.map(allSubject, (n) => (\n \n {' '}\n {`${_.get(n, `name.${getLanguage()}`)}`}{' '}\n \n ))}\n \n setName(e.target.value)}\n sx={{ mb: 2 }}\n />\n \n\n \n {t('status')}\n setIsActive(event.target.value)}\n value={isActive}\n sx={{ height: '50px', minWidth: '200px', width: '100%', mb: 2 }}\n fullWidth={true}\n >\n \n {t('active')}\n \n \n {t('inactive')}\n \n \n \n \n handleDelete()}\n open={dialogMode === 'delete'}\n handleClose={() => setDialogMode(null)}\n confirmText={t('confirm')}\n confirmDisabled={submitting}\n >\n

{t('delete_confirm_msg', { a: `${category?.name}` })}

\n \n \n );\n};\n\nexport default EditHomeworkTypeDialog;\n","import {\n Button,\n FormControl,\n Grid,\n IconButton,\n InputLabel,\n MenuItem,\n Select,\n Tooltip\n} from '@material-ui/core';\nimport { useEffect, useState } from 'react';\nimport useApi from 'src/api/api';\nimport DataTable from 'src/components/DataTable/DataTable';\nimport SearchInput from 'src/components/SearchInput';\nimport Icons from 'src/icons';\nimport LayoutContainer from 'src/layout/LayoutContainer';\nimport { useLocale } from 'src/provider/LocaleProvider';\nimport utils from 'src/utils/utils';\nimport AddHomeworkTypeDialog from './AddHomeworkTypeDialog';\nimport EditHomeworkTypeDialog from './EditHomeworkTypeDialog';\nconst _ = require('lodash');\n\nconst HomeworkType = (_props) => {\n const [addDialog, setAddDialog] = useState(false);\n const [selected, setSelected] = useState(null);\n const [search, setSearch] = useState('');\n const api = useApi();\n const { t, getLanguage } = useLocale();\n const [homeworkType, setHomeworkType] = useState([]);\n const [allSubject, setAllSubject] = useState([]);\n const [homeworkCategory, setHomeworkCategory] = useState('');\n\n useEffect(() => {\n api.getHomeworkType().then((res) => {\n setAllSubject(res.data?.allSubject);\n setHomeworkType(res.data?.homeworkType);\n });\n }, []);\n function refreshPage() {\n api.getHomeworkType().then((res) => {\n setAllSubject(res.data?.allSubject);\n setHomeworkType(res.data?.homeworkType);\n });\n }\n\n function handleEdit(row) {\n setSelected(row);\n }\n\n const headCells = [\n {\n id: 'name',\n label: t('name'),\n value: 'name',\n width: '30%',\n align: 'left'\n },\n {\n id: 'subject',\n label: t('subject'),\n // value: 'subject.name.zh',\n content: (s) => `${_.get(s, `subject.name.${getLanguage()}`)}`,\n width: '30%',\n align: 'left'\n },\n {\n id: 'isActive',\n label: t('status'),\n content: (r) => (r.isActive ? t('active') : t('inactive')),\n className: (row) => (row.isActive ? 'text-green' : 'text-red'),\n // sort: true,\n width: '30%',\n align: 'left'\n },\n {\n id: 'actions',\n label: t('actions'),\n width: '10%',\n content: (row) => (\n \n handleEdit(row)} sx={{ p: 0.5 }}>\n \n \n \n )\n }\n ];\n\n function handleAdd() {\n setAddDialog(true);\n }\n\n var homeworkTypeFiltered = _.flow(\n () => {\n if (!homeworkCategory) return homeworkType;\n return _.filter(\n homeworkType,\n (type) => type?.subject?._id === homeworkCategory\n );\n },\n (result) => {\n return utils.searchFilter(result, [search], [['name']]);\n }\n );\n return (\n \n \n !flag && setSelected(null)}\n refresh={refreshPage}\n allSubject={allSubject}\n />\n \n \n \n {t('subject')}\n setHomeworkCategory(event.target.value)}\n value={homeworkCategory?._id}\n defaultValue={''}\n sx={{ minWidth: '200px', width: 'min(200px, 100%)', mr: 1 }}\n >\n {/* */}\n {t('see_all')} \n {_.map(allSubject, (n) => (\n \n {`${_.get(n, `name.${getLanguage()}`)}`}\n \n ))}\n \n \n \n\n \n \n \n \n
\n \n
\n
\n\n \n
\n );\n};\n\nexport default HomeworkType;\n","import { Box, Card, Typography } from '@material-ui/core';\nimport { makeStyles } from '@material-ui/styles';\nimport { useEffect, useRef, useState } from 'react';\nimport { useNavigate, useParams } from 'react-router';\nimport {\n Bar,\n BarChart,\n Brush,\n CartesianGrid,\n Legend,\n ResponsiveContainer,\n Tooltip,\n XAxis,\n YAxis\n} from 'recharts';\nimport useApi from 'src/api/api';\nimport CustomDatePicker from 'src/components/DatePicker';\nimport { useAuthData } from 'src/provider/AuthDataProvider';\nimport { useLocale } from 'src/provider/LocaleProvider';\nconst moment = require('moment-timezone');\nconst _ = require('lodash');\nconst COLORS = ['#0088FE', '#00C49F', '#FFBB28', '#FF8042', '#FF80FF'];\n\nexport default function SubmittedHomeworkChart() {\n const { t } = useLocale();\n const { selectedPeriod } = useAuthData();\n const api = useApi();\n const [data, setData] = useState([]);\n const [startDate, setStartDate] = useState(null);\n const [endDate, setEndDate] = useState(moment().toDate());\n const timer = useRef();\n\n useEffect(() => {\n if (selectedPeriod) {\n api.getSubmittedHomeworkStat(startDate, endDate).then((res) => {\n const { data } = res;\n const { dateRange } = data;\n setData(data);\n setStartDate(dateRange.fromDate);\n setEndDate(dateRange.toDate);\n });\n }\n }, [selectedPeriod]);\n\n const getData = async () => {\n return api.getSubmittedHomeworkStat(startDate, endDate).then((res) => {\n setData(res.data);\n });\n };\n useEffect(() => {\n if (data) {\n setData({});\n clearTimeout(timer.current);\n timer.current = setTimeout(getData, 500);\n }\n }, [startDate, endDate]);\n return (\n <>\n \n \n \n \n \n \n \n {t('percentage_of_completion_by_grade')}\n \n \n\n \n \n \n \n \n \n } />\n \n \n \n \n \n \n \n \n \n \n \n {t('percentage_of_completion_by_class')}\n \n \n\n \n \n \n \n \n \n } />\n \n \n \n \n \n \n \n \n \n \n );\n}\nconst CustomTooltip = ({ active, payload }) => {\n function Percentage(count, total) {\n if (total === 0) return 0;\n return _.round((count / total) * 100, 1);\n }\n\n if (active && payload && payload.length) {\n return (\n
\n {_.map(payload, (payloads) => (\n \n {payloads?.name} : {payloads?.payload[payloads.dataKey]} (\n {Percentage(\n payloads?.payload[payloads.dataKey],\n payloads?.payload['total']\n )}\n %)\n \n ))}\n
\n );\n } else return <>;\n};\n","import { Box, Card, Typography } from '@material-ui/core';\nimport { makeStyles } from '@material-ui/styles';\nimport { useEffect, useRef, useState } from 'react';\nimport {\n Bar,\n BarChart,\n Brush,\n CartesianGrid,\n Legend,\n ReferenceLine,\n ResponsiveContainer,\n Tooltip,\n XAxis,\n YAxis\n} from 'recharts';\nimport useApi from 'src/api/api';\nimport CustomDatePicker from 'src/components/DatePicker';\nimport { useAuthData } from 'src/provider/AuthDataProvider';\nimport { useLocale } from 'src/provider/LocaleProvider';\nconst moment = require('moment-timezone');\nconst COLORS = ['#0088FE', '#00C49F', '#FFBB28', '#FF8042', '#FF80FF'];\n\nexport default function UnfinishedHomeworkChart() {\n const { t } = useLocale();\n const { selectedPeriod } = useAuthData();\n const api = useApi();\n const [rechartData, setRechartData] = useState([]);\n const [startDate, setStartDate] = useState(null);\n const [endDate, setEndDate] = useState(moment().toDate());\n const timer = useRef();\n\n useEffect(() => {\n if (selectedPeriod) {\n api.getUnfinishedHomeworkStat(startDate, endDate).then((res) => {\n const { data } = res;\n const { dateRange } = data;\n setRechartData(data);\n setStartDate(dateRange.fromDate);\n setEndDate(dateRange.toDate);\n });\n }\n }, [selectedPeriod]);\n\n const getData = async () => {\n return api.getUnfinishedHomeworkStat(startDate, endDate).then((res) => {\n setRechartData(res.data);\n });\n };\n\n // console.log(_.isDate(toDate.toDate()));\n\n useEffect(() => {\n if (rechartData) {\n setRechartData({});\n clearTimeout(timer.current);\n timer.current = setTimeout(getData, 500);\n }\n }, [startDate, endDate]);\n return (\n <>\n \n \n \n \n \n \n \n {t('total_uncompleted_homework_by_grade')}\n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {t('total_uncompleted_homework_by_class')}\n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n}\n","import React, { useEffect, useRef, useState } from 'react';\nimport { useNavigate, useParams } from 'react-router';\nimport useApi from 'src/api/api';\nimport LayoutContainer from 'src/layout/LayoutContainer';\nimport { useAuthData } from 'src/provider/AuthDataProvider';\nimport { useLocale } from 'src/provider/LocaleProvider';\nimport { Card, Tabs, Tab } from '@material-ui/core';\nimport { makeStyles } from '@material-ui/styles';\nimport SubmittedHomeworkChart from './SubmittedHomeworkChart';\nimport UnfinishedHomeworkChart from './UnfinishedHomeworkChart';\nconst moment = require('moment-timezone');\nconst _ = require('lodash');\nconst COLORS = ['#0088FE', '#00C49F', '#FFBB28', '#FF8042', '#FF80FF'];\n\nconst useStyles = makeStyles((theme) => ({\n row: {\n // height: '10px',\n // paddingBottom: theme.spacing(2),\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'flex-end',\n marginBottom: theme.spacing(1)\n // marginTop: theme.spacing(1)\n },\n\n backdrop: {\n zIndex: theme.zIndex.drawer + 1,\n color: '#fff'\n },\n\n cardTitle: {\n fontWeight: 700\n },\n tableCell: {\n '& .MuiTableCell-root': {\n textAlign: 'center',\n borderLeft: 'none !important'\n },\n '& .MuiTableRow-root': {\n height: '60px'\n }\n }\n}));\nexport default function HomeworkStatistics() {\n const { t, getLanguage } = useLocale();\n const [tab, setTab] = useState('submitted_homework');\n\n return (\n \n \n {\n setTab(v);\n }}\n >\n \n \n \n \n {tab === 'submitted_homework' ? (\n \n ) : (\n \n )}\n \n );\n}\n","import React, { useEffect, useRef, useState } from 'react';\nimport { useNavigate, useParams } from 'react-router';\nimport useApi from 'src/api/api';\nimport LayoutContainer from 'src/layout/LayoutContainer';\nimport { useAuthData } from 'src/provider/AuthDataProvider';\nimport { useLocale } from 'src/provider/LocaleProvider';\nimport {\n Backdrop,\n Box,\n Container,\n Grid,\n Card,\n CardContent,\n Typography,\n CardHeader,\n Button,\n Divider,\n IconButton,\n TextField\n} from '@material-ui/core';\nimport { makeStyles } from '@material-ui/styles';\nimport DataTableNoLimit from 'src/components/DataTable/DataTableNoLimit';\nimport Icons from 'src/icons';\nimport ClassSelector from 'src/components/ClassSelector';\nimport {\n PieChart,\n RadarChart,\n PolarGrid,\n PolarAngleAxis,\n PolarRadiusAxis,\n ResponsiveContainer,\n ReferenceLine,\n Pie,\n Cell,\n LineChart,\n Line,\n XAxis,\n YAxis,\n CartesianGrid,\n Tooltip,\n Legend,\n BarChart,\n Bar,\n AreaChart,\n Brush\n} from 'recharts';\nimport LoadingView from 'src/components/LoadingView';\nconst moment = require('moment-timezone');\nconst _ = require('lodash');\nconst COLORS = ['#0088FE', '#00C49F', '#FFBB28', '#FF8042', '#FF80FF'];\n\nconst useStyles = makeStyles((theme) => ({\n row: {\n // height: '10px',\n // paddingBottom: theme.spacing(2),\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'flex-end',\n marginBottom: theme.spacing(1)\n // marginTop: theme.spacing(1)\n },\n\n backdrop: {\n zIndex: theme.zIndex.drawer + 1,\n color: '#fff'\n },\n\n cardTitle: {\n fontWeight: 700\n },\n tableCell: {\n '& .MuiTableCell-root': {\n textAlign: 'center',\n borderLeft: 'none !important'\n },\n '& .MuiTableRow-root': {\n height: '60px'\n }\n }\n}));\nexport default function StudentHomeworkStatistics() {\n const { userInfo, selectedPeriod, currentPeriod, organization } =\n useAuthData();\n const { t, getLanguage } = useLocale();\n const classes = useStyles();\n const nav = useNavigate();\n const api = useApi();\n const [submittedHomeworkRecord, setSubmittedHomeworkRecord] = useState([]);\n const [unFinishedHomeworkRecord, setUnFinishedHomeworkRecord] = useState([]);\n const [isLoading, setIsLoading] = useState(true);\n const [filter, setFilter] = useState();\n const [startDate, setStartDate] = useState(null);\n const [endDate, setEndDate] = useState();\n const timer = useRef();\n function toPecentage(molecular, total) {\n if (!molecular) return null;\n return `${_.round((molecular / total) * 100, 1)}\\%`;\n }\n\n useEffect(() => {\n if (selectedPeriod) {\n Promise.all([\n api\n .getStudentSubmittedHomeworkRecord(userInfo._id)\n .then((res) => {\n setSubmittedHomeworkRecord(res.data);\n })\n .catch((e) => console.log(e)),\n\n api\n .getStudentUnfinishedHomeworkRecord(userInfo._id)\n .then((res) => {\n setUnFinishedHomeworkRecord(res.data);\n })\n .catch((e) => console.log(e))\n ]).then(() => setIsLoading(false));\n }\n }, [selectedPeriod]);\n\n if (isLoading) return ;\n return (\n \n {submittedHomeworkRecord.amount && (\n \n \n {/* */}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )}\n\n {submittedHomeworkRecord.total ? (\n \n \n \n {t('percentage_of_completion')}\n \n \n \n \n \n \n t(obj[0])}\n cx=\"50%\"\n cy=\"50%\"\n fill=\"#8884d8\"\n isAnimationActive={false}\n labelLine={false}\n local\n label={(e) => {\n if (e.percent > 0) {\n return `${e.name}: ${e.value} (${_.round(\n e.percent * 100,\n 1\n )}%)`;\n }\n return ' ';\n }}\n >\n {_.map(\n _.entries(submittedHomeworkRecord?.amount),\n (entry, index) => (\n \n )\n )}\n \n \n \n \n \n ) : (\n <>\n )}\n {unFinishedHomeworkRecord.total ? (\n \n \n \n {t('monthly_number_of_uncompleted_homework')}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n ) : (\n <>\n )}\n {unFinishedHomeworkRecord.total ? (\n \n \n \n {t('daily_number_of_uncompleted_homework')}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n ) : (\n <>\n )}\n \n );\n}\n","import React from 'react';\nimport useApi from 'src/api/api';\nimport LayoutContainer from 'src/layout/LayoutContainer';\nimport { useLocale } from 'src/provider/LocaleProvider';\nimport {\n Box,\n Card,\n Typography,\n Button,\n TextField,\n CardContent\n} from '@material-ui/core';\nimport { useFormik } from 'formik';\nimport { useSnack } from 'src/provider/SnackbarProvider';\nimport formikProps from 'src/utils/formikProps';\nimport { useAuthData } from 'src/provider/AuthDataProvider';\n\nconst _ = require('lodash');\nconst yup = require('yup');\n// const auth = useAuthData();\n\nconst HomeworkSetting = () => {\n const api = useApi();\n const { t } = useLocale();\n\n const { organization } = useAuthData();\n\n const snack = useSnack();\n\n // const [isActive, setIsActive] = useState(true);\n\n // useEffect(() => {\n // api.getPeriodList((result) => {\n // const currentPeriodObject = _.filter(\n // result,\n // (period) => period?._id === currentPeriod\n // );\n\n // });\n // }, [currentPeriod]);\n const formik = useFormik({\n initialValues: {\n submitHomeworkRange:\n organization?.homework_date_range.submitHomeworkRange ?? -1,\n unfinishHomeworkRange:\n organization?.homework_date_range.unfinishHomeworkRange ?? -1,\n isActive: true\n },\n validationSchema: yup.object().shape({\n submitHomeworkRange: yup.number().integer().min(0).required(),\n unfinishHomeworkRange: yup.number().integer().min(0).required(),\n isActive: yup.boolean()\n }),\n onSubmit: (values, helper) => {\n console.log(values);\n helper.setSubmitting(true);\n api\n .putHomeworkDateRange(values)\n .then((res) => {\n return snack.open(t('upload_success'));\n })\n .catch((err) => {\n console.log(err);\n return snack.error(t('upload_fail'));\n })\n .finally(() => {\n helper.setSubmitting(false);\n });\n }\n });\n\n return (\n \n
\n \n \n \n \n {t('date_back_range_submitted_homework')}\n \n \n \n \n\n \n {t('date_back_range_uncompleted_homework')}\n \n \n \n \n {/* \n \n {t('status')}\n \n \n \n {t('status')}\n setIsActive(event.target.value)}\n value={true}\n sx={{\n height: '50px',\n minWidth: '200px',\n width: '100%'\n }}\n fullWidth={true}\n {...formikProps(formik, 'isActive')}\n >\n \n {t('active')}\n \n \n {t('inactive')}\n \n \n \n \n */}\n \n 0 || formik.isSubmitting}\n >\n {t('confirm')}\n \n \n \n \n \n
\n
\n );\n};\n\nexport default HomeworkSetting;\n","import { IconButton, TextField, Tooltip } from \"@material-ui/core\";\nimport { useFormik } from \"formik\";\nimport { useEffect } from \"react\";\nimport { useQuery } from \"react-query\";\nimport useApi from \"src/api/api\";\nimport EditDialog from \"src/components/EditDialog\";\nimport LoadingView from \"src/components/LoadingView\";\nimport Icons from \"src/icons\";\nimport { useLocale } from \"src/provider/LocaleProvider\";\nimport { useSnack } from \"src/provider/SnackbarProvider\";\nimport formikProps from \"src/utils/formikProps\";\n\nconst yup = require(\"yup\");\n\nconst schema = yup.object().shape({\n\tname: yup.object({\n\t\tzh: yup.string().min(0).max(255),\n\t\ten: yup.string().min(0).max(255),\n\t}),\n\ttype: yup.string().min(0).max(255).required(),\n});\n\nexport function SubjectDialog({\n\tisOpen,\n\tsubjectId,\n\tmode,\n\tsetDialogProps,\n\tsetSubjects,\n}) {\n\tconst { t } = useLocale();\n\tconst api = useApi();\n\tconst snack = useSnack();\n\tconst { isLoading, data: subject } = useQuery(\n\t\t[\"subject-by-id\", subjectId],\n\t\tasync () => {\n\t\t\tif (!subjectId) return;\n\n\t\t\tconst { data } = await api.getSubjectById(subjectId);\n\t\t\treturn data.subject;\n\t\t},\n\t);\n\n\tconst handleClose = () => setDialogProps({ isOpen: false, subjectId: \"\" });\n\n\tconst handleDelete = () => {\n\t\tapi\n\t\t\t.inactiveSubjectById(subjectId)\n\t\t\t.then(() => {\n\t\t\t\tsetSubjects((subjects) => subjects.filter((s) => s._id !== subjectId));\n\t\t\t\thandleClose();\n\t\t\t\tsnack.open(t(\"saved\"));\n\t\t\t})\n\t\t\t.catch(() => snack.error(t(\"failed\")));\n\t};\n\n\tconst handleCreate = (values) => {\n\t\tapi\n\t\t\t.createSubject(values)\n\t\t\t.then(() => {\n\t\t\t\tsetSubjects((subjects) => [values, ...subjects]);\n\t\t\t\thandleClose();\n\t\t\t\tsnack.open(t(\"saved\"));\n\t\t\t})\n\t\t\t.catch(() => snack.error(t(\"failed\")));\n\t};\n\n\tconst handleEdit = (values) => {\n\t\tapi\n\t\t\t.updateSubjectById(subjectId, values)\n\t\t\t.then(() => {\n\t\t\t\tsetSubjects((subjects) =>\n\t\t\t\t\tsubjects.map((subject) =>\n\t\t\t\t\t\tsubject._id === subjectId ? { ...subject, ...values } : subject,\n\t\t\t\t\t),\n\t\t\t\t);\n\t\t\t\thandleClose();\n\t\t\t\tsnack.open(t(\"saved\"));\n\t\t\t})\n\t\t\t.catch(() => snack.error(t(\"failed\")));\n\t};\n\n\tconst handleConfirm = (values) => {\n\t\treturn mode === \"create\" ? handleCreate(values) : handleEdit(values);\n\t};\n\n\tconst formik = useFormik({\n\t\tinitialValues: {\n\t\t\tname: {\n\t\t\t\tzh: \"\",\n\t\t\t\ten: \"\",\n\t\t\t},\n\t\t\ttype: \"\",\n\t\t},\n\t\tvalidationSchema: schema,\n\t\tonSubmit: (values) => {\n\t\t\thandleConfirm(values);\n\t\t},\n\t});\n\n\tuseEffect(() => {\n\t\tformik.setValues({ ...subject });\n\t\treturn () => formik.resetForm();\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [subject, formik.resetForm, formik.setValues]);\n\n\treturn (\n\t\t (\n\t\t\t\t<>\n\t\t\t\t\t{mode === \"edit\" && (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t)}\n\t\t\t\t\n\t\t\t)}\n\t\t>\n\t\t\t{isLoading ? (\n\t\t\t\t\n\t\t\t) : (\n\t\t\t\t<>\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t)}\n\t\t\n\t);\n}\n","import { Card } from '@material-ui/core';\nimport Icons from 'src/icons';\n\nexport const PreviewElement = ({ ext = '', params = {} }) => {\n const isImage =\n ext === 'jpg' || ext === 'jpeg' || ext === 'png' || ext === 'webm';\n const isPdf = ext === 'pdf';\n\n if (isImage) {\n return (\n \n \n \n \n \n );\n }\n if (isPdf) {\n return (\n \n \n {/* */}\n \n \n \n );\n }\n return (\n \n \n \n );\n};\n","import {\n\tBox,\n\tButton,\n\tFormControl,\n\tFormHelperText,\n\tIconButton,\n\tTextField,\n\tTooltip,\n\tTypography,\n} from \"@material-ui/core\";\nimport { useFormik } from \"formik\";\nimport EditDialog from \"src/components/EditDialog\";\nimport { useLocale } from \"src/provider/LocaleProvider\";\nimport formikProps from \"src/utils/formikProps\";\n\nimport { useEffect, useState } from \"react\";\nimport { useQueryClient } from \"react-query\";\nimport useApi from \"src/api/api\";\nimport ClassSelector from \"src/components/ClassSelector\";\nimport { SubjectSelector } from \"src/components/SubjectSelector\";\nimport Icons from \"src/icons\";\nimport { useSnack } from \"src/provider/SnackbarProvider\";\nconst yup = require(\"yup\");\n\nexport const ResourceCreateDialog = ({\n\tsetDialogMode,\n\tisEdit = false,\n\tisOpen = false,\n\tselectedRow = {},\n}) => {\n\tconst { t } = useLocale();\n\tconst api = useApi();\n\tconst snack = useSnack();\n\tconst queryClient = useQueryClient();\n\tconst [isUploading, setIsLoading] = useState(false);\n\n\tconst [filters, setFilters] = useState([]);\n\tconst [subjects, setSubjects] = useState([]);\n\tconst [filename, setFilename] = useState(\"\");\n\tconst [clickDelete, setClickDelete] = useState(false);\n\tconst [isDeleting, setIsDeleting] = useState(false);\n\n\tconst schema = yup.object().shape({\n\t\tname_en: yup.string().required(t(\"yup_required\")),\n\t\tname_zh: yup.string().required(t(\"yup_required\")),\n\t\tfilters: yup.array().of(yup.string()),\n\t\tsubjects: yup.array().of(yup.string()),\n\t\tfile: isEdit\n\t\t\t? yup.boolean().nullable()\n\t\t\t: yup.mixed().maxFilesize(1 * 1024 * 1024 * 1024).required(t(\"yup_required\")),\n\t});\n\n\tuseEffect(() => {\n\t\tif (isEdit) {\n\t\t\tconst subjects = selectedRow?.subjects?.map((s) => s._id) ?? [];\n\t\t\tconst filters = selectedRow?.filters?.map((f) => f._id) ?? [];\n\t\t\tsetSubjects(subjects);\n\t\t\tsetFilters(filters);\n\t\t}\n\t}, [selectedRow, isEdit]);\n\n\tconst formik = useFormik({\n\t\tinitialValues: {\n\t\t\tname_en: selectedRow?.name?.en ?? \"\",\n\t\t\tname_zh: selectedRow?.name?.zh ?? \"\",\n\t\t\tfilters: selectedRow?.filters?.map((f) => f._id) ?? [],\n\t\t\tsubjects: selectedRow?.subjects?.map((s) => s._id) ?? [],\n\t\t\tfile: null,\n\t\t},\n\t\tvalidationSchema: schema,\n\t\tonSubmit: async (values) => {\n\t\t\tsetIsLoading(true);\n\t\t\ttry {\n\t\t\t\tif (isEdit) {\n\t\t\t\t\tawait api.putResources(values, selectedRow?._id);\n\t\t\t\t} else {\n\t\t\t\t\tawait api.createResources(values);\n\t\t\t\t}\n\n\t\t\t\tqueryClient.invalidateQueries(\"learning-resource\");\n\t\t\t\tsnack.open(t(\"upload_success\"));\n\t\t\t} catch (e) {\n\t\t\t\tconsole.error(e?.response?.data?.message);\n\n\t\t\t\tswitch (e?.response?.data?.message) {\n\t\t\t\t\tcase \"File too large\":\n\t\t\t\t\t\tsnack.error(t(\"learning_resource_msg_file_too_large\"));\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"Resource with same name already exists\":\n\t\t\t\t\t\tsnack.error(t(\"learning_resource_msg_same_name_exists\"));\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"Storage is full\":\n\t\t\t\t\t\tsnack.error(t(\"learning_resource_msg_storage_limit_exceeded\"));\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tsnack.error(t(\"failed\"));\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} finally {\n\t\t\t\tsetIsLoading(false);\n\t\t\t\tsetDialogMode(null);\n\t\t\t}\n\t\t},\n\t});\n\n\tconst handleDeleteResource = async (id) => {\n\t\tsetIsDeleting(true);\n\t\ttry {\n\t\t\tawait api.deleteResource(id);\n\t\t\tqueryClient.invalidateQueries(\"learning-resource\");\n\t\t\tsnack.open(t(\"delete_success\"));\n\t\t} catch (e) {\n\t\t\tsnack.error(t(\"failed\"));\n\t\t} finally {\n\t\t\tsetIsDeleting(false);\n\t\t\tsetDialogMode(null);\n\t\t}\n\t};\n\n\tconst handleFileUpload = (e) => {\n\t\tif (!e.target.files) {\n\t\t\treturn;\n\t\t}\n\t\tconst file = e.target.files[0];\n\t\tconst { name } = file;\n\t\tsetFilename(name);\n\t\tformik.setFieldValue(\"file\", file);\n\t};\n\n\t//* Handle filters and subjects\n\tuseEffect(() => {\n\t\tformik.setFieldValue(\n\t\t\t\"filters\",\n\t\t\tfilters.filter((v) => v),\n\t\t);\n\t}, [filters, formik.setFieldValue]);\n\n\tuseEffect(() => {\n\t\tformik.setFieldValue(\"subjects\", subjects);\n\t}, [subjects, formik.setFieldValue]);\n\t//*\n\n\treturn (\n\t\t<>\n\t\t\t{clickDelete && (\n\t\t\t\t setClickDelete(false)}\n\t\t\t\t\thandleSave={() => handleDeleteResource(selectedRow._id)}\n\t\t\t\t\tconfirmText={t(\"delete\")}\n\t\t\t\t\tconfirmDisabled={isDeleting}\n\t\t\t\t>\n\t\t\t\t\t{t(\"delete_confirm_msg\").replace(\"{a}\", t(\"learning_resource\"))}\n\t\t\t\t\n\t\t\t)}\n\t\t\t setDialogMode(null)}\n\t\t\t\tconfirmDisabled={Object.keys(formik.errors).length > 0 || isUploading}\n\t\t\t\tTitleComponent={() => (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{isEdit && (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t setClickDelete(true)}>\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t{!isEdit && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{filename}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t

{t(\"learning_resource_msg_type_size\")}

\n\t\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n","import {\n\tBox,\n\tButton,\n\tCard,\n\tChip,\n\tIconButton,\n\tTooltip,\n} from \"@material-ui/core\";\nimport { DataGrid } from \"@mui/x-data-grid\";\nimport { useMemo, useState } from \"react\";\nimport { useQuery, useQueryClient } from \"react-query\";\nimport useApi from \"src/api/api\";\nimport ClassSelector from \"src/components/ClassSelector\";\nimport SearchInput from \"src/components/SearchInput\";\nimport { SubjectSelector } from \"src/components/SubjectSelector\";\nimport Icons from \"src/icons\";\nimport LayoutContainer from \"src/layout/LayoutContainer\";\nimport { useLocale } from \"src/provider/LocaleProvider\";\nimport { PreviewElement } from \"./PreviewElement\";\nimport { ResourceCreateDialog } from \"./ResourceActionDialog\";\n\nconst _ = require(\"lodash\");\nconst moment = require(\"moment-timezone\");\nconst prettyBytes = require('pretty-bytes');\nexport const LearningResource = () => {\n\tconst { t, getLanguage } = useLocale();\n\tconst api = useApi();\n\tconst [paginationModel, setPaginationModel] = useState({\n\t\tpageSize: 5,\n\t\tpage: 0,\n\t});\n\tconst [dialogMode, setDialogMode] = useState(\"\");\n\tconst [filter, setFilter] = useState();\n\tconst [subject, setSubject] = useState(\"ALL\");\n\tconst [name, setName] = useState(\"\");\n\tconst [selectedRow, setSelectedRow] = useState({});\n\tconst isOpen = useMemo(\n\t\t() => dialogMode === \"CREATE\" || dialogMode === \"EDIT\",\n\t\t[dialogMode],\n\t);\n\n\tconst { data, isLoading } = useQuery(\n\t\t[\n\t\t\t\"learning-resource\",\n\t\t\tpaginationModel.page + 1,\n\t\t\tpaginationModel.pageSize,\n\t\t\tfilter,\n\t\t\tsubject,\n\t\t\tname,\n\t\t],\n\t\tasync () => {\n\t\t\tconst { data } = await api.getResources({\n\t\t\t\tpage: paginationModel.page + 1,\n\t\t\t\tlimit: paginationModel.pageSize,\n\t\t\t\tfilters: filter?._id ? [filter] : [],\n\t\t\t\tsubjects: subject === \"ALL\" ? [] : [subject],\n\t\t\t\tname,\n\t\t\t});\n\t\t\treturn data;\n\t\t},\n\t);\n\tconst storagePecentage = (data?.storage?.usedStorage / data?.storage?.totalStorage) * 100;\n\tconst totalStorage = prettyBytes(data?.storage?.totalStorage ?? 0);\n\tconst usedStorage = prettyBytes(data?.storage?.usedStorage ?? 0);\n\tconst chipColor = storagePecentage > 80 ? \"error\" : storagePecentage > 60 ? \"warning\" : \"success\";\n\n\tconst rows = useMemo(() => {\n\t\tif (!data?.resources) return [];\n\t\treturn _.map(data.resources, (row, index) => ({\n\t\t\tid: index,\n\t\t\t...row,\n\t\t}));\n\t}, [data]);\n\n\tconst columns = [\n\t\t{\n\t\t\tfield: \"entry_point\",\n\t\t\theaderName: \"\",\n\t\t\tflex: 1,\n\t\t\tsortable: false,\n\t\t\trenderCell: (params) => {\n\t\t\t\tconst ext = params?.row?.file_extension;\n\t\t\t\treturn ;\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tfield: \"name\",\n\t\t\theaderName: t(\"name\"),\n\t\t\tflex: 1,\n\t\t\tvalueGetter: (params) => params.row?.name[getLanguage()],\n\t\t},\n\t\t{\n\t\t\tfield: \"created_by\",\n\t\t\theaderName: t(\"action_created_by\"),\n\t\t\tflex: 1,\n\t\t\tvalueGetter: (params) => params.row?.created_by?.name[getLanguage()],\n\t\t},\n\t\t{\n\t\t\tfield: \"created_at\",\n\t\t\theaderName: t(\"created_at\"),\n\t\t\tflex: 1,\n\t\t\tvalueGetter: (params) =>\n\t\t\t\tmoment(params.value).format(\"YYYY-MM-DD HH:mm:ss\"),\n\t\t},\n\t\t{\n\t\t\tfield: \"updated_at\",\n\t\t\theaderName: t(\"Last_Updated_at\"),\n\t\t\tflex: 1,\n\t\t\tvalueGetter: (params) =>\n\t\t\t\tmoment(params.value).format(\"YYYY-MM-DD HH:mm:ss\"),\n\t\t},\n\t\t{\n\t\t\tfield: \"\",\n\t\t\theaderName: t(\"actions\"),\n\t\t\tflex: 1,\n\t\t\trenderCell: (params) => {\n\t\t\t\treturn (\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t handleEdit(params)} sx={{ p: 0.5 }}>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t];\n\n\tconst handleEdit = (params) => {\n\t\tconst { row } = params;\n\t\tsetSelectedRow({\n\t\t\t...row,\n\t\t});\n\n\t\tsetDialogMode(\"EDIT\");\n\t};\n\n\tconst handleCreate = () => {\n\t\tsetSelectedRow();\n\t\tsetDialogMode(\"CREATE\");\n\t};\n\n\tconst deboundedSearch = _.debounce((value) => {\n\t\tsetName(value);\n\t}, 500);\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\tcolor={chipColor}\n\t\t\t\t\t\t\tlabel={`${storagePecentage}%`}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\n\t\t\t{isOpen && (\n\t\t\t\t\n\t\t\t)}\n\t\t\n\t);\n};\n","import { Outlet, useNavigate } from 'react-router';\nimport { Navigate } from 'react-router-dom';\nimport DashboardLayout from './layout/Dashboard/DashboardLayout';\nimport MainLayout from './layout/Main/MainLayout';\n// import Account from './pages/Account';\n// import CustomerList from './pages/CustomerList';\nimport Dashboard from './pages/Dashboard/Dashboard';\n// import ProductList from './pages/ProductList';\n// import Register from './pages/Register';\n// import Settings from './pages/Settings';\n// import SignIn from './pages/SignIn/SignIn';\nimport Login from 'src/pages/Login/Login';\nimport NotFound from 'src/pages/NotFound';\nimport Settings from 'src/pages/Settings';\nimport AuthDataProvider, { useAuthData } from './provider/AuthDataProvider';\nimport OrganizationInfo from './pages/Organization/OrganizationInfo';\nimport OrganizationPeriodList from './pages/Organization/OrganizationPeriodList';\nimport OrganizationFilterList from './pages/Organization/OrganizationFilterList';\nimport StudentList from './pages/Account/StudentList';\nimport StudentUpload from './pages/Account/StudentUpload';\nimport AdminList from './pages/Account/AdminList';\nimport AdminUpload from './pages/Account/AdminUpload';\nimport ClassRanking from './pages/Dashboard/ClassRanking';\nimport UserRanking from './pages/Dashboard/UserRanking';\nimport PointRuleCategories from './pages/Point/PointRuleCategories';\nimport PointRules from './pages/Point/PointRules';\nimport { Box, Container, IconButton, Typography } from '@material-ui/core';\nimport Icons from './icons';\nimport { Helmet } from 'react-helmet';\nimport { useLocale } from './provider/LocaleProvider';\nimport { makeStyles } from '@material-ui/styles';\nimport { useState } from 'react';\nimport PeriodSelector from './components/PeriodSelector';\nimport AttendanceRules from './pages/Attendance/AttendanceRules';\nimport AttendanceHistory from './pages/Attendance/AttendanceHistory';\nimport DeviceList from './pages/DeviceList';\nimport Notice from './pages/Notice/Notice';\nimport PointRedeem from './pages/Point/PointRedeem';\nimport PointReward from './pages/Point/PointReward';\nimport PointHistory from './pages/Point/PointHistory';\nimport { useSnack } from './provider/SnackbarProvider';\nimport Overview from './pages/User/Overview';\nimport Profile from './pages/User/Profile';\nimport { CheckIn, CheckOut } from './pages/Attendance/TakeAttendance';\nimport { useBackDrop } from './provider/BackdropProvider';\nimport NoticeEdit from './pages/Notice/NoticeEdit';\nimport SetupPassoword from './pages/Login/SetupPassoword';\nimport NoticeDetail from './pages/User/NoticeDetail';\nimport Memo from './pages/Memo/Memo';\nimport MemoPublish from './pages/Memo/MemoPublish';\nimport MemoDetail from './pages/User/MemoDetail';\n// import GameList from './pages/Game/GameList';\n// import GameDetail from './pages/Game/GameDetail';\nimport GameList from './pages/Game/GameList';\nimport GameDetail from './pages/Game/GameDetail';\nimport GameEdit from './pages/Game/GameEdit';\nimport UserGameList from './pages/User/UserGameList';\nimport GameRecord from './pages/Game/GameRecord';\nimport StudentRecord from './pages/Account/StudentRecord';\nimport UAttendanceRecord from './pages/User/AttendanceRecord';\nimport UPointRecord from './pages/User/PointRecord';\nimport USubmittedHomeworkRecord from './pages/User/SubmittedHomeworkRecord';\nimport UUnfinishedHomeworkRecord from './pages/User/UnfinishedHomeworkRecord';\nimport UNotice from './pages/User/Notice';\nimport UMemo from './pages/User/Memo';\n\nimport StudentAttendanceRecord from './pages/Account/StudentAttendanceRecord';\nimport StudentPointRecord from './pages/Account/StudentPointRecord';\nimport ParentPointReward from './pages/Parent/ParentPointReward';\nimport PointRedeemRules from './pages/Point/PointRedeemRules ';\nimport BadgeRule from './pages/Badge/BadgeRule';\nimport BadgeList from './pages/Badge/BadgeList';\nimport Badge from './pages/User/Badge';\nimport QrCodeView from './pages/QrCodeView';\nimport ExternalSite from './pages/ExternalSite';\n\nimport BirthdaySetting from './pages/Birthday/BirthdaySetting';\n\nimport SubmittedHomework from './pages/Homework/SubmittedHomework';\nimport UnfinishedHomework from './pages/Homework/UnfinishedHomework';\nimport SubmittedHomeworkRecord from './pages/Homework/HomeworkRecord/SubmittedHomeworkRecord';\nimport UnfinishedHomeworkRecord from './pages/Homework/HomeworkRecord/UnfinishedHomeworkRecord';\nimport HomeworkHistory from './pages/Homework/HomeworkHistory/HomeworkHistory';\nimport HomeworkType from './pages/Homework/HomeworkType/HomeworkType';\nimport HomeworkStatistics from './pages/Homework/Statistics/HomeworkStatistics';\nimport StudentHomeworkStatistics from './pages/Homework/Statistics/StudentHomeworkStatistics';\nimport HomeworkSetting from './pages/Homework/HomeworkSetting';\n\nimport { SubjectSetting } from './pages/Subject/SubjectSetting';\nimport { LearningResource } from './pages/LearningResource/LearningResource';\n\n// import BoardGameDashboard from './pages/BoardGame/BoardGameDashboard';\n// import BoardGameDetail from './pages/BoardGame/BoardGameDetail';\n// import BoardGameSessionDetail from './pages/BoardGame/BoardGameSessionDetail';\n// import BoardGameProfileDetail from './pages/BoardGame/BoardGameProfileDetail';\n// import GameEdit from './pages/Game/GameEdit/components/GameEdit';\nconst _ = require('lodash');\n\nconst RoleChecker = ({ Component = () => null, roles = '', module }) => {\n const auth = useAuthData();\n const snack = useSnack();\n const backDrop = useBackDrop();\n const local = useLocale();\n const nav = useNavigate();\n var arr = roles.split(' ');\n if (\n module &&\n auth?.organization?.modules &&\n auth?.organization.modules[module] == false\n ) {\n return ;\n }\n if (_.includes(arr, 'parent') && !auth?.userInfo?.isParent) {\n return ;\n } else if (_.includes(arr, 'student') && auth?.userInfo?.isParent) {\n return ;\n }\n if (!_.includes(arr, auth?.userInfo?.role)) {\n return ;\n } else\n return (\n \n );\n};\n\nconst routes = [\n {\n path: '/admin',\n element: ,\n children: [\n //Dashboard\n {\n path: '/dashboard',\n element: (\n \n )\n },\n {\n path: '/dashboard/user_ranking',\n element: (\n \n )\n },\n {\n path: '/dashboard/class_ranking',\n element: (\n \n )\n },\n //Orgnaization\n {\n path: '/organizationinfo',\n element: (\n \n )\n },\n {\n path: '/organizationfilter',\n element: (\n \n )\n },\n {\n path: '/period',\n element: (\n \n )\n },\n //Accounts\n {\n path: '/student_list',\n element: (\n \n )\n },\n {\n path: '/student_list/:userId',\n element: (\n \n )\n },\n {\n path: '/student_list/:userId/point_record',\n element: (\n \n )\n },\n {\n path: '/student_list/:userId/attendance_record',\n element: (\n \n )\n },\n {\n path: '/student_list/:userId/unfinished_homework_record',\n element: (\n \n )\n },\n {\n path: '/student_list/:userId/submitted_homework_record',\n element: (\n \n )\n },\n {\n path: '/student_list/upload',\n element: (\n \n )\n },\n {\n path: '/admin_list',\n element: (\n \n )\n },\n {\n path: '/admin_list/upload',\n element: (\n \n )\n },\n //Points\n {\n path: '/pointrules',\n element: (\n \n )\n },\n {\n path: '/pointrule_categories',\n element: (\n \n )\n },\n {\n path: '/reward',\n element: (\n \n )\n },\n {\n path: '/redeem',\n element: (\n \n )\n },\n {\n path: '/redeem_pointrules',\n element: (\n \n )\n },\n {\n path: '/history',\n element: (\n \n )\n },\n //Attendance\n {\n path: '/attendancerules',\n element: (\n \n )\n },\n {\n path: '/attendance_history',\n element: (\n \n )\n },\n {\n path: '/checkin',\n element: (\n \n )\n },\n {\n path: '/checkout',\n element: (\n \n )\n },\n {\n path: '/studentoverview',\n element: (\n \n )\n },\n //Game\n {\n path: '/games',\n element: (\n \n )\n },\n {\n path: '/games/:gameId',\n element: (\n \n )\n },\n {\n path: '/games/edit/:gameId',\n element: (\n \n )\n },\n {\n path: '/games/record/:gameId',\n element: (\n \n )\n },\n //Notice\n {\n path: '/notice',\n element: (\n \n )\n },\n {\n path: '/notice/publish',\n element: (\n }\n />\n )\n },\n {\n path: '/notice/edit/:notice_id',\n element: (\n \n )\n },\n //Birthday\n {\n path: '/birthdaysetting',\n element: (\n \n )\n },\n //Learning Resource\n {\n path: '/learningresource',\n element: (\n \n )\n },\n //Homework\n {\n path: '/homeworksubmitrecord',\n element: (\n \n )\n },\n {\n path: '/unfinishedhomeworkrecord',\n element: (\n \n )\n },\n {\n path: '/homeworkHistory',\n element: (\n \n )\n },\n {\n path: '/homeworktype',\n element: (\n \n )\n },\n {\n path: '/homeworkstatistics',\n element: (\n \n )\n },\n {\n path: '/homeworksetting',\n element: (\n \n )\n },\n //Subject\n {\n path: '/subjectsetting',\n element: (\n \n )\n },\n //Memo\n {\n path: '/memo',\n element: (\n \n )\n },\n {\n path: '/memo/publish',\n element: (\n \n )\n },\n\n //Device\n {\n path: '/device',\n element: (\n \n )\n },\n //Setting\n {\n path: '/settings',\n element: (\n \n )\n },\n //Badges\n {\n path: '/badge_rule',\n element: (\n \n )\n },\n {\n path: '/badge_list',\n element: (\n \n )\n },\n //BoardGame\n // { path: '/boardgame/dashboard', element: },\n // { path: '/boardgame/game/:gameId', element: },\n // { path: '/boardgame/session/:sessionId', element: },\n // { path: '/boardgame/profile/:profileId', element: },\n //External website\n {\n path: '/external_links',\n element: (\n \n )\n },\n //Redirect\n { path: '/', element: },\n { path: '*', element: }\n ]\n },\n {\n path: '/user',\n element: ,\n children: [\n { path: '/overview', element: },\n { path: '/overview/point_record', element: },\n { path: '/overview/attendance_record', element: },\n {\n path: '/overview/unfinished_homework_record',\n element: \n },\n {\n path: '/overview/submitted_homework_record',\n element: \n },\n { path: '/profile', element: },\n { path: '/badge', element: },\n {\n path: '/reward',\n element: (\n \n )\n },\n {\n path: '/notice',\n element: \n },\n {\n path: '/notice/:id',\n element: \n },\n {\n path: '/memo',\n element: \n },\n {\n path: '/memo/:id',\n element: \n },\n {\n path: '/studentHomeworkStatistics',\n element: (\n \n )\n },\n { path: '/notice/publish', element: },\n { path: '/settings', element: },\n { path: '/games', element: },\n { path: '/', element: },\n { path: '*', element: }\n ]\n },\n {\n path: '/',\n element: ,\n children: [\n { path: '/not-found', element: },\n { path: '/', element: },\n { path: '*', element: }\n ]\n },\n {\n path: '/',\n element: ,\n children: [\n { path: '/reset_password', element: },\n { path: '/sign-in', element: },\n { path: '/qr-code', element: },\n { path: '/', element: },\n { path: '*', element: }\n ]\n }\n // { path: '/', element: }\n];\n\nexport default routes;\n","import { Box, Button, Card, ListItem, ListItemText } from \"@material-ui/core\";\nimport DragHandleIcon from \"@material-ui/icons/DragHandle\";\nimport { useState } from \"react\";\nimport { useQuery } from \"react-query\";\nimport { ReactSortable } from \"react-sortablejs\";\nimport useApi from \"src/api/api.js\";\nimport LoadingView from \"src/components/LoadingView\";\nimport LayoutContainer from \"src/layout/LayoutContainer\";\nimport { useLocale } from \"src/provider/LocaleProvider\";\nimport { useSnack } from \"src/provider/SnackbarProvider\";\nimport { SubjectDialog } from \"./SubjectDialog\";\n\nexport function SubjectSetting() {\n\tconst { t, getLanguage } = useLocale();\n\tconst api = useApi();\n\tconst snack = useSnack();\n\n\tconst [dialogProps, setDialogProps] = useState({\n\t\tmode: \"create\",\n\t\tisOpen: false,\n\t\tsubjectId: \"\",\n\t});\n\n\tconst { isLoading } = useQuery(\"subjects\", () =>\n\t\tapi.getSubjects().then(({ data }) => {\n\t\t\tsetSubjects(data?.subjects);\n\t\t\treturn data?.subjects;\n\t\t}),\n\t);\n\n\tconst [subjects, setSubjects] = useState([]);\n\n\tconst handelEdit = (id) => {\n\t\tsetDialogProps({ isOpen: true, subjectId: id, mode: \"edit\" });\n\t};\n\n\tconst handleCreate = () => {\n\t\tsetDialogProps({ isOpen: true, subjectId: \"\", mode: \"create\" });\n\t};\n\n\tconst handleSave = () => {\n\t\tapi\n\t\t\t.updateSubjectsOrder(subjects)\n\t\t\t.then(() => {\n\t\t\t\tsnack.open(t(\"saved\"));\n\t\t\t})\n\t\t\t.catch(() => snack.error(t(\"failed\")));\n\t};\n\n\tif (isLoading) return ;\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{subjects?.map((item) => (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t handelEdit(item._id)}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{/* */}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t))}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\n\t\t\t{dialogProps.isOpen && (\n\t\t\t\t\n\t\t\t)}\n\t\t\n\t);\n}\n","import { Helmet } from 'react-helmet';\nimport {\n Box,\n Card,\n Container,\n Typography\n} from '@material-ui/core';\nimport LayoutContainer from 'src/layout/LayoutContainer';\nimport { NavLink } from 'react-router-dom';\nimport { useLocale } from 'src/provider/LocaleProvider';\nimport useApi from 'src/api/api';\nimport { useEffect } from 'react';\nimport { useAuthData } from 'src/provider/AuthDataProvider';\nimport _ from 'lodash';\nimport Icons from 'src/icons';\nimport NoRecordItem from 'src/components/NoRecordItem';\nexport default () => {\n const { t, translate } = useLocale();\n const { organization } = useAuthData();\n const links = _.get(organization, 'external_links');\n return (\n \n {_.size(links) > 0 ? _.map(links, link =>\n \n \n \n {translate(link.name)}\n \n \n \n {translate(link.description)}\n \n \n \n ) : }\n \n );\n};","import { colors, createTheme } from '@material-ui/core';\n\nconst theme = createTheme({\n breakpoints: {\n values: {\n xs: 0,\n // xs: 400,\n sm: 600,\n md: 900,\n lg: 1200,\n xl: 1536,\n },\n },\n palette: {\n background: {\n default: '#f4f6f8',\n paper: colors.common.white\n },\n primary: {\n contrastText: '#ffffff',\n main: colors.indigo[500]\n },\n secondary: {\n main: colors.indigo[500]\n },\n text: {\n primary: '#172b4d',\n secondary: '#6b778c'\n },\n grey: {\n main: '#E4E6EB'\n }\n },\n components: {\n MuiAutocomplete: {\n defaultProps: {\n openOnFocus: true,\n autoHighlight: true,\n disableClearable: true,\n }\n },\n MuiTab: {\n styleOverrides: {\n root: {\n textTransform: \"none\"\n }\n }\n },\n MuiDialog: {\n defaultProps: {\n maxWidth: 'sm',\n },\n styleOverrides: {\n paper: {\n width: '100%'\n }\n }\n },\n MuiDialogActions: {\n styleOverrides: {\n root: {\n padding: '8px',\n }\n }\n },\n MuiContainer: {\n defaultProps: {\n maxWidth: false,\n },\n styleOverrides: {\n root: {\n paddingTop: '16px',\n paddingBottom: '32px',\n }\n }\n },\n MuiTextField: {\n defaultProps: {\n variant: \"outlined\",\n InputLabelProps: {\n // shrink: true\n }\n }\n },\n MuiInputBase: {\n defaultProps: {\n autoComplete: 'off'\n },\n styleOverrides: {\n root: {\n backgroundColor: colors.common.white\n }\n }\n },\n MuiAppBar: {\n styleOverrides: {\n root: {\n color: 'black',\n backgroundColor: 'white',\n borderBottom: '1px solid rgba(0, 0, 0, 0.12)'\n }\n }\n },\n MuiButton: {\n defaultProps: {\n variant: 'contained',\n color: 'primary'\n },\n styleOverrides: {\n root: {\n whiteSpace: 'nowrap',\n height: 'fit-content'\n }\n }\n },\n MuiCardHeader: {\n styleOverrides: {\n root: {\n borderBottom: '1px solid rgba(0, 0, 0, 0.12)'\n }\n }\n },\n MuiSelect: {\n defaultProps: {\n }\n },\n MuiCardActions: {\n styleOverrides: {\n root: {\n justifyContent: 'flex-end',\n borderTop: '1px solid rgba(0, 0, 0, 0.12)'\n }\n }\n }\n },\n shadows: [\n 'none',\n '0 0 0 1px rgba(63,63,68,0.05), 0 1px 2px 0 rgba(63,63,68,0.15)',\n '0 0 1px 0 rgba(0,0,0,0.31), 0 2px 2px -2px rgba(0,0,0,0.25)',\n '0 0 1px 0 rgba(0,0,0,0.31), 0 3px 4px -2px rgba(0,0,0,0.25)',\n '0 0 1px 0 rgba(0,0,0,0.31), 0 3px 4px -2px rgba(0,0,0,0.25)',\n '0 0 1px 0 rgba(0,0,0,0.31), 0 4px 6px -2px rgba(0,0,0,0.25)',\n '0 0 1px 0 rgba(0,0,0,0.31), 0 4px 6px -2px rgba(0,0,0,0.25)',\n '0 0 1px 0 rgba(0,0,0,0.31), 0 4px 8px -2px rgba(0,0,0,0.25)',\n '0 0 1px 0 rgba(0,0,0,0.31), 0 5px 8px -2px rgba(0,0,0,0.25)',\n '0 0 1px 0 rgba(0,0,0,0.31), 0 6px 12px -4px rgba(0,0,0,0.25)',\n '0 0 1px 0 rgba(0,0,0,0.31), 0 7px 12px -4px rgba(0,0,0,0.25)',\n '0 0 1px 0 rgba(0,0,0,0.31), 0 6px 16px -4px rgba(0,0,0,0.25)',\n '0 0 1px 0 rgba(0,0,0,0.31), 0 7px 16px -4px rgba(0,0,0,0.25)',\n '0 0 1px 0 rgba(0,0,0,0.31), 0 8px 18px -8px rgba(0,0,0,0.25)',\n '0 0 1px 0 rgba(0,0,0,0.31), 0 9px 18px -8px rgba(0,0,0,0.25)',\n '0 0 1px 0 rgba(0,0,0,0.31), 0 10px 20px -8px rgba(0,0,0,0.25)',\n '0 0 1px 0 rgba(0,0,0,0.31), 0 11px 20px -8px rgba(0,0,0,0.25)',\n '0 0 1px 0 rgba(0,0,0,0.31), 0 12px 22px -8px rgba(0,0,0,0.25)',\n '0 0 1px 0 rgba(0,0,0,0.31), 0 13px 22px -8px rgba(0,0,0,0.25)',\n '0 0 1px 0 rgba(0,0,0,0.31), 0 14px 24px -8px rgba(0,0,0,0.25)',\n '0 0 1px 0 rgba(0,0,0,0.31), 0 16px 28px -8px rgba(0,0,0,0.25)',\n '0 0 1px 0 rgba(0,0,0,0.31), 0 18px 30px -8px rgba(0,0,0,0.25)',\n '0 0 1px 0 rgba(0,0,0,0.31), 0 20px 32px -8px rgba(0,0,0,0.25)',\n '0 0 1px 0 rgba(0,0,0,0.31), 0 22px 34px -8px rgba(0,0,0,0.25)',\n '0 0 1px 0 rgba(0,0,0,0.31), 0 24px 36px -8px rgba(0,0,0,0.25)'\n ],\n typography: {\n h1: {\n fontWeight: 500,\n fontSize: 35,\n letterSpacing: '-0.24px'\n },\n h2: {\n fontWeight: 500,\n fontSize: 29,\n letterSpacing: '-0.24px'\n },\n h3: {\n fontWeight: 500,\n fontSize: 24,\n letterSpacing: '-0.06px'\n },\n h4: {\n fontWeight: 500,\n fontSize: 20,\n letterSpacing: '-0.06px'\n },\n h5: {\n fontWeight: 500,\n fontSize: 16,\n letterSpacing: '-0.05px'\n },\n h6: {\n fontWeight: 500,\n fontSize: 14,\n letterSpacing: '-0.05px'\n },\n overline: {\n fontWeight: 500\n }\n }\n});\n\nexport default theme;\n","import createStyles from '@material-ui/styles/createStyles';\nimport makeStyles from '@material-ui/styles/makeStyles';\n\nconst useStyles = makeStyles(() => createStyles({\n '@global': {\n '*': {\n boxSizing: 'border-box',\n margin: 0,\n padding: 0,\n },\n html: {\n '-webkit-font-smoothing': 'antialiased',\n '-moz-osx-font-smoothing': 'grayscale',\n height: '100%',\n width: '100%'\n },\n body: {\n backgroundColor: '#f4f6f8',\n height: '100%',\n width: '100%'\n },\n a: {\n textDecoration: 'none'\n },\n '#root': {\n height: '100%',\n width: '100%'\n }\n }\n}));\n\nconst GlobalStyles = () => {\n useStyles();\n\n return null;\n};\n\nexport default GlobalStyles;\n","import { StyledEngineProvider, ThemeProvider } from '@material-ui/core';\nimport { useEffect } from 'react';\nimport ReactGA from 'react-ga';\nimport 'react-perfect-scrollbar/dist/css/styles.css';\nimport { QueryClient, QueryClientProvider } from 'react-query';\nimport { useLocation, useRoutes } from 'react-router-dom';\nimport 'src/theme/index.css';\nimport './assets/css/utils.css';\nimport BackdropProvider from './provider/BackdropProvider';\nimport LocaleProvider from './provider/LocaleProvider';\nimport SnackbarProvider from './provider/SnackbarProvider';\nimport routes from './routes';\nimport theme from './theme';\nimport GlobalStyles from './theme/GlobalStyles';\n\nconst queryClient = new QueryClient({\n defaultOptions: {\n queries: {\n refetchOnWindowFocus: false // default: true\n }\n }\n});\n\nconst App = () => {\n const content = useRoutes(routes);\n const location = useLocation();\n\n useEffect(() => {\n ReactGA.initialize('UA-207649151-1');\n }, []);\n\n useEffect(() => {\n if (process.env.NODE_ENV !== 'development') {\n ReactGA.set({ page: location.pathname });\n ReactGA.pageview(location.pathname);\n }\n }, [location.pathname]);\n\n return (\n \n \n \n \n \n \n {content}\n \n \n \n \n \n );\n};\n\nexport default App;\n","import ReactDOM from 'react-dom';\nimport { BrowserRouter } from 'react-router-dom';\nimport App from './App';\n\nReactDOM.render(\n (\n \n \n \n ),\n document.getElementById('root')\n);\n"],"sourceRoot":""}